Strudelify

St. James Infirmary Blues

Hines Earl

KeyD minorTempo114 bpm
0:00/0:00
// St. James Infirmary Blues — Hines Earl
// 114 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 69 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(114/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.

// other · percussive organ
const percussive_organ = note("<~@10 A B C D E F G H I ~@50>".pickRestart({
  A: "~@18 [d4,d5]@3 ~ [f4,f5]@2", B: "a4@5 ~ a4@2 ~ a4@2 ~@2 g4@8 ~ a4 g4", C: "~ f4@3 d4@14 ~@6",
  D: "a4@4 ~@2 a4@2 ~@2 a4@2 ~ d5@8 ~ bb4 ~", E: "a4@15 ~@3 d4@2 ~ f4@2 ~", F: "a4@4 ~@2 a4@4 ~@2 g4@8 ~ a4 ~ g4",
  G: "~ f4@2 ~ d4@13 ~@4 d4@2 ~", H: "f4@2 ~ f4@2 ~ f4@2 ~ d4@2 ~ f4@4 ~@2 f4@2 ~ f4@2 ~", I: "d4@7 ~@5",
})).s("gm_percussive_organ").gain(0.35)

// other · percussive organ · soft notes
const percussive_organ_soft = note("<~@11 A B C D E F G H ~@50>".pickRestart({
  A: "a5@5 ~ a5@2 ~ a5@2 ~@2 g5@8 ~ a5 g5", B: "~ f5@3 d5@14 ~@6", C: "a5@4 ~@2 a5@2 ~@2 a5@2 ~ d6@8 ~ bb5 ~",
  D: "a5@15 ~@3 d5@2 ~ f5@2 ~", E: "a5@4 ~@2 a5@4 ~@2 g5@8 ~ a5 ~ g5", F: "~ f5@2 ~ d5@13 ~@4 d5@2 ~",
  G: "f5@2 ~ f5@2 ~ f5@2 ~ d5@2 ~ f5@4 ~@2 f5@2 ~ f5@2 ~", H: "d5@7 ~@5",
})).s("gm_percussive_organ").gain(0.2)

// bass · electric bass finger
const bass = note(`<
  ~ A B C D E F G H I J C D E F G H I J C D E F G H I J C D E F G H I J A B K H L H M N O P Q R S R T U V P C D E F G H
  I J W R S R X Y Z AA
>`.pickRestart({
  A: "a1@7 ~@3 a1 ~ e2@7 ~@3 e2 ~", B: "a1@4 ~@2 e2@4 ~@2 a1@3 ~@9", C: "d2@7 ~@3 d2 ~ g1@9 ~@3",
  D: "d2@8 ~@2 d2 ~ a1@9 ~@3", E: "d2@8 ~@2 d2 ~ g1@5 ~ bb1@4 ~@2", F: "d2@7 ~@3 d2 ~ a1@7 ~@5",
  G: "d2@8 ~@2 d2 ~ g1@8 ~@2 g1 ~", H: "d2@7 ~@3 d2 ~ a1@8 ~@2 a1 ~", I: "g1@8 ~@2 g1 ~ a1@8 ~@2 a1 ~",
  J: "d2@4 ~@2 a1@4 ~@2 d2@3 ~@9", K: "d2@7 ~@3 d2 ~ g1@5 ~ b1@4 ~@2", L: "d2@5 ~ a1@5 ~ g1@5 ~ bb1@5 ~",
  M: "d2@7 ~@3 d2 ~ g1@4 g2 ~ b1@2 c2 ~ db2 ~", N: "d2@6 ~@4 d2 ~ a1@7 ~@3 a1 ~",
  O: "g1@5 ~ bb1@4 ~@2 a1@4 ~@2 db2@4 ~@2", P: "d2@4 ~@2 a1@4 ~@2 d2@2 ~@4 a1@5 ~",
  Q: "d2@4 ~@2 f2@5 ~ g2@5 ~ b1@4 ~@2", R: "d2@2 ~ d2@2 ~ a1@2 ~ a1@2 ~", S: "d2@2 ~ d2@2 ~ g1@2 ~ bb1@2 ~",
  T: "d2@4 ~@2 d2@4 ~@2 g2@5 ~ b1 ~ c2 ~ db2 ~", U: "d2@4 ~@2 d2@3 ~@3 a1@4 ~@2 a1@4 ~@2",
  V: "g1@4 ~@2 g1@3 ~ ab1 ~ a1@4 ~@2 a1@4 ~@2", W: "d2@4 ~@2 f1@5 ~ g1@5 ~ b1@5 ~", X: "d2@2 ~ d2@2 ~ g1@2 ~ g1@2 ~",
  Y: "d2@4 ~@2 d2@4 ~@2 a1@4 ~@2 d2@3 ~ a1 ~", Z: "g1@2 ~ g1@2 ~ a1@2 ~ a1@2 ~", AA: "d2@4 ~@2 a1@3 ~@3 d2@12",
})).s("gm_electric_bass_finger").gain(0.31)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B C D E F G H I J 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 BB BC BD BE BF BG AZ BH BI BJ BK BL BM BN BO
>`.pickRestart({
  A: "~ e4@5 [e3,g3] e4 ~@5 e4@5 [e3,g3] e4 ~@2 g3@2, db4 ~@3", B: "~ db4@6 db4 ~@2 g3@2 ~@12", C: "~@18 [d3,b3] ~@5",
  D: "[a3,f4]@6 a3 f4 ~@8 [d3,a3]@2 d3 ~@5", E: "[d3,f4]@6 [a3,d4,f4] ~@5 g3@6 [d3,f4] ~@5",
  F: "~@6 [d3,a3] ~@3 d4@6 ~@2 [d3,a3] ~@5", G: "~@13 b3@5 g3 f4 ~@4, ~@2 [d3,g3] ~",
  H: "d4@6 [a3,d4,f4] ~@3 a3@6 ~@2 f4 ~@5", I: "d4@6 f4 ~@5 [bb3,db4]@6 ~ g3 ~@4", J: "d3@6 ~@6 [d3,a3,d4,f4]@5 ~@7",
  K: "[a3,d4,f4]@6 d3 ~@5 [d3,f4]@6 ~@6", L: "d4@6 [a3,d4] f4 ~@2 a3@6 d3@2 f4 ~@5", M: "f4@6 f4 ~@5 [d4,f4]@6 ~@6",
  N: "a3@6 a3 f4 ~@8 a3@2 ~@6", O: "~@6 a3 [d4,f4] ~@4 g3@6 ~@6", P: "d4@6 f4 ~@3 a3@6 a3@2 [a3,f4] ~@5",
  Q: "f4@6 ~@4 bb3@2 ~@7 [g3,e4] ~@4", R: "[d3,d4]@3 d3@2 ~@7", S: "d3@6 ~@12 b3 ~@5",
  T: "[d3,a3,d4,f4]@6 [a3,d4] ~@9 d3@2 [d3,d4,f4] ~@5", U: "~@12 [d3,f4]@6 [d4,f4] ~@5",
  V: "~@6 d3 ~@3 [a3,d4]@6 d3@2 ~ f4 ~@4", W: "~@6 d3 f4 ~@4 d3@6 ~ f4 ~@4", X: "d3@6 d4 ~@3 a3@6 ~@2 [d3,a3]@2 ~@4",
  Y: "~@6 f4 ~@12 g3 ~@4", Z: "~ f4@5 d4@6 ~@12, a3@3 a3@2 ~@7", AA: "d4@6 [d3,a3] ~@5 [d3,g3]@6 ~@6",
  AB: "[d3,d4]@6 ~ f4 ~@10 d4 ~@5", AC: "f4@6 f4 ~@5 d4@6 [bb3,d4] ~@5", AD: "d3@6 a3 f4 ~@2 [d3,a3]@6 d3@2 d3 ~@5",
  AE: "d4@6 ~@7 f4@5 d3 ~@5, ~@2 g3 ~", AF: "d4@6 f4 ~@9 a3@2 ~@4 a3@2", AG: "[d4,f4]@6 ~@6 [bb3,db4]@6 ~ [db4,e4] ~@4",
  AH: "~ d4 ~@2", AI: "e3@4 g3@2 g3 ~@5 g3@6 e3 [db4,e4] ~@4", AJ: "~ g3@6 ~@3 g3@2 e3 ~@11",
  AK: "[d3,a3,f4] ~ [d3,g3,f4] ~", AL: "~@16 d3@2 [a3,f4] ~@5", AM: "f4@6 [d3,a3] ~@5 [d3,g3,f4]@6 [d3,bb3] ~@5",
  AN: "~@6 [d3,a3] f4 ~@16", AO: "d3@6 ~ d4 ~@5 f4@5 d3 ~@5, ~@2 d3 ~", AP: "[d3,a3]@6 [d3,d4] ~@3 d3@6 a3@2 d4 ~@5",
  AQ: "d4@6 [bb3,d4] ~@3 bb3@2 [db4,e4]@6 ~@6", AR: "d3@6 a3@4 ~@2 d4@5 ~@7",
  AS: "~@6 [a3,d4] ~@5 [d3,g3]@6 [g3,f4] ~@5", AT: "[d3,a3]@6 a3 f4 ~@10 a3 ~@5",
  AU: "f4@6 [d3,d4,f4] ~@5 [d3,f4]@6 ~@6", AV: "~ d4@5 d3 f4 ~@2 [d3,a3,d4]@6 d3@2 d3 ~@5, [d3,a3]@6 ~@4 f4@9 ~@5",
  AW: "~ f4@6 ~@6 [b3,f4]@6 ~@5, [d3,a3] ~ g3 ~", AX: "~@6 [d3,a3] ~@3 d3@6 ~@8",
  AY: "[bb3,d4]@6 f4 ~@5 [bb3,db4]@6 ~ e4 ~@4", AZ: "~ f4@6 ~@5 d3@5 ~@7, [a3,d4] ~@3", BA: "[d3,a3] ~ [d3,g3] ~",
  BB: "d4@6 [a3,d4] ~@11 d3 ~@5", BC: "~@6 f4 ~@5 g3@6 ~@6", BD: "~ d4@5 d4 ~@3 [d3,a3,d4]@6 d3@2 ~@6",
  BE: "~ f4@6 ~@5 [d3,g3]@6 ~@6, d4 ~@3", BF: "~@6 [a3,f4] ~@3 a3@6 ~@2 [a3,d4] ~@3 a3@2", BG: "d4 ~ bb3 ~",
  BH: "[d4,f4]@6 [a3,f4] ~@5 [g3,b3,f4]@6 b3 ~@5", BI: "f4@6 ~ f4 ~@10 [d3,d4] ~@5",
  BJ: "[a3,f4]@6 d4 ~@5 [d3,f4]@6 [d3,d4] ~@5", BK: "~ d4@5 a3 ~@3 d3@6 d3@2 d3 f4 ~@4, a3@6 ~@4 f4@9 ~@5",
  BL: "[d3,a3]@6 ~ f4 ~@5 f4@5 g3 ~@5", BM: "a3@6 [a3,f4] ~@11 a3 ~@5", BN: "~@6 [bb3,d4,f4] ~@5 [db4,e4]@6 ~@6",
  BO: "[d3,a3]@6 ~ f4@6 ~@11, ~@3 a3@2 ~@7", // D5
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.6)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~ A B ~ C D ~ E F G H ~ I J K ~ L M N ~ O E P Q R ~ H ~ S N K T U ~ N V ~@2 W X Y Z AA ~ N ~ W Z ~ Y AB M H ~ AC AD P
  H AE ~@3 O D P N AF ~@2
>`.pickRestart({
  A: "~@2 e3 ~@8 [e3,e4]", B: "~@5 db4 ~@6", C: "~@13 f4@5 ~@4 [d3,a3]@2", D: "~@11 d4", E: "~@5 a3 ~@6",
  F: "~@8 [d3,d4] ~@2 d4", G: "~@10 f4@3 ~@11", H: "~@5 [d3,a3] ~@6", I: "~@13 f4@5 ~@6", J: "~@5 [d3,a3] ~@5 [bb3,d4]",
  K: "~@8 d4 ~@2 a3", L: "~@8 f4 ~@3", M: "~@5 d4 ~@6", N: "~@5 d3 ~@6", O: "~@13 f4@5 ~@4 a3@2", P: "~@8 d4 ~@3",
  Q: "~@5 [d3,a3] ~@5 [d3,g3]", R: "~@5 f4@3 ~@3 d3", S: "~@5 d3@3 ~@3 [d3,a3]", T: "~@5 d3 ~@5 g3",
  U: "~@5 d4@3 [d3,f4] ~@2 d3", V: "~@2 e3 ~@8 e3", W: "~@5 d3@3 ~@3 a3", X: "~@11 [bb3,d4]", Y: "~@11 d3",
  Z: "~@5 a3 ~@5 d3", AA: "~@8 d3 ~@2 d3", AB: "~@8 [d3,d4] ~@2 [d3,d4]", AC: "~@13 d4@6 ~@5", AD: "~@11 [d3,bb3]",
  AE: "~@5 [d4,f4]@3 [d4,f4] ~@2 d4", AF: "~@8 d3 ~@2 [d3,d4]",
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel_3 = note(`<
  ~ A B C D E F G H I J 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 BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP
>`.pickRestart({
  A: "e3@4 g3@2 db4 ~@3 g3@2 [e3,g3]@6 ~@6", B: "e3@6 ~@4 e3@2 [e3,g3,db4] ~@11",
  C: "[d3,f4]@6 ~@6 [g3,b3]@6 [g3,f4] ~@5", D: "~@6 d4 ~@17", E: "[a3,d4]@6 d3 ~@5 f4@6 d4 ~@5",
  F: "[d3,a3]@6 d4 f4 ~@2 [d3,a3]@6 [d3,a3]@2 ~ f4 ~@4, ~@10 f4@9 ~@5", G: "~ f4@5 d3 ~@17",
  H: "[d3,a3]@6 d3 ~@11 a3 ~@5", I: "[bb3,f4]@6 d4 ~@3 bb3@2 ~@7 [db4,e4] ~@4", J: "d4@3 d3@2 ~@7",
  K: "d3@6 f4 ~@5 b3@6 [d3,g3,f4] ~@5", L: "a3@6 ~@12 [d3,a3,d4] ~@5", M: "d3@6 [d3,d4] ~@5 g3@6 d3 ~@5",
  N: "~ d4@6 ~@3 d3@6 d3@2 d4 ~@5, d3@6 ~@4 f4@9 ~@5", O: "~ f4@6 ~@6 f4@5 d3 f4 ~@4, d4 ~@3",
  P: "[a3,f4]@6 [a3,d4] ~@11 d3@2 ~@4", Q: "[bb3,d4]@6 [bb3,f4] ~@5 e4@6 ~ db4 ~@4",
  R: "~ f4@5 ~ f4@5 d4@5 ~@7, a3 d4 ~@2, ~@3 a3@2 ~@7", S: "[d4,f4]@6 [d3,a3,f4] ~@5 d3@6 f4 ~@5", T: "~@6 d3 ~@17",
  U: "[d3,a3,f4]@6 [d3,a3,f4] ~@11 bb3 ~@5", V: "~ f4@6 ~@9 a3@2 ~@6, a3@6 ~@4 f4@9 ~@5",
  W: "~ f4@5 a3 ~@6 f4@5 [d3,g3] ~@5, a3 ~ g3 ~", X: "f4@3 ~@2 d3@3 ~@3 a3",
  Y: "f4@6 ~@4 bb3@2 [bb3,db4,e4]@6 ~ db4 ~@4", Z: "[d3,d4]@6 ~ f4@5 [d3,a3]@5 ~@7",
  AA: "[d3,a3,f4]@6 f4 ~@5 [b3,f4]@6 [g3,f4] ~@5", AB: "[a3,f4]@6 ~@4 a3@6 d3@2 a3 ~@5",
  AC: "[a3,d4]@6 [d3,a3,d4] ~@5 [d3,f4]@6 ~@6", AD: "~ [d4,f4]@6 ~@3 d4@6 ~@2 [a3,d4] f4 ~@4",
  AE: "~ f4@5 [d3,a3] f4 ~@5 b3@5 b3 ~@5, [d3,a3] ~ d3 ~", AF: "~@6 d3 ~@3 d3@6 ~@2 d3@2 ~@4", AG: "bb3 ~@3",
  AH: "[d3,a3]@6 d3@4 ~@2 [d3,a3,d4]@5 ~@7", AI: "~ e4@5 db4 ~@15 g3@2", AJ: "e3@6 e3 [g3,db4,e4] ~@4 db4 ~@11",
  AK: "~@6 [d3,a3] ~@5 b3@6 ~@6", AL: "[d4,f4]@6 [d3,d4] ~@9 a3@2 d3 ~@5", AM: "[d3,a3]@6 [d4,f4] ~@5 d4@6 [d4,f4] ~@5",
  AN: "~ f4@5 d4 ~@3 [d3,a3,d4]@6 d3@2 [a3,d4] f4 ~@4, a3 ~@3", AO: "~ f4@6 ~@6 b3@5 [g3,b3] ~@5, [a3,d4] ~@3",
  AP: "f4@6 ~@12 f4 ~@5", AQ: "~@6 f4 ~@5 bb3@6 ~ [db4,e4] ~@4", AR: "~ f4@6 f4@5 [d3,f4]@5 ~@7, a3 ~@3",
  AS: "[d3,a3]@6 f4 ~@5 [b3,f4]@6 d3 ~@5", AT: "d4@6 [d3,d4] ~@11 [d4,f4] ~@5", AU: "[d3,d4] ~ d4 ~",
  AV: "~@6 d4 ~@9 a3@2 d4 ~@5", AW: "d4@6 [d3,a3] f4 ~@4 d3@6 [d3,g3,b3] f4 ~@4",
  AX: "[d4,f4]@6 d4 ~@3 a3@6 ~@2 [a3,d4,f4] ~@3 a3@2", AY: "f4@6 bb3 ~@3 bb3@2 e4@6 ~ [g3,db4] ~@4",
  AZ: "d3@6 ~@6 d4@5 ~@7", BA: "[d4,f4]@6 [d3,d4,f4] ~@17", BB: "[d3,a3,f4]@6 d3 f4 ~@2 a3@6 ~@8",
  BC: "[d3,a3,f4]@6 ~@12 [d3,d4,f4] ~@5", BD: "a3@6 d3 f4 ~@10 a3 f4 ~@4", BE: "[d3,a3]@6 [d3,a3] f4 ~@5 b3@6 ~@5",
  BF: "[d3,d4]@6 d3 ~@17", BG: "[bb3,f4]@6 [bb3,d4,f4] ~@5 e4@6 ~ e4 ~@4", BH: "d3@6 d3@4 ~@2 f4@5 ~@7",
  BI: "a3@6 [d3,d4] ~@11 g3 ~@5", BJ: "d4@6 d4 ~@3 a3@6 ~@8", BK: "[d3,d4]@6 [d3,f4] ~@5 d4@6 bb3 ~@5",
  BL: "~ f4@6 ~@3 a3@6 ~@2 d4 ~@5, d3 ~@3", BM: "~ f4@6 ~@6 b3@5 d3 f4 ~@4, ~@2 g3 ~",
  BN: "[d4,f4]@6 d4 ~@9 a3@2 [d4,f4] ~@5", BO: "[bb3,d4,f4]@6 ~@4 bb3@2 ~@7 [db4,e4] ~@4",
  BP: "~ f4@5 d4@6 [d3,a3,d4]@5 ~@7, d4 ~@3", // D5
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.9)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_4 = note(`<
  ~ A ~@2 B C ~ D E F ~@2 G H@2 I J ~@4 K ~@2 L M ~@2 N O H@2 ~ P O Q ~@3 R S D T P O ~ U V W X Y ~@3 Z O W AA ~ M AB ~
  AC D AD X AE AF ~
>`.pickRestart({
  A: "~@5 e3 ~@5 db4", B: "~@5 d3@3 ~@4", C: "~@5 [d3,a3] ~@5 bb3", D: "~@5 d3 ~@6", E: "~@5 [d4,f4]@3 ~@4",
  F: "~@5 d4 ~@6", G: "~@13 d4@5 ~@6, ~@5 d3@3 ~@4", H: "~@11 d3", I: "~@11 [d3,g3]", J: "~@5 d4@3 d3 ~@2 d3",
  K: "~@5 d3 ~@5 [d3,d4]", L: "~@5 d4@3 d3 ~@2 d4", M: "~@10 f4@3 ~@11", N: "~@13 [d4,f4]@6 ~@5", O: "~@5 a3 ~@6",
  P: "~@10 [d4,f4]@3 ~@11", Q: "~@11 e4", R: "~@5 d3 ~@5 d3", S: "~@8 d4 ~@2 a3", T: "~@8 f4 ~@3", U: "~@13 d4@5 ~@6",
  V: "~@5 d3 ~@5 bb3", W: "~@11 a3", X: "~@5 a3 ~@5 g3", Y: "~@5 [d4,f4]@3 f4 ~@3", Z: "~@13 f4@5 ~@4 a3@2",
  AA: "~@11 g3", AB: "~@5 [d3,a3] ~@6", AC: "~@13 d4@6 ~@3 d3@2, ~@5 d3@3 ~@4", AD: "~@11 [d3,a3]",
  AE: "~@8 [d4,f4] ~@3", AF: "~@5 [d4,f4] ~@6",
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.9)

// chords · acoustic guitar steel
const acoustic_guitar_steel_5 = note(`<
  ~ A B C D E F G H I J 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 BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP
>`.pickRestart({
  A: "g3@4 ~@9 db4@6 db4 ~@4", B: "~ [g3,e4]@5 e3 [g3,e4] ~@4 e4 ~@11", C: "[a3,d4]@6 [a3,d4,f4] ~@5 [d3,f4]@6 ~@6",
  D: "[d3,d4]@6 d3 ~@3 a3@6 ~@2 [a3,d4,f4] ~@5", E: "~@12 [d3,d4]@6 bb3 ~@5", F: "~ [d4,f4]@6 ~@11 d4 ~@5",
  G: "[d3,a3,d4]@6 a3 [d4,f4] ~@5 f4@5 [d3,b3] ~@5", H: "f4@3 ~@2 d3@3 a3 [d3,d4] ~ a3", I: "~@6 bb3 ~@5 e4@6 ~@6",
  J: "~ f4@5 ~ f4@6 ~@11, a3 d4 ~@2, ~@3 a3@2 ~@7", K: "~@6 [a3,d4] ~@11 b3 ~@5", L: "[d3,f4]@6 d3 ~@9 a3@2 ~@6",
  M: "[a3,d4]@6 a3 ~@5 d3@6 [bb3,d4,f4] ~@5", N: "~@6 [d3,d4] ~@3 a3@6 ~@2 [d3,a3] f4 ~@4",
  O: "[d3,a3]@6 d3 ~@6 b3@5 [g3,b3] ~@5, ~@2 d3 ~", P: "d3@6 d3 ~@3 d3@6 ~@2 d4 ~@3 a3@2",
  Q: "~@6 d4 ~@5 [bb3,db4]@6 ~@6", R: "~@12 [d3,a3,f4]@5 ~@7", S: "a3@6 d4 ~@5 [g3,b3]@6 [d3,g3] ~@5",
  T: "~@7 f4 ~@2 a3@6 a3@2 a3 ~@5", U: "d4@6 d4 ~@5 [g3,d4]@6 d3 ~@5",
  V: "~ d4@5 [a3,d4] f4 ~@10 [d3,a3,d4] ~@5, d3 ~@3", W: "[d3,d4]@6 ~ d4 ~@5 b3@5 b3 ~@5",
  X: "[a3,d4]@6 [d3,a3,f4] ~@9 a3@2 [d4,f4] ~@5", Y: "[bb3,d4]@6 [bb3,d4] ~@12 e4 ~@4", Z: "~@6 d3@4 ~@2 [d4,f4]@5 ~@7",
  AA: "~@6 d4 ~@11 [d3,b3] ~@5", AB: "~@6 [d3,a3,d4] ~@9 a3@2 [d3,f4] ~@5", AC: "d3@6 ~@6 g3@6 [d3,f4] ~@5",
  AD: "a3@6 [d3,d4] ~@9 a3@2 ~@6, ~@10 f4@9 ~@5", AE: "~@7 d4 ~@10 g3 f4 ~@4",
  AF: "[d3,a3,f4]@6 [a3,d4] ~@3 a3@6 ~@2 [a3,d4,f4] ~@5", AG: "~@6 [bb3,d4,f4] ~@3 bb3@2 e4@6 ~ g3 ~@4",
  AH: "~ f4@5 ~ f4@5 f4@5 ~@7, d4@3 a3@2 ~@7", AI: "db4@6 e3 e4 ~@2 g3@2 ~ [db4,e4]@5 g3 ~@5, g3@2 ~@4 e3@3 ~@3",
  AJ: "~ [db4,e4]@6 ~@3 e3@2 [g3,e4] ~@11", AK: "d4@6 [d4,f4] ~@11 [d3,g3,b3,f4] ~@5",
  AL: "[d3,a3]@6 a3 f4 ~@2 a3@6 ~@2 d4 ~@5", AM: "d4 ~@3", AN: "~ d4@6 ~@9 a3@2 d3 ~@5, d3@6 ~@4 f4@9 ~@5",
  AO: "~@6 [d3,a3] f4 ~@4 g3@6 ~ f4 ~@4", AP: "d4@6 [a3,f4] ~@3 a3@6 ~@2 [d3,a3]@2 ~@2 a3@2",
  AQ: "[bb3,f4]@6 ~@13 g3 ~@4", AR: "d4@6 d4@6 a3@5 ~@7, ~@3 d3@2 ~@7", AS: "[d4,f4]@6 ~@12 b3 ~@5",
  AT: "f4@6 ~@4 a3@6 [d3,a3]@2 d3 ~@5", AU: "a3@6 a3 ~@11 [d3,bb3,d4,f4] ~@5", AV: "~ f4@5 a3 ~@11 a3 f4 ~@4",
  AW: "~@7 d4 ~@16", AX: "[d3,a3]@6 f4 ~@9 a3@2 d3@2 ~@4", AY: "~@6 d4 ~@17",
  AZ: "~@7 f4@5 [a3,f4]@5 ~@7, ~ d4 ~@2, ~@3 [d3,a3]@2 ~@7", BA: "~@6 a3 ~@5 [b3,f4]@6 [d3,g3,b3,f4] ~@5",
  BB: "~@16 [d3,a3]@2 [a3,d4,f4] ~@5", BC: "d4@6 [d3,a3,d4] ~@5 [d3,d4,f4]@6 bb3 ~@5",
  BD: "~ f4@5 a3 ~@9 a3@2 [d3,d4] ~@5, d3@6 ~@4 f4@9 ~@5", BE: "~@7 d4 ~@5 f4@5 [d3,g3,b3] f4 ~@4",
  BF: "[a3,f4]@6 d4 ~@3 d3@6 a3@2 [d3,f4]@2 ~@4", BG: "~@10 bb3@2 db4@6 ~ [g3,db4] ~@4",
  BH: "~@7 f4@5 [a3,d4]@5 ~@7, ~ d4 ~@2, ~@3 a3@2 ~@7", BI: "d3@6 ~@6 d3@6 [d3,f4] ~@5",
  BJ: "d3@6 [d3,a3] ~@9 [d3,a3]@2 [a3,f4] ~@5", BK: "~@6 a3 ~@5 g3@6 f4 ~@5", BL: "~@6 [d3,d4] f4 ~@8 a3@2 a3 ~@5",
  BM: "~@6 [d3,a3] d4 ~@4 d3@6 b3 ~@5", BN: "d3@6 d3 ~@3 [d3,a3]@6 ~@2 d3@2 ~@2 a3@2", BO: "~@12 bb3@6 ~ g3 ~@4",
  BP: "~@6 d3@4 ~@2 f4@5 ~@7",
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_6 = note(`<
  ~@4 A B C D E ~@3 F ~ G H I J K ~ L M F ~ N O ~@3 P ~ K I ~@2 Q R ~ S K ~ T U ~@3 V W X Y ~ J ~@2 Z AA B@2 AB O ~@3 AC
  G B G ~ H
>`.pickRestart({
  A: "~@13 d4@5 ~@6", B: "~@11 d3", C: "~@8 d4 ~@2 [d3,a3]", D: "~@11 [d3,g3]", E: "~@8 f4 ~@2 d3", F: "~@11 [d3,a3]",
  G: "~@5 d4@3 ~@4", H: "~@5 [d3,a3] ~@6", I: "~@5 f4@3 d4 ~@2 d4", J: "~@10 f4@3 ~@11", K: "~@5 a3 ~@6",
  L: "~@13 d4@6 ~@3 d3@2, ~@5 d3@3 ~@4", M: "~@11 bb3", N: "~@8 f4 ~@3", O: "~@5 d4 ~@6", P: "~@11 [d3,bb3,d4]",
  Q: "~@5 e3 ~@5 db4", R: "~@5 db4 ~@6", S: "~@13 [d4,f4]@5 ~@4 d3@2", T: "~@11 g3", U: "~@5 [d4,f4]@3 d4 ~@2 d4",
  V: "~@13 f4@5 ~@4 d3@2", W: "~@11 d4", X: "~@8 d4 ~@2 d3", Y: "~@5 d3 ~@6", Z: "~@5 d3@3 ~@3 d3", AA: "~@5 d3 ~@5 d4",
  AB: "~@8 d3 ~@2 d3", AC: "~@5 a3 ~@5 [d3,bb3]",
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0)

// chords · synth strings 2
const synth_strings_2 = note(`<
  ~ A@2 B C D E F C G H B C D E F C G H B C D E F C G H B C D E F C G H A@2 B C D E F C G H B C D E F C G H B C D E F C
  G H B C D E F C G H
>`.pickRestart({
  A: "[[g3,a3,db4]@13 ~@3]/2", B: "[a3,d4,f4]@2 ~ [a3,d4,f4]@2 ~ [b3,d4,f4,g4]@2 ~ [b3,d4,f4,g4]@2 ~",
  C: "[a3,d4,f4]@19 ~@5", D: "[a3,d4,f4]@4 ~@2 [a3,d4,f4]@4 ~@2 [bb3,d4,f4]@9 ~ [bb3,d4,f4] ~", E: "[a3,d4,f4]@17 ~@7",
  F: "[f3,a3,d4]@5 ~ [f3,a3,d4]@4 ~@2 [g3,b3,d4]@10 ~@2", G: "[bb3,d4,f4]@9 ~@3 [g3,a3,db4]@10 ~@2",
  H: "[f3,a3,d4]@7 ~@5", // Dm
})).s("gm_synth_strings_2").gain(0.25).pan(0.6)

// other · harmonica
const harmonica = note("<~@26 A B C D E F G H@2 ~@34>".pickRestart({
  A: "~@9 d4 ~ f4", B: "a4@2 ~ a4@2 ~ a4@2 ~ a4!2 ~ g4@2 ~ g4@2 ~ g4@2 ~ a4 g4 ~", C: "f4@2 ~ d4@14 ~@7",
  D: "a4@2 ~ a4@2 ~ a4@2 ~ a4!2 ~ d5@8 ~@2 bb4 ~", E: "a4@14 ~@4 d4@2 ~ f4@2 ~",
  F: "a4@2 ~ a4@2 ~ a4@2 ~ a4@2 ~ g4@2 ~ g4@2 ~ a4@2 ~ g4@2 ~", G: "f4@2 ~ d4@11 ~@4 d4@2 ~ d4@2 ~",
// … 74 more lines