Strudelify

I'll Never Forgive My Heart

Brooks & Dunn

KeyE♭ majorTempo81 bpm
0:00/0:00
// I'll Never Forgive My Heart — Brooks & Dunn
// 81 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 67 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): MUTED GTR, STEEL GTR.
setcpm(81/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 · piano · "A.PIANO 2"
const piano = note(`<
  ~ A B C D E F G H@2 I J K L M@2 N O P@2 Q R S@2 T U V@2 W X Y Z AA AB AC@2 AD AE AF AG AH AI AJ@2 AK AL AM@3 AN AO@2
  AP AQ AR AS@2 AT AU AV@2 AW@6
>`.pickRestart({
  A: "[eb3,ab3]@5 ~@3 ab5 [bb5,eb6] ~ ab5, c4@9 ~ eb6@2, ~@5 [eb3,ab3]@4 [eb3,ab3]@3, ~@7 [bb5,c6]", // Ab5 Eb5 Ab5 Bbsus2
  B: "[c6,eb6]@3 bb5 [c6,eb6]@9 ~@3 ab3@2 ~@4 c4@2, [eb3,ab3,c4]@13 ~@3 eb3@8, bb5 ~@17 c4@4 ~@2, ~@5 ab3", // Cm Ab
  C: "[eb3,bb3]@6 ~@2 eb5 f5 ~ eb5, g3@5 ~ [eb3,g3]@3 [eb3,g3]@3, ~@18 bb5 ~ bb5@4, ~@7 [f5,g5]", // Eb5 Eb Fsus2
  D: "[g5,c6]@3 f5 [g5,c6]@6 bb3@2 c4@4 bb3@3 ~ g3@4, [c3,g3]@11 ~@13, f5 ~@23", // C5
  E: "~@6 c4@3 ~@2 eb5, [eb3,f3,a3,c4] [eb3,f3,a3], ~@5 g5@7, ~@3 eb5@2 d5, ~@3 c4", // F7
  F: "[eb3,f3,a3,c4,a4,c5,eb5]@10 [f3,a3,f4,a4] [g3,bb3,g4,bb4], [b4,d5] ~@23", // F7 F Gm Bm
  G: "[c4,ab4,c5]@3 [c4,c5,eb5]@3 [ab3,c4,eb4,eb5,ab5]@3 [eb5,ab5] ~ c6, ab3 c5, ~ ab4@3, ~@3 [ab3,c4,eb4], ~@9 c6 eb6@2", // Fm Cm Ab Ab5 Ab
  H: "[[f5,d6]@5 ~ d6@2 d6@2 d6@2 d6@6 [eb5,b5] ~ f5@2 [f5,c6]@2 [d5,bb5]@4 ~@20, [bb3,f4]@9 [bb3,d4,f4]@5 ~@10, d4 ~@2, bb5@11 ~@7 c6@2 d6@4 ~@24]/2", // Dm Abm F5 Gm Bb5 Bb
  I: "[eb4,ab4]@9 ~ ab3 c4, c5, c4@11 ~, ab3@5 ~, ~@3 [eb4,ab4]", // Ab5
  J: "ab3@2 ~@3 ab3@3 ~@3 ab4, eb4@4 eb4@5 eb4@3, c4 c4@3, ~@2 ab3@3 ~@3 ab3@4",
  K: "~@2 bb3@6 ~@3 g4, g4@11 ~, eb3@3 [eb3,g3], g3@5 ~@5 bb4@2", // Eb
  L: "~@11 e4, e4 g3@3 g3!2, ~ c3@8 c3@3, ~ g4@3, ~@5 c4@7",
  M: "[~@12 f4 ~@7 [f3,a3]@4, f4@11 f5@2 ~@11, [f3,a3]@9 [f3,a3]@3 [f3,a3]@8 ~@4, ~ eb4@5 ~ f4@5, ~@10 c5@2 ~ c5@11]/2", // F
  N: "c4 ~@9 eb3@10 ~@2 [c4,eb4]@2, ab2@5 [ab2,eb3], eb4@2 c4@9 ~, ~ eb3@2 ab4@9, ~@5 eb4@6 ~", // Cm Ab5
  O: "[d4,f4]@4 ~@6 f3@2 [f3,bb3,d4,f4]@11 ~, bb2@4 bb2@3 ~, f3 [d4,f4] ~@2, ~ bb3@2 ~@3", // Dm Bb Dm
  P: "[[ab2,eb3,c4,eb4]@9 ~ c5 b4 bb4 ~ eb4@3 c4@3 ~@3 ab4, ~@9 ab3@8 ~@3 [ab3,c4]@4, ~@18 [c4,eb4]@7 ~ c4@6 ~@2 eb4@8 eb4@6, ~@20 b4 ~@5 ab4@20 ~@2]/2", // Ab Cm
  Q: "~@16 g3@2 ~@2 bb3@2 eb4 ~, [eb3,eb4,bb4]@19 ~@5, g3@8 ~ [eb3,g3]@3, bb3@7 ~@5, ~@10 g4@9 ~@5", // Eb5 Eb
  R: "~@11 g4, g4@5 eb4, eb4@3 bb3, bb3@2 g3 bb3 g3@2, ~@8 eb3@15 ~",
  S: "[eb4@6 ~@8 a3@3 ~@7 [f3,a3,c4]@4 [a3,c4,eb4]@2 eb5@2 a4@2 [eb5,g5]@2 [f3,a3,eb4,d5,f5]@6 [eb4,a4,eb5]@6, a4@9 a4@4 ~@11, [f3,a3]@14 [f3,c4]@10 ~@6 f3@6 ~@6 [f3,a3]@3 ~@3, ~@6 c5@23 ~@19, ~@3 eb4@6 ~@6 [a3,eb4,g5]@2 ~@7]/2", // F Adim Eb Dm Ebdim F F5 F …
  T: "[ab3,c4]@6 ~@2 [ab4,c5]@2 [bb4,d5]@2 [ab3,c5,eb5]@5 ~@3 eb4@4, eb5@5 ~@7, c5@4 ~@5 ab4@2 ~, ~@3 eb4@3 [c4,eb4]@4 ~@2", // Ab Bb Ab Cm
  U: "[bb3,d4,bb4,d5,f5]@11 ~ [g3,eb4,g4,bb4,eb5]@6 [d4,f4,bb4,d5]@6", // Bb Eb Bb
  V: "[[eb4,ab4,c5]@5 ~@11 c4@2 ~@2 bb3@2 c4@2 bb3@3 ~@19 eb4@2, [ab3,c4]@4 eb4 ~ eb4@5 ab3, ~@3 ab3@4 eb3, ~@7 c4@5, ~@5 ab2]/2", // Ab
  W: "~@16 eb4@2 g4@2 bb3@2 eb4 ~, [eb3,g3]@5 ~, eb4@2 ~, ~@7 bb4@2 ~@3", // Eb
  X: "~@11 bb3, e4@5 e4, c3@2 c3, ~ g3@8 g3@3, ~@2 bb3@9 ~",
  Y: "~@6 a3@3 ~@13 [f3,a3]@2, [f2,eb4], ~ c3@9 c3@2, ~@2 f3@3 c4@7", // F F7
  Z: "~@5 ab3 ~@4 d4@2, [c4,eb4]@3 [bb3,d4,f4]@2 ~, ~@2 ab3@3 ~@7, ~ ab2 bb2@2, ~@4 eb3@2 ~@3 f3@3", // Cm Bb
  AA: "[eb3,g3]@2 [bb3,eb4] ~ g3 [bb3,eb4] ~ g3 [bb3,eb4] ~ g3 [bb3,eb4], ~@6 f3@5 ~ f3@5 ~ f3@6", // Eb Eb5
  AB: "[eb2,bb2,eb3,g3]@23 ~", // Eb
  AC: "[[ab3,c4,eb4]@8 ~@3 bb3 ~@11 eb4, ~ ab2@2, ~@9 eb3@11 eb3@4, ~@10 ab3@11 ab3@3, ~@6 c4@5 c4]/2", // Ab
  AD: "~@5 g3 [eb3,g3,eb4,g4,bb4]@3 [db3,b3,f4,ab4]@3, [eb3,eb4,g4] ~, g3@5 ~@7, ~ bb3 ~@2", // Eb Db7 Eb
  AE: "[c3,g3,bb3,e4]@3 [e5,bb5,c6] [c6,e6] [bb5,g6], g4@2 ~", // C7 C Eb
  AF: "[a5,f6] ~ [a5,f6] ~ f6 a5 ~@4 g6@2 ~@4 f5@2 ~@4 [bb5,d6]@2, [f3,a3,c4]!2, ~@3 a5@2 ~ f6@6 [c6,eb6]@6 [bb5,d6]@4 ~@2, ~@5 f5", // Dm Bb F Cm Bb
  AG: "ab5 ~@9 c5@2 ~@4 [a5,c6]@2 [a3,c4]@2 ~@2 d5@2, [f3,a3,c4,eb4,a5,c6]@4 f3@3 ~, ~@2 [a3,c4] eb4, ~@3 [a5,c6] ~ [bb5,d6], ~@14 c5@4 c5 ~@5", // Am F7 Am Bb
  AH: "~@2 [c6,eb6] eb5 c6!2 eb5 [c6,eb6] [eb5,c6] ~@2 eb5 ~@4 [ab3,c4,eb4,eb5]@2 ~@4 [g5,eb6]@2, [ab3,c4,eb4]@8 ~ [ab3,c4,eb4,bb5,g6]@3, [c6,eb6]@2 ~ eb6@2 eb6@2 ~ eb6@2 c6@8 ~@6, ~ eb5@2 ~ eb5@2 ~@3 eb5@2 ~@13, ~@5 eb6@3 ~@2 f6@2", // Cm Ab Cm Ab Abmaj7 Cm
  AI: "f5@4 [f5,f6]@8 [bb5,f6,bb6]@5 ~ [bb5,f6,bb6]@4 ~@2, [bb3,d4,f4,d6] ~, c6 ~@23", // F Bb5 Bb
  AJ: "[~@20 c4 [ab3,c4,eb4]@3, ~ ab2@11, ~@3 eb3@5 c4@11 ab3@2 ~@3, ~@4 ab3@7 eb3@13, ~@5 bb3 eb4@15 ~@3]/2", // Ab
  AK: "g3@5 ~@3 [eb4,g4]@4, eb3, bb4@2 eb5 ~, eb4@5 bb3 eb4 bb4@5, ~@5 g3@7", // Eb
  AL: "~@11 g4, [eb3,g3] bb4@2, ~ g4@9 eb4@2, ~ eb4@3 [eb3,g3]@2, ~ bb3@2 bb3", // Eb
  AM: "[[a3,eb4,a4]@8 [eb4,f4]@9 ~ [a3,c4,a4]@4 c4@2 ~@4 f4@6 ~@14 ab3@4 ~@4 c4@2 ab2@8 ab2@2 ~@2 [ab3,c4,eb4]@2, f3@10 ~@8 [f3,f5]@6 [f3,c4]@10 f3@6 eb4@4 eb4@11 ~@17, f4@6 ~@2 c5@10 ~@4 [a4,eb5]@6 c5@14 a3@5 ~ [ab2,eb3]@10 eb3@10 [ab2,eb3]@4, ~@24 a3@8 ~@4 a4@7 ~@11 bb3@4 ~@14, ~@38 f4@9 ~@5 ab3@6 [ab3,c4,eb4]@12 ~@2]/3", // Adim Ebsus2 Am Ab F F5 Adim Ab5 …
  AN: "[bb2,f3,d4,f4]@5 f3 [eb3,bb3,eb4,g4]@3 [bb2,bb3,d4,f4]@3, bb3 ~", // Bb Eb Bb
  AO: "[[ab3,c4,eb4]@13 ~@3 c5@2 [eb4,bb4]@4 eb4@10 ~@2 ab4@2 eb4@2 ~@8 c5@2, ab2@3 ab3@3 [ab3,ab4]@2, ~@7 [ab4,eb5]@2 c4@8 ~ c4@3 c4@3, ~@11 ab4@6 ~ c5@5 ~, ~@8 eb4 ~ eb4!2]/2", // Ab Eb5 Ab Ab5
  AP: "eb3@7 ~@4 bb4, bb4@5 [eb4,g4], eb4@3 bb3, bb3@2 g3, g3@7 eb3@5", // Eb
  AQ: "[bb3,e4,g4,bb4]@3 ~@2 g3 [g3,e4,e5,c6]@2 [g3,e4,e5,bb5]@2 [g3,e4,bb4,g5]@2, c3 ~, g3@5 ~@7, ~ [bb3,e4,g4,bb4] ~@2", // Edim C Edim
  AR: "~@11 f5, f5@5 [eb4,a4,eb5], a4@2 a3, c4@7 f3@5, [f3,a3]@5 eb4@4 c4@3", // Ebdim F
  AS: "[[eb4,ab4]@3 [eb4,ab4,c5]@3 d4@3 ~ f4@2 g4 f4 ~@3 g3 ~ g3!2 [b3,f4,ab4]@3, [ab3,c4,eb5] bb3 eb3 ~, ~@3 [f4,bb4]@2 bb4@4 ~@3, ~@9 d4@3 g3@4 ~@8, ~@14 eb4@4 [eb4,g4,bb4]@3 ~@3]/2", // Ab5 Ab Fdim Ab Bb5 Eb
  AT: "~@5 e4 g3 ~@3 c5@2, g4@7 g3 c5 g3@3, e4@2 g3 [e4,bb4]@3, bb3 bb3@2, ~ c3@3", AU: "[f3,a3,c4,f4,c5]",
  AV: "[[ab3,c4,eb4,ab4,c5,eb5]@17 ~ [bb3,d4,f4,bb4,d5]@23 ~@7]/2", // Ab Bb
  AW: "[~@28 [f3,bb3]@2 [g3,bb3]@4 [bb3,eb4]@2 eb4@4 [eb4,g4]@2 [ab2,eb3,ab3,c4,f4]@10 [ab2,eb3,ab3,c4,f4]@2 [ab2,eb3,c4,eb4]@10 ~@2 [d4,c5]@5 ~ bb4@6 [d4,ab4]@6 f4@6 [eb2,eb3,g4]@36 ~@18, ~@22 eb4@7 ~@37 bb4 ~@5 ab4 ~@5 g4 ~@65, ~@23 bb3@5 ~@8 [bb3,c4]@6 ~@12 bb3 ~@23 bb3@9 ~@57, ~@24 [eb3,g3]@6 f3 ~@35 [bb2,f3,bb3]@12 [bb2,f3]@13 ~@53]/6", // Bb5 Gm Eb5 Eb Fm7 Ab D7 Ddim …
})).s("gm_piano").gain(0.38).pan(0.4)

// chords · piano · "A.PIANO 2" · soft notes
const piano_soft = note(`<
  ~@3 A ~@3 B C ~ D ~ E ~@2 F G ~@2 H I ~@2 J K ~ L ~@4 M ~@6 N ~ O ~@2 P ~ Q R S ~ T ~ U ~@12 V@3
>`.pickRestart({
  A: "~@5 g3 ~@6", B: "~@3 eb4@3 ~@4 [eb5,ab5]@2", C: "~@4 f5 f5@2 f5@2 f5@2 f5@2 ~@3 d4@2 ~@6, ~@5 d6 ~@7 f5@5 ~@6",
  D: "~@11 ab3", E: "~@5 g3@3 bb3@4, ~@8 g3 ~@3", F: "~@5 a4", G: "~@8 ab3@2 ab3!2", H: "~@4 c4 ab3@3 ~@4",
  I: "~@14 bb3@5 ~@5", J: "~@8 a4 ~@3", K: "~@5 c4", L: "~@5 eb4@3 ~@4", M: "~@5 [bb3,f4]", N: "~ [eb4,a5] ~@2",
  O: "~@6 eb5@2 eb6 ~@3", P: "~@5 ab3@2 ~@5", Q: "~@9 eb4 ~@2", R: "~@5 c4@4 ~@2 a3", S: "~@8 a3@7 ~@9",
  T: "~@5 [bb2,d4,f4] ~@6", U: "~@5 c4 ~@6", V: "[d4@6 ~@12 bb3@37 ~@17]/3",
})).s("gm_piano").gain(0.22).pan(0.4)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~ A B C D E F G H I J K L M N O P Q R S T U V F W X Y Z AA AB AC AD AE AF Y AG AH AI V AJ AK Q Y AL AM AN AO AP AK X
  AQ AL AR AS AT AU AH AV AW AX@2 ~ AY@5
>`.pickRestart({
  A: "ab2@10 ~@2 eb2@11 ~", B: "ab2@11 ~ ab2@10 ~@2", C: "eb2@9 ~ eb2 ~ eb2@7 ~ bb1@2 b1@2", D: "c2@10 ~@2 c2@11 ~",
  E: "f2@11 ~ c2@12", F: "f1@11 ~ f1@9 ~ g1@2", G: "ab1@11 ~ ab1@5 ~ ab1@2 bb1@2 c2@2", H: "bb1@6 f2@3 d2 eb2 f2",
  I: "bb1 ~@5", J: "ab2 eb2", K: "ab2@11 ~ ab2@12", L: "eb2@12 eb2@7 ~ bb1@2 b1@2", M: "c2@11 ~ c2@10 ~@2",
  N: "f1@11 ~ c2@12", O: "f1@11 ~ f1@11 ~", P: "ab1@11 ~ ab1@8 bb1@2 c2@2", Q: "bb1@8 ~@2 f1@2 bb1@5 ~ bb1@5 ~",
  R: "ab1@8 ~@2 ab1@2 eb2@11 ~", S: "ab1@9 ~ ab1@2 ab1@5 ~ ab1@5 ~", T: "eb1@9 ~ eb1@2 bb1@11 ~",
  U: "eb1@9 ~ c2@2 bb1@6 g1@6", V: "f1@9 ~ f1@2 c2@12", W: "ab1@9 ~ ab1@2 ab1@6 ~@2 bb1@2 c2@2",
  X: "bb1@9 ~ bb1@2 eb1@6 bb1@5 ~", Y: "ab1@9 ~ ab1@2 eb2@11 ~", Z: "ab1@9 ~ ab1@2 ab1@7 ~ g1@2 f1@2",
  AA: "eb1@4 ~ bb1 eb2@3 db2@3", AB: "c2@9 ~ c2@2 c2@10 ~@2", AC: "f1@10 f1 ~ f1@9 ~ g1@2",
  AD: "ab1@7 ~ bb1@2 c2@2 bb1@12", AE: "eb1@9 ~ eb1@2 bb1@5 ~ bb1@2 c2@2 bb1@2", AF: "eb1@11 ~",
  AG: "ab1@9 ~ ab1@2 ab1@11 ~", AH: "eb1@4 g1 bb1 eb2@3 db2@3", AI: "c2@9 ~ c2@2 c2@11 ~",
  AJ: "f1@9 ~ f1@2 f1@7 ~ f1@2 g1@2", AK: "ab1@9 ~ ab1@2 ab1@7 ~ bb1@2 c2@2", AL: "ab1@9 ~ ab1@2 ab1@10 ~@2",
  AM: "eb1@9 ~ eb1@2 bb1@10 ~@2", AN: "eb1@9 ~ c2@2 bb1@6 g1@5 ~", AO: "f1@9 ~ f1@2 c2@11 ~",
  AP: "f1@9 ~ f1@2 f1@7 ~@3 g1@2", AQ: "ab1@4 ~ ab1 eb2@5 ~", AR: "eb1@6 eb2@4 eb1@2 eb1@7 ~ bb1@2 b1@2",
  AS: "c2@9 ~ c2@2 c2@9 ~@3", AT: "f1@9 ~ f1@2 f1@12", AU: "ab1@9 ~ ab1@2 bb1@10 ~@2", AV: "c2@9 ~ c2 ~ c2@10 ~@2",
  AW: "f1@9 ~ f1@2 f1@11 ~", AX: "[ab1@6 bb1@7 ~@3]/2",
  AY: "[~@18 ab1@8 ~@2 ab1@2 ab1@8 bb1@2 c2@2 bb1@11 ~ bb1@5 ~ bb1@5 ~ eb1@51 ~@3]/5",
})).s("gm_fretless_bass").gain(0.44)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~ A@2 B C D@2 E F G H I J K L M N O P@2 Q@2 R@2 S T U@2 V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL@2 AM AN AO AP
  AQ@2 AR AS AT AU AV AW AX AY@2 ~ AZ BA@4
>`.pickRestart({
  A: "[[c4,eb4,ab4]@4 ~@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [c4,eb4,ab4]@4 eb4@2 [ab3,c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [ab2,eb3,ab3,c4,eb4]@5 ~, [ab2,eb3] ~@3, ab3@6 ~@6 [eb3,ab3]@6 ~@4 ab3@8 ab3@6 [eb3,ab3]@6 ab4@3 ~@3]/2", // Ab Ab5
  B: "eb4@2 [bb3,eb4,g4] [bb3,eb4,g4]@2 [bb3,eb4] [bb3,eb4]@2 [bb3,eb4,g4] [bb3,eb4,g4]@2 ~, ~ g3 ~@2, ~@5 g4@3 ~@4", // Eb Eb5 Eb
  C: "[bb3,e4]@2 [bb3,e4,g4] [e4,g4]@2 e4 [c3,bb3,e4]@2 [bb3,e4,g4] [bb3,e4,g4]@2 g4, ~ [g3,bb3] ~@2, ~@5 g4@3 ~@4", // Bbdim Edim Em C7 Edim Gm
  D: "[[a3,c4,f4]@2 [f4,a4] [c4,f4,a4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4] [c4,f4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4] [c4,f4]@2 [c4,f4,a4] [f3,a3,c4,f4,a4]@2 ~, a4 ~@5 a3@3 a3@6 [f3,a3]@3 a3@3 ~@3]/2", // F F5 F F5 F
  E: "[eb3,ab3,c4,eb4]@3 ~ [c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [c4,eb4]@2 [c4,eb4]@4 [c4,eb4,ab4]@2 [eb3,ab3,c4,eb4,ab4]@4 ab4 ~, ~ ab3 ~@2, ~@5 ab4@3 ~@4", // Ab Cm Ab
  F: "[d4,f4]@2 [f4,bb4] [d4,f4,bb4]@2 [d4,f4,bb4] [d4,f4,bb4]@2 [f4,bb4] [d4,f4,bb4]@2 [d4,f4,bb4], f3@11 ~, bb3 ~ bb3 ~", // Dm Bb5 Bb Bb5 Bb
  G: "[bb3,d4,f4,bb4] ~@5", // Bb
  H: "[c4,eb4,ab4]@2 [c4,eb4,ab4] [c4,eb4,ab4]@2 [c4,eb4,ab4] [c4,eb4,ab4]@2 [c4,eb4] [c4,eb4,ab4]@2 [c4,eb4,ab4], [eb3,ab3]!3 ab3", // Ab Cm Ab Ab5
  I: "[c4,eb4,ab4]@2 [c4,eb4,ab4] [eb3,c4,eb4,ab4]@2 [eb3,c4,eb4,ab4] [c4,eb4]@2 [c4,eb4,ab4] [ab3,c4,eb4,ab4]@2 ~, ab3@3 ab3@3 eb3@5 ~, ~@2 ab3 ~", // Ab Cm Ab
  J: "eb4@3 ~ eb4@2 [bb3,eb4,g4]@4 [bb3,eb4,g4]@6 [bb3,eb4,g4]@2 [g3,bb3,eb4]@4 [bb3,eb4] ~, eb3 ~, [g3,bb3]@2 g3@4 g4 ~", // Eb Eb5 Gm
  K: "[bb3,e4,g4]@4 [bb3,e4,g4]@2 [bb3,e4,g4]@4 [bb3,e4]@2 [bb3,e4]@4 [bb3,e4,g4]@2 [bb3,e4,g4]@4 g4 ~, g3@3 ~, c3@3 ~@2 g4@3 ~@4", // Edim Bbdim Edim
  L: "[c4,f4]@4 [f4,a4]@2 [c4,f4,a4]@4 [c4,f4,a4]@2 [c4,f4,a4]@4 [f4,a4]@2 [a3,c4,f4]@4 f4 ~, f3 ~, a3@2 a3@2 a3@2 a4 ~", // F5 F
  M: "[c4,f4]@4 [f4,a4]@2 a4@3 ~ a4@2 [c4,f4]@4 [c4,f4,a4]@2 [c4,f4,a4]@4 f4 ~, a3@5 ~@7, ~ [c4,f4] ~@2", // F5 F F5 F F5
  N: "[c4,eb4]@4 [c4,eb4,ab4]@2 [c4,eb4,ab4]@4 c4@2 c4@4 [c4,eb4,ab4]@2 [eb3,ab3,c4,eb4]@5 ~, ab3!2 [eb3,ab3] ~, ~@10 [eb4,ab4]@5 ~@3 ab4@3 ~@3", // Cm Ab Ab5
  O: "[d4,f4]@4 [f4,bb4]@2 [bb3,d4,f4,bb4]@4 [f3,bb3,d4,f4,bb4]@2 [d4,f4,bb4]@4 [d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@4 bb4 ~, [f3,bb3] ~ [f3,bb3] ~", // Dm Bb5 Bb Bb5
  P: "[[ab3,eb4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4] [c4,eb4,ab4]@2 [c4,eb4,ab4] [c4,eb4,ab4]@2 [c4,eb4] [c4,eb4]@2 eb4 [ab3,c4,eb4,ab4]@2 [c4,eb4,ab4] [ab3,c4,eb4]@2 [c4,eb4,ab4] [eb4,ab4]@2 ~, c4@2 ~ ab3@3 ab3@3 ab3@6 ~@6 c4@3, ~@11 ab4@3 ~@10]/2", // Ab5 Ab Cm Ab Ab5
  Q: "[[bb3,eb4]@4 [bb3,eb4,g4]@2 [eb4,g4]@4 eb4@2 bb3@4 [bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [bb3,eb4]@2 [bb3,eb4]@4 [bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [bb3,eb4,g4]@2 bb3@4 [bb3,eb4,g4]@2 [g3,bb3,eb4]@5 ~, g3 g3@2 g3 g3 ~@3, ~ bb3 ~@6, ~@10 g4@6 ~@6 g4@6 ~@14 g4@3 ~@3]/2", // Eb5 Eb Eb5 Eb
  R: "[[c4,f4]@2 [c4,f4,a4] [f4,a4]@2 [f4,a4] [c4,f4]@2 [a3,c4,f4,a4] [c4,f4,a4]@2 [c4,f4] [c4,f4]@2 [f4,a4] [c4,f4,a4]@2 [c4,f4,a4] [c4,f4]@2 [c4,f4,a4] [f3,a3,c4,f4,a4]@2 ~, a3 [a3,c4] ~ a3 a3!2 ~@2, ~@11 a4@3 ~@10]/2", // F5 F F5 F F5 F F5 F …
  S: "~@2 [c4,eb4,ab4] [ab3,c4,eb4,ab4]@2 [c4,eb4,ab4] [c4,eb4,ab4]@2 [c4,eb4,ab4] [eb3,ab3,c4,eb4,ab4]@2 ~, [eb3,ab3] ~ eb3 ~", // Ab Ab5
  T: "[bb3,d4,f4]@4 [d4,f4,bb4]@2 [f3,bb3,d4,f4]@4 [f4,bb4]@2 [bb3,eb4,g4]@4 [eb4,g4,bb4] ~ [f3,bb3,d4,f4,bb4]@4 [bb3,d4,f4,bb4] ~, f3@2 bb4 ~ bb4 ~@3", // Bb Bb5 Eb Bb
  U: "[[c4,eb4]@4 [c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [c4,eb4]@4 [eb4,ab4]@2 [eb4,ab4]@4 [c4,eb4]@2 [eb3,ab3,c4,eb4]@4 [c4,eb4,ab4]@2 [eb3,ab3,c4,eb4,ab4]@4 [eb3,c4,eb4]@2 [c4,eb4]@4 [c4,eb4,ab4]@2 [ab3,c4,eb4,ab4]@4 [eb4,ab4] ~, ab3@3 ab3@3 ab3@5 ~@6 ab3@4 ~@3, ~@8 c4@3 ab4@3 ~@3 ab4@3 ~@4]/2", // Cm Ab Cm Ab5 Cm Ab Cm Ab …
  V: "[g3,bb3]@4 [bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [bb3,eb4]@2 [bb3,eb4]@4 [bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [bb3,eb4,g4] ~, eb4@3 ~@7 g4@6 ~@2 g3@6", // Gm Eb Eb5 Eb
  W: "[bb3,e4]@3 ~ [bb3,e4,g4]@2 [bb3,e4,g4]@4 [bb3,e4]@2 [bb3,e4]@4 [bb3,e4,g4]@2 [bb3,e4,g4]@4 ~@2, g3@6 c3@5 ~, ~@5 g4@3 ~@4, ~@2 g3 ~", // Bbdim Edim Bbdim Edim
  X: "[c4,f4]@4 [c4,f4,a4]@2 [a3,c4,f4,a4]@4 [c4,f4]@2 ~@4 [f3,a3,c4,f4,a4]@2 [f3,a3,c4,f4]@4 [c4,f4,a4] ~, a3@6 ~@4 a4@6 ~@2 a4@3 ~@3", // F5 F F5 F
  Y: "[c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [eb3,ab3,c4,eb4]@4 [eb4,ab4] ~ [f3,d4]@4 [d4,f4,bb4]@2 [f3,bb3,d4,f4]@4 bb4 ~, [eb3,ab3]@2 ab4 ~ bb3@2 bb4 ~", // Ab Ab5 Dm Bb Ab5
  Z: "[eb3,eb4]@2 [bb3,eb4,g4] [bb3,eb4,g4]@2 [bb3,eb4,g4] [g3,bb3,eb4]@2 [bb3,eb4,g4] [g3,bb3,eb4,g4]@2 [bb3,eb4,g4], g3 ~@2 eb3", // Eb
  AA: "[eb3,g3,bb3,eb4,g4]@19 ~@5", // Eb
  AB: "[c4,eb4,ab4]@2 eb4 [eb3,c4,eb4]@2 [eb3,c4,eb4,ab4] [c4,eb4,ab4]@2 [c4,eb4,ab4] [ab3,c4,eb4]@2 [ab3,c4,eb4,ab4], ab3@6 eb3@5 ~, [ab2,eb3]@3 ab2@8 ~, ~@2 ab4@3 ~@7", // Ab Cm Ab Ab5
  AC: "[eb3,c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [c4,eb4]@4 [c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [eb3,ab3,c4,eb4,ab4]@4 ab4 ~, ab3 ~@3", // Ab Cm Ab
  AD: "[bb3,eb4]@4 [eb4,g4]@2 [bb3,eb4,g4]@4 [bb3,eb4,g4]@2 [g3,bb3,eb4,g4]@4 g4 ~ [f3,ab3,db4]@5 ~, g3@5 ~@7", // Eb5 Eb Db
  AE: "e4@2 [bb3,e4,g4] [bb3,e4,g4]@2 [bb3,e4,g4] [bb3,e4]@2 [bb3,e4,g4] [g3,bb3,e4,g4]@2 ~", // Edim Bbdim Edim
  AF: "[c4,f4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4] [f3,c4,f4,a4]@2 [c4,f4,a4] [c4,f4]@2 [c4,f4,a4], a3!3 ~", // F5 F F5 F
  AG: "[f4,a4]@4 [f4,a4]@2 [c4,f4,a4]@4 [c4,f4,a4]@2 [c4,f4,a4]@4 [a3,c4,f4,a4]@2 [a3,c4,f4,a4]@4 f4 ~, [a3,c4]@3 ~@2 a3@3 ~@4", // F Am
  AH: "[c4,eb4]@4 [c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [c4,eb4,ab4]@4 ab4 ~, [eb3,ab3]@6 ab3@17 ~", // Cm Ab Ab5
  AI: "[d4,f4]@2 [d4,f4,bb4] [d4,f4,bb4]@2 [d4,f4,bb4] [bb3,d4,f4,bb4]@2 [d4,f4,bb4] [d4,f4,bb4]@2 [d4,f4,bb4], [f3,bb3] bb3 f3 [f3,bb3]", // Dm Bb Bb5
  AJ: "[c4,eb4,ab4]@2 [c4,eb4,ab4] [c4,eb4,ab4]@2 [c4,eb4,ab4] [c4,eb4]@2 [c4,eb4,ab4] [c4,eb4,ab4]@2 [c4,eb4,ab4], ab3@5 ~@4 ab3@3", // Ab Cm Ab
  AK: "[ab3,c4,eb4]@4 [ab3,c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [ab3,c4,eb4]@2 [c4,eb4]@4 [c4,eb4,ab4]@2 [ab3,c4,eb4]@4 ab4 ~, ~@10 ab4@6 ~@2 ab4@3 ~@3, ~@2 ab3 ~", // Ab Cm Ab
  AL: "[[eb4,g4]@3 ~ [bb3,eb4,g4]@2 [bb3,eb4]@4 [bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [bb3,eb4]@2 eb4@4 [eb4,g4]@2 [bb3,eb4,g4]@4 [bb3,eb4,g4]@2 [bb3,eb4]@4 [bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [eb4,g4] ~, g3@3 ~@8 g4@3 ~@10, ~@4 [g3,bb3] ~@3]/2", // Eb Eb5 Eb Eb5 Eb Eb5 Eb Gm
  AM: "[c4,f4,a4]@2 [c4,f4] [c4,f4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4], ~@2 a4@3 ~@7", // F F5 F
  AN: "[c4,f4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4] [c4,f4,a4]@2 ~, a3@3 ~@3 a3@5 ~", // F5 F
  AO: "eb4@3 ~ [c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [eb4,ab4]@2 [eb3,ab3,c4,eb4]@4 [c4,eb4,ab4]@2 [eb3,ab3,c4,eb4,ab4]@4 ~@2, ~ ab3 ~@2", // Ab Ab5 Ab
  AP: "[d4,f4]@4 [f4,bb4]@2 [d4,f4,bb4]@4 [d4,f4,bb4]@2 [eb3,bb3,eb4,g4,bb4]@4 eb4 ~ [f3,bb3,d4,f4]@4 [bb3,f4,bb4] ~, [f3,bb3]@3 [f3,bb3]@3 ~@2 bb4@3 ~", // Dm Bb5 Bb Eb Bb Bb5
  AQ: "[[eb3,c4,eb4,ab4]@2 [c4,eb4,ab4] [ab3,c4,eb4,ab4]@2 [eb3,ab3,c4,eb4] [c4,eb4]@2 [c4,eb4,ab4] [c4,eb4,ab4]@2 eb4 [eb3,c4,eb4]@2 [c4,eb4,ab4] [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4] [c4,eb4,ab4]@2 [c4,eb4,ab4] [eb3,ab3,c4,eb4,ab4]@2 ~, ab3@3 ~@2 ab4@3 ~@3 ab4@3 ~@10, ~@2 [eb3,ab3] ab3 ab3 eb3 [eb3,ab3] ~]/2", // Ab Cm Ab Cm Ab Ab5
  AR: "[g3,bb3,eb4]@2 [bb3,eb4,g4] [g3,bb3,eb4,g4]@2 [bb3,eb4,g4] [bb3,eb4,g4]@2 [bb3,eb4,g4] [g3,eb4]@3, ~@6 g3@3 [bb3,g4]@2 ~", // Eb Cm Eb
  AS: "[bb3,e4]@4 [bb3,e4,g4]@2 [bb3,e4,g4]@4 [bb3,e4,g4]@2 [bb3,e4,g4]@4 [bb3,e4,g4]@2 [c3,g3,bb3,e4,g4]@4 g4 ~, g3 g3@2 ~", // Bbdim Edim C7
  AT: "f4@2 [f4,a4] [a3,c4,f4,a4]@2 [a3,c4,f4] [a3,c4,f4]@2 [a3,c4,f4,a4] [f3,a3,c4,f4,a4]@2 ~, [a3,c4]@3 ~@2 a4@3 ~@4", // F Am
  AU: "[c4,eb4]@4 [c4,eb4,ab4]@2 [ab3,c4,eb4]@4 [c4,eb4,ab4] ~ [f3,d4,f4]@4 [d4,f4,bb4]@2 [f3,bb3,d4,f4]@5 ~, ab3@2 ab4 ~ bb3@2 bb4 ~", // Cm Ab Dm Bb
  AV: "[bb3,eb4]@4 [eb4,g4,bb4]@2 [bb3,eb4,g4,bb4]@4 [bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4]@4 bb4 ~ [db3,ab3,db4,f4]@4 [db4,f4] ~, eb3@10 ~@2 bb4@3 ~@9", // Eb5 Eb Db
  AW: "[c4,e4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4] [c4,e4]@2 [c4,e4,g4] [g3,c4,e4,g4]@2 ~, [c3,g3] g3 ~@2, ~@5 g4@3 ~@4", // C C5
  AX: "[c4,f4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4] [c4,f4,a4]@2 ~, a3 a3@2 ~", // F5 F
  AY: "[[eb3,ab3,c4,eb4]@5 ~ [bb2,f3,bb3,d4,f4,bb4]@8 ~@2, ab4@13 ~@35]/2", // Ab Bb
  AZ: "~@9 [eb3,c4,eb4,ab4]@2 [c4,eb4,ab4], ~@3 [ab2,ab3]", // Ab
  BA: "[[ab3,c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [ab3,c4,eb4]@6 [ab2,eb3,ab3,c4,eb4,ab4]@4 ~@2 [f3,d4]@4 [d4,f4,bb4]@2 [bb3,d4,f4,bb4]@4 [d4,f4,bb4]@2 [bb3,d4,f4]@4 [bb3,d4,f4,bb4]@2 [f3,bb3,d4]@5 ~ [eb3,g3,bb3,eb4,g4]@51 ~@3, [ab2,eb3]@6 eb3@4 ~@8 bb2@15 ~@63, ~@6 bb3@2 ~@4 [f4,bb4] ~@19]/4", // Ab Dm Bb Eb Ab5 Bb5
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.8)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~ A B C D E F G H I J@2 K L 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 AM AN AO AP AQ AR AS
  AT AU ~ AV AW AX ~ AY AZ BA ~@4 BB BC ~@2
>`.pickRestart({
  A: "~@2 [eb4,ab4] ab3@3 ~@2 [c4,ab4] eb3@3", B: "~ eb3 ~@2", C: "[bb3,g4]@4 ~@2 eb3@6 g3@10 eb4 ~, g3 ~@3",
  D: "g3@3 c3@2 ~ g3@2 ~ g3@2 ~, g4 ~@7", E: "~@3 a3@3 f3@2 ~@4", F: "a4@2 ~@4 f3@3 ~@3, ~@4 a4 ~@3",
  G: "~@6 [eb3,ab3]@3 ab2@2 ~", H: "bb4 ~ bb3@2 ~@2 bb3@2, bb2@11 ~@13", I: "f3 ~@5",
  J: "[ab2@13 ~@3 ab4@2 eb3@12 ~@6 ab4@3 ~@9]/2", K: "~@2 g4 ~@3 eb3@2 ~@4", L: "~@3 c3@3 ~@3 g3@2 ~, ~@6 c3@5 ~",
  M: "~@2 c4 ~@5 c4 ~@3, ~@4 f3@3 ~", N: "~@4 c4@2 ~@6 a3@6 a3@5 ~", O: "eb3@5 ~ eb3@6 ab2@10 ~@2, ab2@11 ~@13",
  P: "bb4@3 ~ d4@2 f3@4 ~@14, bb2@5 ~@7", Q: "~@2 [c4,ab4] ~@2 ab3 ab4@2 ab3@3 ~", R: "g4 ~@7", S: "~ g3@2 ~",
  T: "~@3 [a3,a4] ~@2", U: "f3@2 c4 ~@3 a3@3 ~@3, ~ f3@2 ~, ~@4 a4 ~@3", V: "~@3 eb3@2 [eb3,ab3] ab3@3 ~@3",
  W: "bb4@2 bb3 ~@9", X: "ab4@3 ~@19 ab3@2", Y: "~@2 ab3 ~@9", Z: "~ [eb3,g3] g3 ~, ~@3 eb3 ~@2",
  AA: "~@10 c3 ~@7 g3@4 ~@2", AB: "a4@3 ~@3 f3@4 a3@2 [f3,a3,c4,f4]@4 ~@8, ~@10 f3 ~@13",
  AC: "~@10 ab3 ~ f4@3 ~ f3@2 ~@6", AD: "g4@3 ~@3 g3@6 ~@4 g3@2 ~@4 g3@2, ~@3 eb3@2 ~ eb3@3 ~@3",
  AE: "~@6 ab3@3 ab4@2 eb3", AF: "~ [eb3,ab3]@2 ~, ~@2 ab4 ~@5", AG: "eb3@4 bb3@2 ~@4 [eb3,g3]@2 eb3@4 ~@2 f4@3 ~@3",
  AH: "bb3@2 ~@4 [c3,g3]@3 c3@2 ~, ~@4 g4 ~@3", AI: "f3@2 ~ a3, a4 ~@5 a4 ~", AJ: "~@3 [f3,a3]@2 f3@3 ~@4",
  AK: "~ eb3 ~@2, ab2 ~", AL: "~@3 f3@2 f3 ~@2 bb3 ~@3", AM: "~@5 ab3 ab3@3 ~@3, ~@4 ab4 ~@3", AN: "~@3 ab3@2 ~@7",
  AO: "bb3@3 ~@3 [g3,g4]@4 g3@12 g3@2", AP: "~@12 g4@4 ~@2 g3@5 ~, ~ g3@2 ~", AQ: "a3!2 a3@2", AR: "a4 ~ a3@2 ~@4",
  AS: "[ab3,c4,ab4]@2 ab3 ~@2 c4 ~@2 [eb3,ab3] ~@3, eb3!2 ~@2", AT: "~@4 d4@2 ~@10 f4 ~@7", AU: "~@3 eb3",
  AV: "g4@2 ~@3 g3 ~@6", AW: "~@3 c3 ~@2", AX: "a4 ~ f3@4 ~@2", AY: "g4@3 ~@7 eb3@2 ~@10 ab3 ~",
  AZ: "g4@3 ~@7 c3@2 g3@6 c3@4 ~@2", BA: "f3@6 ~@3 a3@2 ~", BB: "~@2 ab3 [ab2,ab4]@3 ~@6",
  BC: "~@2 [f3,bb3] [f3,bb4]@2 f3 ~@6", // Bb5
})).s("gm_acoustic_guitar_steel").gain(0.11).pan(0.8)

// other · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note("<~@31 A@2 ~@22 B@2 ~@2 C@2 ~@6>".pickRestart({
  A: "[eb4@2 eb4@7 eb4 f4 eb4 d4@8 bb3@6 bb3 [g3,ab3]@2 ~ ab3 bb3@14 ~@3]/2", // Abmaj7
  B: "[eb4@2 eb4@7 ~ [eb4,f4] eb4 d4@8 bb3@2 ab3@4 g3@21 ~]/2", // Ebsus2
  C: "[eb4@2 eb4@11 ~ [d4,eb4] ~@2 d4@27 ~@4, ~@8 c4 ~@15]/2", // Ebmaj7
})).s("gm_acoustic_guitar_nylon").gain(0.35)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A@3 ~@6 B@2 C@2 D E@2 ~ F@2 G ~ H@4 ~ I@2 J K L M N ~@4 O ~@2 P Q ~@2 R ~ S ~@4 T U V ~@2 W X ~ Y@2 ~@2 Z AA ~@2
>`.pickRestart({
  A: "[~@23 [ab2,eb3,ab3]@39 ~@10]/3", B: "[~@23 ab3@25, ~@23 c4@22 ~@3]/2", C: "[~@23 g3@19 ~@2 bb2 ~ b2@2]/2",
  D: "~@5 c3@6 ~", E: "[~@11 a3@9 ~@4, ~@5 c4@4 ~@3]/2", F: "[~@23 c4@21 ab3@4, ~@23 ab3@18 ~@7]/2", G: "ab3@3 ~@5",
  H: "[~@12 eb4@8 ~@3 f3@30 ~@4 a3@8 ~@6 c4@22 ~@3, ~@23 a3@10 ~@38 ab3@10 ~@15]/4", I: "[~@10 ab3@7 ~@7]/2",
  J: "~@9 g4@8 ~@3 bb2@2 b2@2", K: "c3@7 ~ c3@13 ~@3", L: "~@3 a4@4 ~", M: "~@7 ab3@3 ~@14", N: "bb3@8 ~ f3 g3 f3",
// … 105 more lines

More by Brooks & Dunn