Strudelify

Be Bob A-Lula

Gene Vincent

KeyE majorTempo127 bpm
0:00/0:00
// Be Bob A-Lula — Gene Vincent
// 127 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 83 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(127/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 · electric guitar muted · "MCPI"
const electric_guitar_muted = note(`<
  ~@4 A ~ B@2 C ~ D ~@12 E F G H I ~ J K L@3 M N O P Q R S T U V@2 W@2 X ~@2 Y@3 Z AA AB AC@2 AD AE AF@5 AG AH AI AJ AK
  ~@3 AL AM AN AO AP AQ AR ~ AS@2
>`.pickRestart({
  A: "~@14 b2@8 ~@3 e2@7", B: "[~@17 b2@8 ~@3 a2@8 ~@28]/2", C: "~@19 e3@8 ~@5", D: "~@5 f#3@2 ~",
  E: "~@7 g5@4 ~@4 f#5@5 ~@2 e5@3 ~@5 [g4,c#5,g5]@2, ~@3 c#5@2 ~@2 c#5@3 ~@6", // Gdim
  F: "~@7 f#5@4 e5 ~@2 [c#5,f#5]@7 ~ e5@3 ~@7, ~@3 c#5@2 ~@11", // F#5
  G: "~@5 [g#4,d5]@4 ~@5 c#5@5 ~@2 g#4@4 ~@5 e5@2, ~@13 g#4@5 ~@14", H: "~@6 d5@4 ~@4 c#5@7 ~@11",
  I: "~@5 d5@5 ~@4 c#5@6 ~@12", J: "~@13 c5@7 e5@2 ~@7 d#5@3",
  K: "~@2 b4@2 c#5@4 ~@2 e5@3 ~@5 b4@2 ~ c#5@4 ~ e5 ~@2 g5@3",
  L: "[~@2 f#5@4 ~ g5@4 ~@2 f#5@4 ~ g5@4 ~ f#5@4 ~ g5@2 ~ e5@2 f#5@2 ~ e5@3 c#5@2 ~@3 a4@2 b4@2 ~ b4@2 ~ b4@2 c#5@2 ~ b4@2 ~ e5@3 g5@8 ~@2 e5@2 ~@2 c#5@4 b4@3 ~@5 b4@2 ~@5, ~@41 b4@5 ~@50]/3",
  M: "~ [b4,e5]@9 ~@2 [b4,e5]@7 ~ [b4,e5]@5 ~@3 e5@3 ~, ~@27 c#5@4 ~", // E5
  N: "~@4 e5@3 ~@5 f#5@4 [c#5,e5]@2 ~@6 [c#5,e5]@7 ~, ~@3 c#5@3 ~@5 c#5@4 ~@17", // C#m
  O: "[c#5,e5]@2 ~ c#5@5 ~ e5@2 ~@5 b4@3 c#5@5 e5@2 ~ f#5@5, ~@3 f#5@3 ~@2 c#5@3 ~@21", // C#m
  P: "~@2 f#5@4 ~@2 e5@2 ~ c#5@7 c#5@4 ~@2 b4@2 ~ f#4@5", Q: "~@2 f#4@4 ~ e4@8 ~ g#4@5 b4 ~ c#5@2 ~ d5@6",
  R: "~@2 d5@7 ~ c#5@4 ~ b4@2 ~ c#5@2 e5 ~@2 f#5 ~@2 [c#5,g5]@4 ~@2", // C#dim
  S: "~@2 [c#5,f#5]@3 ~@5 e5@4 ~ e5 ~ c#5@5 ~ [b4,e5]@7 b4@2, ~@9 b4@4 ~@9 g#4@7 ~@3", // F#5 E5
  T: "~@2 e5@5 ~@3 e5@5 ~@2 [d5,e5]@5 ~@4 e5@5 ~, ~ d5@4 ~@4 c#5@5 ~@11 c#5@5 ~@2", // Dsus2
  U: "~@2 e5@5 ~@2 [c#5,e5]@5 ~ d3@10 e2@3 ~@4, ~ d5@4 ~@27", V: "~@14 d3@10 ~ e2@3 ~@4", W: "~@14 d3@10 e2@3 ~@5",
  X: "~@13 d3@10 ~ e2@3 ~@5",
  Y: "[~@30 [c#4,g4]@5 e4 ~@2 [c#4,f#4]@6 ~@2 e4@3 ~@5 g4@4 ~@4 g4@4 ~ e4 ~@2 f#4@7 [c#4,e4]@2 ~@13 g4@4, ~@53 c#4@5 ~@3 c#4@4 ~@4 c#4@7 ~@20]/3", // C#dim F#5 C#m
  Z: "~@4 f#4@6 ~ e4@3 ~@6 f#4@2 ~@6 f#4@4", AA: "~ e4@2 c#4@7 ~ e4@2 ~@14 a4@4 ~",
  AB: "~@3 g#4@4 ~@4 f#4@2 ~@6 [c#4,g4]@4 ~@3 [c#4,f#4]@6, ~@3 d#4@11 ~@18", // C#dim F#5
  AC: "[~@2 c#4@8 e4@2 ~@6 [b3,e4]@2 ~ [b3,e4]@2 b3@2 ~ [b3,e4]@2 ~ b3@2 [b3,e4]@2 ~ b3@2 b3@2 ~ b3@2 [b3,e4]@2 ~ b3@2 b3@2 ~ b3@4 ~ b3@3 [b3,e4]@5 b3@2, e4@10 ~@24 e4@5 ~@25]/2", // E5
  AD: "~ [b3,e4]@6 b3@2 b3@5 b3 ~@9 b4@5 ~@3", AE: "~ b4@14 b4@7 ~ g4@5 ~ e4@3, ~@23 c5@3 ~@6",
  AF: "[~@5 e3@10 e2@5 ~@15 b4@3 b3@4 ~@4 b4@4 ~ b4@2 ~@14 b4@3 ~@16 g5@7 f#5@5 ~@11 e5@12 ~ [b4,e5]@7 b4@2 ~ c#5@4 ~ e5 ~@2 [c#5,g5]@4 ~@4 [c#5,f#5]@4 ~ c5 ~ [b4,e5]@5, ~@11 b3@6 ~@63, ~@23 e5@15 ~@8 e5@12 ~ e5@15 ~@11 c#5@6 ~@69]/5", // E5 C#dim F#5 E5
  AG: "e5 ~@2 [g#4,c#5]@3 ~@5 [b4,e5]@4 ~ b4@2 ~ c#5@3 ~@2 [b4,e5]@7 ~, ~@24 [a#4,d#5] ~@7", // C#5 E5 D#5
  AH: "b4@2 ~ c#5@5 ~@3 c#5@5 ~@2 c#5@4 ~ b4@2 ~ c#5@4 ~ b4",
  AI: "~@7 [c#5,g5]@7 ~@8 e5 ~@2 f#5@3 ~@2 [b4,e5]@2, ~@17 f#5@4 ~@11, ~@9 c#5@4 ~@3", // C#dim E5
  AJ: "~@9 [g#4,b4]@3 [g#4,b4]@2 [g4,a#4]@5 a#4@2 ~ [g#4,b4]@2 [g4,a#4] [g#4,b4]@2 b4@2 ~ a#4@2", // G#m Gm G#m Gm G#m
  AK: "b4@2 ~ b4@2 ~@3 b4@2 b4@3 ~@3 b4@2 b4@3 ~@11", AL: "~@5 e4@21 ~@6", AM: "~@3 g4 ~@4", AN: "~@4 g4@5 ~@23",
  AO: "~@11 e5@21", AP: "~@3 d5@7 ~@13 e5@8 ~", AQ: "~@17 c#5@8 ~@7", AR: "~ b4@6 ~@25",
  AS: "[~@21 [b4,e5]@17 ~@26, ~@5 [d4,g#4]@4 ~@7]/2", // E5 Ddim
})).s("gm_electric_guitar_muted").gain(0.66)

// chords · electric guitar muted · "MCPI" · soft notes
const electric_guitar_muted_2 = note(`<
  ~@4 A ~ B ~ C@2 D@2 E ~@10 F G H@2 I ~@5 J ~@2 K ~@4 L@2 ~@8 M ~@2 N O P Q@2 ~ R S T ~@3 U V W X@2 ~@3 Y Z AA@2 AB AC
  ~@3
>`.pickRestart({
  A: "~@22 e3@3 ~@7", B: "~@25 e3@3 ~@4", C: "[~@27 a3@3 e2@8 ~@26]/2", D: "[~@28 b3@3 b2@8 ~@25]/2",
  E: "~@5 e3@19 ~@8", F: "~@14 f#5 ~@7 b4@3 ~@7", G: "~@6 f#5 ~@5 b4 ~@9 b4@3 ~@7",
  H: "[~@22 b4@4 ~@5 b4@3 ~@5 g#4@3 ~@4 g#4@6 c5 b4@3 ~@8]/2", I: "~@21 b4@4 ~@7", J: "~@21 g#4@4 ~@7",
  K: "~@10 c#6 ~@21", L: "[~@6 b4@2 ~@7 b4@2 ~@5 b4@2 ~@7 b4@2 ~@6 b4@2 ~@23]/2", M: "~@14 c#4@3 f#4 ~@14",
  N: "~@27 d#4@4 ~", O: "d4 ~@31", P: "~@12 e4 ~@3, ~@23 e4@2 ~@7",
  Q: "[~@7 e4@2 ~@3 e4@2 ~ e4@2 ~ e4@4 e4@3 ~@6 e4@2 ~@8 e4 e4@5 e4 ~@16]/2", R: "~@23 b4@9",
  S: "~@6 c#5@7 ~@9 c#5@5 ~@5", T: "~@6 c#5@5 ~@18 c5 ~@2", U: "~@16 c5 ~@15", V: "~@26 c#5@3 c5 ~@2",
  W: "~@19 g4@2 ~@6 g#4@2 ~ g4@2",
  X: "[g#4@2 ~ g#4@2 e4@2 ~ g#4@2 ~ g#4@2 [g4,a#4]@3 g#4@2 g#4@3 [g4,a#4]@2 ~ b4@2 g#4@3 [g4,a#4]@7 ~@28, ~@23 g#4@3 b4 ~@37]/2", // Gm
  Y: "~@17 e4@3 ~@12", Z: "~@4 c#4@5 e4@2 ~@6 c#4@10 ~@5, ~@4 e4@3 ~",
  AA: "[~@16 e4@10 ~@16 c#5@5 ~ a#4@2 b4@13 ~, ~@13 e4@13 ~@6, ~@35 g#4@11 ~@18]/2", AB: "~@9 d5@7 ~@7 b4@4 ~@5",
  AC: "~@9 g4@8 e4@7 ~@8",
})).s("gm_electric_guitar_muted").gain(0.33)

// bass · acoustic bass
const bass = note(`<
  ~@2 A@2 B C D E@5 F G H I J K@4 L@7 M@2 N O@2 P Q R S T U V W X Y Z AA AB AC AB ~ AD@4 AE AF AG AH AI AJ AK@6 AL AM AN
  AO AP@5 AQ AR AS AT AU AV AW@2 ~
>`.pickRestart({
  A: "[~@20 e2@7 ~@2 g#2@6 ~@3 e2@6 ~@3 g#2@6 ~@2 e2@6 ~@3]/2", B: "g#2@6 ~@2 e2@6 ~@2 g#2@6 ~@3 e2@6 ~",
  C: "~ g#2@6 ~@3 e2@6 ~@2 g#2@6 ~@2 e2@6", D: "~@3 g#2@6 ~@2 e2@6 ~@2 g#2@6 ~@3 a2@4",
  E: "[~@4 a2@6 ~@2 e2@8 a2@4 ~@5 a2@5 ~@3 a2@6 ~@2 e2@8 a2@4 ~@5 e2@6 ~@2 g#2@6 ~@2 e2@6 ~@2 g#2@6 ~@2 e2@6 ~@3 g#2@6 ~@2 e2@6 ~@2 g#2@6 ~@2 b2@5 ~@3 b2@6 ~@2 f#2@8 b2@4 ~@5]/5",
  F: "a2@5 ~@3 a2@6 ~@2 e2@8 a2@4 ~@4", G: "e2@3 ~ g#2@3 ~ e2@3 ~ g#2@3 ~", H: "e2@3 ~ c#2@3 ~ b1@3 ~ b1@3 ~",
  I: "e2@3 ~@8 e2 g#2@4", J: "e2@6 ~@15 e2@2 ~ b1@8",
  K: "[e2@6 ~@15 e2@2 g#2@8 e2@6 ~@16 e2@2 b1@8 e2@6 ~@16 e2@2 g#2@8 e2@6 ~@27]/4",
  L: "[~@30 e2@6 ~@2 g#2@6 ~@2 e2@6 ~@2 g#2@6 ~@2 a2@5 ~@3 a2@6 ~@2 e2@8 a2@4 ~@4 a2@5 ~@3 a2@6 ~@2 e2@8 a2@4 ~@4 e2@6 ~ g#2@6 ~@2 b2@6 ~@2 g#2@6 ~@2 e2@6 ~@2 g#2@6 ~@2 b2@6 ~@2 g#2@6 ~@2 b2@5 ~@3 b2@6 ~@2 f#2@8 b2@4 ~@4 a2@3]/7",
  M: "[~@5 a2@6 ~@2 e2@8 a2@4 ~@4 e2@6 ~ g#2@6 ~@2 b2@6 ~@2 g#2@6 ~@2 e2@4]/2", N: "~@2 c#2@3 ~ b1@3 ~ b1@3 ~ e2@2",
  O: "~@2 g#2@3 ~ b2@3 ~ g#2@3 ~ e2@2", P: "~@3 g#2@6 ~@2 b2@6 ~@2 g#2@6 ~@2 e2@5",
  Q: "~@3 c#2@6 ~@2 b1@6 ~@2 e2@6 ~@2 a2@5", R: "~@3 a2@6 ~@2 e2@8 a2@4 ~@4 a2@5", S: "~@3 a2@6 ~@2 e2@8 a2@4 ~@4 e2@5",
  T: "~ g#2@3 ~ b2@3 ~ g#2@3 ~ e2@3", U: "~@2 g#2@6 ~@2 b2@6 ~@2 g#2@6 ~@2 b2@5 ~",
  V: "~@2 b2@6 ~@2 f#2@8 b2@4 ~@4 a2@5 ~", W: "~ a2@3 ~ e2@4 a2@2 ~@2 e2@3", X: "~ g#2@6 ~@2 b2@6 ~@2 g#2@6 ~@2 e2@6 ~",
  Y: "~ c#2@6 ~@2 b1@6 ~@2 b1@6 ~@2 e2@6 ~", Z: "~@15 e2@2 g#2@8 e2@6 ~", AA: "~@14 e2@2 ~ b1@8 e2@6 ~",
  AB: "~@7 e2 g#2@4 e2@3 ~", AC: "~@7 e2 b1@4 e2@3 ~",
  AD: "[~@23 e2@6 ~@2 g#2@6 ~ e2@6 ~@2 g#2@6 ~@2 a2@5 ~@3 a2@6 ~@2 e2@7 a2@4 ~@4 a2@5 ~@3 a2@6 ~@2 e2@8 a2@4 ~@4 e2@6 ~ g#2@4]/4",
  AE: "~@2 b2@3 ~ g#2@3 ~ e2@3 ~ g#2@2", AF: "~@3 b2@6 ~@2 g#2@6 ~@2 b2@5 ~@3 b2@5",
  AG: "~@3 f#2@8 b2@4 ~@3 a2@5 ~@3 a2@6", AH: "~@2 e2@8 a2@4 ~@4 e2@6 ~ g#2@6 ~",
  AI: "~ b2@6 ~@2 g#2@6 ~@2 e2@6 ~@2 c#2@6 ~", AJ: "b1@3 ~ b1@3 ~ e2@3 ~ g#2@3 ~",
  AK: "[b2@6 ~@2 g#2@6 ~ e2@6 ~@2 g#2@6 ~@2 b2@6 ~@2 g#2@6 ~@2 e2@6 ~ g#2@6 ~@2 b2@6 ~@2 g#2@6 ~@2 e2@6 ~@2 c#2@6 ~@2 b1@6 ~ e2@6 ~@2 a2@5 ~@3 a2@6 ~@2 e2@8 a2@4 ~@3 a2@5 ~@3 a2@6 ~@2 e2@8 a2@4 ~@4 e2@6 ~@2 g#2@6 ~ b2@5]/6",
  AL: "~@3 g#2@6 ~@2 e2@6 ~@2 g#2@6 ~@2 b2@5", AM: "~@2 g#2@6 ~@2 b2@5 ~@3 b2@6 ~@2 f#2@6",
  AN: "~@2 b2@4 ~@3 a2@5 ~@3 a2@6 ~@2 e2@7", AO: "~ a2@4 ~@4 e2@6 ~@2 g#2@6 ~ b2@6 ~@2",
  AP: "[g#2@6 ~@2 e2@6 ~@2 c#2@6 ~@2 b1@6 ~ b1@6 ~@2 e2@6 ~@2 g#2@6 ~@2 b2@6 ~@2 g#2@6 ~@2 e2@6 ~ g#2@6 ~@2 b2@6 ~@2 g#2@6 ~@2 e2@6 ~@2 g#2@6 ~ b2@6 ~@2 g#2@6 ~@2 e2@6 ~@2 c#2@6 ~@2 b1@6 ~ e2@4]/5",
  AQ: "~@4 a2@5 ~@3 a2@6 ~@2 e2@8 a2@4", AR: "~@4 a2@5 ~@2 a2@6 ~@2 e2@8 a2@4 ~",
  AS: "~@3 e2@6 ~@2 g#2@6 ~ b2@6 ~@2 g#2@6", AT: "~ e2@3 ~ g#2@3 ~ b2@3 ~ g#2@3",
  AU: "~ b2@5 ~@3 b2@6 ~@2 f#2@8 b2@4 ~@3", AV: "~ a2@5 ~@2 a2@6 ~@2 e2@8 a2@4 ~@4",
  AW: "[e2@6 ~@2 g#2@6 ~@2 b2@6 ~ g#2@6 ~@2 e2@6 ~@2 b1@5 e1@6 ~@14, ~@37 c#2@6 ~@21]/2",
})).s("gm_acoustic_bass").gain(0.55)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@2 A B C D E F G H@3 I J K ~@7 L M N O P Q R S T U@2 V W X Y Z AA AB AC@3 ~@7 AD AE AF AG AH AI AJ@3 AK@3 AL AM AN AO
  AP AQ AR AS@3 AT AU AV AW AX AY AZ BA BB@2 ~
>`.pickRestart({
  A: "~@21 g#4@2 ~@7 [e4,g#4]@2, ~@20 [g#3,b3,e4]@3 ~@6 [g#3,b3]@3", // E G#m
  B: "~@7 g#4@2 ~@6 [g#3,b3,e4]@3 ~@6 [e4,g#4]@2 ~@6, ~@6 [g#3,b3,e4]@3 ~@6 g#4 ~@7 [g#3,b3]@3 ~@6", // E G#m
  C: "[g#3,b3,e4]@3 ~@6 g#4@2 ~@6 [b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@3 ~@4, g#4 ~@7 [g#3,b3,e4]@3 ~@5 g#3@3 ~@13, ~@17 g#4 ~@14", // E E5 E
  D: "~@2 e4@3 ~@5 [g#3,b3,e4,g#4]@3 ~@5 [g#3,b3,e4]@3 ~@6 [e4,g#4]@2 ~@3, ~ [g#3,b3]@3 ~@22 [g#3,b3]@3 ~@3, ~@2 g#4 ~@15 g#4 ~@13", // E G#m
  E: "~@3 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@3 ~@6 e4@3 ~@5 [g3,c#4,e4,a4]@3 ~, ~@3 g#4 ~@15 [g#3,b3]@3 ~@10, ~@20 g#4 ~@11", // E A7 G#m
  F: "~@4 [g3,c#4,e4,a4]@3 ~@5 g3 [e4,a4]@2 ~@5 g3 [c#4,e4]@4 ~@4 [g3,c#4,e4,a4]@3, ~@12 c#4@3 ~@6 a4@2 ~@9", // A7 A5 C#m A7
  G: "~@5 [g3,c#4,e4,a4]@3 ~@5 g3 [e4,a4]@2 ~@5 g3 [c#4,e4]@4 ~@4 [g#3,b3,e4,g#4]@2, ~@13 c#4@3 ~@6 a4@2 ~@8", // A7 A5 C#m E
  H: "[~@6 [g#3,b3,e4]@3 ~@6 g#4@2 ~@6 e4@3 ~@5 [b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@3 ~@5 [g#3,b3,e4]@3 ~@6 b4@2 ~@6 [f#4,b4]@2 ~@5 a3 [d#4,f#4]@3 ~@4 a3 [d#4,f#4]@4 ~@4, ~@6 g#4 ~@7 [g#3,b3,e4]@3 ~@5 [g#3,b3]@3 ~@5 g#3@3 ~@30 [a3,d#4,f#4]@3 ~@5 [a3,d#4]@3 ~@22, ~@23 g#4 ~@15 g#4 ~@15 g#4 ~@24 b4 ~@7 b4@2 ~@6]/3", // E B5 D#m E G#m D#dim Adim
  I: "[g3,c#4,e4,a4]@3 ~@5 [g3,c#4,e4,a4]@3 ~@5 [c#4,e4]@3 ~@5 [c#4,e4]@4 ~@4, ~@16 [g3,a4] ~@7 a4@2 ~@6, ~@24 g3 ~@7", // A7 C#m Gsus2
  J: "[g#3,b3,e4,g#4]@3 ~@5 [g#3,b3,e4]@3 ~@6 g#4@2 ~@6 g#4 ~@6, ~@8 g#4 ~@7 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5", // E
  K: "~ g#4@2 ~@6 g#4 ~@7 g#4@2 ~@6 g#4 ~@6, [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5", // E
  L: "~@15 [g3,c#4,e4,a4]", // A7
  M: "~@6 [g3,c#4,e4]@3 ~@5 [c#4,e4]@3 ~@5 [c#4,e4]@4 ~@4 [g3,c#4,e4,a4]@2, ~@6 a4 ~@7 [g3,a4] ~@7 a4@2 ~@8, ~@22 g3 ~@9", // C#dim C#m A7 Gsus2
  N: "~@6 [g3,c#4,e4]@3 ~@5 [c#4,e4]@3 ~@5 [c#4,e4]@4 ~@4 [g#3,b3,e4,g#4]@2, ~@6 a4 ~@7 [g3,a4] ~@7 a4@2 ~@8, ~@22 g3 ~@9", // C#dim C#m E Gsus2
  O: "~@6 [b3,e4]@3 ~@5 [b3,e4,g#4]@2 ~@6 e4@3 ~@5 [e4,g#4]@2, ~@5 g#3@3 ~@5 g#3@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3, ~@6 g#4 ~@15 g#4 ~@9", // E5 E G#m
  P: "~@6 e4@3 ~@5 g#4@2 ~@6 g#4 ~@6 [a3,d#4,f#4,b4]@3, ~@5 [g#3,b3]@3 ~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@3 ~@8, ~@6 g#4 ~@25", // B7 G#m E
  Q: "~@5 [a3,d#4,f#4]@3 ~@5 [d#4,f#4]@3 ~@5 [d#4,f#4]@4 ~@4 [g3,c#4,e4,a4]@3, ~@5 b4 ~@7 [a3,b4] ~@7 b4@2 ~@9, ~@21 a3 ~@10", // D#dim D#m A7 Asus2
  R: "~@5 [g3,c#4,e4]@3 ~@5 [c#4,e4]@3 ~@5 [c#4,e4]@4 ~@4 [g#3,b3,e4,g#4]@2 ~, ~@5 a4 ~@7 [g3,a4] ~@7 a4@2 ~@9, ~@21 g3 ~@10", // C#dim C#m E Gsus2
  S: "~@5 [b3,e4]@3 ~@5 [b3,e4,g#4]@2 ~@6 e4@3 ~@5 [e4,g#4]@2 ~, ~@4 g#3@3 ~@5 g#3@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~, ~@5 g#4 ~@15 g#4 ~@10", // E5 E G#m
  T: "~@5 e4@3 ~@5 g#4@2 ~@6 g#4 ~@6 [g#3,b3,e4,g#4]@2 ~@2, ~@4 [g#3,b3]@3 ~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@3 ~@9, ~@5 g#4 ~@26", // E G#m E
  U: "~@4 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@2 ~@2, ~@4 g#4 ~@15 g#4 ~@11", // E
  V: "~@4 [b3,e4]@3 ~@5 [b3,e4,g#4]@2 ~@6 e4@3 ~@5 [e4,g#4]@2 ~@2, ~@3 g#3@3 ~@5 g#3@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@2, ~@4 g#4 ~@15 g#4 ~@11", // E5 E G#m
  W: "~@4 e4@3 ~@5 g#4@2 ~@6 g#4 ~@6 [g3,c#4,e4,a4]@3 ~@2, ~@3 [g#3,b3]@3 ~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@3 ~@10, ~@4 g#4 ~@27", // A7 G#m E
  X: "~@3 [g3,c#4,e4]@3 ~@5 [c#4,e4]@3 ~@5 [c#4,e4]@4 ~@4 [g3,c#4,e4,a4]@3 ~@2, ~@3 a4 ~@7 [g3,a4] ~@7 a4@2 ~@11, ~@19 g3 ~@12", // C#dim C#m A7 Gsus2
  Y: "~@3 [g3,c#4,e4]@3 ~@5 [c#4,e4]@3 ~@5 [c#4,e4]@4 ~@4 [g#3,b3,e4,g#4]@2 ~@3, ~@3 a4 ~@7 [g3,a4] ~@7 a4@2 ~@11, ~@19 g3 ~@12", // C#dim C#m E Gsus2
  Z: "~@3 [b3,e4]@3 ~@5 [b3,e4,g#4]@2 ~@6 e4@3 ~@5 [e4,g#4]@2 ~@3, ~@2 g#3@3 ~@5 g#3@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@3, ~@3 g#4 ~@15 g#4 ~@12", // E5 E G#m
  AA: "~@3 e4@3 ~@5 g#4@2 ~@6 g#4 ~@6 [a3,d#4,f#4,b4]@3 ~@3, ~@2 [g#3,b3]@3 ~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@3 ~@11, ~@3 g#4 ~@28", // B7 G#m E
  AB: "~@2 [a3,d#4,f#4]@3 ~@5 [d#4,f#4]@3 ~@5 [d#4,f#4]@4 ~@4 [g3,c#4,e4,a4]@3 ~@3, ~@2 b4 ~@7 [a3,b4] ~@7 b4@2 ~@12, ~@18 a3 ~@13", // D#dim D#m A7 Asus2
  AC: "[~@2 [g3,c#4,e4]@3 ~@5 [c#4,e4]@3 ~@5 [c#4,e4]@4 ~@4 e4@2 e4@2 ~ e4@2 e4@3 ~@3 e4@2 ~ e4@2 g#3@2 ~ b3@2 ~@3 g#3@3 [g#3,b3,e4]@2 e4@2 ~ e4@2 ~ [g#3,b3]@5 ~@28, ~@2 a4 ~@7 [g3,a4] ~@7 a4@2 ~@6 [g#3,b3]@5 [g#3,b3]@5 [g#3,b3]@5 g#3@3 e4@5 ~@14 e4@2 ~@31, ~@18 g3 ~@7 d3@23 [d3,b3,e4]@5 ~@3 d3@24 ~@15, ~@42 b3@5 g#3@4 ~@6 [g#3,b3]@5 ~@34]/3", // C#dim C#m E G#m Gsus2 G#m E7 G#m
  AD: "~@23 a4@2 ~@5 [g3,c#4,e4]@2, ~@22 [g3,c#4,e4]@3 ~@5 a4 ~", // C#dim
  AE: "~@6 [c#4,e4]@3 ~@4 g3 [c#4,e4]@4 ~@4 [e4,a4]@2 ~@6 a4 ~, ~@6 [g3,a4] ~@7 a4@2 ~@5 [g3,c#4]@3 ~@5 [g3,c#4,e4]@3", // C#m A5 Gsus2 Gdim C#dim
  AF: "~@5 [c#4,e4]@3 ~@5 [c#4,e4]@4 ~@4 [g#3,b3,e4,g#4]@2 ~@6 [b3,e4]@3, ~@5 [g3,a4] ~@7 a4@2 ~@14 g#4 ~@2, ~@13 g3 ~@14 g#3@3 ~", // C#m E E5 Gsus2
  AG: "~@5 [e4,g#4]@2 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~, ~@4 [g#3,b3]@3 ~@5 g#4 ~@15 g#4 ~@3", // E G#m
  AH: "~@4 [b3,e4,g#4]@2 ~@6 e4@3 ~@5 b4@2 ~@5 [a3,d#4,f#4]@3 ~@2, ~@3 g#3@3 ~@5 [g#3,b3]@3 ~@5 [a3,d#4,f#4]@3 ~@10, ~@12 g#4 ~@14 b4 ~@4", // E D#dim G#m D#dim
  AI: "~@3 [d#4,f#4]@3 ~@5 [d#4,f#4]@4 ~@4 [e4,a4]@2 ~@6 a4 ~@4, ~@3 [a3,b4] ~@7 b4@2 ~@19, ~@11 a3 ~@6 [g3,c#4]@3 ~@5 [g3,c#4,e4]@3 ~@3", // D#m A5 Asus2 Gdim C#dim
  AJ: "[~@2 [c#4,e4]@3 ~@5 [c#4,e4]@4 ~@5 e4@2 e4@2 ~ e4@2 ~@5 e4@3 [g#3,e4]@2 ~ g#3@2 g#3@3 ~@2 g#3@3 [g#3,b3,e4]@2 ~ e4@2 e4@2 ~ e4@2 ~@5 e4@3 [g#3,e4]@2 ~ g#3@2 g#3@3 ~@2 g#3@3 [g#3,b3,e4]@2 ~@8 [g#3,b3,e4]@3 ~@5, ~@2 [g3,a4] ~@7 a4@2 ~@6 g#3@5 ~ [g#3,b3]@4 g#3@5 ~@3 e4@5 ~@16 e4@3 b3@5 b3@5 b3@2 ~@24, ~@10 g3 ~@7 d3@24 [d3,b3,e4]@5 ~@2 d3@24 [d3,b3,e4]@5 ~@18, ~@19 b3@4 ~@3 e4@3 b3@5 b3@5 b3@2 ~@9 [g#3,b3]@5 [g#3,b3]@4 g#3@5 ~@3 e4@5 ~@16 g#4 ~@7]/3", // C#m E C#m E Gsus2 G#m E7 G#m
  AK: "[[g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [b3,e4,g#4]@2 ~@6 e4@3 ~@4 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@2 ~@6 [b3,e4]@3 ~@5 [e4,g#4]@2 ~@6 g#4 ~@6 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@2, ~@8 g#4 ~@6 g#3@3 ~@5 [g#3,b3]@3 ~@28 g#3@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3,e4]@3 ~@23, ~@24 g#4 ~@14 g#4 ~@15 g#4 ~@30 g#4 ~@9]/3", // E E5 E G#m E
  AL: "~@6 [b3,e4]@3 ~@5 a4@2 ~@5 [g3,c#4,e4]@3 ~@5 [c#4,e4]@3, ~@5 g#3@3 ~@5 [g3,c#4,e4]@3 ~@13 [g3,a4] ~@2, ~@6 g#4 ~@14 a4 ~@10", // E5 C#dim C#m C#dim Gsus2
  AM: "~@5 [c#4,e4]@4 ~@4 [c#4,e4,a4]@2 ~@6 [e4,a4]@2 ~@5 g3 a4 ~@2, ~@5 a4@2 ~@25, ~@5 g3 ~@6 g3@3 ~@5 [g3,c#4]@3 ~@5 [c#4,e4]@3 ~", // C#m A A5 Gdim C#m
  AN: "~@4 [c#4,e4]@4 ~@4 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [e4,g#4]@2 ~@2, ~@4 a4@2 ~@14 g#4 ~@11, ~@4 g3 ~@22 [g#3,b3]@3 ~@2", // C#m E G#m
  AO: "~@4 g#4 ~@6 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@2 ~@3, ~@3 [g#3,b3,e4]@3 ~@13 g#4 ~@12", // E
  AP: "~@3 [b3,e4]@3 ~@5 [f#4,b4]@2 ~@6 b4 ~@6 [d#4,f#4]@3 ~@3, ~@2 g#3@3 ~@5 [a3,d#4]@3 ~@5 [a3,d#4,f#4]@3 ~@5 [a3,b4] ~@5, ~@3 g#4 ~@28", // E5 B5 D#m Adim D#dim Asus2
  AQ: "~@2 [d#4,f#4]@4 ~@4 [c#4,e4,a4]@2 ~@6 [e4,a4]@2 ~@5 g3 a4 ~@5, ~ b4 ~@14, ~@2 a3 ~@6 g3@3 ~@5 [g3,c#4]@3 ~@5 [c#4,e4]@3 ~@4", // D#m A A5 Gdim C#m
  AR: "~ [c#4,e4]@4 ~@4 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [b3,e4,g#4]@2 ~@5, ~ a4@2 ~@14 g#4 ~@14, ~ g3 ~@22 g#3@3 ~@5", // C#m E
  AS: "[~ e4@3 ~@4 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@2 ~@6 [b3,e4]@3 ~@5 [e4,g#4]@2 ~@6 g#4 ~@6 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@2 ~@6 e4@3 ~@5 g#4@2 ~@5 [g#3,b3,e4]@2, [g#3,b3]@3 ~@28 g#3@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3,e4]@3 ~@28 [g#3,b3]@3 ~@5 [g#3,b3,e4]@2 ~@8, ~ g#4 ~@14 g#4 ~@15 g#4 ~@30 g#4 ~@15 g#4 ~@14 g#4 ~]/3", // E E5 E G#m E G#m E
  AT: "~@6 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [b3,e4,g#4]@2 ~@6 e4@2, ~@14 g#4 ~@6 g#3@3 ~@5 [g#3,b3]@3, ~@30 g#4 ~", // E G#m
  AU: "~@6 g#4@2 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@2 ~@6 [b3,e4]@3, ~@5 [g#3,b3,e4]@2 ~@6 g#4 ~@14 g#3@3 ~, ~@29 g#4 ~@2", // E E5 E
  AV: "~@5 [e4,a4]@2 ~@6 a4 ~@6 [c#4,e4]@3 ~@5 [c#4,e4]@4, ~@4 [g3,c#4]@3 ~@5 [g3,c#4,e4]@3 ~@5 [g3,a4] ~@7 a4@2 ~@2, ~@28 g3 ~@3", // A5 C#m Gdim C#dim Gsus2
  AW: "~@4 [g3,c#4,e4,a4]@3 ~@5 [c#4,e4]@3 ~@4 g3 [e4,a4]@2 ~@5 [c#4,e4]@4 ~, ~@11 g3@3 ~@5 c#4@3 ~@5 g3 ~@4, ~@12 a4 ~@14 a4@2 ~@3", // A7 C#m A5 C#m
  AX: "~@3 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [b3,e4,g#4]@2 ~@6 e4@3 ~@2, ~@11 g#4 ~@6 g#3@3 ~@5 [g#3,b3]@3 ~@3, ~@27 g#4 ~@4", // E G#m
  AY: "~@3 g#4@2 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@3, ~@2 [g#3,b3,e4]@2 ~@6 g#4 ~@15 g#4 ~@5", // E
  AZ: "~@2 [d#4,f#4,b4]@2 ~@6 b4 ~@6 [d#4,f#4]@3 ~@5 [d#4,f#4]@4 ~@3, ~ a3@3 ~@5 [a3,d#4,f#4]@3 ~@5 [a3,b4] ~@7 b4@2 ~@5, ~@25 a3 ~@6", // B D#m D#dim Asus2
  BA: "~ [g3,c#4,e4,a4]@3 ~@5 [c#4,e4]@3 ~@4 g3 [e4,a4]@2 ~@5 g3 a4@2 ~@5, ~@8 g3@3 ~@5 c#4@3 ~@5 [c#4,e4]@4 ~@4, ~@9 a4 ~@22", // A7 C#m A5 C#m
  BB: "[[g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4,g#4]@2 ~@6 e4@3 ~@5 g#4@2 ~@30, ~@8 g#4 ~@14 [g#3,b3]@3 ~@5 [g#3,b3,e4]@2 ~@31, ~@24 g#4 ~@39]/2", // E G#m E
})).s("gm_acoustic_guitar_steel").gain(0.33)

// other · electric guitar muted
const electric_guitar_muted_3 = note("<~@30 A B C ~@26 D E ~@2 F@2 ~ G ~@16>".pickRestart({
  A: "~@28 b4@3 ~", B: "b4@2 b4@5 b4@5 b4@5 ~ b4@5 b4@5 b4@4", C: "~ b4@5 ~@26", D: "~@5 e4@10 e4@4 ~@13",
  E: "~@4 e4@5 ~@23", F: "[~ g4@5 ~@3 g4@9 ~@14]/2", G: "~@11 e4@18 ~@3",
})).s("gm_electric_guitar_muted").gain(0.52)

// other · electric guitar muted · soft notes
const electric_guitar_muted_4 = note("<~@37 A B ~@19 C@3 ~@22>".pickRestart({
  A: "~@29 c#4@3", B: "c#4 ~@15", C: "[~@24 e4@12 ~@16 e4@15 ~@29]/3",
})).s("gm_electric_guitar_muted").gain(0.33)

// other · lead 3 calliope
const lead_3_calliope = note("<~@30 [~@18 e4 b3 e4@3 ~@9] ~@27 [~@6 e4 b3 e4@3 ~ g4@2 g3@6 ~@12] ~@24>")
  .s("gm_lead_3_calliope").gain(0.66)

// other · lead 3 calliope · soft notes
const lead_3_calliope_soft = note("<~@21 A@2 ~@26 B@2 ~@32>".pickRestart({
  A: "[~@22 b5@23 ~ e5@8 ~@10]/2", B: "[~@15 b5@23 e5@8 ~@18]/2",
})).s("gm_lead_3_calliope").gain(0.39)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A B C D E F G H I J K@2 ~@8 L H@2 M@4 N@4 O P Q@2 R@4 S T ~@7 U V W N Q X Y S K Z AA H M AB AC Q R AD AE ~ I AF AG
  W N AH X R S AI ~@3
>`.pickRestart({
  A: "~@20 x ~@8 x ~@2", B: "~@6 x ~@8 x ~@7 x ~@8", C: "x ~@7 x ~@7 x ~@8 x ~@6", D: "~ x ~@8 x ~@7 x ~@7 x ~@5",
  E: "~@3 x ~@7 x ~@7 x ~@8 x ~@3", F: "~@4 x ~@7 x ~@7 x ~@8 x ~@2", G: "~@5 x ~@7 x ~@7 x ~@8 x ~",
  H: "~@3 x ~@3 x ~@3 x ~@3 x", I: "~@7 x ~@7 x ~@7 x ~@7 x", J: "~@7 x ~@7 x ~@7 x ~@8", K: "x!4", L: "~@15 x",
  M: "~@5 x ~@7 x ~@7 x ~@7 x ~@2", N: "~ x ~ x ~ x ~ x", O: "~@3 x ~@7 x ~@7 x ~@12", P: "~@27 x ~@4",
  Q: "~@3 x ~@7 x ~@7 x ~@7 x ~@4", R: "~ x ~@3 x ~@3 x ~@3 x ~@2", S: "~ x ~@7 x ~@7 x ~@7 x ~@6",
  T: "~ x ~@7 x ~@7 x ~@14", U: "~@11 x ~@3 x", V: "~@6 x ~@6 x ~@7 x ~@7 x ~@2", W: "~@5 x ~@7 x ~@7 x ~@6 x ~@3",
  X: "~@3 x ~@7 x ~@6 x ~@7 x ~@5", Y: "~@2 x ~@7 x ~@7 x ~@6 x ~@6", Z: "x ~@7 x ~@6 x ~@7 x ~@7 x",
  AA: "~@7 x ~@7 x ~@6 x ~@7 x ~", AB: "~@5 x ~@6 x ~@7 x ~@7 x ~@3", AC: "~@4 x ~@7 x ~@7 x ~@6 x ~@4",
  AD: "~@2 x ~@6 x ~@7 x ~@7 x ~@6", AE: "~ x ~@30", AF: "~@7 x ~@6 x ~@7 x ~@7 x ~", AG: "~@6 x ~@7 x ~@6 x ~@7 x ~@2",
  AH: "~@4 x ~@6 x ~@7 x ~@7 x ~@4", AI: "~ x ~@6 x ~@7 x ~@7 x ~@7",
})).gain(0.44)

// drums · snare
const snare = s("sd").struct(`<
// … 68 more lines