Strudelify

Het Is Altijd Lente in de Ogen Van de Tandartsassistente

Peter de Koning

KeyB majorTempo185 bpm
0:00/0:00
// Het Is Altijd Lente in de Ogen Van de Tandartsassistente — Peter de Koning
// 185 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 139 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(185/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 steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B C D E F G H I J K L M N K O P D K O P D K O Q R S T B C D E F G H D F G H U V C D M N K O P D K O P D K O Q R W
  X@4 Y@5 Z@2 AA AB AA AC@2 AD AE K O AF D K O P D K O Q R AG T B C D E F G H D F G H U V C D M N K O P D K O P D K O Q
  AH AI AJ K O P D K O P D K O Q AK AL AM AN AO@2 ~
>`.pickRestart({
  A: "~@4 [b2,f#3,b3,d#4]@3 ~, ~@2 f#4 ~", B: "[e2,b2,e3,g#3,b3]@3 ~ [d#3,g#3,c4,d#4]@3 ~, e4 ~ f#4 ~",
  C: "[b3,e4]@2 [b3,e4]@2 [c#3,g#3,b3,e4,g#4] ~ [c#3,g#3,b3,e4,g#4]@4 [c#3,g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~ [c#3,g#3,b3,e4,g#4]@2, [c#3,g#3,g#4] ~@3", // E5 C#m7 E C#m7 C#5
  D: "[f#3,a#3,c#4]@2 [f#3,a#3,c#4]@2 [c#3,f#3,a#3,c#4] ~ [a#3,c#4]@2 [a#3,c#4]@2 [c#3,f#3,a#3,c#4]@2 [f#3,a#3,c#4,f#4] ~ [c#3,f#3,a#3,c#4,f#4]@2, [f#2,c#3,f#4]@4 ~@2 [f#2,c#3,f#3,f#4]@4 f#2@5 ~", // F# A#m F# F#5
  E: "[f#3,a#3,d#4]@2 [f#3,a#3,d#4]@2 [b2,f#3,a#3,d#4] ~ [b2,f#3,a#3,d#4,f#4]@4 [b2,f#3,a#3,d#4]@2 [f#3,a#3,d#4,f#4] ~ [b2,f#3,a#3,d#4,f#4]@2, [b2,f#4] ~@3", // D#m Bmaj7 D#m Bmaj7 B5
  F: "[g3,c#4,d#4]@2 [g3,c#4,d#4]@2 [d#3,g3,c#4,d#4] ~ [g3,c#4]@2 [g3,c#4]@2 [d#3,g3,c#4,d#4]@2 [g3,c#4,d#4,g4] ~ [d#3,g3,c#4,d#4,g4]@2, [d#3,g4]@2 ~ [d#3,d#4,g4]@2 ~@3", // D#7 Gdim D#7 D#
  G: "[g#3,b3,d#4]@2 [g#3,b3,d#4]@2 [d#3,g#3,b3,d#4] ~ [b3,d#4]@2 [b3,d#4]@2 [d#3,g#3,b3,d#4]@2 [g#3,b3,d#4,g#4] ~ [d#3,g#3,b3,d#4,g#4]@2, [g#2,d#3,g#4]@4 ~@2 [g#2,d#3,g#3,g#4]@4 g#2@5 ~", // G#m B G#m G#5
  H: "[b3,f4]@2 [b3,f4]@2 [c#3,g#3,b3,f4,g#4] ~ [c#3,g#3,b3,f4,g#4]@4 [c#3,g#3,b3,f4,g#4]@2 [g#3,b3,f4,g#4] ~ [c#3,g#3,b3,f4,g#4]@2, [c#3,g#3,g#4] ~@3", // Bdim C#7 Fdim C#7 C#5
  I: "[g#3,b3,d#4]@2 [g#3,b3,d#4]@2 [e3,g#3,b3,d#4] ~ [b3,d#4]@2 [b3,d#4]@2 [e3,g#3,b3,d#4]@2 [g#3,b3,d#4,g#4] ~ [e3,g#3,b3,d#4,g#4]@2, [e3,g#4]@2 ~ [e3,g#3,g#4]@2 ~@3", // G#m Emaj7 B Emaj7 G#m Emaj7 E
  J: "[e2,b2,e3,g3,c#4,e4]@2 ~ [e2,b2,e3,g3]@2 [e2,b2,e3,g3,c#4,e4]@2 ~ [e2,b2,e3,g3,c#4,e4]@2 ~ [e2,b2,e3,g3]@2 [e2,b2,e3,g3,c#4,e4]@2 ~, ~ [c#4,e4] ~@3 [c#4,e4] ~@2", // C#m7b5 Em C#m7b5 Em C#m7b5 C#m
  K: "[b3,d#4]@2 [b3,d#4]@2 [b2,f#3,b3,d#4,f#4] ~ [b2,f#3,b3,d#4,f#4]@4 [b2,f#3,b3,d#4,f#4]@2 [f#3,b3,d#4,f#4] ~ [b2,f#3,b3,d#4,f#4]@2, [b2,f#3,f#4] ~@3", // B B5
  L: "[f#3,a#3,c#4]@2 [f#3,a#3,c#4]@2 [c#3,f#3,a#3,c#4] ~ [a#3,c#4]@2 [a#3,c#4]@2 [c#3,f#3,a#3,c#4]@2 [f#3,a#3,c#4,f#4] ~ [c#3,f#3,a#3,c#4,d#4]@2, [f#2,c#3,f#4]@4 ~@2 [f#2,c#3,f#3,f#4]@4 f#2@5 ~", // F# A#m F# D#m7 F#5
  M: "[b2,d#4,f#4]@4 [f#3,b3,d#4]!2 ~ [f#3,b3,d#4,f#4] [f#3,b3,d#4]!2 ~ [f#3,b3,d#4,f#4] [f#3,b3,d#4]!2 ~ [f#3,b3,d#4,f#4], [f#3,b3] ~ b2@2 b2@2 b2@2, ~@2 f#4 ~ f#4 ~ f#4 ~", // B B5
  N: "[f#3,b3,d#4] ~@7, [b2,f#4] ~@3", // B B5
  O: "[g#3,b3,e4]@2 [g#3,b3,e4]@2 [c#3,g#3,b3,e4] ~ [g#3,b3]@2 [g#3,b3]@2 [c#3,g#3,b3,e4]@2 [g#3,b3,e4,g#4] ~ [c#3,g#3,b3,e4,g#4]@2, [c#3,g#4]@2 ~ [c#3,e4,g#4]@2 ~@3", // E C#m7 G#m C#m7 E C#m7 C#5 C#m
  P: "[g#3,b3,e4]@2 [g#3,b3,e4]@2 [e3,g#3,b3,e4] ~ [e3,g#3,b3,e4,g#4]@4 [e3,g#3,b3,e4]@2 [g#3,b3,e4,g#4] ~ [e3,g#3,b3,e4,g#4]@2, [e3,g#4] ~@3", // E
  Q: "[g#3,b3,e4]@2 [g#3,b3,e4]@2 [e3,g#3,b3,e4] ~ [e3,g#3,b3,e4,g#4]@4 [e3,g#3,b3,e4]@2 [g#3,b3,e4,g#4] ~ [c#3,g#3,b3,e4,g#4]@2, [e3,g#4] ~@3", // E C#m7 E
  R: "[g#3,b3,e4]@2 [g#3,b3,e4]@2 [c#3,g#3,b3,e4] ~ [a#3,c#4]@2 [a#3,c#4]@2 [c#3,f#3,a#3,c#4]@2 [f#3,a#3,c#4,f#4] ~ [c#3,f#3,a#3,c#4,f#4]@2, [c#3,g#4]@4 ~@2 [f#2,c#3,f#3,f#4]@4 f#2@5 ~", // E C#m7 A#m F# C#5 F#5
  S: "b3@2 ~ b3 [b2,f#3,b3] ~@5 g#3@2 [b3,e4]!2 ~ [e3,b3,e4,g#4], [b2,f#3,d#4,f#4]@5 ~ e3@7 ~@3, ~@6 [b3,e4]@5 ~@5, ~@6 g#3@2 ~@4 g#3@3 ~, ~@7 g#4@5 ~@4", // B5 E5 E B E5
  T: "[b2,f#3,f#4]@2 ~@2 [b2,f#3,b3,d#4]@3 ~, [b3,d#4] ~@3 f#4@2 ~@2", // B5 B
  U: "[b3,e4]@2 [b3,e4]@2 [e3,g#3,b3,e4,g#4] ~ [e3,g#3,b3,e4,g#4]@4 [e3,g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~ [e3,g#3,b3,e4,g#4]@2, [e3,g#3,g#4] ~@3", // E5 E
  V: "[g3,c#4,e4]@2 [g3,c#4,e4]@2 [e3,g3,c#4,e4] ~ [g3,c#4]@2 [g3,c#4]@2 [e3,g3,c#4,e4]@2 [g3,c#4,e4,g4] ~ [e3,g3,c#4,e4,g4]@2, [e3,g4]@2 ~ [e3,e4,g4]@2 ~@3", // C#dim Gdim C#dim Em
  W: "[b2,b3]@2 b3@2 [b2,f#3,b3] ~ [b3,e4,g#4]@4 g#3@2 [b3,e4]!2 ~ [e3,b3,e4,g#4], [f#3,d#4,f#4]@5 ~ e3@7 ~@3, ~@6 g#3@2 ~@4 g#3@3 ~", // B B5 E E5 E D#m
  X: "[[b2,f#3,b3,d#4,f#4]@15 ~@39 f#4@9 [b2,f#3], ~@15 [g#2,d#3]@15 e2@8 e4@10 f#4@4 c#4@11 ~, ~@15 g#3@2 ~ g#3@13 [b2,e3]@15 f#2@18, ~@16 d#4@6 d#4@10 e4@4 b3@11 a#3 c#4@2 a#3@13 ~, ~@16 b3@4 b3@11 g#3 b3@2 g#3@13 [c#3,f#3]@16 ~]/4", // B B5 G#5 E5 F#5
  Y: "[~@6 d#4@9 ~@39 f#4@9 ~@15 a#3@2, d#4@3 ~@5 d#4@3 d#4@5 e4@2 b3@5 f#2@9 b3@2 b3@5 ~, b3@4 b3@11 g#3@2 ~ g#3@13 [b2,e3]@16 [c#3,f#3]@16 b2@17, ~@2 f#3@13 [g#2,d#3]@15 e2@8 e4@10 f#4@4 c#4@11 ~ d#4@6 d#4@10, ~@16 b3@4 b3@11 g#3 b3@2 g#3@13 a#3 c#4@2 a#3@13 f#3@2 ~ f#3@13 ~]/5", // E5 F#5 G#5
  Z: "[[b2,f#3,a3,d#4]@2 [f#3,a3,d#4] ~@3 [f#3,a3,d#4]@2 [f#3,a3,d#4]@2 [b2,f#3,a3,d#4] ~@3 [f#3,a3,d#4]@2 [f#3,a3,d#4]@2 [b2,f#3,a3,d#4] ~@3 [f#3,a3,d#4] ~ [f#3,a3,d#4]@2 [f#3,a3,d#4] ~@3 [b2,f#3,a3,d#4]@2, ~@3 b2@2 ~@2 b2@2 ~@7]/2", // B7 D#dim B7 D#dim B7 D#dim B7
  AA: "[e3,g#3,b3,e4]@2 [e3,g#3,b3,e4] ~@3 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [e3,g#3,b3,e4] ~@3 [e3,g#3,b3,e4]@2, ~@3 e3@2 ~@3", // E
  AB: "[b2,f#3,a3,d#4]@2 [f#3,a3,d#4] ~@3 [f#3,a3,d#4]@2 [f#3,a3,d#4]@2 [b2,f#3,a3,d#4] ~@4 f4, ~@3 b2@2 ~@2 [b2,f#3,a3,d#4]", // B7 D#dim B7
  AC: "[c#3,g#3,b3,f4]@2 [c#3,g#3,b3,f4] ~@3 [g#3,b3,f4]@2 [g#3,b3,f4]@2 [c#3,g#3,b3,f4] ~@3 [c#3,g#3,b3,f4]@2, ~@3 c#3@2 ~@3", // C#7 Fdim C#7
  AD: "[f#3,a#3,c#4]@2 [f#3,a#3,c#4]@2 [c#3,f#3,a#3,c#4] ~ [a#3,c#4]@2 [a#3,c#4]@2 [c#3,f#3,a#3,c#4]@2 [f#3,a#3,c#4,f#4]@4, [f#2,c#3,f#4]@5 ~ f#4@6 ~@4, ~@6 [f#2,c#3,f#3]@4 f#2@5 ~", // F# A#m F# F#5
  AE: "[f#2,c#3,f#4] ~@3, [f#3,a#3,c#4] ~@7", // F#5 F#
  AF: "[g#3,b3,e4]@2 [g#3,b3,e4]@2 [e3,g#3,b3,e4] ~ [e3,g#3,b3,e4,g#4]@4 [e3,g#3,b3,e4]@2 [g#3,b3,e4,g#4] ~@2 a4, [e3,g#4]@2 ~@5 [e3,g#3,b3,e4,g#4]", // E
  AG: "b3@2 ~ b3 [b2,f#3,b3] ~ [b3,e4,g#4]@4 g#3@2 [b3,e4]!2 ~ [e3,b3,e4,g#4], [b2,f#3,d#4,f#4]@5 ~ e3@7 ~@3, ~@6 g#3@2 ~@4 g#3@3 ~", // B5 E E5 E B
  AH: "[g#3,b3,e4]@2 [g#3,b3,e4]@2 [c#3,g#3,b3,e4] ~ [b3,e4]@2 [b3,e4]@2 [c#3,b3,e4]@2 [c#3,b3,e4,g#4] ~ [c#3,b3,e4,g#4]@2, [c#3,g#4]@4 ~@2 [f#2,c#3,g#4]@4 f#2@5 ~", // E C#m7 E5 C#m7 C#5 F#sus2
  AI: "[b2,b3]@2 b3@2 [f#3,b3]@2 [e3,g#3,b3,e4,g#4]@4 [e3,g#3,b3,e4]@2 [g#3,b3,e4,g#4] ~ [e3,g#3,b3,e4,g#4]@2, [f#3,d#4,f#4]@5 ~@11", // B B5 E D#m
  AJ: "[b2,f#3,b3,d#4]@2 [c#3,f#3,a#3,c#4]@2 [f#3,a#3,c#4,f#4] ~ [c#3,f#3,a#3,c#4,f#4]@2 [c#4,f#4]@2 [c#3,f#3,a#3,c#4]@2 [f#3,a#3,c#4,f#4] ~ [c#3,f#3,a#3,c#4,f#4]@2, f#4@4 ~@4 [f#3,a#3] ~@7", // B F# F#5 F#
  AK: "[g#3,b3,e4]@2 [g#3,b3,e4]@2 [c#3,g#3,b3,e4] ~ [b3,e4]@2 [b3,e4]@2 [c#3,g#3,b3,e4]@2 [g#3,b3,e4,g#4] ~ [c#3,g#3,b3,e4,g#4]@2, [g#2,c#3,g#4]@4 ~@2 [g#2,c#3,g#3,g#4]@4 g#2@5 ~", // E C#m7 E5 C#m7 E C#m7 C#5
  AL: "[g#3,b3,e4]@2 [g#3,b3,e4]@2 [c#3,g#3,b3,e4] ~ [c#3,g#3,b3,e4,g#4]@4 [c#3,g#3,b3,e4]@2 [g#3,b3,e4,g#4] ~ [c#3,g#3,b3,e4,g#4]@2, [c#3,g#4] ~@3", // E C#m7 E C#m7 C#5
  AM: "[f#3,a#3,c#4]@2 [f#3,a#3,c#4]@2 [c#3,f#3,a#3,c#4] ~ [a#3,c#4]@2 [a#3,c#4]@2 [c#3,f#3,a#3,c#4]@2 [f#3,a#3,c#4,f#4] ~ [c#3,f#3,a#3,c#4,f#4]@2, [c#3,f#4]@4 ~@2 [f#2,c#3,f#3,f#4]@4 f#2@5 ~", // F# A#m F# F#5
  AN: "[b2,f#3,b3,d#4,f#4]@2 ~ [b2,f#3,b3,d#4,f#4]@5", AO: "[~@3 g#4@29, ~ [b2,f#3]@31, ~ [b3,c#4,d#4]@15]/2",
})).s("gm_acoustic_guitar_steel").gain(0.17)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A B C D E F G H I J K L M N O P Q R O P Q R O P S@2 T U B C V W F X Y Z AA AB H I J AC L AD N O P Q R O P Q R O P S@2
  T AE AF AG AH AI AJ AK AL AI AM AN AO AN AP AQ AR AS AT O P Q R O P Q R O P S@2 AU U B C AV W F X Y Z AA AW H I AX AC
  L AD N O P Q R O P Q R O P S@2 AY AZ O P Q BA O P Q BA O P BB BC BD BE BF@3 ~
>`.pickRestart({
  A: "~@2 b1 ~", B: "e2 ~ g#1 ~", C: "c#2@2 ~ c#2@3 ~@2", D: "f#1@4 ~@2 f#1@3 ~ a#1@2 b1@2 f#1@2", E: "b1@2 ~ b1@3 ~@2",
  F: "d#2@4 ~@2 d#2@3 ~ g1@2 a#1@3 ~", G: "g#1@4 ~@2 g#1@5 ~ b1@2 g#1@2", H: "c#2@4 ~@2 c#2@3 ~ b1@2 c#2@2 d#2@2",
  I: "e2@2 ~ e2@2 b1 g#1 b1", J: "e2@2 ~ e2@2 e2@2 ~ e2@3 ~ b1@3 ~", K: "f#1@2 ~ f#1@3 ~@2",
  L: "f#2@4 ~@2 f#2@3 ~ f#1@2 g#1@2 a#1@2", M: "b1@2 ~@2 b2 g#2 ~ f#2 d#2 d2 ~ c#2 f#1 g#1 ~ a#1", N: "b1 ~@7",
  O: "b1@3 ~@3 d#2@3 ~ f#2@2 g#2@2 f#2@2", P: "c#2@4 ~@2 e2@3 ~ g#2@2 b2@2 g#2@2",
  Q: "e2@4 ~@2 g#2@3 ~ b2@2 c#3@2 b2@2", R: "f#2@4 ~@2 f#1@3 ~ g#1@2 b1@2 g#1@2",
  S: "[e2@4 ~@2 g#1@5 ~@3 c#2@5 ~@3 f#1@3 ~ g#1@2 b1@2 g#1@2]/2", T: "b1@4 ~@3 e2@5 ~ g#1 ~ a#1", U: "b1 ~ b1 ~",
  V: "f#1@4 c#2 ~ f#1@3 ~ a#1 ~ b1@2 f#1@2", W: "b1@4 ~@2 b1@5 ~ b1@3 ~", X: "g#1@4 ~@2 g#1@5 ~ b1@2 d#2@2",
  Y: "c#2@4 ~@2 c#2@3 ~ g#2 ~ g#2 ~ g2@2", Z: "f#2@4 ~@2 f#2@3 ~ f#2@2 e2@3 ~", AA: "d#2@4 ~@2 d#2@3 ~ g2@2 a#2@3 ~",
  AB: "g#1@4 ~@2 g#1@5 ~@5", AC: "c#2@4 ~@2 c#2@3 ~ c#2@2 g#2@4",
  AD: "b1@2 ~ b2 g#2 g2 ~ f#2 d#2 d2 ~ c#2 f#1 g#1 ~ a#1", AE: "b1@7 g#2", AF: "g#1@6 ~ g#1", AG: "e2@6 ~ e2",
  AH: "f#2@6 ~ f#2", AI: "b1@7 ~", AJ: "g#1@9 ~ g#1 ~ g1 ~ f#1 ~", AK: "e1@6 ~ f1", AL: "f#1@6 ~ f#1",
  AM: "b1@2 b1 ~@3 b1@2 b1 ~ b1 ~@3 f#1 ~", AN: "b1@2 b1 ~@3 b1@2 b1 ~ b1 ~@3 b1@2",
  AO: "e2@2 e2 ~@3 e2@2 e2 ~ e2 ~@3 b1 ~", AP: "e2@2 e2 ~@3 e2@2 e2 ~ e2 ~ b1 ~ b1 ~",
  AQ: "c#2@2 c#2 ~@3 c#2@2 c#2 ~ c#2 ~@3 g#1 ~", AR: "c#2@2 c#2 ~@3 c#2@2 c#2 ~ c#2 ~ g#2 ~ c#2 ~",
  AS: "f#1@3 ~@3 a#1@2 ~@2 c#2 ~ d#2@2 c#2@2", AT: "f#2 ~@7", AU: "b1@4 ~@4 e2@5 g#1 ~ a#1",
  AV: "f#1@4 ~@2 f#1@3 ~ a#1 ~ b1@2 f#1@2", AW: "g#1@4 ~@2 g#1@5 ~ a#1 ~ b1@2", AX: "e2@4 ~@2 e2@4 c#2 ~ b1@2 b1@2",
  AY: "b1@4 ~@2 e2@5 ~@2 g#1 ~ a#1", AZ: "b1@2 f#1 ~ f#1 ~ f#1 ~ f#1 ~ g#1 ~ b1 ~ g#1@2",
  BA: "f#2@2 f#1@3 ~ f#1@3 ~ g#1@2 b1@2 g#1@2", BB: "e2@4 ~@2 e2@3 ~ c#2 ~ c#2 ~ g#1 ~",
  BC: "g#1@4 ~@2 g#1@3 ~ g#1 ~ g#1 ~ b1 ~", BD: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~",
  BE: "f#2 ~ f#2 ~ f#2 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~", BF: "[b1@2 ~ b1@21]/3",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · rock organ · "ORGAN 3"
const rock_organ = note("<~@91 A@4 B@4 C@4 D@4 E@8 F@4 G@2 E@8 H@6 I ~@3>".pickRestart({
  A: "[[g#5,e6] a#5 [a#4,b4] [g5,a#5], c#6 d#5, b5@7 ~ f#5@16 ~@8]/4", // C#m Bmaj7 Gm
  B: "[[b4,d#5] [f5,b5] ~ g5, g#5@32 [f#5,a#5]@17 ~@15, ~ c#6@3, ~@47 d#5@16 ~]/4", // B Fdim F#
  C: "[[d#5,b5] [f5,c#6] d#5 [c#5,g5], g#5@3 ~, ~ [e5,b5]]/4", // G#m C# C#dim E5
  D: "[[e5,g#5,b5]@16 a#5@16 [b5,d#6]@17 ~@15, c#6 ~, ~@16 f#5@33 ~@15]/4", // E B
  E: "[d#5@15 ~ e5@32 [c#5,a#5]@16, f#5, b5@3 ~, ~ c#5 ~@2]/4", // F#
  F: "[d#5@15 ~ c#5@16 ~@16 b4@16, b5, f#5 g#5, ~ e5@3]/4", G: "[d#5@3 e5@5 d#5 [c#5,a#5]@7, f#5, b4@9 ~@7]/2",
  H: "[d#5@15 ~ [c#5,e5]@16 f#5@8 e5@8 d#5@8 c#5@8 c#6@16 a#5@16, f#6, b5@2 ~, f#5 ~@2]/6", // C#m
  I: "[f#5,b5,f#6]@6 [f#5,b5,f#6]@7 ~@3", // B5
})).s("gm_rock_organ").gain(0.22)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A@3 B A@5 C D ~ A@3 B A@3 E A@3 C D ~@2 A@3 B A@3 F A@2 G H A I D ~ A@3 B A@3 E A@2 G J D ~ K@8 J C J@2 L M G N ~
  A@3 B A@2 O P A@2 G J D ~@2 A@3 B A@3 F A@2 G H A I D ~ A@3 B A@3 E A@2 G J A E A@2 F Q A@3 E A@2 G J A E ~@4
>`.pickRestart({
  A: "x!2 ~@2 x!2 ~@2", B: "x!2 ~@2 x ~@3", C: "x!2 ~ x!2 ~ x!2", D: "~@5 x ~@2 x ~@3 x ~@3", E: "x!2 ~@2",
  F: "x ~ x ~ x!2 ~@2", G: "x ~@2 x!3 ~@2", H: "x ~ x ~@5 x ~ x!2 ~@4", I: "x!2 ~@2 x ~@2 x", J: "x!2 ~ x!3 ~ x",
  K: "x!4 ~ x!3", L: "x!2 ~ x!2 ~@3", M: "x!2 ~ x!2 ~@2 x", N: "~ x ~@2 x ~@2 x", O: "x!2 ~@2 x ~ x ~",
  P: "~ x ~@2 x!2 ~ x", Q: "x!3 ~",
})).gain(0.4)

// drums · clap
const clap = s("cp").struct(`<
  ~@2 A@3 B A@5 C D E A@3 B A@3 F A@3 C D E ~ A@3 B A@3 G A@2 H A@2 I D J A@3 B A@3 F A@2 H K D E L@8 K C K@2 M N O P J
  A@3 B A@2 Q R A@2 H K D E ~ A@3 B A@3 G A@2 H A@2 I D E A@3 B A@3 F A@2 H K A F A@2 G S A@3 F A@2 H K A T ~@4
>`.pickRestart({
  A: "~@2 x!2 ~@2 x!2", B: "~@2 x!2 ~ x!3", C: "~@2 x ~@2 x ~@2", D: "x ~@3 x ~@2 x ~ x ~ x ~ x ~ x", E: "x",
  F: "~ x ~ x!5", G: "~ x ~ x ~@2 x!2", H: "~ x!2 ~@3 x!2", I: "~@2 x!2 ~ x!2 ~", J: "x ~@2 x", K: "~ x ~ x", L: "~ x",
  M: "~@2 x ~@2 x!3", N: "~@2 x ~@2 x!2 ~", O: "~ x!2 ~@3 x ~", P: "x ~ x ~@2 x ~@2", Q: "~@2 x!2 ~ x ~ x",
  R: "x ~ x!2 ~@2 x ~", S: "~ x ~ x ~ x!3", T: "~@2 x ~@3 x ~ x ~ x!3 ~@3",
})).gain(0.56)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~@2 A@10 B C A@12 B C ~ A@14 B C A@12 B C ~@8 A@7 B C A@12 B C ~ A@14 B C A@28 ~@4
>`.pickRestart({
  A: "~ x ~ x", B: "~ x!3", C: "x",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  ~@2 A ~@11 A ~@7 A ~@6 A ~@15 A ~@7 A ~@20 B A@2 ~@7 A ~@6 A ~@15 A ~@3 A ~@3 A ~@5 A ~@3 A ~@3 A ~@5 C ~@3
>`.pickRestart({
  A: "x", B: "x ~@2 x ~@2 x ~", C: "x ~@2 x ~@4",
})).gain(0.4)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@59 A@8 B@8 ~ B@7 C B@4 D E ~ B@7 F B@6 D E B@7 C B@5 C B@7 C B@5 G H ~@3
>`.pickRestart({
  A: "~ x", B: "~ x!7", C: "~@2 x ~ x ~ x ~ x ~ x!3 ~ x ~", D: "~@2 x ~ x!2 ~ x!3 ~ x ~ x ~ x", E: "x",
  F: "~@2 x ~ x ~ x!4 ~ x!3 ~ x", G: "x!16", H: "x!7 ~@9",
})).gain(0.24)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@67 A@21 B ~@2 A@14 B ~ A@27 ~@5>".pickRestart({
  A: "x", B: "x ~@2 x",
})).gain(0.16)

stack(acoustic_guitar_steel, bass, rock_organ, kick, snare, clap, pedal_hat, crash, tambourine, tambourine_soft)