Strudelify
Dream A Little Dream Of Me cover art

The Papas & The Mamas

Dream A Little Dream Of Me

MAMAS & Papas

KeyA minorTempo88 bpm
0:00/0:00
// Dream A Little Dream Of Me — MAMAS & Papas
// 88 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 75 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(88/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: edit a riff to change every repeat.

// chords · acoustic guitar nylon · "Guitar"
const acoustic_guitar_nylon = note(`<
  A B@2 C@2 D@2 E F G@2 H I J K L M N@3 O P@2 Q@2 R@2 S T J K L M U@4 J K L M N@3 O P@2 Q@2 R@2 S T J K L M N@3 J K L M
  N@3 J K L M N@3 ~
>`.pickRestart({
  A: "~@11 g3, ~@3 [g2,b3]@3 a2@4 ~@2, ~@10 g3@5 ~ g3@5 ~@3, ~@2 c4 [b2,d4]", // G Bm
  B: "[[c3,e4]@2 ~ c3@3 [f#3,a4]@2 ~ f#3@3 ~@2 g#4 ~@6 b3@2 a3, ~@4 g4@9 ~@3 d#4@12 ~@6 b3@5 ~ g4@5 ~@3, ~ c4@2 ~ g#2 [g#2,f4] [g2,e4] g2, ~@42 c4 ~@5]/2", // C F#m C# C
  C: "[c3@5 ~ c3@6 a4@4 ~@2 f#2@6 ~@4 g#4@2 [g#2,f4]@4 b3@2 ~@4 g4@2 b3@4 a3@2, c4@2 f#2 ~ g#2 ~ [g2,e4] g2, ~@16 d#4@11 ~@21]/2", // C# C
  D: "[c3@4 ~@2 c3@6 [f#3,a4]@4 ~@2 f#3@6 ~@4 g#4@2 f4@4 b3@2 [g2,e4]@4 g4@2 b3@3 ~ a3@2, c4@12 ~@4 d#4@12 ~@14 c4 ~@5, ~@24 g#2@11 ~@7 g2@6]/2", // F#m C
  E: "c3@6 c3@6 b2@5 ~ a#2@5 ~, c4@13 ~@11",
  F: "~@3 a4 ~ a4 ~@3 a4 ~ a4, [a2,e4]@11 ~ [a2,e4]@12, ~@2 c#4@5 ~ c#4@6 a4@4 ~@6, ~@2 a3@7 ~ a3@2, ~@2 c#4", // A5
  G: "[~@6 f4@2 ~@2 f4@2 f3@2 ~@4 f4@3 ~ f4@2 ~@2 f4@2 f3@2 f4@2 ~@2 f4@2 ~@2 f4@2 ~@2 f4@2 g#3@2 f4@2, f2@12 f2@11 ~ f2@12 f2@12, f4@4 a3@19 ~ g#3@9 ~@3 g#3@7 ~@5, ~@2 f3@9 ~@3 f4@2 f3@10 ~@6 f3@13 ~@3, ~@8 c4@29 ~@3 c4@7 ~]/2",
  H: "~ c4 ~ c4@2 c5 g#3@2 ~@3 d#4, c3@12 g#2@11 ~, ~@2 e4@4 ~@2 c4@3 ~, ~@3 g#3",
  I: "~@3 d4 e4 g4 d4 e4 g4 d4 e4 g4, [g2,g3] g2, ~@3 g3@2 ~", // G
  J: "c4@2 ~@2 c4@2 c5@2 [c4,g4]@2 ~@10 b3@2 f#4 ~, ~@2 g4@5 ~@3 [d#4,f#4]@4 d#4@10, ~@6 b3@3 a4@2 ~, ~@4 f#4 ~", // C5 D#m
  K: "~@3 g#4 c4 [b3,g4]@2 ~ g4 ~@2 g4, [d#4,g#4]@4 d#4@5 ~@5 d4@5 ~ d4@4, ~@2 c4@5 ~@11 b3@5 ~", // Em G#5
  L: "f4@2 ~@6 c5@2 c4@2 g4 ~ b3@2 ~@2 a#4@2 ~@2 a#4 ~, ~@2 c4@7 ~@11 a#3@4, ~@4 e4@11 ~ e4@6 ~@2, ~@6 g4@5 ~ b4@4 ~@8",
  M: "c#4 ~@7 a3@2 d4@2 ~@2 a3@2 a4@2 a3@2 ~@2 a3@2, e4 c#4@5, ~ a3@2 e4@2 ~ e4@2 ~@2 e4@2",
  N: "[~@6 c4@2 ~@2 c4@2 ~@2 c4@2 ~@2 c4@2 ~@14 c4@2 ~@4 f5@3 c4@3 ~@2 g4@12 g#4@6 g4@4 ~@2, f3@12 g#4@2 ~@2 g#4@2 c5 c4@2 ~@2 c4 ~@12, ~@2 a3@23 ~ f3@21 e4@13 ~@12, ~@4 f4@4 f4@8 c5@4 [f4,c5]@5 ~@3 f4@20 c5@4 ~@20, ~@12 a4@10 c4@5 ~@3 g#3@18 ~@24]/3", // F5
  O: "[c4,e4,g4,c5]@6 [g#4,b4]@5 ~", // C G#m
  P: "[~@6 a3@2 a4@2 a3@2 ~@10 a3@2 d4@2 ~@6 b3@2 d4@2 f#4@2 ~@6 b3 ~ b3@2, a3@4 e4@7 ~ f#4@7 ~ f#4@8 d4@4 ~@8 e4@7 ~, ~@2 c#4@14 ~@2 c#4@5 ~@3 b3@5 ~@7 b3@4 ~@6, ~@14 a3@6 ~@10 f#4@4 ~@8 g#4@5 ~]/2",
  Q: "[c#4@2 e4@2 ~@4 a4@2 a3@2 ~@8 a3@4 ~@4 f#4 ~@3 [a4,b4]@2 b3@2 ~@2 b3 ~@3 [a4,b4]@2 g#4@2 b3@2, ~@4 a3@5 ~@5 a3@4 ~@8 b3@7 ~@7 b3@4 ~@4, ~@6 c#4@9 ~ c#4@7 ~ d4@11 ~ e4@10 ~@2, ~@6 e4@4 ~@2 f#4@5 ~ f#4@9 ~@3 f#4@5 ~ g#4@5 ~@7]/2", // Asus2
  R: "[~@2 c#4@2 ~@4 e4@2 a3@2 ~@9 c#4@2 ~@9 a4@2 b3@2 ~@8 g#4@2 b3@2, e4@6 c#4@8 a3@4 f#4@4 ~ f#4@5 d4@6 ~@2 e4@5 ~ e4@5 ~, ~@2 a3@2 ~@2 f#4@2 c#4@2 a3 ~@2 b3@3 ~@4 b3@2 ~@2, ~@15 f#4@2 ~@2 g#4@2 ~@3]/2",
  S: "c#4@2 ~@18 a3@2 c#4 ~, ~@2 a3@4 e4@4 c#4@4 a3@4 f#4@5 ~, ~@4 c#4@4 a3@4 f#4@4 c#4@5 ~@3",
  T: "~@6 [g#3,c4,d#4] ~@3 [g#3,c4,d#4]@2 [g3,b3,d4]@10 ~@2", // G# G
  U: "[~@6 c4@2 ~@2 c4@2 ~@2 c4@2 ~@2 c4@2 ~@14 c4@2 ~@4 f5@3 c4@3 ~@2 g4@12 g#4@6 g4@4 c4 ~ c5@13 ~@11, f3@12 g#4@2 ~@2 g#4@2 c5 c4@2 ~@2 c4 ~@24, ~@2 a3@23 ~ f3@21 e4@13 ~@11 e4@13 ~@12, ~@4 f4@4 f4@8 c5@4 [f4,c5]@5 ~@3 f4@20 c5@4 ~@44, ~@12 a4@10 c4@5 ~@3 g#3@18 ~@48]/4", // F5
})).s("gm_acoustic_guitar_nylon").gain(0.26).pan(0.3)

// chords · piano
const piano = note(`<
  ~@13 A B@2 C D E F G H@2 I J K L M N O P@2 Q R@2 S T@2 U V W@2 X Y Z H@2 I J K L M N AA AB@2 AC AD@2 AE AF AG@3 AH@2
  AI AJ AK AL AM AN@3 AO
>`.pickRestart({
  A: "[g3,c4,e4]@3 ~ [b3,d#4,f#4,a4]@3 ~", // C B7
  B: "[[g#3,c4,d#4] ~@3 [g#3,c4,d#4] ~@5 [g3,b3,d4]@13 ~@9 e4@4 c4@6 b3@5 ~, ~@23 g3@11 ~@14, ~@14 c4@3 ~@7]/2", // G# G
  C: "~ a4, a3, ~ c#4@5, ~ e4@2", D: "~@6 f4@5 ~, ~ f3@5, ~@3 a3@8 ~, ~@9 c4@13 ~@2",
  E: "~@6 f4@5 ~, c4@7 ~, ~@4 g#3@17 ~@3, ~@8 f3@13 ~@3",
  F: "[g3,c4,e4]@9 ~@3 g#3@2 ~@4 [g3,b3]@2 ~@4, ~@12 c4 ~@5 d4 ~@5", // C G
  G: "[g3,c4]@17 ~ [a6,b6,c7] [d6,e6,f6,g6] [a5,b5,c6] [d5,e5,f5] [e4,g4,a4,b4,c5] [d4,e4,f4]", // C5 Am Em7 Am Dm Cmaj7 Dm
  H: "[~@4 a5 ~ a5@2 ~@2 f#5 ~ [g#5,g6] g6 ~@2 [f#4,a5,e6,a6]@5 ~ f#5 ~ [f#5,f#6]@3 ~ [e5,e6] ~@3 [c#5,c#6] ~@3 [c#5,c#6]@2 [b3,e4,g#4] ~ [b3,b4,b5] ~@3 [a4,a5]@3 a3, [c#4,e4]@10 ~@2 [c#4,f#4,f#5,f#6]@3 ~@7 f#4@12 ~@14, a3@8 ~@2 a3@5 ~ [a3,c#4]@6 ~@2 [b3,d4]@10 ~@8 [b3,e4,g#4]@4 ~@2, ~@6 a6 ~@17 d#4 ~@23]/2", // G#maj7 F#m7 F# E C# E B A …
  I: "e4@6 e4@4 a3@2 f#4@4 [f#5,f#6] ~ [e5,e6] ~@3 [f#5,f#6]@2, [a3,c#4]@9 ~@3 [a3,c#4]@9 ~ g#5 ~, e5 ~@5 c7 ~@3 [a5,a6]@5 ~@3 f#4@6", // F# E F# A
  J: "f#4@2 [e5,e6] ~ f#4@2 [a#5,e6] ~ f#4@2 c#5@2 f#4@2 b4 ~ [a4,a5] ~ [c#5,c#6] ~ [c5,b5,c6] ~ [a4,b4,a5] ~, [b3,d4]@23 ~, ~@2 a4@2 d5 ~ b4@4 ~@6 f#4@2 a4@2 f#4@2 g#4@2, ~@6 e5@2 ~@4 c#6 ~@11", // E A#dim A C# Cmaj7 Asus2 Bm
  K: "~@4 [a5,a6] ~ [d#6,g#6,a6] ~@2 [f#5,f#6] ~@2 [a5,a6]@3 ~ [c6,c7] ~ b3 ~ [a5,a6] ~ f#5 ~, a4@7 ~, ~@3 a5 ~@8", // A G# F# A C A
  L: "[f#5,f#6] ~ e5 ~ f#5@2 f#4@2 [b4,b5] ~ f#4@2 [c#5,c#6] ~ [e4,d5,d6] ~ [e4,g#4]@2 [b4,b5] ~ [c#4,a4] ~ [b3,g#5] ~, [b3,d4]@11 ~ b3@2 ~@2 b3@5 ~@3, f#4@2 g#4@2 a4@2 ~@3 e4 g#4 ~, ~@4 f#6 ~@5 c#5 ~@5 [c#5,c#6] ~@7", // F# B C# E7 E B F#m E …
  M: "[c#4,a4,a5]@3 ~ [g#4,g#5] ~@3 [a4,a5] ~@3 f#4@3 ~ [b5,b6] ~@3 [f#5,f#6] ~ c#4@2, a3@4 ~ a3@6 ~, e4@4 c#4@6 ~@2 c#4@2 ~ c#4@5 ~@4, g3 ~@5 e4@4 ~@8 f#4@4 ~@2", // F#m G# A B F#
  N: "[g#5,g#6]@6 ~ c#4 [g#5,d#6,g#6] ~ g#3 ~ [g5,d6,g6]@3 ~ [g5,d6,g6] ~ [g5,g6]@2 g6 ~@3, g#3@10 ~@2 [g3,g4]@9 ~@3, g#4@7 ~ g#4@2 ~@2 f6 ~@11", // G# G#5 G5 G
  O: "c5@7 ~ c5@2 ~ c3 [a4,b4,d#5]@12, [c3,c4]@5 c4 ~@6", // B7 C
  P: "[g#3@4 c5@2 g#3@2 g#2 ~ g3@2 g4@2 g3@2 ~@2 g3@2 ~@2 g3 ~@11 g4 ~ b2@3 b2 ~@2 a#2@3 ~ a#2@2, g#2@7 ~@3 g2@12 ~@2 [c3,c4,c5]@12 ~@12, ~@4 [g#4,d#5]@5 ~ [b4,d5]@6 b4@7 ~@25, ~@10 g4 ~@5 [g4,d5,g5]@4 g4@12 ~@4 [b3,b4]@6 [a#3,a#4]@6]/2", // C G#5 Bm G5 B A#
  Q: "a3@2 ~ a3 ~@5 a3 ~ a3, a2@23 ~, a4@5 [a4,e5], ~@4 c#5@6 a3@6 c#5@7 ~, ~@8 a5@4 e5@7 ~@5", // A5
  R: "[a4@2 ~@2 c5 ~@7 f5@8 ~@2 f3@2 ~@4 c5@2 g#3@2 ~@4 f5@11 ~, f3@5 c5@14 ~ c5@7 ~ g#4@19 ~, ~@2 f4@5 ~ [f4,f5]@4 [f4,a4]@13 ~ f4@22, ~@10 f3@11 ~@3 g#3@5 ~@3 c5@16, ~@17 g#3@7]/2", // F
  S: "c4@4 c5@2 ~@4 c3 ~ g#2@2 ~@2 g#2@2 [g2,g3,g4]@4 ~@2, c3@8 c5@4 a#3 ~@11, c5@3 ~@3 c4@4 ~@2 [g#3,g#4]@6 ~@6", // G G#
  T: "[~@12 [d5,e5]@2 g5@2 a5@2 ~@3 a4@2 ~ c5 ~@3 [a5,c6]@2 a5@2 g5 ~ c5@2 d5@2 c5@2 d5@2 f#3@4 [f#2,c5] ~, ~@6 g5@4 ~@4 c5 ~, ~@10 c5 ~ g4@10 ~@2, ~@24 c3@9 ~ c3 ~ f#2@9 ~@3, ~@12 c4@3 c4@2 ~ f#3@3 ~@3]/2", // Dsus2 Am F#dim
  U: "[a#4,c5,g#5]@2 g#5@2 g#4@2 g#3@2 d5@2 [g3,a4,d5]@2 g3@2 [g4,d5]@2 [g3,g5]@2 [g4,g5] ~ [g3,a4,a5]@2 [c5,c6]@2, g#2@7 ~ g#2 ~ g2@11 ~ g2 ~, [g#3,d#5]@4 d#5 ~ g#5 ~@3 g5@6 ~@8, g#4 ~@3 c5@4 ~@2 b4@4 b4@4 [b4,d5]@4 ~@2, ~@10 g4 ~@3 e5 ~ g4 ~@7", // Fm Gsus2 G5 G Gsus2 C G#5 Bm
  V: "[d#5,d#6]@2 [e5,e6]@2 g4@2 [c4,d#5,d#6]@2 ~ c4 ~@2 [e5,e6] ~@2 b2 ~@2 [c5,c6]@2 ~ a#2 [d5,d6]@2, c3@11 ~@3 [d#5,d#6]@2 [d5,e5,d6]@2 [g#2,g#3] ~ [c#5,c#6]@2 ~@2, c4@5 ~@3 [g4,e5,e6]@2 ~@2 [b3,b4,b5]@5 a#3@4 a4@2 ~, b2 ~@11 b2@2 ~@4 [a#2,a#4]@4 ~@2", // D# E Cm E C D D# Dsus2 …
  W: "[~@4 a3@2 a4@2 a3@2 e5@2 a3@2 f5 ~ [a3,g#4,a#4,g#5]@2 d#5 a3@3 [a4,c#5,e5]@2 ~@4 [f4,a4,c5] ~ [f2,f3]@4 [f4,a4,d5] ~ [f4,a4]@3 d5 ~@2 f3@3 ~ [c6,d#6]@2, a2@22 ~@2 [f2,f3]@6 ~@6 f2@9 ~@3, [a3,d#5,d#6]@2 [e5,e6]@6 ~@2 a5@6 ~@12 c6@2 [a5,d6]@8 ~ f4@5 ~ g5@2 ~, ~ a4@4 ~ [d#5,c#6]@7 ~@5 [a4,c#5,e5]@3 ~@9 d5 ~@3 c5@2 c5 ~@2 [a4,d6]@7 f4 ~, ~@6 c#5 ~@3 a4 ~@3 [a4,c#5]@4 [g4,g5]@11 ~ [f4,a4]@3 ~@3 [f3,c6]@5 ~@7]/2", // A F Dm F Cm F Adim E …
  X: "[g#3,g5,c6,d#6]@4 g#4 ~@6 g#3@4 ~@3 g#3@3 [g#2,g#3] ~@2, g#2@5 ~, [f4,a4,d#5]@3 ~ [f4,a4,d5,c6,d6]@4 c5@2 c6@6 c5@8, ~@4 g5@2 g#5@3 f4@5 ~ [f4,b4]@5 ~@4, ~@5 g#3@5 ~@14", // G#maj7 G# F7 Dm7 Fdim
  Y: "[c4,g4,c5]@4 ~@2 c4@2 [g4,c5,e5]@2 c4 ~ [g#2,g#3]@2 c5@2 [g#2,g#3] ~ g3@2 [g4,b4,d5]@2 g3 ~, c3@11 ~ a#2 ~@5 g2@5 ~, [d#3,b3,a4] ~@3 [g4,c5,e5]@4 ~@6 [g#4,d#5]@4 g4 ~@5", // C5 C G# G B7 C G#5
  Z: "[e4,g4,c5] ~@7, [c2,c3]@5 ~@19", // C
  AA: "~@6 [g4,c5,e5]@4 c4@2 [a4,b4,d#5]@3 ~@3 a3@3 ~ a3@2, [c3,c4]@8 ~@4 a3@4 [a4,b4,d#5]@7 ~", // C B7 C B7
  AB: "[[g#4,c5,d#5]@3 ~@3 g#3@4 g3@2 ~@10 c5@2 c4@6 ~@4 c5@2 b4@5 ~ a#3@4 a#3@2, g#3@4 [g#4,c5,d#5]@5 ~ [b4,d5]@14 ~@18 a#4@6, ~@5 g4@3 g2@3 ~ [c3,c5]@5 ~@7, ~@12 g3@11 ~@7 c4@6 b3@3 ~@9, ~@18 g4@15 ~ g4 ~@13]/2", // G# Bm C
  AC: "~@10 a5@2 a3@2 ~@2 a3@2 ~@2 a3 e5@2 ~, a3@4 c#5@9 ~ c#5@9 ~, ~ a4@2 e5@6 d5@2 ~, ~@6 a3@5 ~@13, ~@7 a4@16 ~",
  AD: "[a#4 ~@3 g4 ~ f3@2 [f4,c5,f5]@2 f3@2 ~@2 f3 ~@9 [g#4,c5]@6 ~@2 f5 ~ [f5,g#5,c6] ~@3 c4@2 f5@2 c4@2 f5@2 c4@2, a4@12 [a4,c5,f5]@10 f3@25 ~, f3@6 ~@10 f3@4 c4@10 c4@7 ~@11, ~@2 f4@2 ~@2 f4@9 ~@3 [f5,g#5,c6]@2 [g#5,c6]@3 ~, ~@18 a3@5 ~ g#3@22 ~@2]/2", // F5 G# Fm F Fm G#
  AE: "~@6 g#3 g#4 g#3 g4 g3@2, g3@11 ~@13, ~@2 a4@4 c5@4 c5@4 c5@9 ~, ~@4 c4@7 ~@13, ~@2 e4 ~@3",
  AF: "[c3,c4]@6 c5@6 [b5,d#6,a6]@3 ~@3 c4@3 ~ b4@2, [g5,c6,e6]@4 ~@4 c5@3 ~, ~@2 c3@5 ~, ~@3 c4 ~@2 [c4,b4]@2 ~@4", // C B7 C Cmaj7
  AG: "[g#3@4 ~@2 g#3@3 ~ [g3,g4]@6 g4@2 g3@2 ~@2 g3 ~ c4@6 c4@2 ~@2 c4@2 ~@4 b4@2 a#4@4 f4 [a3,a4,c#5]@5 ~@8 [e4,a4] ~ [e4,a4,b4] ~ [e4,a4,c#5] ~ [e4,a4]@2 ~ e4@2 ~, g#2@9 ~ [g2,c5]@10 [g4,g5]@4 c3@11 ~@18 a3@13 ~@2 a3@4, ~@4 [g#4,c5]@5 ~@11 c5@12 [g4,c5]@4 b3@6 a#3@6 ~@4 [e4,a4,c#5]@8 c#5@2 ~@4 c#5@5 ~, ~@24 e5@8 ~@26 a2@13 ~]/3", // G A A5 Esus4 A A5 C5 G …
  AH: "[f4@2 ~@6 [c4,f4]@2 ~@4 f2 ~@7 f2 ~ [c4,f4,g#4]@4 ~@2 f3@2 ~@4 c4@2 f3@2 c4@2 f3@2 c4 ~ f3 ~, f3@2 f4@2 a4@5 ~@9 [f4,g#4]@5 ~, g4 ~ c4@4 f3@4 f3@10 f3@9 ~@5 f3@4 ~@10, ~@12 [c4,f4]@6 [c4,a4]@5 ~@5 [c4,f4,g#4]@4 [c4,f4,g#4]@4 ~@12, ~@16 f2@5 ~@3 f2@22 ~@2]/2", // F5 Fm F5 F Fm
  AI: "~@2 g4 ~ g4@2 c4@2 g4@2 c4@2 g#4 ~@3 g#4@2 g4@3 ~ g4 ~, c3@2 [g#3,c5,d#5] [g3,b4], c4 c5@2 ~@3", // G# G
  AJ: "c3@10 c4@2 g#3@11 ~, c4@3 ~@5", AK: "~@10 g4 c5",
  AL: "[c3,c4,c5,e5]@12 [a4,b4]@2 ~ b4@2 ~ [a#3,a#4]@4 a#2 ~, g4@10 ~@2 [b2,b3]@5 ~ a#2@3 ~@3", // C Asus2 A# B
  AM: "[a3,e4,a4,c#5]@4 ~@2 a3@4 ~@2 a3@5 ~@4 a2 ~@2, a2@5 ~, ~@4 [e4,a4,b4]@5 ~ [e4,a4,c#5]@13 ~, ~@18 a3@5 ~", // A Esus4 A
  AN: "[[f3,f4]@4 ~@14 c4@4 ~@2 [c4,f4,g#4]@3 ~ f4@4 ~@8 g#2 ~@15 c4@4 g#3@6 g3@6, a4@3 ~ [c4,f4,a4]@14 ~@10 c4@21 ~@3 c4@4 ~@4 a3@2 ~@10, ~@6 f3@15 ~ f3@31 ~ f3@6 ~@12, ~@16 f2@7 ~ f2@15 ~ f2@17 ~@15, ~@28 g#4@19 ~ [e4,g4]@11 ~@13]/3", // F Fm F Em
  AO: "[c3,c4,c5,e5]@23 ~", // C
})).s("gm_piano").gain(0.26).pan(0.7)

// bass · acoustic bass · "Ac.Bass"
const bass = note(`<
  ~@13 A B C D E F G H I J I K I K I L A B C D E F G M A B C D E F G H I J I K I K I L A B C D E F G A B C D E F G A B C
  D E F G N
>`.pickRestart({
  A: "c3@8 ~@2 c3@2 f#2@7 ~@3 f#2@2", B: "d#2@2 ~@2 d#2@3 ~@3 d2@11 ~ d2@2", C: "c3@7 ~@3 c3@2 b2@6 a#2@6",
  D: "a2@11 ~ a2 ~@3 a2@4 e2@4", E: "f2@8 ~@2 f2 ~ f2@11 ~", F: "f2@8 ~@2 f2 ~ f2@12", G: "c3@7 ~@3 c3@2 g#2@6 g2@6",
  H: "c3@2 g2 c3@3 e3 g#2 e2 e3 g#2 e2", I: "a2@5 e2 f#2@6", J: "b1@2 f#2 b2@3 e2@2 b2 e3@2 e2",
  K: "b1@2 f#2 b2@3 e2@2 b2 e3@3", L: "g#2@12 g2@11 ~", M: "c3@4 e2@2 f2@3 ~ f#2@5 ~ f#2 ~ a2@3 ~ b2@2", N: "c3@7 ~@5",
})).s("gm_acoustic_bass").gain(0.54)

// drums · kick
const kick = s("bd").struct(`<
  ~@13 A@2 B C A B A@2 D@10 E D@2 F D G H I H A@3 D I D@10 E D@2 F D@3 E D@2 F D@3 E D@2 F D ~
>`.pickRestart({
  A: "x ~@4 x!2 ~@5", B: "x ~@4 x!2 ~ x ~@2 x", C: "x ~@4 x!2 ~ x ~ x ~", D: "x!2", E: "x ~@5 x ~@4 x",
  F: "x ~@5 x ~ x ~ x!2", G: "x ~ x ~@2 x ~@6", H: "x ~@4 x!2 ~@4 x", I: "x ~@4 x ~@2 x ~@3",
})).gain(0.36)

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

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@13 [~ x ~ x]!7 [~ x ~@2] ~@54>").gain(0.41)

// drums · ride
const ride = s("rd").struct(`<
  ~@21 A B@2 C D B@2 E F C G H F I J K A B@2 L G B M N A B@2 C D B@2 E F C G H F I J F C G H F I J F C G H F I J ~
>`.pickRestart({
  A: "~@3 x ~ x!2 ~ x!2 ~ x", B: "x ~ x!2 ~ x!2 ~ x!2 ~ x", C: "x ~ x!2 ~ x!2 ~ x!4", D: "~@2 x!2 ~ x!2 ~ x!2 ~ x",
  E: "x ~ x!2 ~ x ~@6", F: "~@3 x ~ x!2 ~@2 x ~ x", G: "x ~@2 x ~ x!2 ~ x!2 ~ x", H: "x ~@2 x ~ x!2 ~ x!4",
  I: "x ~@2 x ~ x!2 ~ x ~ x ~", J: "x ~@2 x ~ x!2 ~@2 x ~@2", K: "x", L: "x ~ x!2 ~ x!2 ~@2 x ~@2",
  M: "~@2 x!2 ~ x ~@2 x!2 ~ x", N: "~@2 x!2 ~@8",
})).gain(0.26)

// drums · china
const china = s("cr").struct(`<
  ~@21 A ~@3 A ~@3 A ~@3 A ~@3 A ~@2 B ~@2 C A@2 ~@3 A ~@3 A ~@3 A ~@2 A ~@3 A ~@2 A ~@3 A ~@3
>`.pickRestart({
  A: "x", B: "~@11 x", C: "x!2",
})).gain(0.31)

// drums · tambourine
const tambourine = s("tb").struct("<~@21 [~ x ~ x]!16 ~@16 [~ x ~ x]!21 ~>").gain(0.36)

stack(acoustic_guitar_nylon, piano, bass, kick, snare, pedal_hat, ride, china, tambourine)