Strudelify
Sit and Wait cover art

Sit and Wait (Radio Edit)

Sit and Wait

Sydney Youngblood

KeyA minorTempo107 bpm
0:00/0:00
// Sit and Wait — Sydney Youngblood
// 107 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: bank select 127 (Roland MT-32 map) read through the MT-32 patch table: 
// note: Full arrangement: all 114 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(107/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.

// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  ~@3 A B C D A E F G H I J K J L H M N O N P Q R N S ~@2 A T C U A V F W X Y C Z H AA AB AC Q AD N AE N AF AG AH AI AJ
  Q AE AG R N AK ~@2 A AL AM AN A AO AP W H AQ H AR J AS AT AU AV AW AI AX AI AJ AG AH ~@2 A AY C AZ BA B BB BC A BD C
  BE A BF BG BH BI@3 ~@6
>`.pickRestart({
  A: "f1!2 ~ f1!2 ~ f1!2 ~@6 f1@2", B: "g1 ~@2 g1 ~@2 g1 ~@6 g1 ~@2", C: "a1!2 ~ a1!2 ~ a1!2 ~@6 g1@2",
  D: "a1 ~@2 a1 ~@2 a1@2 ~@4 a1 g1 f1 e1", E: "g1 ~@2 g1 ~@2 g1 ~@3 g1 ~@2 g1 ~@2", F: "c2!2 ~ c2!2 ~ c2!2 ~@6 c2 ~",
  G: "c2 ~@2 c2 ~@2 c2 ~@7 c2@2", H: "a1!2 ~ a1!2 ~ a1!2 ~@6 a1@2", I: "g1!2 ~ g1!2 ~ g1!2 ~@3 e1 g1 ~ e1 ~",
  J: "a1!2 ~ a1!2 ~ a1!2 ~@6 a1 ~", K: "g1!2 ~ g1!2 ~ g1 [g1,d#4] e2 g1 a1 ~@3 g1 ~, ~@4 c-1 ~@3",
  L: "g1!2 ~ g1!2 ~ g1!2 ~ g1 e1 ~ g1 ~ e1 ~", M: "g1!2 ~ g1!2 ~ e1 g1 ~ g1 ~@4 g1 ~", N: "f1!2 ~ f1!2 ~ a1@9 ~",
  O: "d1 ~@2 d1 ~@2 e1@9 ~", P: "b1 ~@2 b1 ~@2 c2@8 ~@2", Q: "f1!2 ~ f1 f1@2 a1@8 ~@2", R: "d1@2 ~ d1 ~@2 e1@8 ~@2",
  S: "d1@3 ~ e1@3 ~ f1@5 ~@3", T: "g1 ~@2 g1@2 ~ g1 ~@2 g1 ~@6", U: "a1 ~@2 a1 ~@2 a1@2 ~@3 a1 g1 ~ g1 ~",
  V: "g1@2 ~ g1 ~@2 g1@2 ~@2 g1 ~@5", W: "c2 ~@2 c2 ~@2 c2@2 ~@4 c2 b1 a1 g1", X: "a1@2 ~ a1!2 ~ a1!2 ~@6 a1@2",
  Y: "g1!2 ~ g1!2 ~@2 g1 ~ g1 e1 ~ g1 ~ g1 ~", Z: "a1 g1 ~ g1!2 ~@6 g1 a1 ~ g1 ~",
  AA: "g1!2 ~ g1!2 ~@2 g1 ~ g1!2 ~ g1 ~ g1@2", AB: "a1!2 ~ a1!2 ~ g1 a1 ~@6 a1@2",
  AC: "g1!2 ~ g1!2 ~@2 g1 ~ g1!2 ~ g1@2 ~@2", AD: "d1@2 ~ d1@2 ~ e1@8 ~@2", AE: "b1@2 ~ b1 ~@2 c2@8 ~@2",
  AF: "d1 ~@2 d1 ~@2 e1@8 ~@2", AG: "f1!2 ~ f1!2 ~ a1@8 ~@2", AH: "d1@3 ~ e1@3 ~ f1@3 ~@5", AI: "f1!2 ~ f1 f1@2 a1@9 ~",
  AJ: "d1@2 ~ d1 ~@2 e1@9 ~", AK: "d1@3 ~ e1@3 ~ f1@4 ~@4", AL: "g1@2 ~ g1@2 ~ g1 ~@3 g1 ~@2 g1 ~@2",
  AM: "a1 a1@2 a1 a1@2 a1!2 ~@6 g1@2", AN: "a1 ~@2 a1 ~@2 a1 ~@2 a1 g1 ~ f1 ~ e1 ~", AO: "g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@6",
  AP: "c2!2 ~ c2!2 ~ c2 c2@2 ~@5 a1@2", AQ: "g1!2 ~ g1!2 ~@2 g1 ~ g1 e1 ~ g1 ~ e1 ~",
  AR: "g1 ~@2 g1 ~@2 g1 ~@4 e1 g1!2 e1@2", AS: "a1 ~@2 g1 ~@2 g1@2 ~ g1 e1 ~ g1 ~ e1 ~",
  AT: "a1!2 ~ g1 a1 ~ g1 a1 ~@6 a1@2", AU: "g1 ~@2 a1 ~@4 g1!2 ~ e1 g1 ~ e1 ~", AV: "f1@2 ~ f1@2 ~ a1@9 ~",
  AW: "d1@2 ~ d1@2 ~ e1@7 ~@3", AX: "b1@2 ~ b1@2 ~ c2@8 ~@2", AY: "g1 ~@2 g1 ~@2 g1@2 ~@2 g1 ~@2 g1 ~@2",
  AZ: "a1 ~@2 a1 ~@2 a1 ~@6 a1 g1 f1", BA: "f1!2 ~ f1!2 ~ f1 f1@2 ~@5 f1@2", BB: "c2!2 ~ c2!2 ~ c2!2 ~@6 b1@2",
  BC: "c2 ~@2 c2 ~@2 c2 ~@5 c2 b1 a1 g1", BD: "g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@4 g1@2",
  BE: "a1 ~@2 g1 ~@2 a1 ~@5 a1 g1 f1 e1", BF: "g1 ~@2 g1 ~@2 g1@2 ~@8", BG: "c2 ~@2 c2 ~@2 c2@2 ~@6 a1@2",
  BH: "c2!2 a1 ~ c2 ~ a1 c2 ~@4 c2 a1 ~@2", BI: "[d1@17 ~@7]/3",
})).s("gm_synth_bass_2").gain(0.5)

// other · piano · "A.PIANO 1"
const piano = note(`<
  ~@2 A B C D E B F D G ~@17 A B H D@2 B F D G ~@25 A B F D I B F D G ~@17 A B F D@2 B F D@2 B F D J B F D G K@2 ~@7
>`.pickRestart({
  A: "~@5 [a4,a5] [c5,c6] [a4,a5]", B: "[g5,g6]@2 [a4,a5] [c5,c6]@2 [a4,a5] [c5,c6] [a4,a5]",
  C: "[f5,f6]@2 [a4,a5] [c5,c6]@2 [a4,a5] [c5,c6] [a4,f5,a5,b5]", // F A C A C Bm7b5
  D: "[e5,e6]@2 [a4,a5] [c5,c6]@2 [a4,a5] [c5,c6] [a4,a5]", // E A C A C A
  E: "[e5,e6]@4 [a4,a5]@2 [c5,c6]@3 ~ [a4,a5]@2 [c5,c6]@2 [a4,a5]@2", // E A C A C A
  F: "[f5,f6]@2 [a4,a5] [c5,c6]@2 [a4,a5] [c5,c6] [a4,a5]", // F A C A C A
  G: "[e5,e6]@4 [a4,a5]@2 [c5,c6]@4 [a4,a5]@2 [c5,c6]@2 [a4,a5] ~", // E A C A C A
  H: "[f5,f6]@4 [a4,a5]@2 [c5,c6]@3 ~ [a4,a5]@2 [c5,c6]@2 [a4,a5]@2", // F A C A C A
  I: "[e5,e6]@2 [a4,a5] [c5,c6] ~ [a4,a5] [c5,c6] [a4,a5]", J: "[e5,e6]@2 [a4,a5] [c5,c6]@2 [a4,f5,a5] [c5,c6] [a4,a5]",
  K: "[[d3,a3,c4,d4,e4,a4,c5,e5]@3 ~, [d2,g4,g5]@13 ~@3]/2", // Am G5
})).s("gm_piano").gain(0.4)

// other · vibraphone
const vibraphone = note("<~@70 A B C D E F G H I J ~@34>".pickRestart({
  A: "~@9 d#5 d5 c5 a4 e4 g4 e4", B: "a4 c5 ~ a4 ~ e4 g4 a4 c5 d5 d#5 e5 ~@4",
  C: "~ e4 g4 a4 a#4 b4 d5 e5 [d5,g5] b4 [b4,e5] g4 d5 e4 b4 a4", D: "~ g4 ~ e4 ~ a4 ~@5 e4 g4 a4 c5 ~",
  E: "[c5,e5,a5] ~@2 [c5,e5,a5] ~@2 [b4,d5,g5]@4 g4 b4 d5 d#5 e5 g5", // Am G
  F: "a5 [g5,c6] ~ e5 a5 e5 [a5,d6] e5 ~@4 [g5,a5] c6 d6 d#6", // C5 D5 Gsus2
  G: "e6 g6 e6 d6 c6 [b5,c6] ~ [a5,b5] ~ g5 ~ e5 ~ [d5,d#5] c5 e5", // Cmaj7 Asus2 D#maj7
  H: "b4 d5 a4 b4 g4 a4 e4 g4 a4 a#4 b4 d5 e5 [d5,g5] e5 b4", // G5
  I: "[c5,e5,a5] ~@2 [c5,e5,a5] ~@2 [b4,e5,g5]@4 g4 [b4,d5] [e5,g5] e5 d5 [g4,b4]", J: "g4 ~@15",
})).s("gm_vibraphone").gain(0.5)

// chords · synth strings 1 · "#STR SECT3"
const synth_strings_1 = note(`<
  ~@3 A B C@2 A B C@2 D@2 E@2 F@2 G@2 H I@3 J K@2 ~@3 L B C@2 M@2 C@2 D@2 N@2 O@3 P@2 Q R S J Q T ~ H U J V@3 W ~@3 A B
  X@2 A B Y@2 Z@2 AA@4 AB@2 H Q AC S AD@2 AE ~@3 AF B AG@3 AH AI@2 A B C@2 A AH C@2 AJ@2 ~@7
>`.pickRestart({
  A: "[f3,a3,c4]", B: "[g3,b3,d4]", C: "[[a3,c4,e4]@31 ~]/2", D: "[[a3,c4] [g3,b3], e4@31 ~]/2",
  E: "[[a3,c4]@16 [g3,b3]@15 ~, e4@31 ~]/2", F: "[c4 b3, e4@15 ~, a3@7 ~ g3@7 ~]/2",
  G: "[[a3,c4]@8 [g3,b3]@7 ~, e4@31 ~]/2", H: "f4 e4, c4, a3@7 ~",
  I: "[[f3,a3]@6 ~ [g3,b3,e4]@8 ~ f4@8 e4@7 [b3,d4]@8 [c4,e4]@8 ~, d4@7 ~@8 c4@16 ~@17, ~@16 a3@15 g3@15 ~@2]/3", // F Em Bm C
  J: "f4 e4, [a3,c4]", K: "[[f3,a3]@6 ~@2 [g3,b3,e4]@7 ~ f4@7 e4@8 ~, d4@8 ~@7 c4@16 ~, ~ a3]/2", L: "[f3,a3]@7 ~, c4",
  M: "[[f3,a3]@7 ~ [g3,b3]@8, c4@15 d4@16 ~]/2", N: "[c4 [g3,b3], e4@15 ~, a3@7 ~@9]/2",
  O: "[[a3,c4] b3 [a3,c4], e4@47 ~, ~@8 g3@7 ~@9]/3", P: "[[g3,b3,e4]@15 ~ f4@7 e4@8 ~, ~@15 [a3,c4]@16 ~]/2",
  Q: "[f3,a3,d4] [g3,b3,e4]", R: "f4@8 e4@7 ~, [a3,c4]", S: "[b3,d4]@7 ~ c4@7 ~, g3@15 ~, ~@7 e4@8 ~",
  T: "f4 e4, [a3,c4]@15 ~", U: "[f3,a3,d4] [b3,e4], ~@4 g3@3 ~",
  V: "[[b3,d4]@7 e4@8 ~ f4@8 e4@7 ~ [f3,a3]@7 [g3,b3,e4]@8 ~, g3@15 ~ a3@15 ~@17, ~@7 c4@24 d4@8 ~@9]/3", // Bm F Em
  W: "f4@8 e4@7 ~, [a3,c4]@15 ~", X: "[a3,c4,e4]/2", Y: "[[a3,c4,e4]@15 ~]/2",
  Z: "[[a3,c4]@16 [g3,b3]@15 ~, e4@15 ~]/2", AA: "[[a3,c4]@22 [g3,b3]@9 ~, e4@31 ~]/2",
  AB: "[[a3,c4]@11 [g3,b3]@4 ~, e4@15 ~]/2", AC: "f4@7 e4@9, [a3,c4]",
  AD: "[f4 e4 [f3,d4] [g3,b3,e4], a3@23 ~@9, c4 ~]/2", AE: "f4@7 e4@7 ~@2, [a3,c4]@15 ~", AF: "[f3,c4], a3@7 ~",
  AG: "[e4@32 f3@15 ~, [a3,c4]]/3", AH: "[b3,d4], g3@7 ~", AI: "[[a3,c4]@15 ~, e4]/2", AJ: "[[d3,a3,c4,e4,g4]@7 ~]/2",
})).s("gm_synth_strings_1").gain(0.1)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@3 A B C D A E F G ~@8 H I J K L M N O ~@2 P Q R S T U V W ~@8 X Y Z AA X AB L AC L AD X AE L AF AG AH ~@2 AI AJ AK
  AL P AM AN AO ~@8 L AP AQ AR L AS L AT ~ AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK ~@9
>`.pickRestart({
  A: "~@2 f4 ~@2 f4 ~@2 f4 ~@2 f4 ~@2 f4!2", B: "~@2 g4 ~@2 g4 ~@2 g4 ~ g4!2 ~@2 g4!2",
  C: "~@2 a4 ~@2 a4 ~ g4 a4 ~@2 a4 ~ a4 g4!2", D: "~@2 a4 ~@2 a4 ~ g4 a4 ~ [g4,c5]!2 ~ [g4,c5] a4 g4",
  E: "~@2 g4 ~@2 g4 ~ g4!2 ~ g4!2 ~ g4!3", F: "~@2 a4 ~@2 a4 ~ g4 a4 ~ g4 a4 ~ [g4,c5] a4 g4",
  G: "~@2 a4 ~@2 a4 ~ g4 a4 ~@2 [g4,c5] ~ [g4,c5] a4 g4", // C5
  H: "~@2 [a4,c5] ~@2 [a4,c5] ~@2 [b4,d5]@2 ~ [a4,c5] ~@2 [a4,c5] ~", // Am Bm Am
  I: "~@2 [a4,c5] ~@2 [a4,c5] ~@2 [b4,d5]@2 ~ [g4,b4] ~@2 [g4,b4] ~", // Am Bm G
  J: "~@2 [a4,c5]!2 ~ [a4,c5]!2 ~ [b4,d5]@2 ~ [a4,c5] ~ [a4,c5]!2 ~", K: "~@2 [a4,c5] c5 ~ c5!2 ~@9",
  L: "~@2 [a4,c5]!2 ~ [a4,c5]!2 ~ [b4,d5]@2 ~ [a4,c5] ~@2 [a4,c5] ~", // Am Bm Am
  M: "~@2 c5 ~@2 [a4,c5] ~@2 [b4,d5]@2 ~ [g4,b4] ~@2 [g4,b4] ~", // Am Bm G
  N: "~@2 c5 [a4,c5] ~ [a4,c5]!2 ~ [b4,d5]@2 ~ [a4,c5] ~@2 [a4,c5] ~", O: "~@2 a4 ~@2 g4 ~@10",
  P: "~ f4 ~ f4!2 ~ f4!2 ~ f4!2 ~ f4 ~ f4!2", Q: "~ g4 ~@2 g4 ~@2 g4 ~ g4 ~ g4!2 ~ g4!2",
  R: "~ a4 ~ g4 a4 ~@2 a4 ~ a4 g4 ~ [g4,c5]!2 a4 g4", S: "~ a4 ~@2 a4 ~ g4 a4 ~ g4 a4!2 [g4,c5]!2 a4 g4",
  T: "~ f4 ~@2 f4 ~ f4!2 ~ f4!2 ~ f4 ~ f4!2", U: "~ g4 ~@2 [g4,a4] ~@2 g4 ~ g4 ~ g4!2 ~ g4!2",
  V: "~ a4 ~ g4 a4 ~@2 [g4,c5] ~ [g4,c5] a4 ~ a4 ~ g4 a4", W: "~ a4 ~@2 a4 ~@2 a4 ~ g4 a4 ~ [g4,c5]!2 a4 ~",
  X: "~@2 [a4,c5]!2 ~ [a4,c5]!2 ~ [b4,d5] ~@2 [a4,c5] ~@2 [a4,c5] ~", // Am Bm Am
  Y: "~@2 c5 [a4,c5] ~ [a4,c5]!2 ~ [b4,d5] ~@2 [g4,b4] ~@2 [g4,b4] ~", // Am Bm G
  Z: "~@2 [a4,c5] ~@2 [a4,c5] ~@2 [b4,d5]@3 [a4,c5] ~@2 [a4,c5] ~", AA: "~@2 [a4,c5]!2 ~ [a4,c5]!2 ~@6 g4 a4 c5",
  AB: "~@2 [a4,c5] ~@2 [a4,c5] ~@2 [b4,d5]@2 ~ [g4,b4] ~@2 [g4,b4]!2", AC: "~@2 g4 a4 ~@9 g4 a4 ~",
  AD: "~@2 [a4,c5]!2 ~ [a4,c5]!2 ~ [b4,d5] ~@2 [g4,b4] ~@2 [g4,b4]!2", AE: "~@2 g4!2 ~ g4 a4 ~@3 g4 a4 c5 a4 g4 ~",
  AF: "~@2 c5 [a4,c5] ~ [a4,c5]!2 ~ [b4,d5]@2 ~ [g4,b4] ~@2 [g4,b4] ~", // Am Bm G
  AG: "~@2 [a4,c5]!2 ~ [a4,c5]!2 ~ [b4,d5] ~ [b4,d5] [a4,c5] ~@2 [a4,c5] ~", AH: "~@2 g4 a4 ~ c5 ~@3 g4 ~ c5 ~@4",
  AI: "~ f4 ~@2 f4 ~ f4!2 ~ f4!2 ~@2 f4 g4 a4", AJ: "~ g4 ~ g4!2 ~@2 g4 ~ g4!2 ~@3 g4!2",
  AK: "~ a4 ~@2 a4 ~ g4 a4 ~ a4 g4 ~ [g4,c5]!2 a4 g4", AL: "~ [g4,c5] ~ a4 g4 ~ a4 g4 ~ g4 a4 g4 [g4,c5]!2 a4 g4",
  AM: "~ g4 ~@2 g4 ~@2 g4 ~ g4!2 ~ g4 ~ g4!2", AN: "~ a4 ~ a4!2 ~@2 g4 ~ g4 a4 ~ [g4,c5]!2 a4 g4",
  AO: "~ [g4,c5] ~ g4 [g4,c5] ~@2 [g4,c5] ~ [g4,c5] a4 ~@5", // C5
  AP: "~@2 c5 [a4,c5] ~ [a4,c5]!2 ~ [b4,d5]@2 ~ [g4,b4] ~@2 [g4,b4]!2", // Am Bm G
  AQ: "~@2 [a4,c5]!2 ~ c5 [a4,c5] ~ [b4,d5] ~@2 [a4,c5] ~@2 [a4,c5] ~", // Am Bm Am
  AR: "~@2 c5 [a4,c5] ~ [a4,c5] ~@3 g4!3 a4 g4 a4 g4", AS: "~@3 [a4,c5] ~ [a4,c5]!2 ~ [b4,d5]@2 ~ [g4,b4] ~ [g4,b4]!3",
  AT: "~@3 g4 ~@2 a4 ~@2 g4 ~@6", AU: "~@12 f3 c4 d4 f4", AV: "~@2 f4!2 ~ f4!2 ~ f4!2 ~ f4!2 ~ f4!2",
  AW: "~@2 g4!2 ~ g4!2 ~@2 g4 ~@2 g4 ~ g4!2", AX: "~ a4 ~ g4 a4 ~ g4 a4 ~ a4 g4 ~ [g4,c5] g4!2 ~",
  AY: "~@2 a4 ~@2 g4 ~ g4 ~ g4 a4 g4 c5 a4 g4 a4", AZ: "~@2 f4!2 ~ f4 ~ f4!2 ~ f4!2 ~ f4!3",
  BA: "~@2 g4!2 ~ g4 ~ e4 g4!2 ~ g4 ~ g4!3", BB: "~@2 a4!2 ~ a4 g4 ~ [g4,c5] ~ a4 [g4,c5] ~ [g4,c5] a4 ~",
  BC: "~@2 [a4,d5] ~@2 c5 ~ a4 ~ [d4,g4] ~ [e4,a4] ~ [d4,g4] [e4,a4] [g4,c5]", // D5 G5 A5 G5 A5 C5
  BD: "~@2 g4 a4 ~ a4 g4 ~ a4 ~ f4 g4 ~ g4 f4 g4", BE: "a4 ~ [g4,a4] ~@2 g4 ~ g4 ~ g4 f4 ~ g4 f4 g4 a4",
  BF: "~@2 g4!2 ~ g4 a4 ~ [g4,c5] ~ a4 [g4,c5] ~ [g4,c5] a4 g4", // C5
  BG: "~@2 a4!2 ~ a4 g4 a4 [a4,d5] a4 [g4,c5,d5] ~ [e4,a4]!2 [d4,g4] ~", // D5 Gsus4 A5 G5
  BH: "~@2 f4 g4 ~ a4 f4 ~ g4 ~ a4 ~ f4 g4 a4 f4", BI: "~ g4 ~ g4 ~ g4 f4 ~ a4 ~ f4 ~ g4 ~@3",
  BJ: "~@3 a4 ~ a4 g4 ~ [g4,c5] ~ a4 [g4,c5] ~ [g4,c5] a4 g4", BK: "~@2 a4!2 ~ a4 g4 ~ [g4,c5] ~ a4 ~ [g4,c5] a4 g4 a4",
})).s("gm_electric_guitar_clean").gain(0.3)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~ A B ~ A B C D E F@2 G ~@3 H I H J K ~@2 L ~@3 M N O ~ A B P D Q R@3 ~@3 S@2 H T K ~@2 U ~@7 V ~@3 W N@2 ~ A B P D Q
  X@2 ~@11 Y ~@3 W N O ~ A B P D Q Z@2 ~ A B P D Q AA@2 K ~@8
>`.pickRestart({
  A: "~@12 d6 e6 ~@2", B: "g5 a5 ~@14", C: "~@8 c7 b6 a6 g6 e6 d6 c6 b5", D: "a5@3 c6", E: "f6@3 e6",
  F: "[d6@3 e6@10 d6 c6 b5]/2", G: "a5@5 ~@3", H: "e6@5 a5 c6 a5", I: "e6@9 d6@7", J: "e6@13 d6 c6 b5", K: "a5 ~@15",
  L: "g6 f6 e6 d6 f6 e6 d6 c6 e6@3 ~@5", M: "~@8 f6 ~@3 f6 ~@3", N: "f6 ~@3 f6 ~@3 f6 ~@3 f6 ~@3",
  O: "f6 ~@3 f6 ~@3 f6 ~@7", P: "~@4 c7 b6 a6 g6 a6 g6 e6 d6 e6 d6 c6 b5", Q: "f6@5 e6 d6 c6",
  R: "[d6@6 e6@19 d6 c6 b5 d6 c6 b5 a5@9 ~@8]/3", S: "[e6@5 a5 c6 a5@2 e6@4 d6@3]/2", T: "d6@2 e6@11 d6 c6 b5",
  U: "f6 e6 d6 c6 e6 d6 c6 b5 c6@6 ~@2", V: "f6 e6 d6 c6 e6 d6 c6 b5 c6@7 ~", W: "~@12 f6 ~@3",
  X: "[d6@6 e6@20 d6@2 c6 b5 a5 ~]/2", Y: "f6 e6 d6 c6 e6 d6 c6 b5 c6@8", Z: "[d6@6 e6@23 d6 c6 [a5,b5]]/2",
  AA: "[d6@6 e6@19 d6 c6 b5 a5 ~ g5 ~]/2",
})).s("gm_string_ensemble_1").gain(0.35)

// drums · kick
const kick = s("bd").struct("<~ [x!4]!104 x ~@8>").gain(0.5)

// drums · snare
const snare = s("sd").struct("<~@3 A@25 B A@33 B A@25 B A@15 B ~@9>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@3 x!2 ~ x!2 ~ x!2",
})).gain(0.5)

// drums · clap
const clap = s("cp").struct(`<
  ~@2 A ~@4 B ~ C A ~@8 D E D F D E G ~@2 H I ~ J A ~ K F A L ~@7 D E D E D@2 E M D@3 E D E D E N H ~@2 K O ~ K ~ P D I
  ~ K D I ~ K D Q D R D E D E S T U V S T W S X Y Z@2 X AA AB W@2 T ~@9
>`.pickRestart({
  A: "~@9 x ~ x!2 ~ x!2", B: "~@10 x!2 ~@4", C: "~@9 x ~ x!2 ~@3", D: "~@6 x!2", E: "~@11 x!2 ~@3", F: "~@5 x!2 ~",
  G: "~@4 x ~ x!2", H: "~@8 x!2 ~ x!2 ~ x!2", I: "~@14 x!2", J: "~@6 x!2 ~@8", K: "~@10 x ~ x!2 ~@2", L: "x",
  M: "~@12 x!3 ~", N: "~@3 x", O: "~@9 x ~@2 x ~ x!2", P: "~@10 x ~ x!3 ~", Q: "~@13 x!2 ~", R: "~@12 x ~ x!2",
  S: "~ x ~ x", T: "~@4 x ~@3 x!2 ~ x!2 ~ x!2", U: "~@4 x ~@6 x!2 ~@3", V: "~@4 x ~@5 x ~ x!3 ~",
  W: "~@4 x ~@7 x ~ x!2", X: "~@4 x ~@6 x!2 ~ x ~", Y: "~@4 x ~@4 x ~ x!2 ~@2 x", Z: "~@2 x ~@3 x!2",
  AA: "~@3 x!2 ~ x ~@3 x ~ x ~ x!2", AB: "~@4 x ~@7 x ~@2 x",
})).gain(0.45)

// drums · hihat
const hihat = s("hh").struct("<[~@6 x!10] [x!16]!104 x ~@8>").gain(0.35)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~ A ~@7 A ~@7 A ~@9 A ~@3 A ~@3 A ~@7 A ~@3 A ~@3 A ~@9 A ~@3 A ~@3 A ~@7 A ~@3 A ~@5 A ~@7 A ~@16
>`.pickRestart({
  A: "x",
})).gain(0.35)

// drums · tambourine
const tambourine = s("tb").struct(`<
  [~@8 x!3 ~ x!3 ~]
  [x!3 ~ x!3 ~ x!3 ~ x!3 ~]!42
  [x!3 ~ x ~ x!3 ~ x ~ x!3 ~]
  [x!3 ~ x!3 ~ x!3 ~ x!3 ~]!53
  [x!3 ~ x!3 ~ x!3 ~ x!4]
  [x ~ x!3 ~ x ~ x!3 ~ x!3 ~]
  [x!3 ~ x!3 ~ x!3 ~ x!3 ~]!6
  ~@9
>`).gain(0.25)

// drums · congas
const congas = s("conga:13").struct("<A B@10 ~@8 B@9 C B@8 ~@8 B@60 ~@9>".pickRestart({
  A: "~@5 x ~@2", B: "~ x ~@3 x ~@2", C: "~ x ~@6",
})).gain(1.27)

// drums · congas
const congas_2 = s("conga:18").struct("<A B@10 ~@8 B C B@7 D B@8 ~@8 B@10 C B@6 E B@2 C@3 B@37 ~@9>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@8 x ~@2", D: "~@3 x ~@4", E: "~ x ~@2",
})).gain(1.27)
// … 10 more lines