Strudelify

Bill Bailey

Lewis George

KeyG majorTempo220 bpm
0:00/0:00
// Bill Bailey — Lewis George
// 220 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 99 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(220/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 · acoustic bass · "Bass"
const bass = note(`<
  A B@3 C D E F G@4 F H I@2 B@2 I@2 C J K J K L M N O F I@2 C B@3 C D P Q F H G@3 R I@6 B J S J S L M N O Q B@2 C B@3 C
  D E F@2 H G@3 R B@6 C J K J K T M N O Q C A U V ~
>`.pickRestart({
  A: "g2@5 ~@3 g2@4 ~@4", B: "g2@5 ~@3 d2@5 ~@3", C: "g2@6 ~@2 d3@5 ~@3", D: "g2@5 ~@3 g#2@5 ~@3",
  E: "a1@6 ~@2 e2@5 ~@3", F: "d2@6 ~@2 a2@5 ~@3", G: "d2@5 ~@3 a2@5 ~@3", H: "d3@3 ~ a2 ~ d2 ~", I: "g2@5 ~@3 d3@5 ~@3",
  J: "d2@5 ~@3 g2@5 ~@3", K: "c2@6 ~@2 g2@5 ~@3", L: "c#2@5 ~@2 c#2 e2@4 ~@4", M: "d2@6 ~@2 d3@5 ~@3",
  N: "e2@6 ~@2 b2@5 ~@3", O: "a1@5 ~@3 a1@4 ~@4", P: "a1@5 ~@2 a1 c2@4 ~@4", Q: "d2@5 ~@3 d2@4 ~@4",
  R: "d2 ~@2 d2 e2@3 ~ f2@3 ~ f#2@3 ~", S: "c2@5 ~@3 c2@4 ~@4", T: "c#2@5 ~@3 c#2@4 ~@4", U: "g2@5 ~@3 d3@4 ~@3 d3",
  V: "g3 ~@2 g3 d3@2 ~ g2@5 ~@4",
})).s("gm_acoustic_bass").gain(0.28)

// chords · piano
const piano = note(`<
  A B A C A D E F G H G H F I A C A C A C J K L K L M N O P G A C A B A C A D E F G H G H F I A C A C A C J K L K L M N
  O P G A C A B A C A D E F G H G H F I A C A C A C J K L K L M N O P G A@2 Q R ~
>`.pickRestart({
  A: "g2@4 [e3,g3,b3,d4] ~@3 d2@4 [e3,g3,b3,d4] ~@3", B: "g2@4 [e3,g3,b3,d4] ~@3 d2@4 [f#3,a3,c4,d4] ~@3",
  C: "g2@4 [e3,g3,b3,d4] ~@7 [e3,g3,b3,d4]@2 ~@2, ~@4 d2@3 ~", D: "g2@4 [e3,g3,b3,d4] ~@3 g#2@4 [f3,g#3,b3,d4] ~@3",
  E: "a2@4 [g3,a3,c4,e4] ~@3 e2@4 [g3,a3,c4,e4] ~@3", F: "d2@4 [f#3,a3,c4,d4] ~@3 a2@4 [f#3,a3,c4,d4] ~@3",
  G: "d2@4 [f#3,a3,c4,e4] ~@3 a2@4 [f#3,a3,c4,e4] ~@3", H: "d2@4 [f#3,a3,c4,e4] ~@7 [f#3,a3,c4,e4]@2 ~@2, ~@4 a2@3 ~",
  I: "d2@4 [f#3,a3,c4,d4] ~@7 [f#3,a3,c4,d4]@2 ~@2, ~@4 a2@3 ~", J: "g2@4 [f3,a3,b3,d4] ~@3 d2@4 [f3,a3,b3,d4] ~@3",
  K: "d2@4 [f3,a3,c4,d4] ~@3 g2@4 [f3,a3,b3,d4] ~@3", L: "c2@4 [e3,g3,a3,c4] ~@3 g2@4 [e3,g3,a3,c4] ~@3",
  M: "c#2@4 [e3,g3,a#3,c#4] ~@3 g2@4 [e3,g3,a#3,c#4] ~@3", N: "d2@4 [e3,g3,b3,d4] ~@3 d2@4 [e3,g3,b3,d4] ~@3",
  O: "e2@4 [d3,e3,g#3,b3] ~@3 b1@4 [d3,e3,g#3,b3] ~@3", P: "a2@4 [g3,a3,c#4,e4] ~@3 e2@4 [g3,a3,c#4,e4] ~@3",
  Q: "g2@4 [b2,d3,e3,a3] ~@7 [b2,d3,e3,a3] ~@3, ~@8 d2@7 ~", // Bm7
  R: "[g2,b3,d4,a4] ~@3 d2@2 ~ [g2,b4,d5,a5]@5 ~@4, ~@3 c#2@2 ~@11", // G
})).s("gm_piano").gain(0.25)

// chords · banjo · "Guitar"
const banjo = note(`<
  A B A C D E F G H I J K L I M N A C O P Q R S T U V W X Y Z D AA AB AC M N AD AE F AF G AG AH AI AJ AK M N AL AM AL AM
  AN AO U T AP V AQ AR AS G AT AU M AV M N A AW AX Z AH AI AH AI AJ AY AL AM AZ BA AZ BA BB BC BD BE BF BG BH BI BJ BK
  AB BL BM BN ~
>`.pickRestart({
  A: "[g2,g3,e4,b4]@4 [g2,g3,e4,b4] ~@4 b4@3 [g3,e4,b4] ~@3, ~@2 [g2,g3,e4] ~", // Em C
  B: "[g2,g3,e4,b4]@4 [g2,g3,e4,b4] ~@3 [d3,a3,f#4,c5]@4 [d3,a3,f#4,c5] ~@2 [f#4,c5]", // Em D7 F#dim
  C: "[g2,g3,e4,b4]@4 [g3,e4,b4] ~@3 [g3,e4,b4]@4 [g2,g3,e4,b4] ~@3", // Em
  D: "[g2,g3,e4,b4]@4 [g3,e4,b4] ~@2 [g3,e4] [g2,g3,e4,b4]@4 [g3,e4,b4] ~@2 [g3,b4]", // Em C Em G
  E: "[g2,g3,e4,b4]@4 [g3,e4,b4] ~@2 [g3,e4] [g#2,g#3,f4,b4]@4 [g#3,f4,b4] ~@2 [g#3,f4]", // Em C Fdim C#
  F: "[a2,e3,c4,g4]@2 ~ [c4,g4] [a2,e3,c4,g4]@2 c4 g4 [e3,c4,g4]@2 ~ [c4,g4] [a2,e3,c4,g4]@3 [e3,g4]", // Am7 C5 Am7 C C5 Am7 Em
  G: "[d3,a3,f#4,c5]@4 [d3,a3,f#4,c5] ~@2 [f#4,c5] [d3,a3,f#4,c5]@4 [a3,f#4,c5] ~@2 c5", // D7 F#dim D7 F#dim
  H: "[d3,a3,f#4,c5]@4 [a3,f#4,c5] ~@3 [a3,f#4,c5]@4 [a3,f#4,c5] ~@3", // D7 F#dim
  I: "[d3,a3,f#4,c5]@4 [a3,f#4,c5] ~@3 [d3,a3,f#4,c5]@4 [d3,a3,f#4,c5] ~@3", // D7 F#dim D7
  J: "[d3,a3,f#4,c5]@4 [d3,a3,f#4,c5] ~@2 [f#4,c5] [a3,f#4,c5]@4 [a3,f#4,c5] ~@2 c5", // D7 F#dim
  K: "[a3,f#4,c5]@4 [a3,f#4,c5] ~@2 [f#4,c5] [a3,f#4,c5]@4 [d3,a3,f#4,c5] ~@2 [f#4,c5]", // F#dim D7 F#dim
  L: "[d3,a3,f#4,c5]@4 [a3,f#4,c5] ~@4 c5@3 [a3,f#4,c5] ~@3, ~@2 [a3,f#4] ~", // D7 F#dim D
  M: "[g2,g3,e4,b4]@4 [g2,g3,e4,b4] ~@3 [g2,g3,e4,b4]@4 [g2,g3,e4,b4]@2 ~ g4", // Em
  N: "[e4,b4]@4 [g2,g3,e4,b4]@2 ~@2 [g2,g3,e4,b4]@3 g4 [g2,g3,e4,b4] ~@2 g4", // E5 Em
  O: "[g2,g3,e4,b4]@4 [g3,e4,b4] ~@4 b4@3 [g3,e4,b4] ~@3, ~@2 [g3,e4] ~", // Em C
  P: "[g2,g3,e4,b4]@4 [g3,e4,b4] ~@3 [g2,g3,e4,b4]@4 [g2,g3,e4,b4] ~@3", // Em
  Q: "[g2,a3,f4,b4]@4 [a3,f4,b4] ~@4 b4@3 [a3,f4,b4] ~@3, ~@2 [a3,f4] ~", // G7 Bm7b5 Dm
  R: "[d3,a3,f4,c5]@4 [a3,f4,c5] ~@2 [a3,f4] [g2,a3,f4,b4]@4 [a3,f4,b4] ~@3", // Dm7 F Dm G7 Bm7b5
  S: "[c3,g3,e4,a4]@4 [c3,g3,e4,a4] ~@2 [e4,a4] [g3,e4,a4]@4 [g3,e4,a4] ~@2 a4", // Am7 A5 A7
  T: "[d3,a3,f4,c5]@4 [d3,a3,f4,c5] ~@3 [g2,a3,f4,b4]@4 [g2,a3,f4,b4] ~@3", // Dm7 G7
  U: "[g3,e4,a4]@3 [g3,e4,a4] [g3,a4] e4 [g3,e4,a4]@2 [g3,a4] ~ [g3,a4] ~ [g3,e4,a4]@2 [g3,e4,a4] ~", // A7 Gsus2 A7 Gsus2 A7
  V: "[c#3,g3,e4,a#4]@2 ~ [e4,a#4] [c#3,g3,e4,a#4]@2 e4 a#4 [g3,e4,a#4]@2 ~ [e4,a#4] [c#3,g3,e4,a#4]@3 [g3,a#4]", // C#dim Edim C#dim Edim C#dim Gm
  W: "[d2,g3,e4,b4]@4 [d2,g3,e4,b4] ~@3 [d2,g3,e4,b4]@4 [d2,g3,e4,b4]@2 ~ g4", // Em7
  X: "[e3,d4,g#4]@3 [e3,d4,g#4] [e3,g#4] d4 [e3,d4,g#4]@2 [e3,g#4] ~ [e3,g#4] ~ [e3,d4,g#4]@2 [e3,d4,g#4] ~", // E7 E E7 E E7
  Y: "~ g4@2 [e3,c#4] g4 c#4 [e3,g4] ~ [e3,c#4,g4]@2 [e3,c#4,g4] ~ [c#4,g4] ~ [e3,c#4,g4] ~, [a2,e3,c#4]@3 ~@9 e3@2 ~@2", // C#m Em C#dim A
  Z: "[d3,a3,f#4,c5]@2 ~ [f#4,c5] [d3,a3,f#4,c5]@2 f#4 c5 [a3,f#4,c5]@2 ~ [f#4,c5] [d3,a3,f#4,c5]@3 [a3,c5]", // D7 F#dim D7 F#dim D7 Am
  AA: "[e4,b4]!2 ~ [g3,b4] [g3,e4,b4] ~@2 [g3,e4,b4] [g2,g3,e4,b4]@2 e4 b4 [g3,e4,b4] ~@2 b4, [g2,g3] ~@7", // E5 G Em G
  AB: "[g2,e4]@2 [g3,e4,b4] b4 [g3,e4,b4] ~@2 [g3,b4] [g3,e4,b4]@2 [g3,b4] e4 [g3,e4,b4] ~@3, [g3,b4] ~@15", // C Em G Em G Em G
  AC: "[g2,g3,e4,b4]@4 [g2,g3,e4,b4] ~@3 [d3,a3,f#4,c5]@4 [a3,f#4,c5] ~@2 [a3,f#4]", // Em D7 F#dim D
  AD: "~ b4@2 [g3,e4] b4 e4 [g3,b4] ~ [g3,e4,b4]@2 [g3,e4,b4] ~ [e4,b4] ~ [g3,e4,b4] ~, [g2,g3,e4]@3 ~@9 g3@2 ~@2", // C G Em E5 Em C
  AE: "[g2,g3,e4,b4]@4 [g2,g3,e4,b4] ~@2 [e4,b4] [g#2,g#3,f4,b4]@2 ~ [f4,b4] [g#2,g#3,f4,b4]@2 f4 b4", // Em E5 Fdim
  AF: "[a3,f#4,c5]@3 [a3,f#4,c5] [a3,c5] f#4 [a3,f#4,c5]@2 [a3,c5] ~ [a3,c5] ~ [a3,f#4,c5]@2 [a3,f#4,c5] ~", // F#dim Am F#dim Am F#dim
  AG: "[a3,f#4,c5]@4 [a3,f#4,c5] ~@2 [a3,f#4,c5] [d3,a3,f#4,c5]@4 [d3,a3,f#4,c5] ~@2 [f#4,c5]", // F#dim D7 F#dim
  AH: "[d3,a3,f#4,c5]@4 [d3,a3,f#4,c5] ~@3 [d3,a3,f#4,c5]@4 [d3,a3,f#4,c5]@2 ~ a4", // D7
  AI: "[f#4,c5]@4 [d3,a3,f#4,c5]@2 ~@2 [d3,a3,f#4,c5]@3 a4 [d3,a3,f#4,c5] ~@2 a4", // F#dim D7
  AJ: "[d3,a3,f#4,c5]@4 [a3,f#4,c5] ~@2 [a3,f#4] [d3,a3,f#4,c5]@4 [a3,f#4,c5] ~@2 [a3,c5]", // D7 F#dim D D7 F#dim Am
  AK: "[f#4,c5]!2 ~ [a3,c5] [a3,f#4,c5] ~@2 [a3,f#4,c5] [d3,a3,f#4,c5]@2 f#4 c5 [a3,f#4,c5] ~@2 c5, [d3,a3] ~@7", // F#dim Am F#dim D7 F#dim D5
  AL: "[g2,g3,e4,b4]@2 ~ [e4,b4] [g2,g3,e4,b4]@2 e4 b4 [g3,e4,b4]@2 ~ [e4,b4] [g2,g3,e4,b4]@3 [g3,b4]", // Em E5 Em E5 Em G
  AM: "[g2,g3,e4,b4]@3 b4 [g2,g3,e4,b4]@2 ~ [e4,b4] [g2,g3,e4,b4]@3 [e4,b4] [g2,g3,e4,b4]@3 [g3,e4,b4]", // Em E5 Em E5 Em
  AN: "[g2,a3,f4,b4]@4 [g2,a3,f4,b4] ~@3 [g2,a3,f4,b4]@4 [g2,a3,f4,b4]@2 ~ a4", // G7
  AO: "[d3,a3,f4,c5]@4 [a3,f4,c5] ~@2 [a3,f4] [g2,a3,f4,b4]@4 [a3,f4,b4] ~@2 [a3,f4]", // Dm7 F Dm G7 Bm7b5 Dm
  AP: "[c3,g3,e4,a4]@4 [g3,e4,a4] ~@2 [g3,e4] [c3,g3,e4,a4]@4 [g3,e4,a4] ~@2 [g3,a4]", // Am7 A7 C Am7 A7 Gsus2
  AQ: "[d2,g3,e4,b4]@4 [g3,e4,b4] ~@2 [g3,e4] [d2,g3,e4,b4]@4 [g3,e4,b4] ~@2 [g3,b4]", // Em7 Em C Em7 Em G
  AR: "[e2,e3,d4,g#4]@4 [e2,e3,d4,g#4] ~@2 [d4,g#4] [e2,e3,d4,g#4]@4 [e3,d4,g#4] ~@2 g#4", // E7 Ddim E7
  AS: "[a2,e3,c#4,g4]@4 [a2,e3,c#4,g4] ~@3 [a2,e3,c#4,g4]@4 [a2,e3,c#4,g4]@2 ~ e4", // A7
  AT: "[g2,g3,e4,b4]@4 [g2,g3,e4,b4] ~@2 [e4,b4] [g2,g3,e4,b4]@4 [g3,e4,b4] ~@2 b4", // Em E5 Em
  AU: "[g3,e4,b4]@4 [g3,e4,b4] ~@2 [g3,e4,b4] [g2,g3,e4,b4]@4 [g2,g3,e4,b4] ~@2 [e4,b4]", // Em E5
  AV: "[g2,g3,e4,b4]@4 [g3,e4,b4] ~@2 [g3,e4] [d3,a3,f#4,c5]@4 [a3,f#4,c5] ~@2 [a3,f#4]", // Em C D7 F#dim D
  AW: "[g2,g3,e4,b4]@4 [g2,g3,e4,b4] ~@3 [g#2,g#3,f4,b4]@4 [g#3,f4,b4] ~@2 [g#3,f4]", // Em Fdim C#
  AX: "[a2,e3,c4,g4]@4 [a2,e3,c4,g4] ~@3 [a2,e3,c4,g4]@4 [a2,e3,c4,g4]@2 ~ e4", // Am7
  AY: "[f#4,c5]!2 ~ [a3,c5] [a3,f#4,c5] ~@2 [a3,c5] [d3,a3,f#4,c5]@3 c5 [a3,f#4,c5] ~@2 c5, a3 ~@7", // F#dim Am F#dim Am D7 F#dim
  AZ: "[g2,g3,e4,b4]@4 [g2,g3,e4,b4] ~@2 [e4,b4] [g3,e4,b4]@4 [g3,e4,b4] ~@2 b4", // Em E5 Em
  BA: "[g3,e4,b4]@4 [g3,e4,b4] ~@2 [e4,b4] [g3,e4,b4]@4 [g2,g3,e4,b4] ~@2 [e4,b4]", // Em E5 Em E5
  BB: "[g2,a3,f4,b4]@4 [g2,a3,f4,b4] ~@4 b4@3 [a3,f4,b4] ~@3, ~@2 [g2,a3,f4] ~", // G7 Bm7b5 Dm
  BC: "[d3,a3,f4,c5]@4 [d3,a3,f4,c5] ~@2 [f4,c5] [g2,a3,f4,b4]@4 [a3,f4,b4] ~@3", // Dm7 F5 G7 Bm7b5
  BD: "[c3,g3,e4,a4]@4 [c3,g3,e4,a4] ~@4 a4@3 [g3,e4,a4] ~@3, ~@2 [c3,g3,e4] ~", // Am7 A7 C
  BE: "[d3,a3,f4,c5]@4 [a3,f4,c5] ~@3 [g2,a3,f4,b4]@4 [g2,a3,f4,b4] ~@2 [f4,b4]", // Dm7 F G7 Fdim
  BF: "[c3,g3,e4,a4]@4 [c3,g3,e4,a4] ~@2 [e4,a4] [c3,g3,e4,a4]@4 [g3,e4,a4] ~@2 a4", // Am7 A5 Am7 A7
  BG: "~ a#4@2 [g3,e4] a#4 e4 [g3,a#4] ~ [g3,e4,a#4]@2 [g3,e4,a#4] ~ [e4,a#4] ~ [g3,e4,a#4] ~, [c#3,g3,e4]@3 ~@9 g3@2 ~@2", // C Gm Edim C#dim
  BH: "[d2,g3,e4,b4]@4 [d2,g3,e4,b4] ~@2 [e4,b4] [d2,g3,e4,b4]@4 [g3,e4,b4] ~@2 b4", // Em7 E5 Em7 Em
  BI: "[e2,d4]@2 [e3,d4,g#4] g#4 [e3,d4,g#4] ~@2 [e3,g#4] [e3,d4,g#4]@2 [e3,g#4] d4 [e3,d4,g#4] ~@3, [e3,g#4] ~@15", // E7 E E7 E E7 E
  BJ: "[e3,c#4,g4]@3 [e3,c#4,g4] [e3,g4] c#4 [e3,c#4,g4]@2 [e3,g4] ~ [e3,g4] ~ [e3,c#4,g4]@2 [e3,c#4,g4] ~", // C#dim Em C#dim Em C#dim
  BK: "[d3,f#4]@2 [a3,f#4,c5] c5 [a3,f#4,c5] ~@2 [a3,c5] [a3,f#4,c5]@2 [a3,c5] f#4 [a3,f#4,c5] ~@3, [a3,c5] ~@15", // D F#dim Am F#dim Am F#dim Am
  BL: "[g3,e4,b4]@3 [g3,e4,b4]!2 ~ [g3,e4,b4]@2 [g3,b4] ~ [g3,b4] ~ [g3,e4,b4]@2 [g3,e4,b4] ~", // Em G Em
  BM: "[b3,e4]@4 [g2,d3,b3,e4] ~@3 [d3,b3,e4]@4 [g2,d3,b3,e4] ~@3", BN: "[g2,d3,b3,e4]@2 ~ c#4 d4@2 ~ a4@6 ~@3",
})).s("gm_banjo").gain(0.1)

// chords · banjo · "Guitar" · soft notes
const banjo_soft = note(`<
  A ~ A B C D E F G H I J G H ~ K A B L M L N O ~ P Q ~ R S T C U V W ~ K X Y E Z F AA ~ AB AC AD ~ K AE AF AE AF ~ AG P
  ~ AH Q C AI ~ F AJ AK ~ AL ~ K A AM ~ T ~ AB ~ AB AC AN AE AF AO AP AO AP A@2 AQ H AR AS AT AU AV AW V AX AY ~@2
>`.pickRestart({
  A: "~@12 g2 ~@3", B: "~@4 g2 ~@3 g2@4 ~@4", C: "~@7 b4 ~@7 e4", D: "~@7 b4 ~@7 b4",
  E: "~@3 [a2,e3] ~@2 e3 ~ a2@2 ~ e3 ~@4", F: "~@12 d3 ~@2 f#4", G: "~@4 d3 ~@3 d3@4 d3 ~@3", H: "~@4 d3 ~@11",
  I: "~@8 d3@4 d3 ~@2 f#4", J: "d3@4 ~@3 a3 d3@4 ~@3 a3", K: "[g2,g3] ~@3", L: "~@4 g2 ~@3 g2@4 g2 ~@3",
  M: "~@4 g2 ~@11", N: "~@7 c5 ~@4 g2 ~@3", O: "~@8 c3@4 c3 ~@2 e4", P: "c3@3 ~@5 e4 ~ e4 ~@5",
  Q: "~@3 [c#3,g3] ~@2 g3 ~ c#3@2 ~ g3 ~@4", R: "e2@3 ~@5 d4 ~ d4 ~@5", S: "~@3 g4 e3 ~ c#4@2 ~@8",
  T: "~@3 [d3,a3] ~@2 a3 ~ d3@2 ~ a3 ~@4", U: "~@2 g3 e4 ~@11 [g3,e4]", V: "~@3 [g3,e4] ~@2 e4 ~@9", W: "~@15 c5",
  X: "~@3 b4 g3 ~ e4@2 ~@8", Y: "~@11 [g#2,g#3] ~@2 g#3 ~", Z: "d3@3 ~@5 f#4 ~ f#4 ~@5", AA: "d3@4 ~@11 a3",
  AB: "[d3,a3] ~@3", AC: "~@7 c5 ~@7 f#4", AD: "~@2 a3 f#4 ~@11 [a3,f#4]", AE: "~@3 [g2,g3] ~@2 g3 ~ g2@2 ~ g3 ~@4",
  AF: "~@3 g3 ~@3 g3 ~@3 g3 ~@4", AG: "~@7 c5 ~@7 b4", AH: "~@7 a4 ~@7 e4", AI: "~@12 e2 ~@2 d4", AJ: "~@12 g2 ~@2 e4",
  AK: "g2@4 ~@11 g3", AL: "~@7 b4 ~@7 c5", AM: "~@15 b4", AN: "d3@2 a3 f#4 ~@3 f#4 ~@2 f#4 ~@4 [a3,f#4]",
  AO: "~@8 g2@4 g2 ~@2 e4", AP: "g2@4 ~@3 g3 g2@4 ~@3 g3", AQ: "~@12 c3 ~@3", AR: "~@12 c3 ~@2 e4",
  AS: "~@3 a#4 g3 ~ e4@2 ~@8", AT: "~@12 d2 ~@2 e4", AU: "~@3 [e3,d4] ~@2 d4 ~@9", AV: "a2@3 ~@5 c#4 ~ c#4 ~@5",
  AW: "~@3 [a3,f#4] ~@2 f#4 ~@9", AX: "g2@3 ~@5 e4 ~ e4 ~@5", AY: "[g2,d3] ~ g2 ~",
})).s("gm_banjo").gain(0.05)

// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note(`<
  A B C D E F G@2 H I J K L M N O P Q R S T U@3 V W X Y Z AA AB@2 AC AD@2 AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU AV AW AX@2 AY AZ BA BB BC BD BE@2 BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV Q BW BX BY BZ CA@2 CB CC CD
  CE CF CG CH CI CJ CK@2
>`.pickRestart({
  A: "[f#3,a3,d4]@3 ~ [f#3,e4]@2 ~@5 [b3,e4,g4] ~@4", B: "[e4,g4,b4]@3 ~ [d#4,a#4]@4 [e4,b4]@4 ~ d5@2 ~, ~@6 e4 ~",
  C: "~@2 d4@3 ~@3 [d3,e4] ~@3 g4@2 ~@2", D: "[e4,b4]@9 ~@7", E: "~@2 [e4,g4,d5]@2 ~@4 g4@4 e4 ~@3, ~@7 e4@5 ~@4",
  F: "[g4,c#5] ~@7 [e4,b4]@3 ~@5, e4 ~, d5@3 ~@5", G: "[[c4,e4,f#4,d5]@2 ~@6 [c4,e4,g4]@2 ~@4 [c4,e4,f#4]@13 ~@5]/2",
  H: "[d4,d#4] [e4,f4] ~@2 c#5 ~@6 [f#4,a4]@2 ~@3, ~ f#4@4 ~@3, ~@4 d5@9 ~@3", // D#maj7 Fmaj7 F#m
  I: "e4@3 ~@4 [d4,b4]@3 ~@3 a4@3, ~@11 c4@4 ~", J: "~@2 d5@2 ~ e4 c5 ~, ~@4 c#5 ~@11", K: "b4@2 ~@6 [c4,a4]@3 ~@5",
  L: "d4@4 ~ d5@4 ~@2 f#4@5", M: "e5@8 ~ d5@3 ~@4, ~@4 f#4 ~@3", N: "b4@3 ~ d5 ~ c5 ~ b4@2 a4 ~ a4@2 g4 ~",
  O: "f#4 ~@2 f#4@2 g4 ~@2 f#4@2 ~@6", P: "a3@3 ~ e4@4 ~@2 g4@3 ~@3", Q: "b4@3 ~ a#4@4 b4@3 ~ d5@4",
  R: "~@2 d4@5 ~ e4@3 ~ g4@4", S: "b4@10 ~@2 b4@2 [c5,c#5] ~", T: "d5@2 ~@2 b4@2 c5 c#5 d5@3 ~ b4 ~ c5 ~",
  U: "[d5@8 ~ d5@4 ~ c5@10 ~@7 f#4@2 e4@2 d4@3 ~@2 g3@3 ~@5]/3", V: "a3 ~ e4@2 ~@4 g4@5 ~@3, ~@3 a3@3 ~@2",
  W: "~@2 [e4,g4] ~@3 a3 ~ [e4,g4]@5 ~@3, a#3 ~@3", X: "~@2 [e4,g4]@2 ~@2 a#3 ~ [e4,g4]@4 ~@4", Y: "[c#4,e4,g#4]@9 ~@7",
  Z: "[c#4,g4,a4]@2 ~@5 c#4@5 ~@4, ~@6 [g4,a4]@5 ~@5", AA: "[b3,f#4,b4]@2 ~@5 [b3,f#4,b4]@6 ~@3",
  AB: "[[b3,g4]@4 ~@4 [c4,g4]@4 ~@3 [b3,d4,g4]@9 ~@3 d4 e4@4]/2", AC: "d4@4 ~ e4@5 g4@5 ~",
  AD: "[b4@4 a#4@4 b4@4 d5@9 ~ d#4 ~ e4@4 g4@4]/2", AE: "b4@12 b4 c5 c#5@2", AF: "d5@8 d5@3 ~ b4@3 ~",
  AG: "d5@7 ~ b4@2 d5 ~@5", AH: "d5 ~ b4 ~ a4 ~ f#4 ~ e4@2 d4 ~ b3@2 ~@2", AI: "d4@4 b3@2 d4@7 ~@3",
  AJ: "d4 [d#4,e4,f4] f#4@2 d5@2 ~@4 c5@2 ~@4", AK: "b4@2 ~@4 a#4@3 ~ c4@4 ~@2", AL: "f#4 d5 ~ e4 c5 ~@2 b4, f4 ~@15",
  AM: "~@2 c#4 ~ a#4@3 ~ [c4,a4]@3 ~@3 d4 [f#4,a#4]", AN: "d5@3 ~ d5@3 ~ d5@4 d5@4", AO: "e5@7 ~ d5@3 c#5 ~@4",
  AP: "b4@3 ~ d5@2 c#5 ~ b4@3 ~ a4@4", AQ: "~ g4@2 ~@5 b3@2 ~ a3 g3@2 ~@2", AR: "a3 b3 ~@3 g4 ~@2",
  AS: "b4@3 ~ a#4@4 b4@4 d5@4", AT: "~@2 b3 [c4,c#4] d4@4 e4@3 ~ g4@4", AU: "b4@7 ~@3 f#4 b4@5", AV: "d5@2 d5 b4",
  AW: "d5@7 ~ d5@4 ~@4",
  AX: "[[a#3,d4,e4,c5]@2 ~@7 [f#3,b3,d#4,g#4]@2 ~@4 [e3,a#3,d4,g4]@3 [d#3,a3] g#3 g3 f#3 ~@10, ~@4 b2 ~@11]/2", // C7 G#m7 Em7b5 D#dim
  AY: "[a3,e4,g4]@3 ~", AZ: "[a#3,e4,g4]@3 ~", BA: "[b3,e4]@11 ~@5", BB: "[c#4,e4,g#4]@3 ~",
  BC: "[c#4,g4]@7 ~ [c#4,g4]@4 ~@4, a4@13 ~@3", BD: "[c4,b4]@8 ~ f#4@4 ~@3, f#4@7 ~ c4@4 ~@4",
  BE: "[[b3,d4,g4]@4 ~@4 [c4,d4,g4]@4 ~@2 [b3,d4,g4]@4 f#4 ~@13]/2", BF: "[e3,b3,d4]@3 ~ [e3,e4]@2 ~@4 [d#4,g4]@5 ~",
  BG: "g4 a4@2 ~@5 [g4,b4]@4 [e4,d5]@4", BH: "~@2 [f#3,d4]@4 ~@2 e4@2 ~@2 g4@3 ~", BI: "[f#4,a#4] ~@15, g4@5 ~@11",
  BJ: "~@2 [e4,g4,d5]@3 ~@3 g4@6 ~@2, ~@6 e4@5 ~@5, ~@2 d5 ~", BK: "[e4,g4,d5]@8 ~ e4@2 ~@5, ~@4 [g4,b4] ~@3",
  BL: "[f3,e4,a4] ~@3 [g3,c#4,f4] ~@2 [f#3,c4,e4]", BM: "~ [f3,b3] e3 [a3,a#3] g#3 ~@11",
  BN: "a#3 [b3,c4] c#4 ~@2 d5@9 ~@2, ~@3 d4@8 ~@5", BO: "~@2 c5@2 ~@2 d3 ~ b4@3 ~ a4@2 ~@2", BP: "d4 ~ d5@3 ~ c5@2",
  BQ: "b4@3 ~ a#4 ~@3 [c#4,a4]@3 ~@4 f#4", BR: "d5@3 ~ d5@2 ~@2 d5@3 ~ d5@2 ~@2, b4 ~@15",
  BS: "e5@7 ~ d5 e5 ~ d5@2 ~@3", BT: "b4@3 ~ d5 ~ b4@2 ~@2 g4 ~ f#4@2 ~@2",
  BU: "f#4@2 g4 f#4@2 ~ e4 ~ d4@2 c4 ~ b3@3 ~", BV: "a3@4 b3@3 ~@4 g4@2 ~@3", BW: "~@2 c4 c#4 d4@4 e4@3 ~ g4@3 ~",
  BX: "b4@9 ~@3 b4 c5 c#5@2", BY: "d5@3 ~ b4 c5 c#5 ~ d5@3 ~ b4@2 [c5,c#5] ~", BZ: "d5@8 d5@7 ~", CA: "[c5@19 ~@13]/2",
  CB: "a3 ~ [e4,g4]@2 ~@4 [e4,g4]@4 ~@4, ~@7 a3@6 ~@3", CC: "~ [e4,g4] ~@2 [e4,g4]@2 ~@2, a#3@2 ~ a#3@3 ~@2",
  CD: "[f#4,g4]@2 ~@5 [b3,e4,g4]@3 ~@6", CE: "[c#4,e4,g#4]@11 ~@5", CF: "[c#4,g4,a4] ~@2 [c#4,g4]@3 ~@2",
  CG: "[c4,f#4,b4]@3 ~@4 [c4,f#4]@5 ~@4", CH: "[d4,g4] ~@3 [g3,d4,g4]@2 ~@2", CI: "~ g4@3 ~@12, [g3,d4] ~@7",
  CJ: "g4 f#4 ~@2 d4 c#4 ~@2 a#3 a3 ~ f3 ~ e3@2 ~",
  CK: "[d3@2 ~@2 f3 [d3,d#3,e3] [b2,c3,c#3] [g#2,a2,a#2] g2@20 ~@4]/2",
})).s("gm_acoustic_guitar_steel").gain(0.51)

// chords · acoustic guitar steel · "Guitar" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A B C D E F ~@4 G H ~ I J K ~@4 L ~ M N O P Q ~@2 R S ~@6 T ~@3 U ~ V ~ W X Y Z ~@2 AA ~@2 AB AC ~@2 AD ~@4 AE AF AG
  AH AI AJ ~ AK AL ~@2 AM AN ~@2 AO ~@11 AP ~@4 AQ AR ~@2
>`.pickRestart({
  A: "~@5 c4 ~@6 d#4 ~@3, ~@2 b3 ~@5", B: "~@4 f#4@4 g4@4 ~ a4@2 ~", C: "~@2 b3@3 ~@3 b3 ~@4 c4@2 ~, ~@6 d#4 ~",
  D: "g4@9 ~@7", E: "~@12 d#4 ~@3", F: "~@8 g4@3 ~@5", G: "e4@2 ~@13 d4", H: "~@2 a#4 ~@5, ~@3 c#4@3 ~@10", I: "f#4 ~",
  J: "~@15 f#4", K: "~@9 e4@2 d4@5", L: "~@15 c#5", M: "~@12 c5 ~ a4@2", N: "~@3 c4 ~@4", O: "~@8 e4@5 ~@3",
  P: "~@7 a#3@5 ~@4", Q: "a#3@3 ~@4 b3@5 ~@4, a3 ~@15", R: "~@13 e2 ~@2", S: "d4 ~@3", T: "~@10 b4@3 ~@3",
  U: "~@11 a4@3 ~@2, ~@11 g#4 ~@4", V: "~@12 a3 ~@3", W: "~@12 c5 b4@2 ~", X: "~@7 c5 ~@8",
  Y: "~@4 e4@2 d4 ~@9, ~@3 f#4@2 ~@11", Z: "~@4 f#4@5 ~@7", AA: "~@10 d#4 ~@5", AB: "~@8 g#4@2 ~ [e3,f3] ~@4",
  AC: "~@2 [c#4,f#4] [d3,c4,f4] [b3,e4] [a#3,d#4] [f3,a3] e3 ~@8", AD: "g4@11 ~@5",
  AE: "~@2 a#3 [a3,c#4] f4 [d#4,e4] ~@10", AF: "~@2 b3 ~@5", AG: "e4@3 g4 d#4@2 ~@2 d#4 e4@3 g#4@4",
  AH: "~@8 b3@2 ~@2 [c4,d#4]@3 ~", AI: "~ b3@4 ~ [a4,a#4] [g4,g#4] f#4 ~@7, b4@5 ~@11", AJ: "~@12 d#4 e4@3",
  AK: "c4 ~@3 a#4 ~@2 a4", AL: "~@2 [d#4,g#4] [d#3,c#4,d4,f#4,g4] [d3,c4,f4] [f#3,g3,b3,e4] [f3,a3,a#3] e3 ~@8",
  AM: "~@11 c4 ~@4", AN: "d#4@3 ~ [d4,f4] [f#4,b4]@2 [d#4,f4] ~@7 d4", AO: "~@4 a4 ~@2 e4", AP: "[b3,e4]@2 ~@7 f#4 ~@6",
  AQ: "b3 ~@7", AR: "~@6 b3 ~@9",
})).s("gm_acoustic_guitar_steel").gain(0.23)

// drums · kick
const kick = s("bd").struct("<A@5 B@3 A@5 B@3 A@7 B@20 A B@7 A B@12 A@5 B@3 A@5 B@3 A@7 B@9 C D ~>".pickRestart({
  A: "x!2", B: "x", C: "x!4", D: "x ~@3 x ~@2 x ~@8",
})).gain(0.35)
// … 56 more lines