Strudelify
Yesterday cover art

1994 · II

Yesterday

Boyz II Men

KeyF majorTempo100 bpm
0:00/0:00
// Yesterday — Boyz II Men
// 100 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 48 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · acoustic guitar nylon · "Nylon Acoustic Guitar"
const acoustic_guitar_nylon = note(`<
  A@2 B C D E F G H B C D E I J H K L M N K L M O B C D E I J H K L M N K L M O B C D E I P H Q H
>`.pickRestart({
  A: "[a3,c4]!8", B: "[a3,c4]", C: "[b3,d4] [e4,g4]", D: "[f4,a4]", E: "[d4,f4] [c4,e4]", F: "[c4,f4]@2 ~ c4",
  G: "d4@2 [c4,d4] [b3,d4]@3 d4 ~", H: "[bb3,d4]@2 [c4,f4] [c4,f4]@3 ~@2", I: "[c4,f4]@3 c4",
  J: "d4@2 [c4,d4] [b3,d4]@3 ~@2", K: "[b3,d4] [db4,e4]", L: "[f4,a4] [g4,c5] [bb4,d5] [f4,a4]", M: "[g4,bb4] [e4,g4]",
  N: "[c4,f4]", O: "f5", P: "d4@2 [c4,d4,a4] [b3,d4]@3 ~@2", Q: "[a3,c4] [g3,d4]",
})).s("gm_acoustic_guitar_nylon").gain(0.41)

// other · acoustic guitar nylon · "Nylon Acoustic Guitar"
const acoustic_guitar_nylon_2 = note(`<
  A@2 B C D E F G H B C D E F G H I J K L I J K A B C D E F G H I J K L I J K A B C D E F G H M N
>`.pickRestart({
  A: "f3", B: "f2@3 f3", C: "e3 a2", D: "d3@3 c3", E: "bb2 c3", F: "f3@2 f3 e3", G: "d3 g2", H: "bb2@2 f2 f2@3 c3@2",
  I: "[a2,g3]!2", J: "d3 c3 bb2 a2", K: "g2 c3", L: "f2 f3", M: "c3 b2", N: "bb2@2 f2 f2@3 ~@2",
})).s("gm_acoustic_guitar_nylon").gain(0.41)

// drums · kick
const kick = s("bd").struct("<[x ~@2 x!2 ~@2 x]!47 [x ~@2 x!2 ~@3]>").gain(0.41)

// drums · rim
const rim = s("rim").struct("<[~ x ~ x]!47 [~ x ~@2]>").gain(0.41)

// drums · hihat
const hihat = s("hh").struct("<[x!8]!47 [x!6 ~@2]>").gain(0.31)

stack(acoustic_guitar_nylon, acoustic_guitar_nylon_2, kick, rim, hihat)

More by Boyz II Men