Strudelify
Wild World cover art

1992

Wild World

Jimmy Cliff

KeyF majorTempo73 bpm
0:00/0:00
// Wild World — Jimmy Cliff
// 73 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 2 electric bass finger (copy of ch 9 fretless bass)
// note: Full arrangement: all 62 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(73/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order, A@4 for four bars: edit a riff to change every repeat.

// bass · fretless bass
const bass = note(`<
  ~@12 A B C D E F G H I J K L M N O P@2 Q R S T U R V W X Y Z AA X AB Z AC A B AD AE AF V AG AH AI V AJ AE AK V AL AM@2
>`.pickRestart({
  A: "~@8 f1 ~ f1@4 ~@2", B: "c2@6 ~@2 bb1 ~ bb1@4 ~@2", C: "bb1 a1!2 bb1 a1!2 bb1 a1 c2 ~ c2@5 a1",
  D: "bb1 ~ bb1@5 f1 f1@6 ~@2", E: "c2!2 d2 f2!3 d2 c2 f1 ~ f1@4 ~@2, ~@10 gb1 ~@5", F: "c2@7 a1 bb1 ~ bb1@5 ~",
  G: "bb1 a1 ~ bb1 a1!2 bb1 ~ c2 ~ c2@4 ~ a1", H: "bb1 ~ bb1@4 ~ e1 f1 ~ f1@4 ~@2", I: "g1!2 ~@2 a1!2 ~@2 d2@6 ~@2",
  J: "g1@3 ~ c2@3 ~", K: "f1@7 ~ bb1@8", L: "g1@3 ~ a1@3 ~", M: "~ a1 ~@2 a1 ~ a1 ~ d2@6 ~ e1",
  N: "g1@5 ~ g1 a1 c2@6 ~@2", O: "f1@4 ~@4 bb1@7 ~", P: "[g1@6 ~@2 a1@4 ~@2 c2@11 ~@7]/2", Q: "f1 ~ f1@4 ~@2 c2@7 ~",
  R: "bb1 ~ bb1@5 ~ bb1 a1!2 bb1 a1!2 bb1 a1", S: "c2 ~ c2@4 ~ a1 bb1 ~ bb1@5 e1",
  T: "f1@6 ~@2 c2!2 d2 f2 f2@2 [d2,gb2] c2", U: "[f1,a1] ~ f1@5 ~ c2@6 ~@2", V: "c2 ~ c2@4 ~@2 bb1 ~ bb1@4 ~@2",
  W: "f1@3 ~ g1 ~ a1 ~", X: "d2@3 ~ g1@3 ~", Y: "c2@3 ~ f1@3 ~", Z: "bb1@3 ~ g1@3 ~", AA: "a1@7 ~@2 a1 ~@2 a1 ~ a1 ~",
  AB: "c2@6 ~@2 f1@6 e1 ~", AC: "a1@3 ~ g1 a1 c2@10", AD: "bb1 ~ a1 bb1 ~ a1 bb1 ~ c2 ~ c2@4 ~@2",
  AE: "bb1 ~ bb1@5 ~ f1@6 ~@2", AF: "c2 ~ d2 f2!3 d2 c2 f1 ~ f1@5 ~", AG: "bb1 a1!2 bb1 a1!2 bb1 a1 ~@2 c2@5 a1",
  AH: "bb1 ~ bb1@2 bb1 ~ eb2 ~ f1@6 ~@2", AI: "c2!2 d2 f2 [g2,ab2,a2] g2 f2 [d2,gb2] ~ f1 f1@5 ~",
  AJ: "bb1 ~ a1 bb1 ~@2 bb1 a1 c2 ~ c2@4 ~@2", AK: "~ c2 d2 f2!3 gb2 c2 f1 ~ f1@5 ~",
  AL: "bb1 a1!2 bb1 a1!2 bb1 c2 ~@2 c2@4 ~ a1", AM: "[bb1 ~ bb1@2 ~ eb2 f2 ~ f1@10 ~@14]/2",
})).s("gm_fretless_bass").gain(0.71)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@11 A B ~ C D E ~ F ~@8 G H ~ I J K L I M N O P Q R ~@3 S B ~ F T U ~ V ~@3 F ~ W ~ X ~@2
>`.pickRestart({
  A: "~@6 c3@2 ~ [e4,g4,c5] ~@2 [d4,e4,f4,bb4] [d4,f4,bb4]!2 b3", // C Bb
  B: "[c4,e4]!2 [c4,e4,a4] [b3,e4] [bb3,d4,g4] [bb3,d4]!2 [g3,b3,e4] ~@8", C: "f4 e4 d4 c4 bb3 a3 g3 f3 e3@8",
  D: "f3@4 ~@4 f2 ~@7",
  E: "[c3,c4] [c3,c4,f4] [d3,d4] [f3,f4]!2 ~ [d3,a3,d4] [c4,f4] [a3,c4,f4]@8, ~@2 c4@3 [f3,c4,f4]@2 ~@9", // C F5 D F D5 F5 F F5
  F: "f4 e4 d4 c4 bb3 a3 g3 f3 e3@6 ~@2", G: "~@7 c3",
  H: "~ [e4,g4,c5] ~@2 [d4,e4,f4,bb4] [d4,f4,bb4]!2 b3 [c4,e4]!2 [c4,e4,a4] [b3,e4] [bb3,d4,g4] [bb3,d4]!2 [g3,b3,e4]", // C Bb C Am E5 Gm Bb Em
  I: "~@8 f4 e4 d4 c4 bb3 a3 g3 f3", J: "e3@2 f3 ~",
  K: "f2 ~@7 [c3,c4] [c3,c4,f4] [d3,d4] [f3,f4]!2 ~ [d3,a3,d4] [c4,f4], ~@10 c4@3 [f3,c4,f4]@2 ~", L: "[a3,c4,f4] ~",
  M: "e3@3 ~@5", N: "~@10 d4 g4 ~@3 a4, ~@8 g3@3 ~ a3@4, ~@9 b3@2 ~@2 db4@3, ~@7 e4",
  O: "~@4 [a3,d4,f4]!3 [a3,f4] [g3,b3,f4]!4 ~ [g3,b3,f4]!2 [g3,c4]", // Dm G7 C5
  P: "~ g3@3 [g3,c4,e4] [g3,c4]!2 [g3,b3] [a3,c4,e4]!4 ~ [a3,c4]!2 [d3,g3,b3], [c4,e4]@3 ~@10 e4@3", // C C5 G Am G C
  Q: "[f3,d4]@4 [f3,d4] [f3,bb3,d4]!3 [g3,bb3,d4]!3 [g3,bb3,d4]@2 e4 [f3,bb3,d4] d3, bb3 ~@7", // Dm Bb Gm Bb
  R: "[e3,db4]@4 [e3,a3]@4 [a3,c4,db4] [a3,db4]!2 ~ [g3,b3] c4 [g3,b3] [a3,db4,d4], a3@2 ~@9 [a3,d4]@2 e4@3", // Dbm A5 A G Dmaj7 D5
  S: "~@9 [e4,g4,c5] ~@2 [d4,e4,f4,bb4] [d4,f4,bb4]!2 b3", T: "~@8 f2 ~@7",
  U: "[c3,c4] [c3,c4,f4] [d3,d4] [f3,f4]!2 ~ [d3,a3,d4] [c4,f4] [a3,c4,f4]@7 ~, ~@2 c4@3 [f3,c4,f4]@2 ~@9", // C F5 D F D5 F5 F F5
  V: "[f4,g4] e4 d4 c4 bb3 a3 g3 f3 ~@8", W: "~ [c3,c4] [d3,d4] [f3,f4] f4 [f3,f4] [d3,d4] [c3,c4] ~@8",
  X: "f4 e4 d4 c4 bb3 a3 g3 f3 ~@8",
})).s("gm_acoustic_guitar_steel").gain(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  A B C D E F G H I J K L@2 M@2 N@4 O P Q R S@2 T U@3 V W X@2 Y Z AA AB ~@3 AC AD AE AF AG@2 AH@2 AI@2 AJ AK AL AM AN@2
  AO@6
>`.pickRestart({
  A: "~@4 [a3,d4,f4]!4 g3@2 ~@4 g3 c4, ~@8 f4@7 ~, ~@8 [b3,d4]@5 [b3,d4]@2 ~, ~@5 g3!2 ~, ~@11 g4@2 ~@3", // Dm Bm
  B: "[g3,c4,e4]@2 ~ [c4,e4] [g3,c4,e4]@2 g3!2 f3!2 ~@4 f3 [f3,c4], eb4 ~ g3@2 ~@4 e4@8, ~@8 [a3,c4]@5 [a3,c4]@3, ~@5 f3 [f3,c4] ~, ~@11 f4@2 ~@3", // C F5 Am F5
  C: "f3@2 f3 ~@2 c4@2 d4 g3!2 ~@4 g3!2, [bb3,d4]@3 f3@4 ~ bb3@2 g3@2 g3@2 ~@2, ~@4 [bb3,d4]@4 d4@5 ~@3, ~@11 [bb3,f4]@2 [bb3,d4]@2 ~", // Bb Bb5 Bb
  D: "e3!2 ~@2 b3 ~ e3 [e3,a3] [e3,a3,db4]!3 ~ e3 ~ e3 e4, db4@5 db4@3 ~@3 [db4,d4]@2 [db4,e4]@2 ~, a3 e3@2 ~@5, ~@3 a3@4 ~@5 a3@3 ~", // A5 A Dmaj7 Dbm
  E: "~@8 [g3,b3,d4,f4]@7 ~", F: "[g3,c4,e4]@7 ~ c4@4 c4@3 ~, ~ e4, ~@4 [f3,a3]@3 ~",
  G: "[f3,bb3,d4]@7 ~ [g3,bb3,d4]@6 ~@2", // Bb Gm
  H: "[e3,a3,db4]@7 ~ [a3,db4]!2 ~@2 e3 ~ e3 e4, ~@7 e3@3 [a3,db4]@2 a3@3 ~, ~@11 d4@2 e4@2 ~", // A
  I: "~@2 a3@2 ~ e4@2 f4 d4@3 ~ d4 [f4,g4] ~ b3, f4@5 ~@3 e4 ~@2 g3@3 ~@2, ~ d4@2 ~ d4@3 ~ b3@6 d4@2", // Fsus2
  J: "c4@4 ~@2 d4 e4 ~@3 c4@2 ~ c4 f3, e4@5 c4@2 ~ c4@2 f3@4 ~@2, ~@4 g3@4 ~ a3@6 ~, ~@11 e4@5",
  K: "[bb3,d4]@5 ~@3 g3@7 ~, ~@5 f3@2 d4@7 ~@2, ~@6 bb3@9 ~", // Bb
  L: "[[a3,db4]@3 ~ a3 db4 [e3,g3,c4]@16 ~@2 [a3,c4]@2 f3@2 [a3,c4]@3 f3, ~@3 e3@2 ~@27]/2", // A C Am
  M: "[[c4,e4]@4 ~@3 g3 [bb3,d4]@9 ~@2 c4@2 ~ bb3 ~@6 d4@2 g3, g3@3 ~ g3@2 e4@2 ~@10 bb3@3 d4@3 ~@2 [c4,e4]@2 c4@2 ~@2, ~@5 c4@2 ~@10 f3@6 ~@4 g3@3 ~@2]/2", // C Bb C
  N: "[d4@3 ~@2 c4@2 ~ [a3,c4]@14 ~@5 c4 ~@2 a3 ~ e4@2 ~@3 d4@2 g3 ~@4 f3 ~ bb3 ~@2 c4@2 ~@2 c4@2 d4 [c4,e4]@2 ~@3 e4@2 g3, ~@3 f3@3 ~ f3@2 ~@19 a3@2 ~ c4@3 g3@3 ~@8 f3@4 ~@2 f3@3 ~@4 g3@3 ~@3, ~@4 bb3@3 ~@19 f4@2 ~ f4@2 ~@4 c4@4 ~ [bb3,d4]@6 ~ bb3@4 ~ bb3@3 ~@4 c4@4 ~]/4", // Am C Bb
  O: "~ bb3 ~@3 c4@2 f3 [a3,c4]@6 ~@2, d4@2 f3@3 ~@11, ~@3 bb3@5 ~@8", P: "~ [a3,d4,f4]",
  Q: "[g3,b3,d4,f4]@7 ~ [g3,c4,e4]@7 ~", R: "d4@4 c4@3 ~ [f3,bb3,d4]@7 ~, e4 ~, [f3,a3]@3 ~@5",
  S: "[[g3,bb3,d4]@6 ~@2 [e3,a3,db4]@7 ~ [a3,db4]!2 ~@2 e3 ~ e3 e4 ~@2 a3@2 ~ e4@2 f4, ~@15 e3@3 [a3,db4]@2 a3@3 ~@2 d4@2 ~ d4@3 ~, ~@19 d4@2 e4@2 ~ f4@5 ~@3]/2", // Gm A
  T: "d4@3 ~ d4 [f4,g4] ~ b3 c4@4 ~@2 d4 e4, b3@6 d4@2 e4@5 c4@2 ~, e4 ~@2 g3@3 ~@6 g3@4", // Fsus2
  U: "[~@3 c4@2 ~ c4 f3 [bb3,d4]@5 ~@3 g3@7 ~ [a3,db4]@3 ~ a3 db4 [e3,g3,c4]@16 ~@2, c4@2 f3@4 ~@7 f3@2 ~@12 e3@2 ~@19, ~ a3@6 ~@7 bb3@9 ~@25, ~@3 e4@5 ~@7 d4@7 ~@26]/3", // Bb A C
  V: "[a3,c4]@2 f3@2 [a3,c4]@3 f3 [c4,e4]@4 ~@3 g3, ~@8 g3@3 ~ g3@2 e4@2, ~@13 c4@2 ~", // Am C
  W: "[bb3,d4]@9 ~@2 c4@2 ~ bb3 ~, ~@9 f3@6 ~, ~@10 bb3@3 d4@3", // Bb
  X: "[~@5 d4@2 g3 d4@3 ~@2 c4@2 ~ [a3,c4]@14 ~@2, ~@2 [c4,e4]@2 c4@2 ~@6 bb3@3 ~@17, ~@3 g3@3 ~@5 f3@3 ~ f3@2 ~@15]/2", // Am C
  Y: "~@3 c4 ~@2 a3 ~ e4@2 ~@3 d4@2 g3, ~@2 f4@2 a3@2 ~ c4@3 g3@3 ~@3, ~@5 f4@2 ~@4 c4@4 ~",
  Z: "~@4 f3 ~ bb3 ~@2 c4@2 ~@2 c4@2 d4, [bb3,d4]@5 f3@4 ~@2 f3@3 ~@2, ~@7 bb3@4 ~ bb3@3 ~", // Bb
  AA: "[c4,e4]@2 ~@3 e4@2 g3 ~ bb3 ~@3 c4@2 f3, ~@2 g3@3 ~@5 f3@3 ~@3, ~@3 c4@4 ~ d4@2 ~ bb3@5", // C
  AB: "[a3,c4]@6 ~@4 d4 g4 ~@2 [e4,f4] a4, ~@8 g3@3 ~ a3@4, ~@9 b3@2 ~@2 db4@2 ~", // Am Fmaj7
  AC: "~@12 [e3,a3] ~ [e3,f3] e4, ~@13 e4@2 ~", AD: "~@4 [a4,d5,f5]!3 [a4,f5] [g4,b4,f5]!4 ~ [g4,b4,f5]!2 [g4,c5]",
  AE: "~ g4@3 [g4,c5,e5] [g4,c5]!2 [g4,b4] [a4,c5,e5]!4 ~ [a4,c5]!2 [d4,g4,b4], [c5,e5]@3 ~@10 e5@3", // C C5 G Am G C
  AF: "[f4,d5]@4 [f4,d5] [f4,bb4,d5]!3 [g4,bb4,d5]!3 [g4,bb4,d5]@2 e5 [f4,bb4,d5] d4, bb4 ~@7", // Dm Bb Gm Bb
  AG: "[[e4,db5]@3 [a3,db4]@2 e3 [e3,g3,c4]@15 ~@3 [a3,c4]@3 ~@2 c4@2 f3, a4@2 ~@25 f3@3 ~@2, ~@28 a3@3 ~]/2", // Dbm A C Am
  AH: "[~@3 c4@2 ~ c4 g3 ~@2 f3 ~@2 c4@2 f3@2 bb3@2 ~@2 c4@2 f3@2 ~@3 c4 d4 e4 g3, ~ c4@2 ~@2 d4@2 ~@4 f3@3 ~@5 f3@2 ~@6 g3@2 ~@3, ~@2 g3@3 ~@3 [bb3,d4]@4 bb3@3 ~@5 bb3@2 ~@4 [c4,e4]@2 ~@4]/2", // Bb C
  AI: "[d4 bb3 ~@3 c4@2 f3 a3@2 ~@3 c4@2 f3@2 ~ f3 ~ a3 ~ a3 f3@3 ~@2 a3 ~ f3@2, ~@2 f3@3 ~@5 f3@3 ~@4 c4@2 ~@2 c4@2 ~@6 c4@2 ~, ~@3 bb3@4 ~@4 a3@8 f3@2 ~@6 f3@2 ~@3]/2",
  AJ: "e4@2 c4 ~ c4 e4@2 g3 [bb3,d4]@6 ~@2, ~@3 [g3,d4]@2 c4 ~@10", // Bb G5
  AK: "~@2 c4 ~@2 c4 ~ c4 ~@2 [g3,c4,e4]@2 g3 c4@2 g3, f3@2 ~ f3@2 ~ f3@2 ~@8, ~ bb3@2 ~ bb3@2 ~@10", // C
  AL: "[d4,e4] bb3 ~@2 c4 ~ bb3 f3 [a3,c4]@2 ~@3 c4@2 f3, ~@2 f3@3 ~@5 f3@3 ~@3, ~@3 bb3@2 d4@2 ~@4 a3@4 ~", // Dsus2 Am
  AM: "~ [f3,a3] c4 f3 a3 ~ f3 a3 [a3,c4]@2 ~@2 c4 ~@2 b3, ~@5 c4@2 ~@3 f3@3 f4@3, ~@11 a3@3 f3@2", // F Am
  AN: "[~@3 d4@2 e4@2 g3 d4@2 ~@11 c4@2 d4 ~@2 [c4,e4]@2 ~ c4@2 g3, [c4,e4]@2 c4@5 ~@4 bb3@4 f3@8 ~@5 g3@2 ~@2, ~ g3@4 ~@5 f3@3 c4@6 bb3@4 ~@9]/2", // C
  AO: "[d4 bb3 ~@3 c4@2 f3 a3@2 ~@3 c4@3 ~ a3 c4 [a3,f4]@2 c4 ~ c4 ~@2 c4 ~@2 c4 a3 c4 ~@3 d4 e4 d4 c4 g3 d4@2 bb3 ~@6 c4 ~ c4 bb3 ~ bb3 c4 ~@2 [c4,e4]@2 ~@2 e4 g3 d4 bb3 ~@2 c4 ~ bb3 ~ [a3,c4,f4]@14 ~@10, ~@2 f3@3 ~@5 db-1@86, ~@3 bb3@4 ~@3 f3@3 ~@3 f3@5 ~@3 f3@7 ~@2 g3@4 ~@6 f3@2 ~@2 f3@3 ~@3 f3@2 ~@5 g3@2 ~@4 f3@3 ~@2 f3@14 ~@11, ~@11 a3@4 ~@7 a3@2 ~ a3@4 ~@3 [c4,e4]@2 c4@2 ~@8 bb3@3 ~ bb3@2 ~@11 c4@2 ~@4 bb3@2 ~@27, ~@27 f4@4 ~@14 d4@4 ~ d4@2 ~@17 d4@2 ~@25]/6", // Dm C F C
})).s("gm_acoustic_guitar_steel").gain(0.53).pan(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel_3 = note("<~@20 [~@2 d4 g4 c4 ~@2 a4 ~@8, g3 a3 ~@2, ~ b3@3 ~ db4@3 ~@8, ~@3 e4 ~@4] ~@41>")
  .s("gm_acoustic_guitar_steel").gain(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel_4 = note(`<
  A B C D A B C D E@2 F G@2 H@2 I@2 J K L M@2 N O P@2 Q R@2 S T U@3 V W X ~@4 Y Z AA AB@4 AC@2 AD@2 AE@2 AF@2 AG AH AI
  AJ AK@2
>`.pickRestart({
  A: "[d3,a3]@4 ~@2 [a3,d4] g3 ~ f4 b3 [g3,b3,f4]@2 ~@2 eb3, d4@5 f4@2 ~ g3@3 ~@3 [g3,b3]@2, ~@4 d3@4 d3@7 ~, ~@4 a3@2 ~ [b3,f4]@3 ~@3 f4@2 ~", // D5 G7 G Bdim
  B: "[c3,c4,e4]@4 c4 ~ [g3,c4] ab3 ~@2 [a3,c4] [f3,a3,c4,e4]@2 ~ [f3,a3] ~, [e3,g3]@2 ~@2 [e3,g3]@3 ~ [f3,a3,c4]@2 ~@6, ~@5 [c4,e4]@2 ~@2 e4@2 ~@2 e4@2 ~", // C C5 Am Fmaj7 F Em F C
  C: "[bb2,bb3]@4 f3 bb3 [f3,bb3] bb3 ~@2 g3 [g3,bb3]@2 [g3,bb3]@2 d3, d4@7 ~@2 [g3,bb3]@2 d4@4 ~, f3@3 ~ bb2@3 ~ [g2,d3,g3,bb3]@2 ~@6", // Bb Bb5 Gm
  D: "[a2,e3,a3]@4 ~ e3@3 ~@4 db4@2 db4 ~, ~@4 [a3,db4]@5 ~ e3@2 e4@4, ~@4 a2@3 ~@4 a3@4 ~", // A5 A
  E: "[~ d4@2 ~ d4 [a3,d4,f4] d4 [a3,b3] ~@2 b3 ~@2 g3 ~@2 c4@3 [g3,c4,e4] [g3,c4,e4]@2 [g3,c4,e4] ~ ab3 ~ a3 [a3,c4,e4]@2 ~ a3 [d3,g3,b3], [d3,a3,f4]@3 d3@4 g3@2 f4@2 f4@3 g3@5 ~@5 f3@4 ~@4, ~@3 a3@2 ~ f4@2 [b2,d3]@3 b3@2 b3@3 e4 ~@8 [a3,c4,e4]@2 ~@2 [a3,c4]@2 ~, ~@8 b3@2 g3@2 d3@3 ~ [c3,e3]@7 ~@9]/2", // Dm Asus2 C Am G Dm Bm Am …
  F: "[bb2,f3,bb3]@4 ~@2 bb3 e3 ~@3 [bb3,d4]@2 [g3,bb3] [g2,d3] [ab2,db3], db4 ~@3 [bb2,f3,bb3]@2 ~@2 [g2,d3,g3,bb3]@2 [d3,g3]@3 ~@3, ~@5 [db4,f4]@2 ~@2 bb3@2 ~@5", // Bb5 Bb Gm G5 Db5 Bb5 Gm G5 …
  G: "[~ e4@2 [a3,db4] e3 f3 [c3,g3]@11 ~@7 [f2,c3,f3,a3,f4]@2 [c3,f3,a3]@3 [a3,c4,f4] ~@2, [a2,e3,a3,db4]@2 ~ e4@2 ~@11, ~ a4 ~@4 c4@13 ~@5 c4@5 ~@3]/2", // A C5 F A
  H: "[[g3,e4]@2 [g3,c4,e5]@2 e4 c4 [e3,b3] [d3,g3] [bb2,f3,bb3]@2 bb3@3 [d4,f4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [e3,bb3] [bb3,d4,f4,bb4]@2 [bb3,d4,f4] ~ c3!5 [c3,g4,c5] ~@2, [c3,e3]@5 [g3,e4]@3 d4@5 bb3@6 ~@5 e4@6 ~@2, ~@8 f4 ~ [bb2,f3]@5 ~@4 [bb2,f3]@4 ~ [g3,c4,g4,c5]@3 ~@5, ~@10 a2 ~@15 [g3,c4]@4 ~@2]/2", // C E5 G5 Bb5 Dm Bb Edim Bb …
  I: "[[bb2,f3,bb3,d4,bb4]@2 d4@2 ~ [bb3,d4,f4,bb4] f3 [eb2,e2,b3] [c3,f3,a3,c4,f4]@3 ~@2 [a3,c4,f4]@2 ~@9 [f3,c4]@2 c4@3 [a3,c4,f4] ~ [eb3,g3], ~@2 eb3@29 ~, ~@2 [f3,f4]@4 ~@5 [a3,c4,f4]@2 ~@13 f3@5 ~, ~@2 bb4 ~ [bb2,d4]@2 ~@2 f2@7 ~@9 [f2,c3,a3]@6 ~@2, ~@12 [c3,f3]@3 ~@17]/2", // Bb Emaj7 F F5 F Eb F Bb …
  J: "e3@2 ~ e4!2 ~ [g3,c4] f3 [bb2,d4] db4 [bb2,d4,bb4]@3 [d4,f4,bb4]@3, [c3,g3]@7 ~@9, c4@5 [c4,e4]@2 ~ f4@4 ~@4, ~ [e3,e4] ~@2 [f3,bb3] [f3,bb3]@3", // C5 Bb C5 C E Bb5
  K: "[bb2,f3,bb3,d4,f4] ~ e3 ~ [e3,f3] [f3,bb3,d4]@2 ~ [c3,g3,c4,e4] ~ [c3,g3,c4,e4]@3 ~ [b2,c3] [e2,c4], ~ [bb2,bb3,d4]@2 [bb3,d4]@2 ~@11, ~@2 bb2@5 ~@9, ~@2 f3@2 ~@9 [g3,c4,e4]@2 ~", // Bb Fmaj7 Bb C Cmaj7 C Bb C
  L: "[bb2,f3,bb3] ~ [bb2,bb3]@3 [f3,bb3] ~ e2 [f2,c3,f3] e2 [f2,c3,f3]@4 e2 ~, ~@2 f3@2 ~@6 a3 ~@5", // Bb5 Bb Bb5 F5
  M: "[[g2,d3,g3]@2 ~@6 [d3,a3]@4 ~@2 [a3,d4] g3 ~ f4 b3 [g3,b3,f4]@2 ~@2 eb3 [c3,c4,e4]@4 c4 ~ [g3,c4] ab3, ~@8 d4@5 f4@2 ~ g3@3 ~@3 [g3,b3]@2 ~@5 [c4,e4]@2 ~, ~@12 d3@4 d3@7 ~ [e3,g3]@2 ~@2 [e3,g3]@3 ~, ~@12 a3@2 ~ [b3,f4]@3 ~@3 f4@2 ~@9]/2", // G5 D5 G7 C C5 G C Em …
  N: "~@2 [a3,c4] [f3,a3,c4,e4]@2 ~ [f3,a3] ~ [bb2,bb3]@4 f3 bb3 [f3,bb3] bb3, [f3,a3,c4]@2 ~@6 f3@3 ~ bb2@3 ~, ~ e4@2 ~@2 e4@2 ~ d4@7 ~", // Am Fmaj7 F Bb Bb5 F
  O: "~@2 g3 [g3,bb3]@2 [g3,bb3]@2 d3 [a2,e3,a3]@4 ~ e3@3, [g2,d3,g3,bb3] ~@5 [a2,a3,db4]@2, ~ [g3,bb3]@2 d4@4 ~@9", // Gm A5 Gm A Gm
  P: "[~@4 db4@2 db4 ~@2 d4@2 ~ d4 [a3,d4,f4] d4 [a3,b3] ~@2 b3 ~@2 g3 ~@2 c4@3 [g3,c4,e4] [g3,c4,e4]@2 [g3,c4,e4] ~, ~@2 e3@2 e4@4 ~@3 a3@2 ~ f4@2 [b2,d3]@3 b3@2 b3@3 e4 ~@7, ~@3 a3@4 ~ [d3,a3,f4]@3 d3@4 g3@2 f4@2 f4@3 g3@5 ~@5, ~@16 b3@2 g3@2 d3@3 ~ [c3,e3]@7 ~]/2", // Dm Asus2 C Bm Dm C
  Q: "ab3 ~ a3 [a3,c4,e4]@2 ~ a3 [d3,g3,b3] [bb2,f3,bb3]@4 ~@2 bb3 e3, f3@2 ~@4 [bb2,f3,bb3] ~, ~ [a3,c4,e4]@2 ~@2 [a3,c4]@2 ~ db4 ~@4 [db4,f4]@2 ~", // Am G Bb5 Am Db
  R: "[~@3 [bb3,d4]@2 [g3,bb3] [g2,d3] [ab2,db3] ~ e4@2 [a3,db4] e3 f3 [c3,g3]@11 ~@7, [g2,d3,g3,bb3]@2 [d3,g3]@3 ~@3 [a2,e3,a3,db4]@4 ~@2 e4@4 ~@14, ~ bb3@2 ~@6 a4 ~@4 c4@13 ~@5]/2", // Bb Gm G5 Db5 A C5 Gm G5 …
  S: "[f2,c3,f3,a3,f4]@2 [c3,f3,a3]@3 [a3,c4,f4] ~@2 [g3,e4]@2 [g3,c4,e5]@2 e4 c4 [e3,b3] [d3,g3], c4@5 ~@3 [c3,e3]@5 [g3,e4]@3", // F C E5 G5 C
  T: "[bb2,f3,bb3]@2 bb3@3 [d4,f4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [e3,bb3] [bb3,d4,f4,bb4]@2 [bb3,d4,f4] ~, d4@5 bb3@6 ~@5, f4 ~ [bb2,f3]@5 ~@4 [bb2,f3]@4 ~, ~@2 a2 ~@13", // Bb5 Dm Bb Edim Bb Bb5
  U: "[c3!5 [c3,g4,c5] ~@2 [bb2,f3,bb3,d4,bb4]@2 d4@2 ~ [bb3,d4,f4,bb4] f3 [eb2,e2,b3] [c3,f3,a3,c4,f4]@3 ~@2 [a3,c4,f4]@2 ~@9 [f3,c4]@2 c4@3 [a3,c4,f4] ~ [eb3,g3] e3@2 ~ e4!2 ~ [g3,c4] f3, e4@6 ~@4 [f3,f4]@4 ~@5 [a3,c4,f4]@2 ~@13 f3@5 ~ c4@5 [c4,e4]@2 ~, [g3,c4,g4,c5]@2 [g3,c4]@4 ~@4 eb3@29 ~@3 [e3,e4]@2 ~@4, ~@10 bb4 ~ [bb2,d4]@2 ~@2 f2@7 ~@9 [f2,c3,a3]@6 ~@10, ~@20 [c3,f3]@3 ~@17 [c3,g3]@7 ~]/3", // C5 Bb Emaj7 F F5 F Eb C5 …
  V: "[bb2,d4] db4 [bb2,d4,bb4]@3 [d4,bb4]@3 [bb2,f3,bb3,d4,f4] ~ e3 ~ [e3,f3] [f3,bb3,d4]@2 ~, f4@4 ~ f4@2 ~@3 bb2@5 ~, [f3,bb3]@2 [f3,bb3]@6 ~ [bb2,bb3,d4]@2 [bb3,d4]@2 ~@3, ~@5 f3 ~@2", // Bb Gm Bb Fmaj7 Bb Bb5 Bb
  W: "[c3,g3,c4,e4] ~ [c3,g3,c4,e4]@3 ~ [b2,c3] [e2,c4] [bb2,f3,bb3] ~ [bb2,bb3]@3 [f3,bb3] ~ e2, ~@5 [g3,c4,e4]@2 ~@3 f3@2 ~@4", // C Cmaj7 C Bb5 Bb Bb5 C
  X: "[f2,c3,f3] e2 [f2,c3,f3]@4 e2 ~ [g2,d3,g3,b3,d4,g4]@2 ~@2 [a2,e3,a3,db4,e4,a4]@2 ~@2, ~@2 a3 ~@13", // F5 G A
  Y: "[a3,d4]@2 f4 ~@2 f4 [a3,d4,f4] g3 [d3,g3,b3]@2 ~ [g3,b3] [g3,b3,f4]@2 [g3,b3]@2, ~@3 [a3,d4,f4]@3 ~ f4@3 d3@5 ~, ~@4 d3@4 b2@7 ~", // D5 Dm G G7 G Dm
  Z: "c3 ~ e3 e4@2 ~ g3@2 c4 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2 [d3,g3,b3], [e3,g3,c4]@2 g3@3 e4@3 ~@8, ~ e4@2 c4@4 ~@9", // C G C
  AA: "[bb3,d4]@3 [bb3,d4,f4]@2 [bb3,d4,f4] [f3,bb3] [b3,db4] g3 [g3,bb3]@2 ~ g3 [g3,bb3,d4,g4] [g2,d3] ab3, bb2@7 ~ [g2,d3]@6 ~@2, f3@5 ~@6 [bb3,d4,g4]@2 ~@3", // Bb Bb5 Bsus2 Gm G5 Gm
  AB: "[[a2,e3,a3,db4,e4]@3 [a3,db4,e4,a4] ~ b3 c4@12 ~@6 [f2,c3,f3,a3,c4,f4]@4 [f2,c3,f3,a3,c4,f4]@3 ~@3 c4 [g3,c4,e4]@2 ~ e3 [d3,eb3,ab3,b3] [bb2,f3,bb3,f4,bb4] ~ [bb2,f3,d4]@2 [bb2,bb3] [bb2,bb3]@2 [bb2,f3,bb3] [e3,f3] bb3!2 ~@3 bb3 eb3 [c3,g3,c4] ~ c4@3 ~ [gb3,g3] [e2,c4], a4@2 ~@4 g3@9 ~@16 g3@2 g3@2 ~@2 [g3,c4,e4]@2 ~@6 d4@8 [d4,f4]@2 ~@6 [c4,e4]@2 ~, ~@6 e4@6 ~@22 e3@4 ~@7 f3 ~@5 bb3@3 ~@10, ~@6 c3@3 ~@23 c3@6 ~@10 bb2@7 ~@3 [c3,g3]@5 ~, ~@6 gb3 ~@25 [e3,c4,e4]@3 ~@17 bb4@2 ~@10]/4", // A F C Abm Bb5 Bb Bb5 Fmaj7 …
  AC: "[[bb2,f3,bb3,d4] ~ [bb2,f3,bb3]@2 bb2 [bb2,f3,bb3]@2 d2 [f2,c3,f3] ~ [f2,c3]@11 ~@3 [f2,c3,f3,a3,c4] e2 [a3,c4,f4]@3 [a3,c4,f4]@2 ~, ~@10 f3@6 ~@10 [c3,f3]@5 ~, ~@10 a3 ~@21]/2", // Bb Bb5 F5 F F5
  AD: "[[c3,e3,g3,c4,f4] ~ [e3,g3,c4]@2 e4 ~ e3 [d3,g3] [bb2,bb3,d4]@3 ~@2 [f3,bb3,d4]@2 [f3,bb3,d4]@5 ~ [bb3,d4]@2 ~@3 [c4,e4,g4]@3 [c4,e4,g4,c5]@2 eb4, ~@5 [g3,c4,e4]@2 ~ f3@4 bb2@7 ~@7 [c3,g3]@5 ~, ~@11 [bb2,bb3,d4]@2 ~@13 c5 ~@5]/2", // C G5 Bb C C5 Bb
  AE: "[[bb2,f3,bb3,d4,f4] ~ [bb2,f3,bb3,d4]@3 [d4,f4] e3 b3 [c3,f3,a3]@3 ~ c3@2 a3 ~ c3@4 [c3,f3,a3]@3 e3 [c3,f3,a3] e2 [f3,a3]@3 ~ f3 eb3, ~@8 [f2,c4]@5 ~ f2@5 ~@7 [f2,c3]@5 ~, ~@11 f3@4 f3@5 ~@9 [f3,a3,c4,f5]@2 ~, ~@11 a3@2 ~@2 [a3,c4]@3 ~@14]/2", // Bb Dm F F5 F Am
  AF: "[[b2,c3,g3,c4] ~ [g3,c4]@3 [g3,c4,e4]@2 e2 [bb2,f3,bb3] ~ d4@3 [d4,f4]@2 ~@3 bb2 [e3,f3,bb3] ~ f3 [bb3,d4,f4,bb4] e3 [b2,c3,g3,c4] ~ [g3,e4]@3 [e4,g4,c5] ~ [b3,eb4], ~@2 c3@5 ~@3 [bb2,f3,bb3]@5 bb3@4 ~ [bb3,d4,f4,bb4]@2 ~@10, ~@13 bb4@3 [bb2,f3]@2 ~ bb2@4 ~@3 [c3,c4]@5 ~, ~@15 [d4,f4]@2 [d4,f4,bb4]@3 ~@12]/2", // Cmaj7 C5 C Bb5 Dm Bb Cmaj7 C …
  AG: "[bb2,f3,bb3] d4 [f3,bb3,d4]@2 ~ [d4,f4,bb4] f3 ~ [f2,c3,f3,a3,c4,f4] e2 a3@3 [a3,c4]@2 f4, ~@2 e4@5 ~@6 f4 ~@2, ~@4 bb3@3 ~@3 [f2,c3,f3]@6", // Bb5 Bb F Am F5
  AH: "f3 ~@3 ab3 ~ ab3 ~@3 a3@2 ~ f5@2 ~, ~@8 [f2,c3,f3,c4,f4]@4 [f2,c3,f3,a3,c4]@3 ~", // F5 F
  AI: "[c3,e3,g3,c4]@2 e4 [g3,c4,e4]@2 ~ b3 ~ [bb2,f3,bb3] ~ [bb2,e3,f3] ~@3 f3 [bb2,eb3], ~@2 e3@3 [g3,c4,e4]@2 ~@3 [bb3,d4]@3 [bb2,bb3,d4]@2 ~", // C Bb5 Bb Eb5 C Bb
  AJ: "[bb2,bb3]@2 ~ d4@3 [bb2,f3,bb3] [bb3,d4] b3 ~ [c4,e4,g4]@3 [c4,e4]@2 eb4, f3@6 ~@4 gb3 ~@5, ~@2 bb2@4 ~@4 [c3,g3]@5 ~, ~@3 bb3 ~@12", // Bb Bb5 Bb C C5
  AK: "[[bb2,f3,a3] ~ [bb2,f4] a2 bb3 [f3,bb3,d4,f4] [f3,d4,f4,bb4] ~@2 [c4,f4]@8 ~@15, ~@2 [f3,bb3,d4]@2 bb2@3 ~ c3@11 ~@13, ~@8 f2@9 ~@15, ~@8 [f3,a3]@5 ~@19]/2", // Bbmaj7 Bb5 Bb F5 Bb F
})).s("gm_acoustic_guitar_steel").gain(0.39).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  ~@12 A B C D C B E F G H@3 G H I J ~ D K L M D K N H O P H M H P H Q A B C D C D R H C B C D C B R G ~
>`.pickRestart({
  A: "~@4 x!2 ~@2", B: "x ~@3 x!2 ~@2", C: "x ~@2 x ~@4 x ~ x ~@5", D: "x!2 ~@2 x ~@3", E: "x ~@2 x ~@4 x ~ x ~@4 x",
  F: "x ~ x ~@4 x!2 ~@7", G: "x ~@2 x ~@4 x ~@7", H: "x!2", I: "x ~@2 x!2 ~@3", J: "x ~@7 x ~@2 x ~ x!2 ~",
  K: "x ~ x ~@5 x ~@2 x ~@4", L: "x!2 ~@2 x!2 ~@2", M: "x ~@7 x ~@2 x ~@4", N: "x ~ x ~@5 x ~ x ~@4 x", O: "x",
  P: "x ~@3 x ~@2 x", Q: "x ~@2 x ~ x!2 ~@9", R: "x ~@2 x ~@6 x ~@4 x",
})).gain(0.63)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@35 A ~@11 B A B A ~ A ~ A ~@7>".pickRestart({
  A: "~@7 x ~@8", B: "~@15 x",
})).gain(0.35)

// drums · snare
const snare = s("sd").struct(`<
  ~@12 A B C D E B C D F D@3 C D@3 ~ G H D H G H D I D@3 H D@3 J A B C D C D E D E D C D E B E K ~
>`.pickRestart({
  A: "~@3 x", B: "~@4 x ~@2 x ~@4 x ~@3", C: "~ x ~@2 x ~@2 x ~@4 x ~@3", D: "~ x ~ x", E: "~ x ~@2 x ~ x!2 ~@4 x ~@3",
  F: "~ x ~@2 x!4 ~@4 x ~@3", G: "~@4 x ~@7 x ~@2 x", H: "~@4 x ~@4 x ~@2 x ~@2 x", I: "~@4 x ~@4 x!3 ~@4",
  J: "~ x ~@2", K: "~ x ~@2 x!4 ~@8",
})).gain(0.63)

// drums · low tom
const low_tom = s("lt").struct("<~@12 [~@4 x!4 ~@8] ~@15 [~@13 x!3] ~@16 [~@4 x!4 ~@8] ~@16>").gain(0.56)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@12 [~ x!3 ~@12] ~@15 [~@3 x] ~@33>").gain(0.35)

// drums · hihat
const hihat = s("hh").struct("<~@20 A B@2 C D C@2 E ~@9 F C@2 G H C@2 I ~@17>".pickRestart({
  A: "~@9 x!7", B: "x!7 ~ x!8", C: "x!16", D: "x!8 ~ x!7", E: "x!8 ~ x!2 ~@5", F: "~@2 x!14", G: "x!15 ~",
  H: "~ x!14 ~", I: "~ x!2 ~@13",
})).gain(0.63)

// drums · mid tom
const mid_tom = s("mt").struct("<~@12 A ~@15 B ~@7 B ~@8 C ~@16>".pickRestart({
  A: "~@2 x!6 ~@8", B: "~@12 x!4", C: "~@4 x!4 ~@8",
})).gain(0.63)

// drums · open hat
const open_hat = s("oh").struct("<~@21 [~@7 x ~@8]!2 ~@18 [~@15 x] ~@20>").gain(0.49)

// drums · crash
const crash = s("cr").struct(`<
  ~@12 A ~ A ~ A ~ A ~ A ~@3 A ~@2 B ~ C ~ C ~ C ~ C ~ C ~@3 C ~@2 D A ~ A ~ A ~ E ~ A ~ A ~ A ~ E A ~
>`.pickRestart({
  A: "~ x", B: "~@7 x", C: "x", D: "x ~@2 x ~@4", E: "~@5 x ~@2",
})).gain(0.63)

// drums · ride
const ride = s("rd").struct(`<
  ~@12 A B C B C B C B D ~@8 E B E B E B E F ~@8 A B C B C B G B C B C B C B G D ~
>`.pickRestart({
// … 7 more lines

More by Jimmy Cliff