Strudelify
Tell It Like It Is cover art

1989 · Let It Roll

Tell It Like It Is

Don Johnson

KeyF majorTempo78 bpm
0:00/0:00
// Tell It Like It Is — Don Johnson
// 78 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 82 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(78/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.

// chords · piano · "A.PIANO 1"
const piano = note(`<
  A ~@3 B@2 C@2 D E C@2 D F G H I H I J K L C@2 D M C@2 D N I H I H I J K L C@2 D O C@2 D N I H I H I J K L C@2 D P C@2
  N O C@2 N O C@2 N O C@2 Q R@8 ~
>`.pickRestart({
  A: "db-1",
  B: "[~@9 c5@7 ~@7 c7@14 ~@11, ~ c3@5 e4@11 ~@5 [e6,ab6]@15 ~@11, ~@2 e3@5 ab4@9 [e5,ab5]@22 ~@10, ~@3 ab3@7 ~@38, ~@4 c4@5 ~@7 c6@20 ~@12]/2", // E
  C: "[g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~", // Gm7
  D: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~", // F C
  E: "[f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [gb3,a3,c4,d4] ~ [gb3,a3,c4,d4] ~ [gb3,a3,c4,d4] ~ [gb3,a3,c4,d4] ~ [gb3,a3,c4,d4] ~ [gb3,a3,c4,d4] ~", // Dm D7
  F: "[f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // Dm F
  G: "[g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4] ~@3 [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~, ~@3 e4 ~@2", // Am7
  H: "[a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~", // Dm
  I: "[g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~", // Am7
  J: "[f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~", // Bb
  K: "[g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~", // C Bb
  L: "[a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [gb3,a3,c4,eb4] ~ [gb3,a3,c4,eb4] ~ [gb3,a3,c4,eb4] ~", // Am Am7 Gbdim
  M: "[f3,a3,c4,d4,f4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [gb3,a3,c4,eb4] ~ [gb3,a3,c4,eb4] ~ [gb3,a3,c4,eb4] ~", // Dm7 Dm Am7 Gbdim
  N: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  O: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [g3,a3,c4,e4] ~ [gb3,a3,c4,eb4] ~ [gb3,a3,c4,eb4] ~ [gb3,a3,c4,eb4] ~", // F Am7 Gbdim
  P: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [gb3,a3,c4,d4] ~@11", // F D7
  Q: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [ab3,bb3,d4,f4] ~ [ab3,bb3,d4,f4] ~ [ab3,bb3,d4,f4] ~ [ab3,bb3,d4,f4] ~ [ab3,bb3,d4,f4] ~ [ab3,bb3,d4,f4] ~", // F Bb7
  R: "[[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,d4,g4]@180]/8", // F Dsus4
})).s("gm_piano").gain(0.36).pan(0.2)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@13 A B ~@7 C@2 D ~ E C D A B ~@7 C@2 D ~ C@2 D ~@9 C@2 D ~ C@3 D C@3 F C@2 G D C@2 H D ~@8
>`.pickRestart({
  A: "~@9 [f2,c3] [g2,d3] [ab2,eb3]", B: "[a2,e3] ~@5", C: "~@3 [f4,a4]@2 ~@4 [f4,a4]@2 ~", D: "~@6 [f4,a4]@5 ~@13",
  E: "~@6 [f4,a4]@4 ~@8 [f4,a4]@5 ~", F: "~@3 [f4,a4]@2 ~@7", G: "~@6 [f4,a4]@5 ~@7 [f4,a4]@4 ~@2",
  H: "~@6 [f4,a4]@5 ~@7 [f4,ab4]@5 ~", // F Fm
})).s("gm_electric_guitar_muted").gain(0.4).pan(0.8)

// other · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@20 A B ~@9 C ~@4 A B ~@11 D ~@2 A E ~@28>".pickRestart({
  A: "g4 a4 e5@10 f4 g4 d5@10", B: "d4 e4 c5@11 ~@11", C: "~@12 d4 c4 f4 d4 c4 a3 c4 a3 g3 f3 d3 c3",
  D: "~@12 d4 c4 f4 d4 c4 a3 c4 ~ g3 f3 d3 c3, ~@19 a3@3 ~@2", E: "d4 e4 c5@10 ~@12",
})).s("gm_electric_guitar_clean").gain(0.36).pan(0.7)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  ~@21 A B ~ C D E ~ F@2 G ~@6 H I ~ J K E ~@10 H I ~ L M ~@2 N O P ~ N Q R ~ S@2 R ~@11
>`.pickRestart({
  A: "~@12 [g4,a4,c5]@6 [gb4,a4,c5]@5 ~", B: "[f4,g4,bb4] ~@5", C: "[a4,c5,f5]@9 ~ [a4,c5,f5]@2 [g4,c5,e5]@12",
  D: "[f4,d5]@12 g4@5 ~ gb4@5 ~, a4@11 ~, ~ c5", E: "[f4,g4,bb4] ~@7",
  F: "[[a4,c5,f5]@6 [g4,e5]@6 [f4,a4]@9 f4 g4 ab4, ~@2 c5@5 ~]/2", G: "a4 ~@23",
  H: "~@12 [a4,c5,e5]@5 ~ [a4,c5,eb5]@5 ~", I: "[g4,bb4,d5] ~@5",
  J: "[a4,c5,f5]@9 ~ [a4,c5,f5]@2 [g4,c5,e5]@9 ~ [g4,c5,e5]@2", // F C
  K: "[f4,d5]@9 ~ d5@2 [g4,a4,c5]@6 [gb4,a4]@4 ~@2, a4@10 f4 ~@7 c5@6", // Dm Am7 Gbm
  L: "[a4,c5,f5]@7 ~ [a4,c5,f5]@4 [a4,c5,e5]@9 ~ [c5,e5]@2, ~@22 a4 ~", M: "[f4,a4,d5]@11 ~ [gb4,a4,d5] ~@11",
  N: "[a4,f5] [g4,e5]@5 [c5,e5] [f4,a4,d5]@5, c5@12 g4 ~@11", O: "[f4,a4,c5]@11 ~ [g4,a4,c5]@6 [gb4,a4,c5]@4 ~@2",
  P: "[f4,g4,bb4] ~@11", Q: "[f4,a4,c5]@11 ~ [a4,c5,e5]@5 ~ [a4,c5,eb5]@6", R: "[g4,bb4,d5] ~@11",
  S: "[[a4,f5]@2 [g4,e5]@9 ~ [g4,c5,e5]@2 [a4,d5]@10 [a4,c5]@11 ~ [a4,c5,e5]@5 ~ [a4,c5,eb5]@6, c5@11 ~@3 f4@20 ~@14]/2", // Dm C D5 Am Adim
})).s("gm_brass_section").gain(0.4).pan(0.3)

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~@14 A B C D E F G H I ~@2 J K ~@3 L M N O P Q R S T ~@2 U V ~@3 W X Y Z AA Q G S AB ~@2 AC AD AE@2 AF AG AH AI AF AJ
  AK@3 AL AM AN ~@9
>`.pickRestart({
  A: "[g4,a4,c5,e5]@3 ~ [g4,a4,c5,e5] ~@13 [g4,a4,c5,e5] ~ [a4,d5]@2 [a4,c5,e5] ~, ~@20 f5 ~@3", // Am7 D5 Am
  B: "[a4,d5,f5]@4 [a4,d5,f5] ~@13 [a4,d5,f5]@2 [c5,e5]@2 [a4,f5] ~, ~@20 a4 ~ d5@2", // Dm C Dm
  C: "[g4,a4,c5,e5]@4 [g4,a4,c5,e5] ~@9 [g4,a4,c5,e5] ~@3 [g4,a4,c5,e5]@6", // Am7
  D: "[a4,d5,f5]@3 ~ [a4,d5,f5] ~@13 [a4,d5,f5]@2 [a4,c5,e5]@2 [d5,f5] ~", // Dm Am Dm
  E: "[g4,a4,c5,e5]@4 [g4,a4,c5,e5] ~@11 [g4,a4,c5,e5]@5 [d2,e2,f2] [g2,a2,b2,c3] [d3,e3,f3,g3,a3,b3,c4]", // Am7 Dm Cmaj7 Dm7
  F: "[g5,g6] [f5,f6], [d4,e4] ~@23", G: "[g5,c6,e6] [f5,bb5,d6]",
  H: "[e5,a5,c6]@11 ~ [g5,e6]@6 [gb5,eb6]@5 ~, ~@12 [a5,c6]@11 ~", // Am C Ebm Am
  I: "[f5,g5,bb5,d6]@4 [e4,f4,g4,a4] [g3,a3,b3,c4,d4] [d3,e3,f3,g3] c3 ~@16", // Gm7 Fmaj7 G Em7
  J: "~@12 e5@6 [gb4,eb5]@5 ~, ~@12 [a4,c5]@11 ~, ~@12 g4@5 ~@7", // Ebm Am
  K: "~@3 d4 [a3,b3,c4] [e3,f3,g3] [c3,d3] ~@17, [f4,g4,bb4,d5]@5 ~@19", // Am Em Csus2 Gm7
  L: "[g4,a4,c5,e5]@3 ~ [g4,a4,c5,e5] ~@13 [g4,a4,c5,e5] ~ [a4,d5,f5] ~ [g4,c5,e5] ~", // Am7 Dm C
  M: "[a4,d5,f5]@4 [a4,d5,f5] ~@13 [d5,f5] ~ [a4,d5] ~ [a4,f5] ~, ~@9 a4 e5 d5", // Dm D5 Dm
  N: "[g4,a4,c5,e5]@3 ~ [g4,a4,c5,e5] ~@11 [g4,a4,c5,e5]@3 ~ [g4,a4,c5,e5]@3 ~", // Am7
  O: "[a4,c5,d5,f5]@3 ~ [a4,c5,d5,f5] ~@13 [a4,d5,f5] ~ [c5,e5]@2 [a4,d5,f5] ~, ~@20 a4 ~@3", // Dm7 Dm C Dm
  P: "[g4,a4,c5,e5]@3 ~ [g4,a4,c5,e5] ~@9 [g4,a4,c5,e5]@5 ~ [c2,d2,f2,g2] [a2,b2,c3,d3] [e3,f3,g3,a3] [b3,c4,d4,e4,f4,g4], ~@19 e2@2 ~@3", // Am7 Csus4 D7 Fmaj7 Cmaj7
  Q: "[g4,a4,b4,c5] ~@11 [f5,f6]@12, [g5,g6] ~", R: "[g5,c6] [f5,bb5,d6], e6 ~@23",
  S: "[e5,a5,c6]@11 ~ [g5,a5,c6,e6]@6 [gb5,a5,c6,eb6]@5 ~", // Am Am7 Gbdim
  T: "[f5,g5,bb5,d6]@6 [c5,d5,e5,a5] [d4,e4,f4,g4,a4,b4] [g3,a3,b3,c4] ~@15", // Gm7 Am Em7 Cmaj7
  U: "~@12 [g4,c5,e5]@6 [gb4,c5,eb5]@5 ~, ~@12 a4@11 ~", // C Cdim
  V: "[f4,g4,bb4,d5]@4 a4 [c4,d4,e4,f4] [f3,g3,a3,b3] [c3,d3,e3] ~@16", // Gm7 Dm7 G7 C
  W: "[g4,a4,c5,e5]@4 [g4,a4,c5,e5] ~@9 [g4,a4,c5,e5]@9 ~", // Am7
  X: "[a4,c5,d5,f5]@3 ~ [a4,c5,d5,f5] ~@15 [c5,e5]@2 [a4,f5] ~, ~@20 a4 ~ d5@2", // Dm7 C Dm
  Y: "[g4,a4,c5,e5]@4 [g4,a4,c5,e5] ~@3 [g4,a4,c5,e5] ~@7 [g4,a4,c5,e5]@6 ~@2", // Am7
  Z: "[a4,d5,f5]@3 ~ [a4,d5,f5] ~@13 [a4,d5]@2 [c5,e5]@2 [d5,f5]@2, ~@18 f5 ~@3 a4 ~", // Dm D5 C Dm
  AA: "[g4,a4,c5,e5]@4 [g4,a4,c5,e5] ~@9 [g4,a4,c5,e5]@7 [e2,f2,g2,a2,b2] [c3,d3,e3,f3,g3,a3] [b3,c4,d4,e4,f4,g4]", // Am7 Em Dm7 Cmaj7
  AB: "[f5,g5,bb5,d6]@3 [c5,d5,e5] [e4,f4,g4,a4,b4] [g3,a3,b3,c4,d4,e4] [a2,b2,c3,d3,e3,f3,a3] ~ [e2,f2] [g2,a2,b2] [c3,d3,e3] [f3,g3,a3,b3,c4,d4] [d5,f5,g5,bb5]@3 [d4,e4,f4,g4] [f3,g3,a3,b3,c4] [a2,b2,c3,d3,e3] [f2,g2] ~@5, ~@12 [d4,e4,f4,g4] ~@11", // Gm7 C Em Cmaj7 Dm7 Fmaj7 G C …
  AC: "~@12 [a4,d5] ~@11", AD: "~@8 c4 d4 ~ d4 f4!2 ~@10, ~@5 f4 ~@6",
  AE: "[~@2 [f4,a4] [c5,d5] c5 a4 c4@16 bb3@4 a3@6 c4 d4 f4 ~@13]/2", AF: "~@12 [g4,a4,c5,e5]@6 [gb4,a4,c5,eb5]@5 ~",
  AG: "[f4,g4,bb4,d5]@4 [d4,e4,f4,a4] [d3,e3,f3,g3,a3,b3,c4] [a2,b2,c3] ~@9 f4 g4 bb4!2 ~@4", // Gm7 Dm Dm7 Am
  AH: "~@8 g4 [a4,c5] d5 a4 ~@2 c4@8 ~ d4, ~@5 c5 ~@6", AI: "f4 ~@5 [c4,f4]@2 d4 ~@15",
  AJ: "[f4,g4,bb4,d5]@3 [d4,e4] [a3,bb3,b3,c4] [b2,c3,db3,d3] [g2,a2,bb2] ~@2 [e2,f2,g2,a2] [b2,c3,d3,e3] [f3,g3,a3,b3,c4] [d5,f5,g5,bb5]@3 [e4,f4,g4,a4,b4] [g3,a3,b3,c4,d4] [b2,c3,db3,d3,e3,f3] [g2,a2] ~@5, ~@12 [d4,e4] ~@11", // Gm7 Dsus2 Gm Fmaj7 Cmaj7 F Gm7 Em …
  AK: "[~@16 [c5,d5] a4 c4@42 [g4,a4,c5,e5]@5 ~ [gb4,a4,c5,eb5]@4 ~@2]/3", // Csus2 Am7 Gbdim
  AL: "[f4,g4,bb4,d5]@3 [f4,a4] [c4,d4,e4] [g3,a3,b3] [c3,d3,e3,f3] [a2,b2] ~@16", AM: "~@2 d5 [a4,c5] c4@12 ~@6 c4 d4",
  AN: "f4 ~ f4 ~@21",
})).s("gm_rock_organ").gain(0.36)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@6 A B C D E B C F G H I H J K L M N B C O P B Q R G S T U V W L X P Y Z AA P AB AC R AD S AE U AF W AG X AH AB Z AI
  P Y Z AJ AK AL Q AM P AN AO AP P AQ AR AS@2 ~@7
>`.pickRestart({
  A: "g1@7 ~@3 g1@2 d1@10 ~@2", B: "c2@8 ~@2 c2@2 c2@9 ~ c2@2", C: "f1@9 ~ f1@2 e2@9 ~ e2@2",
  D: "d2@8 ~@2 d2@2 gb1@9 ~ gb1@2", E: "g1@7 ~@3 g1@2 d1@8 ~@2 d2@2", F: "d2@8 ~@2 d2@2 f1@5 ~ f1@2 g1@2 ab1@2",
  G: "a1@7 ~@3 g1@2 a1@6 ~@2 c2@2 db2@2", H: "d2@7 ~@3 c2@2 d2@4 e2@4 f2@2 g2@2", I: "a1@7 ~@3 a1@2 a1@6 ~@4 g1@2",
  J: "a1@7 ~@3 g1@2 a1@8 ~@2 a1@2", K: "bb1@2 a1@2 g1 f1 bb1@4 ~ bb1", L: "c2@7 ~ g1@2 c2@2 bb1@8 ~@2 bb1@2",
  M: "a1@9 ~ a1@2 c1@6 gb1@6", N: "g1@6 ~@4 g1@2 d1@7 ~@5", O: "d2@9 ~ d2@2 c2@6 gb1@6",
  P: "g1@7 ~@3 g1@2 d1@6 ~@4 d2@2", Q: "f1@7 ~@3 f1@2 c2@9 ~ c2@2", R: "f1@8 ~@2 f1@2 f1@5 ~ f1@2 g1@2 ab1@2",
  S: "d2@4 ~@6 c2@2 d2@3 ~ e2@3 ~ f2@2 g2@2", T: "a1@2 ~@3 g1 a1@2 ~@2 g1 a1", U: "d2@6 ~@4 c2@2 d2@3 ~ e1@4 f1@2 g1@2",
  V: "a1@5 ~@5 g1@2 a1@6 ~@4 a1@2", W: "bb1@3 ~ a1@4 g1@2 f1@2 bb1@6 ~@4 bb1@2", X: "a1@4 ~ a1 c2@3 gb1@3",
  Y: "c2@8 ~@2 c2 ~ c2@7 ~ c2@2 d2@2", Z: "f1@4 ~ f1 c2@4 ~ c2", AA: "d2@7 ~@3 d2@2 c2@6 gb1@6",
  AB: "c2@7 ~@3 c2@2 c2@7 ~ c2@2 d2@2", AC: "f2@9 ~ f2 ~ c2@9 ~ c2@2", AD: "a1@3 ~@2 g1 a1@3 ~ c2 db2",
  AE: "a1@2 ~@3 g1 a1@3 ~ a1 c2", AF: "a1@5 ~@5 g1@2 a1@6 ~@2 a1@2 c2@2", AG: "c2@3 ~ g1 c2 bb1@4 ~ bb1",
  AH: "g1@6 ~@4 g1@2 d1@7 ~@3 d2@2", AI: "f2@3 ~@2 f2 d2 ~@5", AJ: "f2@9 ~ f2@2 a1@2 c2@2 e2@2 c2@2 a1@2 gb1@2",
  AK: "g1@6 ~@4 g1@2 d1@9 ~ c2 ~", AL: "c2@9 ~ c2@2 g1@6 c2@6, d2 ~@23", AM: "f1@4 ~ f1 a1 c2 e2 gb2 c2 gb1",
  AN: "c2@7 ~@3 c2@9 ~ c2@2 d2@2", AO: "f2@4 ~ f2 c2@4 ~ c2", AP: "f1@7 ~ f1@2 a1@2 c2@2 e2@2 c2@2 gb1@6",
  AQ: "c2@4 ~ c2 c1@5 c2", AR: "f1@9 ~ f1@2 bb1@9 ~ bb1@2", AS: "[f1@3 d2 c2 a1 f1@9 ~@9]/2",
})).s("gm_acoustic_bass").gain(0.48)

// drums · kick
const kick = s("bd").struct("<~@6 A@2 B A@12 C A@3 C A@11 C A B A@13 C A@3 B A@6 B C B@3 C B A@2 B ~@8>".pickRestart({
  A: "x ~@4 x!2 ~@4 x", B: "x ~@4 x!2 ~@5", C: "x ~@4 x!2 ~@2 x ~@2",
})).gain(0.4)

// drums · rim
const rim = s("rim").struct("<~@6 A@15 B ~@8 A@7 B ~@8 A@7 B ~@28>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.4)

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

// drums · low tom
const low_tom = s("lt").struct("<~@21 A ~@3 B ~@3 B ~@7 C ~@3 B ~@3 D ~@7 B ~@7 E ~@3 B ~@3 B ~@3 F ~@8>".pickRestart({
  A: "~@10 x!2", B: "~@11 x", C: "~@5 x", D: "~@23 x", E: "~@5 x ~@5 x", F: "~@5 x ~@6",
})).gain(0.4)

// drums · hihat
const hihat = s("hh").struct("<~@6 A@15 B A@15 B A@8 C@7 B A C@2 D A C A@2 C E A E A C@6 F ~@8>".pickRestart({
  A: "x!12", B: "x!7 ~@2 x ~@2", C: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~", D: "x!7 ~@5",
  E: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~", F: "x ~ x!3 ~ x ~ x ~ x ~ x ~@11",
})).gain(0.2)

// drums · mid tom
const mid_tom = s("mt").struct("<~@21 A ~@7 B ~@7 C ~@3 B ~@3 D ~@7 B ~@7 E ~@3 B ~@3 B ~@3 F ~@8>".pickRestart({
  A: "~@8 x!2 ~@2", B: "~@5 x", C: "~@2 x", D: "~@10 x!2", E: "~@2 x ~@2 x", F: "~ x ~",
})).gain(0.4)

// drums · high tom
const high_tom = s("ht").struct("<~@21 A ~@3 B ~@3 C ~@7 D ~@3 C ~@3 E ~@7 C ~@7 F ~@3 C ~@3 C ~@3 G ~@8>".pickRestart({
  A: "~@6 x!2 ~@4", B: "~@5 x", C: "~@3 x", D: "~ x", E: "~@5 x ~@2 x!2 ~@2", F: "~ x ~ x", G: "~ x ~@2",
})).gain(0.4)

// drums · crash
const crash = s("cr").struct(`<
  ~@14 A ~@6 B A ~@2 B A ~@3 A ~@6 B A ~@3 A ~@3 A ~@6 C ~@3 D A ~@2 C ~@3 C ~@3 C ~@3 D ~@8
>`.pickRestart({
  A: "x", B: "~@2 x!2", C: "~@6 x ~@2 x ~ x", D: "~ x",
})).gain(0.4)

stack(
  piano, electric_guitar_muted, electric_guitar_clean, brass_section, rock_organ, bass, kick, rim, snare, low_tom,
  hihat, mid_tom, high_tom, crash
)

More by Don Johnson