Strudelify

I Don't Even Know Your Name

Alan Jackson

KeyE majorTempo131 bpm
0:00/0:00
// I Don't Even Know Your Name — Alan Jackson
// 131 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: metre changes (4/4 at bar 1, 2/4 at bar 18, 4/4 at bar 19, 2/4 at bar 27, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 3 acoustic bass (copy of ch 2 acoustic bass)
// note: Full arrangement: all 123 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(131/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
const bass = note(`<
  A@4 B@8 C@7 D@4 E F@5 G@6 H@8 I@3 J@5 K@7 D@4 L@8 M N O P Q R S T U ~ V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL V
  AF AM Y Z AA AN AO AD AE AF AP AH AI AJ AK AL V W AQ Y Z AA AN AO AR
>`.pickRestart({
  A: "[~@30 e2@6 ~@2 b1@6 ~@2 e2@6 ~@2 b1@6 ~@2 e2@6 ~@2 b1@7 ~ e2@5 ~ b1 ~ d2@3 ~ d#2@3 ~ e2@6 ~@2 b1@6 ~@2 e2@6 ~@2 b1@4 ~@2 b1@2 e2@2, ~@38 c2 ~@89]/4",
  B: "[~@2 d#2@2 ~@2 c#2@2 ~@2 c2@3 ~ b1@3 ~ c2@3 ~ c#2@3 ~ d#2@2 ~@2 e2@5 ~@3 b1@6 ~@2 e2@5 ~@3 b1@6 ~@2 e2@6 ~@2 b1@5 ~@3 e2@5 ~@3 b1@6 ~@2 e2@5 ~@3 b1@6 ~@2 e2@5 ~@3 b1@6 ~@2 e2@5 ~@3 b1@6 ~@2 e2@6 ~@2 e2@6 ~@2 a1@6 ~@2 e2@6 ~@2 a1@6 ~@2 e2@6 ~@2 a1@6 ~@2 e2@6 ~@2 a1@6 ~@2 a1@6 ~@2 e2@6 ~@2 b1@6 ~@2 e2@6 ~@2 b1@6 ~@2 e2@2]/8",
  C: "[~@6 b1@6 ~@2 e2@4 ~@2 e2 ~ d#2@3 ~ c#2@3 ~ b1@6 ~@2 f#2@6 ~@2 b1@6 ~@2 f#2@6 ~@2 b1@6 ~@2 f#2@5 ~@3 b1@5 ~@3 b1@4 ~@4 [e1,e2]@6 ~@26 b1@12 ~@4 e2@7 ~ f2@6 ~@2 f#2@7 ~ g#2@6 ~@2 a2@6 ~@2 e2@5 ~@3 a2@5 ~@3 e2@5 ~@3 a2@5 ~@3 e2@5 ~@3 a2@2, ~@38 d#2 ~@15 d#2 ~@15 d#2 ~@153]/7", // E
  D: "[~@4 a2 ~ c#2@3 ~ d#2@3 ~ e2@5 ~@3 b1@6 ~@2 e2@6 ~@2 b1@4 ~@4 e2@5 ~@3 f2@6 ~@2 f#2@6 ~@2 g#2@6 ~@2 a2@6 ~@2 e2@6 ~@2 a2@5 ~@3 e2@6 ~@2 a2@6 ~@2 e2@6 ~@2 a2@2]/4",
  E: "~@2 c#2@3 ~ d2@3 ~ g#2@3 ~ [e1,e2]@6 ~@12", // E
  F: "[~@14 b1@12 ~@4 e2@7 ~ f2@6 ~@2 f#2@7 ~ g#2@6 ~@2 a2@6 ~@2 e2@5 ~@3 a2@5 ~@3 e2@5 ~@3 a2@5 ~@3 e2@5 ~@3 a2@4 ~@2 a2 ~ c#2@3 ~ d#2@3 ~ e2@5 ~@3 b1@6 ~@2 e2@6 ~@2 b1@4 ~@4 e2@2]/5",
  G: "[~@6 f2@6 ~@2 f#2@6 ~@2 g#2@6 ~@2 a2@6 ~@2 e2@6 ~@2 a2@5 ~@3 e2@6 ~@2 a2@6 ~@2 e2@6 ~@2 a2@2 ~@2 c#2@3 ~ d2@3 ~ d#2@3 ~ e2@7 ~ b1@6 ~@2 e2@3 ~ g#2@3 ~ a2@3 ~ a#2@3 ~ b2@6 ~@2 f#2@6 ~@2 e2@7 ~ b1@5 ~@3 e2@6 ~@2 b1@5 ~@3 e2@6 ~@2 b1@5 ~@3 e2@2]/6",
  H: "[~@2 b1@2 ~@2 d2@3 ~ d#2@3 ~ e2@5 ~@3 b1@6 ~@2 e2@5 ~@3 b1@6 ~@2 e2@5 ~@3 b1@5 ~@3 e2@5 ~@3 b1@6 ~@2 e2@5 ~@3 b1@6 ~@2 e2@5 ~@3 b1@5 ~@3 e2@5 ~@3 b1@6 ~@2 e2@6 ~@2 e2@6 ~@2 a1@6 ~@2 e2@6 ~@2 a1@6 ~@2 e2@6 ~@2 a1@6 ~@2 e2@6 ~@2 a1@6 ~@2 a1@6 ~@2 e2@6 ~@2 b1@6 ~@2 e2@6 ~@2 b1@6 ~@2 e2@5 ~@3 b1@6 ~@2 e2@2]/8",
  I: "[~@4 e2 ~ d#2@3 ~ c#2@3 ~ b1@6 ~@2 f#2@6 ~@2 b1@6 ~@2 f#2@5 ~@3 b1@6 ~@2 f#2@5 ~@3 b1@5 ~@3 b1@4 ~@4 [e1,e2]@6 ~@12, ~@22 d#2 ~@15 d#2 ~@15 d#2 ~@41]/3", // E
  J: "[~@14 b1@12 ~@4 e2@7 ~ f2@6 ~@2 f#2@7 ~ g#2@6 ~@2 a2@6 ~@2 e2@5 ~@3 a2@5 ~@3 e2@5 ~@3 a2@5 ~@3 e2@5 ~@3 a2@4 ~@2 a2 ~ c#2@3 ~ d#2@2 ~@2 e2@5 ~@3 b1@6 ~@2 e2@6 ~@2 b1@4 ~@4 e2@2]/5",
  K: "[~@6 f2@6 ~@2 f#2@6 ~@2 g#2@6 ~@2 a2@6 ~@2 e2@6 ~@2 a2@5 ~@3 e2@6 ~@2 a2@6 ~@2 e2@6 ~@2 a2@2 ~@2 c#2@3 ~ d2@3 ~ g#2@3 ~ [e1,e2]@6 ~@26 b1@12 ~@4 e2@7 ~ f2@6 ~@2 f#2@7 ~ g#2@6 ~@2 a2@6 ~@2 e2@5 ~@3 a2@5 ~@3 e2@5 ~@3 a2@5 ~@3 e2@5 ~@3 a2@2]/7", // E
  L: "[~@2 c#2@3 ~ d2@3 ~ d#2@3 ~ e2@6 ~@2 b1@6 ~@2 e2@6 ~@2 d2@6 ~@2 b1@2 ~@2 a1@2 ~@2 g#1@2 ~@2 e1@46 e1@6 ~@2 e1@3 g#1@5 ~@2 g#1@3 ~ b1@5 ~@2 b1@3 g#1@5 ~@2 b1@3 ~ e1@5 ~@2 e1@3 ~ g#1@5 ~@2 g#1@3 b1@5 ~@2 b1@3 ~ g#1@5 ~@2 b1@3 e1@5 ~@2 e1@3 ~ g#1@5 ~@2 g#1@3 ~ b1@3 ~@4 b1@3 g#1@5 ~@2 b1@3 ~ e1@5 ~@2 e1@3 ~ g#1@5 ~@2 g#1@3 b1@3, ~@38 e2 ~@217]/8",
  M: "~@4 b1@3 ~ g#1@5 ~@2 b1@3 a1@4 ~@3 a1@3 ~ c#2@3", N: "~@4 c#2@3 ~ e2@4 ~@3 e2@3 c#2@4 ~@3 e2@3 ~ a1@3",
  O: "~@4 a1@3 c#2@4 ~@4 c#2@3 e2@4 ~@3 e2@3 ~ c#2@3", P: "~@4 e2@2 ~ e1@5 ~@2 e1@3 ~ g#1@5 ~@2 g#1@3 ~ b1@3",
  Q: "~@4 b1@3 g#1@4 ~@3 b1@3 ~ e1@4 ~@3 e1@3 g#1@4", R: "~@4 g#1@3 b1@4 ~@3 b1@3 ~ g#1@3 ~@4 a1@3 b1@4",
  S: "~@3 b1@3 ~ d#2@4 ~@3 d#2@3 ~ f#2@4 ~@3 f#2@3 d#2@4", T: "~@3 f#2@3 ~ b1@4 ~@3 b1@3 d#2@4 ~@4 d#2@3 f#2@4",
  U: "~@3 f#2@3 ~ d#2@5 ~@2 f#2@2 ~ [e1,e2]@6 ~@9", V: "~ e2@7 ~ f2@6 ~@2 f#2@7 ~ g#2@6 ~",
  W: "~ a2@6 ~@2 e2@5 ~@3 a2@5 ~@3 e2@5 ~@2", X: "~ a2@5 ~@3 e2@5 ~@3 a2@4 ~@2 a2 ~ c#2@3 ~ d#2@3",
  Y: "~ e2@5 ~@3 b1@6 ~@2 e2@6 ~@2 b1@4 ~@3", Z: "~ e2@5 ~@3 f2@6 ~@2 f#2@6 ~@2 g#2@6 ~",
  AA: "~ a2@6 ~@2 e2@6 ~@2 a2@5 ~@3 e2@6 ~", AB: "~ a2@6 ~@2 e2@6 ~@2 a2@2 ~@2 c#2@3 ~ d2@3 ~ g#2@3",
  AC: "~ [e1,e2]@6 ~@25", AD: "~ b1@12 ~@4 e2@7 ~ f2@6 ~", AE: "~ f#2@7 ~ g#2@6 ~@2 a2@5 ~@3 e2@5 ~@2",
  AF: "~ a2@5 ~@3 e2@5 ~@3 a2@5 ~@3 e2@5 ~@2", AG: "~ a2@4 ~@2 a2 ~ c#2@3 ~ d#2@3 ~ e2@5 ~@3 b1@6 ~",
  AH: "~ e2@6 ~@2 b1@4 ~@4 e2@5 ~@3 f2@6 ~", AI: "~ f#2@6 ~@2 g#2@6 ~@2 a2@6 ~@2 e2@6 ~",
  AJ: "~ a2@5 ~@3 e2@6 ~@2 a2@6 ~@2 e2@6 ~", AK: "~ a2@2 ~@2 c#2@3 ~ d2@3 ~ d#2@3 ~ e2@7 ~ b1@6 ~",
  AL: "~ e2@3 ~ g#2@3 ~ a2@3 ~ a#2@3 ~ b1@12 ~@3", AM: "~ a2@5 ~@3 e2@5 ~@3 a2@4 ~@2 a2 ~ c#2@2 ~@2 d#2@3",
  AN: "~ a2@6 ~@2 e2@6 ~@2 a2@2 ~@2 c#2@3 ~ d2@3 ~ d#2@3", AO: "~ e2@7 ~ b1@6 ~@2 e2@3 ~ g#2@3 ~ a2@3 ~ a#2@3",
  AP: "~ a2@4 ~@2 a2 ~ c#2@3 ~ d#2@2 ~@2 e2@5 ~@3 b1@6 ~", AQ: "~ a2@5 ~@3 e2@5 ~@3 a2@4 ~@2 a2 ~ c#2@3 ~ d#2@2 ~",
  AR: "~ b2@6 ~@2 a2@5 ~@4 f2 ~@3 e2@5 ~@5, ~@17 e2@2 ~@13",
})).s("gm_acoustic_bass").gain(0.19).pan(0)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A@8 B C A D E F@2 G@2 H I J K H L M@2 N H O D H P Q R A@3 S A T U V A W X Y Z@2 AA H O Q H AB ~ G@2 H I J K AC AD AE
  ~ AF@7 AG@3 AH@4 ~ AI AJ AK AL AM AK AN AO AP AQ AK AR AS AT AU AV AW AI AJ AX AL AY AK AZ BA AP BB BC BD BE AT AU BD
  AW BF BG AK BH BA AK AZ BA BI
>`.pickRestart({
  A: "~@2 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@3", // E
  B: "~@2 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3 ~@3", // A
  C: "~@2 [a3,c#4,e4]@3 ~@5 [g3,c#4,e4]@4 ~@4 [g3,c#4,e4]@4 ~@4 [g3,c#4,e4]@3 ~@3", // A C#dim
  D: "~@2 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~@4", // E
  E: "~@2 [b3,d#4,f#4]@3 ~@5 [b3,d#4,f#4]@3 ~@5 [b3,d#4,f#4]@3 ~@5 [b3,d#4,f#4]@3 ~@3", // B
  F: "[~@2 [b3,d#4,f#4]@3 ~@5 [b3,d#4,f#4]@4 ~@4 [b3,d#4,f#4]@4 ~@8 [g#3,b3,e4]@4 ~@30]/2", // B E
  G: "[~@14 [e2,e3,g#3]@6 ~@2 [f#2,f#3,a3]@7 ~ [g2,g3,a#3]@7 ~ [g#2,g#3,b3]@6 ~@6 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3 ~@3, ~@22 g#3 ~@15 a#3 ~@25]/2", // E F#m Gm G#m A
  H: "~@2 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@3", // A
  I: "~@2 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~@4", // A E
  J: "~@2 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@3", // E
  K: "~@2 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~@6 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3 ~@3", // E A
  L: "~@2 [a3,c#4,e4]@4 ~@8 [g#3,b3,e4]@3 ~@15", // A E
  M: "[~@15 [e2,e3,g#3]@3 ~ [f#2,f#3,a3]@4 [g2,g3,a#3]@3 ~ [g#2,g#3,b3]@3 ~@2, ~@38 g#3 ~@15 a#3 ~@9]/2", // E F#m Gm G#m
  N: "~@2 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@3", // A
  O: "~@2 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@3 ~@3", // E
  P: "~@2 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@3", // A
  Q: "~@2 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@2 ~@4", // E
  R: "~@2 [b3,d#4,f#4]@3 ~@5 [b3,d#4,f#4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@3", // B E
  S: "~@2 [g#3,b3]@4 ~@4 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@3, ~ e4 ~@14", // G#m E
  T: "~@2 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@3", // E A
  U: "~@2 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [g3,c#4,e4]@4 ~@2", // A C#dim
  V: "~@2 [g3,c#4,e4]@4 ~@4 [g3,c#4,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@3", // C#dim E
  W: "~@2 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~@6 [b3,d#4,f#4]@3 ~@5 [b3,d#4,f#4]@3 ~@3", // E B
  X: "~@2 [b3,d#4,f#4]@3 ~@5 [b3,d#4,f#4]@4 ~@4 [b3,d#4,f#4]@3 ~@5 [b3,d#4,f#4]@4 ~@2", // B
  Y: "~ [b3,d#4,f#4]@2 ~@4 [g#3,b3,e4]@2 ~@7", // B E
  Z: "[~@30 [e2,e3,g#3]@6 ~@2 [f#2,f#3,a3]@7 ~ [g2,g3,a#3]@7 ~ [g#2,g#3,b3]@6 ~@4, ~@38 g#3 ~@15 a#3 ~@9]/2", // E F#m Gm G#m
  AA: "~@2 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3 ~@3", // A
  AB: "~@2 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@4 ~@8 [g#3,b3,e4]@2", // A E
  AC: "~@2 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@2 ~@4", // A
  AD: "~@2 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@3", // A E
  AE: "~ [g#3,b3,e4] ~@3 [g#3,b3,e4] ~@10", // E
  AF: "[~@8 g#3@8 ~@3 g#3@7 ~@4 g#3@7 ~@3 g#3@6 ~ g#3 ~@3 g#3@7 g#3 ~@3 g#3@7 ~@3 g#3@7 ~@4 g#3@7 ~@3 g#3@7 ~@4 g#3@7 ~@4 g#3@7 ~@3 g#3@7 ~@4 g#3@5 ~@2 d4@4 g#3@6 ~ g#3@2 ~ g#3@7 ~@4 g#3@5 ~@2 a3 ~@2 a3@6 ~ a3@2 ~@2 a3@6 ~ a3 ~@3 a3@7 a3@2 ~ a3@6 ~ a3@2 ~@2 a3@3, ~@16 [b3,e4]@9 ~ [b3,e4]@9 ~@2 [b3,e4]@9 ~ [b3,e4]@9 ~@2 [b3,e4]@9 ~@2 [b3,e4]@9 ~ [b3,e4]@9 ~@2 [b3,e4]@10 [b3,e4]@9 ~@2 [b3,e4]@8 ~@3 [b3,e4]@9 ~ [b3,e4]@9 ~@2 [b3,e4]@9 ~@2 [b3,d4,e4]@9 ~ [b3,d4,e4]@8 ~@3 [c#4,e4]@9 ~ [c#4,e4]@9 ~@2 [c#4,e4]@10 ~ [c#4,e4]@9 ~ [c#4,e4]@7]/7", // E5 E7 C#m
  AG: "[~@7 a3@6 ~@2 a3 ~@2 g3@6 ~ g3@2 ~@2 g3@6 ~ g3@3 g#3@6 ~@5 g#3@6 ~ g#3 ~@3 g#3@7 ~@3 g#3@7 ~@4 g#3@7 ~@3 g#3@4, ~@4 [c#4,e4]@9 ~@2 [c#4,e4]@10 [c#4,e4]@9 ~@2 [c#4,e4]@5 ~@5 [b3,e4]@9 ~@2 [b3,e4]@9 ~@2 [b3,e4]@9 ~ [b3,e4]@9 ~@2 [b3,e4]@7]/3", // C#m E5
  AH: "[~@4 g#3 ~@2 g#3@7 ~@4 g#3@4 ~@6 b3@7 ~@4 b3@7 ~@4 b3@7 ~@3 b3@7 ~@4 a3@7 a3 ~@2 a3@7 ~ a3@2 ~ a3@7 ~@4 a3@4 ~@6 [g#3,b3,e4]@4 ~@11, ~@4 [b3,e4]@9 ~ [b3,e4]@8 ~@3 [d#4,f#4]@10 [d#4,f#4]@10 ~ [d#4,f#4]@8 ~@3 [d#4,f#4]@9 ~ [d#4,f#4]@9 ~@2 [d#4,f#4]@9 ~@2 [d#4,f#4]@9 ~ [d#4,f#4]@7 ~@22]/4", // E E5 D#m
  AI: "~ [e2,e3,g#3]@6 ~@2 [f#2,f#3,a3]@8 [g2,g3,a#3]@6 ~@2 [g#2,g#3,b3]@6 ~, ~@9 g#3 ~@15 a#3 ~@6", // E F#m Gm G#m
  AJ: "~@5 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3", // A
  AK: "~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3", // A
  AL: "~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@3", // E
  AM: "~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~", // E
  AN: "~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@4 ~@7", AO: "~ [g#3,b3,e4]@3 ~@28",
  AP: "~@17 [e2,e3,g#3]@6 ~@2 [f#2,f#3,a3]@7, ~@25 g#3 ~@6", // E F#m
  AQ: "~ [g2,g3,a#3]@6 ~@2 [g#2,g#3,b3]@6 ~@6 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3, ~@9 a#3 ~@22", // Gm G#m A
  AR: "~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@3", // A E
  AS: "~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~", // E
  AT: "~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~@6 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3", // E A
  AU: "~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@2 ~", // A
  AV: "~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~", // A E
  AW: "~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@2 ~@17", // E
  AX: "~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3", // A
  AY: "~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~", // E
  AZ: "~@5 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3", // A
  BA: "~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@2 ~", // E
  BB: "~ [g2,g3,a#3]@7 ~ [g#2,g#3,b3]@6 ~@6 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3, ~@9 a#3 ~@22", // Gm G#m A
  BC: "~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@2 ~", // A
  BD: "~@5 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3", // A E
  BE: "~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@3", // E
  BF: "~ [e2,e3,g#3]@6 ~@2 [f#2,f#3,a3]@7 ~ [g2,g3,a#3]@7 ~ [g#2,g#3,b3]@6 ~, ~@9 g#3 ~@15 a#3 ~@6", // E F#m Gm G#m
  BG: "~@5 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3", // A
  BH: "~@5 [g#3,b3,e4]@3 ~@5 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@3", // E
  BI: "~ [b3,d#4,f#4]@16 ~@5 [g#3,b3,e4]@3 ~@7", // B E
})).s("gm_acoustic_guitar_steel").gain(0.17)

// other · acoustic guitar steel
const acoustic_guitar_steel_2 = note("<~@106 A@2 B@2 C@3 D@3 ~@7>".pickRestart({
  A: "[~@17 a4@2 g4@2 e4@2 d#4@2 d4@2 c4@2 c#4@2 d4@2 d#4@2 e4 ~ c4@2 c#4@2 d4@2 e4@2 d4@2 c4@2 c#4@4 a3@3 g3 e3@3 ~ d3@2 ~, ~@30 d#3 ~]/2",
  B: "[~ c#3@2 e3@2 d3@2 c3@2 ~ c3 b2 ~ f#2 g2 g#2@2 e2@5 ~@2 f#2@3 a2 ~ b2@2 d3@4 ~ f#3@4 a3 ~ b3@2 a3 [d4,f#4]@2 ~ c4 [d4,f#4]@2 c4 ~ a3@2 c4 ~ [d4,f#4]@2 c4 ~ [d4,f#4]@2 c4, c3@2 ~@7 c#3@2 ~@53]/2", // D
  C: "[~ [a3,f#4]@2 c4 ~ [d4,f#4]@2 c4@2 d4@2 c4 ~ a3@4 c#4@2 a4 ~ [g4,a4]@2 f#4 ~ e4@2 d#4 ~ e4@2 c4@2 c#4@2 a3@2 g3@2 e3@2 d#3@2 d3 ~ c3@2 c#3@2 ~@2 c#3@2 d3@2 ~@2 c4@2 c#4@2 g4@2 c4@2 c#4@2 a4@2 d#4@2 e4@2 c#5@5 ~@3 e5@2 c#5 ~ d5@2 c#5 ~ b4@2 a#4 ~ [a4,a#4]@2 g4, ~@9 f#4@4 ~@83, ~@9 d#4 ~@39 a3@4 ~@2 e3@5 ~@36]/3", // D Gsus2 A#maj7
  D: "[~ g#4@2 b4 ~ a4@2 g4 ~ g#4@2 e4 ~ d4@2 c#4 ~ b3@2 c#4@2 d#4@2 b4 ~ a4@2 f#4@2 g4@2 g#4@2 e4@8 d4@7 ~ b3@2 a#3@2 a3@2 g3@2 g#3@2 e3@2 d#3@2 d3@2 c#3@7 ~@24]/3",
})).s("gm_acoustic_guitar_steel").gain(0.62)

// chords · electric guitar muted
const electric_guitar_muted = note("<~@65 A@3 B C D E F G H I J K L ~@44>".pickRestart({
  A: "[~@8 [e2,b2]@4 ~@4 [e2,b2]@3 [e2,c#3]@3 ~@4 [e2,c#3]@3 ~ [e2,b2]@4 ~@3 [e2,b2]@3 [e2,c#3]@4 ~@3 [e2,c#3]@3 ~ [e2,b2]@4 ~@3 [e2,b2]@3 ~ [e2,c#3]@4 ~@3 [e2,c#3]@3 [e2,b2]@4 ~@3 [e2,b2]@3 ~ [e2,c#3]@3 ~@4 [e2,c#3]@2 ~ [e2,b2]@3]/3", // E5 C#m E5 C#m E5 C#m E5 C#m …
  B: "~@4 [e2,b2]@3 ~ [e2,c#3]@4 ~@3 [e2,c#3]@3 ~ [e2,b2]@4 ~@3 [e2,b2]@3 [e2,c#3]@3", // E5 C#m E5 C#m
  C: "~@4 [e2,c#3]@2 ~@2 [e2,b2]@4 ~@3 [e2,b2]@3 ~ [e2,c#3]@4 ~@3 [e2,c#3]@3 [e2,b2]@3", // C#m E5 C#m E5
  D: "~@4 [e2,b2]@3 ~ [e2,c#3]@4 ~@3 [e2,c#3]@2 ~ [a2,e3]@4 ~@3 [a2,e3]@3 ~ [a2,f#3]@3", // E5 C#m A5 D
  E: "~@4 [a2,f#3]@3 ~ [a2,e3]@4 ~@3 [a2,e3]@3 [a2,f#3]@4 ~@3 [a2,f#3]@2 ~@2 [a2,e3]@3", // D A5 D A5
  F: "~@4 [a2,e3]@3 [a2,f#3]@4 ~@4 [a2,f#3]@3 [a2,e3]@4 ~@3 [a2,e3]@3 ~ [a2,f#3]@3", // A5 D A5 D
  G: "~@4 [a2,f#3] ~@2 [e2,b2]@4 ~@3 [e2,b2]@3 ~ [e2,c#3]@4 ~@3 [e2,c#3]@3 ~ [e2,b2]@3", // D E5 C#m E5
  H: "~@4 [e2,b2]@3 [e2,c#3]@4 ~@3 [e2,c#3]@3 ~ [e2,b2]@4 ~@3 [e2,b2]@3 [e2,c#3]@4", // E5 C#m E5 C#m
  I: "~@4 [e2,c#3]@3 [e2,b2]@4 ~@3 [e2,b2]@3 ~ [e2,c#3]@4 ~@3 [e2,c#3] ~@2 [b2,f#3]@4", // C#m E5 C#m B5
  J: "~@3 [b2,f#3]@3 ~ [b2,g#3]@4 ~@3 [b2,g#3]@3 ~ [b2,f#3]@4 ~@3 [b2,f#3]@3 [b2,g#3]@4, ~@7 f#3 ~@20 f#3 ~@3", // B5 E B5 E
  K: "~@3 [b2,g#3]@2 ~@2 [b2,f#3]@4 ~@3 [b2,f#3]@3 [b2,g#3]@4 ~@4 [b2,g#3]@3 [b2,f#3]@4, ~@17 f#3 ~@14", // E B5 E B5
  L: "~@3 [b2,f#3]@3 ~ [b2,g#3]@3 ~@22", // B5 E
})).s("gm_electric_guitar_muted").gain(0.36)

// bass · piano
const bass_2 = note("<~@65 A@5 B C D E F G H I J ~ K L ~@41>".pickRestart({
  A: "[~@8 e1@6 ~@2 e1@3 g#1@5 ~@2 g#1@3 ~ b1@5 ~@2 b1@3 g#1@5 ~@2 b1@3 ~ e1@5 ~@2 e1@3 ~ g#1@5 ~@2 g#1@3 b1@5 ~@2 b1@3 ~ g#1@5 ~@2 b1@3 e1@5 ~@2 e1@3 ~ g#1@5 ~@2 g#1@3 ~ b1@3 ~@4 b1@3 g#1@5 ~@2 b1@3 ~ e1@5 ~@2 e1@3 ~ g#1@5 ~@2 g#1@3 b1@3]/5",
  B: "~@4 b1@3 ~ g#1@5 ~@2 b1@3 a1@4 ~@3 a1@3 ~ c#2@3", C: "~@4 c#2@3 ~ e2@4 ~@3 e2@3 c#2@4 ~@3 e2@3 ~ a1@3",
  D: "~@4 a1@3 c#2@4 ~@4 c#2@3 e2@4 ~@3 e2@3 ~ c#2@3", E: "~@4 e2@2 ~ e1@5 ~@2 e1@3 ~ g#1@5 ~@2 g#1@3 ~ b1@3",
  F: "~@4 b1@3 g#1@4 ~@3 b1@3 ~ e1@4 ~@3 e1@3 g#1@4", G: "~@4 g#1@3 b1@4 ~@3 b1@3 ~ g#1@3 ~@4 a1@3 b1@4",
  H: "~@3 b1@3 ~ d#2@4 ~@3 d#2@3 ~ f#2@4 ~@3 f#2@3 d#2@4", I: "~@3 f#2@3 ~ b1@4 ~@3 b1@3 d#2@4 ~@4 d#2@3 f#2@4",
  J: "~@3 f#2@3 ~ d#2@5 ~@2 f#2@2 ~@16", K: "~ e2@7 ~ f2@6 ~@2 f#2@7 ~ g#2@6 ~", L: "~ a2@6 ~@25",
})).s("gm_piano").gain(0.22)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  A@6 B@6 C@4 D@3 E F G@3 H I@4 J@7 ~@10 K@5 L@5 M N O P@2 Q@2 R@6 S@4 T@6 ~ U V@2 W@2 X@2 Y Z AA@4 AB@4 AC@2 AD AE AF
  AG@2 AH AI@2 ~@16
>`.pickRestart({
  A: "[~@15 [g#3,b3,d4]@32 [g#3,b3,d4,e4]@24 ~@8 [b3,e4]@17]/6", // G#dim E7 E5
  B: "[~@30 [b3,d4,e4]@56 ~@8 [g3,a3,e4]@53 ~@11 [b3,d4,e4]@34]/6", // E7 A7 E7
  C: "[~@15 [a3,b3,d#4,f#4]@28 ~@4 [g#3,b3,e4]@2 ~@15]/4", // B7 E
  D: "[~@14 [b3,e4,g#4]@7 ~ [d4,f#4,a4]@6 ~@2 [d#4,g4,a#4]@6 ~@2 [e4,g#4,b4]@6 ~@2 [a4,c#5]@25 ~ [a4,c#5]@23 ~, ~@14 f#4 ~@81]/3", // E D D# E A
  E: "~@2 a4@8 g4@3 ~ e4@18, ~@10 a4 ~@21", F: "~@13 d5 c#5 b4",
  G: "[a4@2 g#4@2 f#4@2 e4@2 d4@2 c#4@2 b3@2 a3@21 ~@3 a3@33 ~@7 [g#3,b3,e4]@3 ~@15]/3", H: "~@7 [b3,d#4,f#4]@8 ~",
  I: "[g4@2 f#4@2 ~@2 e4 ~@3 c#4 ~@3 [d3,e3,g#3]@5 ~ [d3,e3,g#3]@10 [a3,c#4,e4]@52 ~@12 [b3,d4]@34]/4", // E7 A Bm
  J: "[~@22 [d4,e4,g#4,b4]@5 ~@3 [g3,a3,c#4,e4]@57 ~@7 b3@28 ~@4 b3@13 ~@3 e4@57 ~@25, ~@47 d4@12 ~@53]/7", // E7 A7
  K: "[~@30 [b3,e4,g#4]@7 ~ [d4,f#4,a4]@5 ~@3 [d#4,g4,a#4]@6 ~@2 [e4,g#4,b4]@6 ~@2 [a4,c#5]@25 ~ [a4,c#5]@23 ~@3 a4@8 g4@3 ~ [b3,e4]@29 ~@3 b3@2, ~@30 f#4 ~@91 a4 ~@3 g#3@26 ~@8]/5", // E D D# E A E5
  L: "[~@2 d4@2 ~@2 d4 e4@2 b3@5 d4@4 ~@2 d4@4 b3@2 d4@4 a3@44 [a3,e4]@15 ~@5 [g#3,b3,e4]@5 ~@27 [b3,d#4,f#4]@11 ~@5 e4@2 d4@2 b3@2 g4@2 e4@2 b3 ~ g#4@2 b3 ~ a4@2, ~@18 b3@4 ~@8 c#4@59 ~@71]/5", // A5 E B
  M: "~@2 a#4@2 ~@2 b4@3 ~ c5@2 ~@2 a4@2 e4@6 g4@2 e4@5 ~ a4@2", N: "e4@6 g4@2 e4@5 ~ a4@2 e4@6 g4@2 e4@6 a4@2",
  O: "e4@6 g4@2 e4@2 g4@2 ~@2 g4@3 ~ e4@2 g4@2 f#4@2 e4@4 d4@2 ~@2",
  P: "[b3@2 e4@2 ~@2 f#4 ~@3 g4@2 ~@2 g#4@6 ~@2 a4@2 ~@2 b4 ~@3 g#4@7 ~ e4@8 a5 e5 b4@4 ~@3 d5 a4@5 e5 ~ c#5, ~@27 g5 ~@4]/2",
  Q: "[g4@4 ~ a4@2 e4 b3@6 a3@4 c#4 ~ a3 ~@3 d4@3 a3@2 ~@2 d4@2 ~@2 b3 ~ a3@9 e4@2 b3@6 f#4@2 b3@6 g#4@2, ~@15 e4 ~@16]/2",
  R: "[~@2 a4@2 ~@2 b4 ~ g#4@4 f#4 ~ [g#4,b4]@2 ~@2 [g4,a#4]@2 ~@2 [f#4,a4]@2 ~@2 [b3,e4]@46 [b3,e4]@38 ~@5 [b3,e4]@37 ~@5 [b3,e4]@35, ~@13 g#4@28 ~@55]/6", // G#m Gm F#m E5
  S: "[~@8 [b3,d4,e4]@32 ~@10 [g3,a3,e4]@37 ~@6 [g3,a3,e4]@33 ~@2]/4", // E7 A7
  T: "[~@7 [b3,d4,e4]@36 ~@7 [b3,d4,e4]@31 ~@11 [a3,b3,d#4,f#4]@37 ~@6 [a3,b3,d#4,f#4]@34 ~@8 [g#3,b3,e4]@4 ~@11]/6", // E7 B7 E
  U: "~ [g#3,e4]@7 ~ [a3,f4]@7 ~ [a#3,f#4]@7 ~ [b3,g#4]@7, ~@9 e4 ~@22", V: "[~ [c#4,a4]@48 ~@15]/2",
  W: "[~ [b3,e4]@57 ~@6]/2", X: "[~ [g3,a3,c#4,e4]@59 ~@4]/2", Y: "~ [g#3,b3,e4]@5 ~@26", Z: "~@25 e4 ~@3 c#4 ~@2",
  AA: "[~ [d3,e3,g#3]@5 ~ [d3,e3,g#3]@10 [a3,c#4,e4]@52 ~@12 [b3,d4]@39 ~@8]/4", // E7 A Bm
  AB: "[~@9 [d4,e4,g#4,b4]@5 ~@3 [g3,a3,c#4,e4]@57 ~@7 b3@28 ~@19, ~@81 d4@24 ~@23]/4", // E7 A7
  AC: "[~@23 [g3,a3,c#4]@12 ~ [g3,a3,c#4,e4]@6 ~@4 f#4 ~@2 g4@2 ~ [b3,c#4]@6 g4@2 ~@2 a4@2, ~@51 e4@8 ~@5]/2", // A7 Bsus2
  AD: "~@2 a4 ~@5 [c#4,f#4,a4] ~@4 [b3,c#4,g4]@7 ~@3 [g3,b3]@6 e4@2 ~, ~ [e4,g4]@5 ~@26, ~ b4@3 ~@28", // F#m C#m7b5 G Em
  AE: "~ [g#4,b4]@4 ~@3 [g#4,b4]@14 ~@2 [a4,c5]@8", AF: "~@9 d4@20 ~@3, ~ [e4,g#4]@29 ~@2, ~@7 b3@22 ~@3",
  AG: "[~@5 g3@4 [b3,d4] ~ a3@4 [c4,e4] ~ b3@4 [d4,f4]@2 b3@4 [e4,g4] ~ g3@4 [b3,d4]@2 a3@4 [c4,e4] ~ a3@4 [d4,f4]@2 a3@4 [e4,g4] ~ g3@4 [b3,d4]@3 ~@4]/2", // Bm C Dm Em Bm C Dm Em …
  AH: "~ f4@5 ~@2 f4@4 ~ e4@12 b3@3 ~ e4@3", AI: "[~ [a3,f4]@5 ~@2 [a3,f4]@6 [g#3,e4]@22 ~@28, ~@8 [c#4,d#4] ~@55]/2",
})).s("gm_electric_guitar_jazz").gain(0.38)

// chords · electric guitar jazz · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@4 A@6 B@3 ~@14 C@3 ~ D@5 ~@25 E F ~@2 G@8 H@3 ~@7 I@2 ~@6 J@2 K ~ L@2 ~@2 M ~ N ~@2 O ~@18
>`.pickRestart({
  A: "[~@30 g#3@55 ~@9 g#3@57 ~@7 c#4@34]/6", B: "[~@30 g#3@53 ~@13]/3", C: "[~@30 g#3@39 ~@25 d#4 ~]/3",
  D: "[~@30 g#3@27 ~@5 [a3,d#4,f#4]@13 ~@3 [g#3,b3]@57 ~@25]/5", E: "~@20 c#4 ~ a3@2 ~@8", F: "~ c#4@2 ~@29",
  G: "[~@8 g#3@40 ~@3 g#3@38 ~@4 g#3@36 ~@7 g#3@32 ~@10 c#4@37 ~@6 c#4@33 ~@2]/8", H: "[~@7 g#3@37 ~@6 g#3@31 ~@15]/3",
  I: "[~ g#3@57 ~@6]/2", J: "[~@17 g#3@39 ~@8]/2", K: "~@17 d#4 ~@14", L: "[~@17 g#3@27 ~@20]/2", M: "~@13 d#4 ~@18",
  N: "~@5 g#3@24 ~@3", O: "~@27 c#4@2 ~@3",
})).s("gm_electric_guitar_jazz").gain(0.22)

// drums · kick
const kick = s("bd").struct("<A B@62 C D E F G H I J K L M J N O P Q R S@42 T>".pickRestart({
  A: "~@15 x", B: "~@3 x ~@3 x ~@3 x ~@3 x", C: "~@3 x ~@3 x ~@3 x ~@4", D: "~@13 x ~@2", E: "~@4 x ~@8 x ~ x",
  F: "~@19 x ~@12", G: "~@5 x ~@2 x ~@20 x ~@2", H: "~@15 x ~@3 x ~@12", I: "~@8 x ~@17 x ~@2 x ~@2", J: "~@9 x ~@6",
  K: "~@4 x ~@3 x ~@20 x ~@2", L: "~@15 x ~@2 x ~@13", M: "~@7 x ~@17 x ~@3 x ~@2", N: "~@4 x ~@2 x ~@20 x ~@3",
  O: "~@7 x ~ x ~@6", P: "~@7 x ~@17 x ~@2 x ~@3", Q: "~@17 x ~@14", R: "~@17 x ~@7 x ~@6",
// … 63 more lines

More by Alan Jackson