Strudelify

The Most Beautiful Girl

Charlie Rich

KeyE♭ majorTempo170 bpm
0:00/0:00
// The Most Beautiful Girl — Charlie Rich
// 170 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(170/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 · drawbar organ · "tk1"
const drawbar_organ = note(`<
  A B C D E F G H I ~ J@2 E F G H I ~@11 E F G H I ~@2 K L@6 M N O P@2 Q R@2 S T@3 U V W X Y Z AA AB AC AD@2 AE AF@2 AG
  AH@2 ~@11 E F G H I ~@2 K AI AJ AK AL AM AN AO AP AQ AR
>`.pickRestart({
  A: "[ab4,c5,d5]@2 ~ [ab4,c5,d5] ~@2 d5 eb5 f5 eb5 [ab4,c5]@2 ~@2 [ab4,c5,eb5] ~, ~@5 f5@2 ~", // Dm7b5 Ab
  B: "[ab4,c5,d5]@2 ~ [ab4,c5,d5] ~@2 g5 ab5 bb5 ab5 [ab4,c5,eb5]@2 ~@2 [ab4,c5,eb5] ~, ~@5 bb5@3", // Dm7b5 Ab
  C: "[bb4,d5,f5]@2 ~ [bb4,d5,f5] ~@2 bb5 [c6,d6] eb6 d6 [ab4,c5,eb5]@2 ~@2 [ab4,c5,eb5] ~, ~@5 eb6@2 ~", // Bb Csus2 Ab
  D: "[ab4,d5,f5,d6] ~ [ab4,d5,f5,d6] ~ [ab4,d5,f5,d6]!2 ~ [ab4,d5,f5,d6] ~@8", // Ddim
  E: "~@4 [eb5,g5,bb5,d6]@2 ~ [eb5,g5,bb5,d6] ~@8", F: "~@4 d6 d6@3 ~@8, ~ [eb5,gb5,a5] ~@2",
  G: "~@3 [d5,f5,g5,bb5] ~@4 [eb5,gb5,a5,d6]@4 ~@4", H: "~@3 [d5,f5,g5,bb5] ~@4 [eb5,gb5,a5,d6]@4 [gb5,a5,c6,eb6]@3 ~",
  I: "~@3 [f5,ab5,c6,eb6] ~@4 [f5,ab5,bb5,d6]@6 ~@2", // Fm7 Bb7
  J: "[[f4,g4,d5] e4 [f4,c5] [ab4,c5,d5,g5], bb4 ~, ~ [ab4,eb5]@2 ~]/2", K: "~@3 bb5, db5@13 ~@3, ~@4 e5@9 ~@3, ~ g5",
  L: "[[g5,bb5]@4 [e5,ab5]@4 g5@4 ~@4 [eb5,g5]@8 [d5,gb5]@8 [g5,b5]@3 ~ bb5@8 [ab5,c6]@4, eb5@24 ~@8 eb6@63 ~, ~@2 bb5@6 ~ ab5 ~@2]/6", // Gm E Eb D G Ab
  M: "d6@2 bb5 g5, [g4,bb4,d5]@7 ~", N: "[eb4,gb4]@4 c6 b5 bb5 ab5 a5 ab5 g5 f5 gb5 a5 gb5 eb5, a4@3 ~, d5@7 ~@9",
  O: "c5 d5 eb5 f5 d5 bb4 eb5 b4 c5 eb5 gb5 a5 d6 db6 c6 b5, ~ eb4@14 ~, ~ g4@7 gb4@5 ~@3, ~@9 a4@5 ~@2",
  P: "[~@4 eb6 c6 bb5 g5 c6 a5 gb5 eb5 a5 gb5 eb5 ~ eb5@8 [bb4,d5]@8, eb4@13 ~@3 [f4,ab4]@13 ~@3, bb5@5 ~@27, ~ g4@7 [gb4,a4]@5 ~@2 c5@9 ~@8]/2", // Bb Fm Gbm
  Q: "~@3 c5 d5 eb5 f5 g5 ab5 bb5 c6 d6 eb6 f6 g6 ab6, [f4,ab4]@15 ~, ~ bb4 ~@6", // Fm
  R: "[[d5,f5]@8 [db5,e5,ab5]@8 [c5,eb5]@8 ~ [d5,bb5]@7, bb6@3 ~, [g4,bb4]@5 ~@3 bb4@4 ~@4 g5@16, ~@16 ab4@5 ~@3 ab4@8]/2", // Dm Dbm Cm Gm
  S: "[f4,bb4,d5]@3 ~, g4", // Bb
  T: "[[eb4,gb4,a4,d5] [b3,c4] [d4,e4] f4 [g4,a4,b4] [c5,d5] [e5,f5] [g5,a5,b5] c6 ~ [gb4,c5,f5]@3 ~ eb5 ~@2 [g4,bb4,d5]@3 ~@3 [eb4,gb4,a4,d5] ~@3 f5@3 [gb4,eb5] ~ [eb4,bb4,d5]@2 ~@4 [a4,d5]@2 ~@8, ~@8 d6@33 ~@7, ~@10 a4@5 ~@11 [a4,c5]@4 ~@18, ~@13 gb4@2 ~ f4@2 ~@8 gb4@2 ~@4 g4 ~@15]/3", // D Cmaj7 Dsus2 G Csus2 Fmaj7 G F …
  U: "[f4,ab4,c5]@4 ~@3 bb4@6 ~@3, eb5@3 [ab4,c5,d5,g5]@3 ~@2", V: "[ab4,c5,eb5,g5]@6 ~@3 [ab4,g5]@4 ~@3, ~@9 d5@6 ~",
  W: "[g4,bb4,d5,f5]@5 ~@3 c5 db5 eb5 e5!2 gb5 g5 a5", // Gm7
  X: "a5 bb5 c6 db6 c6 db6 eb6 e6!2 gb6 g6 a6!2 bb6 c7 db7, [e4,g4,bb4]", Y: "[a4,d5,eb5,g5]@7 ~, d7 ~@7",
  Z: "[ab4,c5,d5,g5]@4 ~@2 [g4,a4,b4,c5] [ab5,c6,d6,g6]@9, ~@7 [d5,e5] ~@8", AA: "~ [a4,g5]@11 ~@4, eb5@15 ~, d5@3 ~",
  AB: "[ab4,g5]@13 ~@3, [c5,d5]@11 ~@5", AC: "[bb4,db5,e5,g5,bb5]@13 ~@3", AD: "[[c5,g5]@7 ~, eb5@23 ~@9, ab4@5 ~@3]/2",
  AE: "d5@8 [ab4,c5,d5]@5 ~@3, g5@13 ~@3, a4 ~@3", // Dm7b5
  AF: "[[f4,bb4]@13 ~@3 [gb4,a4]@6 ~@4 [a4,c5]@4 eb5@2, d5@23 ~@3 [gb4,f5]@3 ~@3, g4@16 eb4@13 ~@3]/2", // Bb5 Gbm Am Gbmaj7
  AG: "[f4,bb4]@3 ~@3 a4@4 [c5,f5]@4 eb5@2, d5@5 ~@3, g4@6 [eb4,gb4]@7 ~@3", // Bb5 F5 Ebm
  AH: "[~ bb4@3 ~@2 eb4@4 gb4@6 ~@8 d5@8, g4@5 ~ a4@6 ~@4 [f4,ab4,c5]@16, f4@3 ~@3 gb4@2 ~@2 c5@4 ~@18, ~ d5@9 eb5@14 ~@8]/2", // Fm
  AI: "c5@2 ~@2 c5@3 ~ c5@2 ~@2 c5@2 ~@2, [ab4,eb5] ~, f4@3 ~ [gb4,a4,eb5]@3 ~", // Ab5 Ebdim
  AJ: "c5@2 ~ c5@3 [c5,eb5] ~ [gb4,a4,c5,eb5]@6 a4 ~, [f4,ab4,eb5]@3 ab4 ~@4", // Cm Gbdim Fm7
  AK: "ab4@4 c5@2 ab4@2 c5@2 ~@2 c5@2 a4 ~, [f4,eb5]@7 ~ [gb4,a4,eb5]@6 ~@2, c5 ~@7", // F7 Ebdim
  AL: "c5 ~@2 c5@2 ~ bb4 ~ [gb4,a4,c5,eb5]@6 [a4,eb5] ~, [g4,bb4,eb5]@5 d5@3 ~@8", // Gbdim Adim Eb
  AM: "[c5,g5]@4 eb5@3 ~ g5@4 eb5@3 ~, ab4 b4, eb5 ~@3 a4@3 ~, ~@4 eb5 ~@3", // C5
  AN: "[ab4,g5]@3 eb5@2 ~ ab4 ~ [bb3,ab4,c5]@6 [ab4,eb5] ~, b4@3 ~@5, eb5@2 ~@3 f5@3 [eb5,g5]@4 ~@4", // Abmaj7 Fm Ab5 Eb
  AO: "[eb4,g4,bb4,c5,eb5]@6 eb4 ~ [a4,c5,eb5] ~ [c5,eb5]@2 gb4 [ab4,c5] f4 g4, ~@8 gb4@2 a4 ~@2 eb5@2 ~", // Cm7 Adim Cm Ab
  AP: "[g4,bb4,c5,eb5]@2 [eb4,g4,bb4,c5,eb5]@3 ~ [eb4,g4,bb4,c5,eb5] ~ [gb4,a4,c5] ~ [gb4,a4,c5,eb5]@2 f4 [ab4,c5] f4 g4, eb4 ~@7 eb5@2 ~@3 eb5@2 ~", // Cm7 Gbdim Ab
  AQ: "[eb4,g4,bb4,c5] ~ [eb4,g4,bb4,c5,eb5]@3 ~ [g4,bb4,c5,eb5] ~ [a4,c5] ~ [a4,c5,eb5]@2 f4 ab4 f4 ab4, eb5 ~@2 eb4 gb4@2 ~@2, ~@8 eb5@2 ~@3 [c5,eb5]@2 ~", // Cm7 Am Adim Cm
  AR: "[g4,bb4,c5,eb5]@2 [bb4,c5,eb5] ~ [ab4,bb4,db5] ~ [g4,bb4,c5,eb5]@2 ~@8, ~ g4 f4 ~@5", // Cm7 Bbm7 Cm7
})).s("gm_drawbar_organ").gain(0.21)

// bass · acoustic bass · "tk2"
const bass = note(`<
  A B C D E F G@2 H I J K E F G@2 H L M N O P Q R S T U V E F G@2 H W M N X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM
  AN@2 AO AP AQ AR AS AT AU AV AW AX AY AZ AL AM BA AN AO AI BB BC BD AT BE AV BF BG AY AZ E F G@2 H W M N BH BI BJ BK
  BL BM BN BO BN BP
>`.pickRestart({
  A: "bb2@3 ~ bb2@3 ~ ab2@3 ~ ab2@2 g2@2", B: "f2@3 ~ f2@4 f2@4 f2@2 eb2@2", C: "d2@3 ~ d2@2 c2@2 f2@4 ab2@2 a2@2",
  D: "bb2@4 f2@3 ~ bb1@4 bb2@2 d2@2", E: "eb2 bb1 eb2!2", F: "bb1!2 eb2 gb2", G: "eb2 bb1 eb2 gb2",
  H: "f2@2 f2@2 bb1@2 f2 g2", I: "f2@2 ~@2 f2 ~ g2@2 ab2@4 ab2@4", J: "g2!2 gb2!2", K: "f2@4 f2@4 bb1@4 bb2 ~ bb2@2",
  L: "f2 ~ f2 g2 ab2@2 ab2@2", M: "g2 eb2 c2!2", N: "c3 c2 c3 c2", O: "f2 ~ f2@2 c2 ~ c2@2 f1 ~ f1@2 c2 ~ c2@2",
  P: "bb1 ~ bb1@2 f2@2 f2@2 d2 ~ d2@2 ab1 ~ ab1@2", Q: "f1 ~ f1@2 c2 ~ c2@2 f1 ~ f1@2 g1@2 a1@2",
  R: "bb1 ~ bb1@2 f2 ~ f2@2 bb1 ~ bb1@2 b1 ~ b1@2", S: "c2 ~ c2@2 g2 ~ g2@2 c2 ~ c2 ~ c3@2 c2@2",
  T: "f2 ~ f2@2 c3 ~ c3@2 f2 ~ f2@2 c3 ~ c3@2", U: "f2 ~ f2@2 c2 ~ c2@2 f2 ~ f2 ~ f2 ~ g2@2",
  V: "ab2 ~ ab2 ~ ab2@2 a2@2 bb2@2 ~@2 bb1@4", W: "f2@3 ~ f2@2 g2@2 ab2@2 ~@2 ab2@4", X: "f2!4 gb2!4", Y: "f2!4 e2!4",
  Z: "eb2@2 eb2 ~ eb2@2 eb2@2 bb2@2 bb2@2 eb2@2 bb2@2", AA: "d2@2 d2 ~ d2@2 d2@2 bb2@2 bb2@2 d2@2 bb2@2",
  AB: "db2!4 c2!4", AC: "b1!4 bb1!4", AD: "eb2@4 bb2@2 c3@2 d3 ~ d3@2 bb2@2 g2@2",
  AE: "gb2 ~ gb2@2 a2@2 a2@2 gb2 ~ gb2@2 f2@2 e2@2", AF: "eb2 ~ eb2@2 bb1 ~ bb1@2 eb2 ~ eb2@2 gb2 ~ gb2@2",
  AG: "eb2 ~ eb2@2 bb1 ~ bb1@2 gb2 ~ gb2 ~ gb2@2 gb2@2", AH: "f2 g2 ab2 a2 bb2 ab2 g2 gb2",
  AI: "f2@2 g2@2 ab2@2 a2@2 bb2 ~ bb2@2 ab2 ~ ab2@2", AJ: "g2 ~ g2@2 d2@2 g2@2 gb2 ~ gb2@2 db2@2 gb2@2",
  AK: "f2@2 g2@2 ab2@2 a2@2 bb2 ~ bb2@2 bb1@2 bb2@2", AL: "eb2 ~ eb2@2 g2@2 bb2@2 eb2 ~ eb2@2 g2@2 bb2@2",
  AM: "eb2 ~ eb2@2 a2@2 gb2@2 eb2 ~ eb2@2 c2@2 eb2 ~", AN: "eb2@2 g2@2 bb2 ~ bb2@2 a2 ~ a2@2 gb2 ~ gb2@2",
  AO: "f2 g2 ab2 a2 bb2 f2 bb2 g2", AP: "f2@2 g2@2 ab2@2 a2@2 bb2@2 bb2@2 ab2 ~ ab2@2",
  AQ: "g2 ~ g2@2 d2@2 db2@2 c2@2 c2@2 g2@2 bb2@2", AR: "c3!2 c2!2 c3!2 g2!2", AS: "f2!2 c3!2 f2!2 c3 f2",
  AT: "bb1 d2 g2 f2 bb1 d2 g2 f2", AU: "f2@2 f2@2 g2@2 ab2@2 a2@2 a2@2 f2 ~ f2@2", AV: "bb1 f2 d2 c2 bb1 f2 d2 db2",
  AW: "c2 e2 g2!2 c2 g2 gb2!2", AX: "f2 ~ f2@2 c3 ~ c3@2 f2@2 f2@2 c3@2 c3@2", AY: "f2!4 bb2!2 f2 bb2",
  AZ: "f2 g2 ab2 a2 bb2!2 f2 bb2", BA: "eb2@2 g2@2 bb2 ~ bb2@2 a2@2 a2@2 gb2@2 gb2@2",
  BB: "g2 ~ g2@2 d2@2 db2@2 c2 ~ c2@2 g2@2 bb2@2", BC: "c3 ~ c3@2 c2@2 c2@2 c3 ~ c3@2 g2 ~ g2@2",
  BD: "f2 ~ f2@2 c3 ~ c3@2 f2 ~ f2@2 c3@2 f2@2", BE: "f2!2 g2 ab2 a2!2 f2!2",
  BF: "c2@2 e2@2 g2 ~ g2@2 c2@2 g2@2 gb2 ~ gb2@2", BG: "f2@2 f2@2 c3@2 c3@2 f2@2 f2@2 c3 ~ c3@2",
  BH: "f2@2 f2@2 c3@2 f2@2 gb2 ~ gb2 ~ gb2@2 gb2@2", BI: "f2 ~ f2@2 c3@2 f2@2 a2 ~ a2@2 a2 ~ a2@2",
  BJ: "f2 ~ f2@2 c3@2 f2@2 gb2@2 gb2 ~ gb2 ~ gb2@2", BK: "g2 ~ g2@2 eb3@2 g2@2 a2 ~ a2@2 gb2@2 a2@2",
  BL: "bb2 ~ bb2@2 f2@2 bb1@2 b1 ~ b1@2 b1 ~ b1@2", BM: "db2 ~ db2 ~ db2 ~ db2@2 bb1@2 f2@2 bb2 ~ bb2@2",
  BN: "eb2 ~ eb2@2 f2@2 eb2@2 gb2 ~ gb2@2 bb1 ~ bb1@2", BO: "eb2 ~ eb2@2 f2@2 eb2@2 gb2@2 gb2@2 bb1 ~ bb1@2",
  BP: "eb2 ~ eb2@2 db2@2 eb2@2 ~@8",
})).s("gm_acoustic_bass").gain(0.24)

// chords · string ensemble 1 · "tk3"
const string_ensemble_1 = note(`<
  A@4 ~@12 B C@3 D@4 E@6 F G@2 C@3 H I@5 ~@12 J C@3 ~@12 J K@3 D@4 E@6 F G@2 K@3 L@3 M N O P@4
>`.pickRestart({
  A: "[d4 c4 d4 eb4 d4 c4 d4 ~, [ab3,f4]@7 ~]/4", B: "~@10 bb3@3 c4@3",
  C: "[~@2 g3 ~@2 [ab4,ab5], bb3, d4@23 ~ [db4,e4,db5]@24, ab3@15 ~ bb4@32, ~ f4 g4@3 ~]/3", // Ab Dbm
  D: "[[eb4,f5]@16 [ab3,c4]@13 ~@3 eb4@16 ab3@16, d4@61 ~@3, g4@31 ~ g4@32, a3@13 ~@3 bb4@16 a3@13 ~@3 c4@13 ~@3]/4", // Ebsus2 Ab
  E: "[[e4,ab4]@16 [a3,d4]@13 ~@35 [g3,bb3]@16 ~@10 f4@3 ~ eb4@2, c5@32 ~@48 gb3@13 ~@3, [bb3,c4]@13 ~@3 eb4@40 d4@34 c4@6, ~@16 a4@16 [ab3,c4,g4,bb4]@32 ~@16 a3@15 ~]/6", // E D5 Gm Bbsus2 Abmaj7
  F: "[bb3,d4]@4 ~ f4@2 eb4, g3 ~ a3@2, ~@4 gb3@3 ~", // Bb
  G: "[[bb3,d4]@8 ~@8 [f3,ab3,c4]@9 ~ bb3@3 ~ c4@2, g3@2 ~@2 [gb3,a3]@3 ~@9, ~@10 eb4@15 ~@7]/2", // Bb Fm Gbm
  H: "[ab3,c4,g4,bb4] [bb3,e4,ab4]", // Abmaj7 Bbm7b5
  I: "[[c4,g4]@4 [b3,gb4]@3 ~ [eb4,g4]@8 [d4,gb4]@8 [f4,g4,b4]@3 ~ [c4,ab4]@4 b3@4 [bb3,f4,ab4,c5]@4, bb4@6 ~ bb4@2 ~, ab3@14 ~@2 eb5@63 ~, ~@16 c4@29 ~@3 db4@8 e4@6 ~@2 gb4@6 ~@10]/5", // C5 B5 Eb D G7 Fm
  J: "~@10 bb3@3 ~ c4@2", K: "[~@2 g3 [db4,e4,db5]@3, bb3, d4@23 ~@25, ab3@15 ~ bb4@32, ~ f4 g4@3 ~]/3", L: "ab3 a3",
  M: "bb3 c4", N: "eb4 f4", O: "g4 ab4", P: "[bb4@8 eb5@49 ~@7, eb6@55 ~@9]/4",
})).s("gm_string_ensemble_1").gain(0.27)

// other · acoustic guitar nylon · "tk4"
const acoustic_guitar_nylon = note(`<
  ~@3 A B C D E F G H I J K L M N O P@2 Q R S T U V W X Y Z AA AB AC AD AE@2 AF AG AH ~@35 AI AJ AK AL AM AN AO AP AQ AR
  AS AT AU AV AW@2 AX AY AZ BA BB BC BD@2 ~@2
>`.pickRestart({
  A: "~@5 bb4 ~ bb4", B: "~ bb4@2 bb3@2 ~ c4@2 ~ d4@2 eb4@3 d4 ~", C: "~ d4@3 ~@7 f4@2 ~ eb4@2",
  D: "~ d4@3 db4@3 d4 ~@3 f4 f4@2 eb4@2", E: "d4@4 db4@2 d4@2 ~@2 eb4 ~ eb4@2 c4@2", F: "bb3@3 ~ f3@4 ~@2 bb3 ~ c4@4",
  G: "d4@3 eb4@2 f4@2 ~ f4@2 ~ g4@2 ab4@3", H: "bb4@11 ~@5", I: "~@10 bb3@2 c4@3 ~",
  J: "d4@2 ~ d4@2 ~ d4 ~@2 d4@2 eb4@2 ~ d4 ~", K: "d4@2 ~@9 f4!2 ~ eb4@2", L: "d4@3 ~ db4@3 d4@2 ~@2 f4 ~@2 eb4@2",
  M: "d4@3 ~ db4@2 d4@2 ~@2 eb4@2 ~@2 c4@2", N: "bb3@3 ~@3 bb3 ~@4 bb3@2 c4@2 ~",
  O: "d4@2 ~ eb4@2 ~ f4 ~ f4@2 ~ g4@2 ab4@3", P: "[bb4@3 c5@2 bb4@3 db5@15 ~@9]/2", Q: "d5@2 ~ d5 ~ d5 ~ d5",
  R: "bb4@3 ~@13", S: "d5@2 ~ d5 ~ d5 ~ bb4", T: "bb4 ~@7", U: "c5@3 ~@3 c5@2 ~@2 c5@2 ~@2 f4@2",
  V: "f4@2 ~@9 f4@2 g4@2 ~", W: "ab4@2 ~ bb4@2 ab4@2 ~@3 bb4@2 ab4 ~ bb4 ~", X: "ab4@4 f4@3 ~@3 bb4 ~ bb4@2 ~@2",
  Y: "bb4@3 bb3@2 ~ c4@2 d4@3 eb4@3 d4 ~", Z: "d4@4 ~@7 f4@2 ~ eb4@2", AA: "~ d4@3 db4@2 ~ d4@2 ~ f4 ~@2 eb4@2 ~",
  AB: "d4@4 ~@3 d4 ~@2 eb4 ~@3 eb4@2", AC: "~ d4@2 bb3@3 ~@2 bb3 ~@2 bb3@2 c4@2 ~",
  AD: "d4@2 ~ eb4@2 ~ f4 ~ f4@3 g4@3 ab4@2", AE: "[~ bb4@2 c5@3 bb4@2 ~ db5@15 ~@4 c5@2 d5@2]/2",
  AF: "eb5@2 eb4 ~ eb4 ~ eb4 ~", AG: "eb4@2 ~ eb4@2 ~ eb4 ~ eb4@2 ~ eb4 ~ eb4 ~@2", AH: "eb4@13 ~@3",
  AI: "d5@4 ~@2 d5@2 ~@2 d5@2 bb4 ~ bb4@2", AJ: "~@6 d5@3 ~ d5@3 ~ bb4 ~", AK: "d5@3 ~ bb4@2 ~@4 d5@3 ~ bb4 ~",
  AL: "bb4@2 ~@4 b4@3 ~ c5 ~ c5@2 bb4@2", AM: "c5@2 ~@2 c5@2 ~@4 c5 ~ c5 ~ c5@2", AN: "f4@3 ~@7 f4@2 ~ g4@2 ~",
  AO: "ab4@3 bb4@2 ~ ab4 ~ bb4@3 ab4@3 bb4@2", AP: "ab4@2 ~ f4@2 ~@5 bb4 ~ bb4@2 ~@2",
  AQ: "bb4@2 bb3@2 ~ c4@2 ~ d4@2 ~ d4@2 ~ d4@2", AR: "d4@3 ~@7 f4 ~ f4@2 eb4@2", AS: "d4@4 ~@2 d4 ~@3 f4@2 ~@2 eb4@2",
  AT: "d4@4 ~@2 d4 ~@3 eb4@2 ~@2 eb4@2", AU: "~ bb3@4 ~ bb3 ~@5 bb3@2 c4@2",
  AV: "d4@3 eb4@2 ~ f4@2 f4@2 ~ g4@2 ab4@2 ~", AW: "[bb4@3 c5@2 bb4@2 ~ db5@13 ~@7 c5@2 d5@2]/2",
  AX: "eb5@4 c5@3 ~ eb5@4 c5@2 ~@2", AY: "eb5@3 c5@2 ~ d5@2 eb5@3 ~@3 c5@2", AZ: "eb5@4 c5@4 eb5@4 c5@3 ~",
  BA: "eb5@3 c5@3 d5@2 eb5@3 ~@3 eb5@2", BB: "g5@4 eb5@3 ~ g5@4 eb5@4", BC: "g5@3 eb5 ~@2 eb5@2 g5@2 eb5@3 ~@3",
  BD: "[~@2 g5@3 eb5@2 ~ eb5@17 ~@7]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.4)

// chords · alto sax · "tk5"
const alto_sax = note(`<
  A B C D ~@6 E F ~ G H@2 I ~ J K L ~ M ~ N O ~@3 G H@2 I ~ J K ~@6 P Q R S T U V@2 ~ W ~ X Y ~@5 Z AA ~ AB AC AD ~ AE
  AF AG AH ~ AI AJ AK ~ M ~ N O ~@3 G H@2 I ~ J K ~ AL ~ AM ~@2 AN@3 AO
>`.pickRestart({
  A: "~@6 d4 eb4 f4 eb4 f4@5 ~", B: "~@6 g4 ab4 bb4 ab4 bb4@6", C: "~@6 [bb4,c5] d5 eb5 d5 eb5@6",
  D: "d5 ~ d5 ~ d5!2 ~ d5 ~@8", E: "~@2 [g4,bb4]!5 ~ [ab4,bb4]!5 ~@3",
  F: "~@2 [ab4,bb4]!2 ~ [ab4,bb4]!2 ~ [g4,bb4] ~@7", G: "~@2 [eb3,a3]!2 [f3,bb3]!2 [d3,b3]!2 eb3@2 ~@6, ~@8 c4 ~@7",
  H: "~@2 [eb3,a3]!2 [f3,bb3]!2 [d3,b3]!2 [eb3,c4] ~@7", I: "~@2 [ab3,eb4]!2 [c4,g4]!2 [ab3,eb4]!2 [ab3,g4] ~@7",
  J: "~@10 [db4,g4]!5 ~", K: "~@2 [db4,ab4]!5 ~ [db4,ab4]!7 ~", L: "[a3,f4] ~@3 f5 eb5 d5 c5 b4@2 ~ c5@4 f5",
  M: "~@4 f5 eb5 d5 c5 b4@2 ~ c5@3 f5 ~", N: "~@4 c5 bb4 ab4 g4 gb4@4 ~@4", O: "~@4 f4 eb4 d4 db4 c4@4 ~@4",
  P: "~@3 bb3@3 c4@2 d4@3 bb3@2 c4@3", Q: "d4@10 f4@2 ~ f4 eb4 ~", R: "~ d4@3 c4@2 d4 ~@3 f4 ~@2 f4 eb4@2",
  S: "d4@5 ~@2 d4 ~@2 eb4 ~@2 d4 c4@2", T: "bb3@5 ~ bb3 ~@3 bb3 ~@3 c4@2",
  U: "~ bb3@3 [c4,eb4]@2 d4@2 ~ c4@2 [db4,g4]@3 [d4,f4]@2, d4@4 ~@2 f4 ~ f4@3 ~@5", V: "[bb4@31 ~, bb3@23 ~@9]/2",
  W: "~@2 gb3!2 g3!2 ab3!2 a3 ~@7", X: "~@2 gb3!2 g3!2 ab3!2 a3@2 ~@6", Y: "~@2 c4!2 eb4!2 c4!2 d4 ~@7",
  Z: "[g4,d5] ~@2 d5 ~ [a4,f5]@2 [g4,d5], ~@6 g4 ~@9", AA: "[d4,bb4] ~@7", AB: "~@10 f4@3 ~ g4@2",
  AC: "ab4@3 bb4@3 ab4@2 ~ bb4@2 ab4@3 bb4@2", AD: "~ f4@12 ~@3", AE: "~@3 c5 eb5 f5!2 gb5@3 f5 e5 eb5@2 ~ c5",
  AF: "~@4 d5@3 c5 bb4 ~ g4 ~@5, ~@4 db5 ~@11", AG: "~@2 g4 bb4 f5 d5 f5@2 d5 bb4 d5@2 bb4@3 ~",
  AH: "~@2 bb4 a4 ab4 g4 f4 eb4 d4 c4 bb3@2 ~@4", AI: "~@12 bb3 c4 db4 c4",
  AJ: "db4 c4 bb3 c4 db4 eb4 db4 eb4 e4 f4 e4 f4 g4 ab4 bb4 c5", AK: "[a3,f4,d5] ~@3 f5 eb5 d5 c5 b4@2 ~ c5@4 f5",
  AL: "~@10 gb4 f4@2 eb4 c4@2", AM: "~@10 a4 ab4@2 gb4 eb4@2",
  AN: "[~@9 c4 eb4 f4 gb4 eb4 f4@6 ~@5 c4 eb4 f4 gb4 eb4 f4@8 ~@3 c4 eb4 f4 gb4 eb4 f4@2]/3",
  AO: "eb4 ~ eb4@2 db4@2 eb4@2 ~@8",
})).s("gm_alto_sax").gain(0.36).pan(0.3)

// chords · alto sax · "tk6"
const alto_sax_2 = note(`<
  A B C D ~@6 E F ~ G@2 H I ~ J K L M N M O P Q R ~ G@2 H I ~ J K S T U V W X ~@6 Y Z ~ AA ~ AB AC ~@5 AD AE ~ AF AG AH
  ~@8 L M N M O P Q AI ~ G@2 H I ~ J K AJ AK AL AM ~@5 AN
>`.pickRestart({
  A: "~@6 bb3 c4 d4 c4 d4@6", B: "~@6 d4 eb4 f4 eb4 f4@6", C: "~@6 f4 g4 ab4 g4 ab4@6", D: "g4 ~ g4 ~ g4!2 ~ g4 ~@8",
  E: "~@2 [d4,f4]!5 ~ [db4,e4]!5 ~@3", F: "~@2 [c4,eb4]!2 ~ [c4,eb4]!2 ~ [ab3,d4] ~@7",
  G: "~@2 gb3!2 g3!2 ab3!2 a3 ~@7", H: "~@2 gb3!2 g3!2 ab3!2 a3@2 ~@6", I: "~@2 c4!2 eb4!2 c4!2 d4 ~@7",
  J: "~@10 [bb3,e4]!5 ~", K: "~@2 [bb3,e4]!5 ~ [bb3,e4]!7 ~",
  L: "[eb3,d4] ~@3 [eb3,a3,d4]@4 ~@2 [eb3,a3,d4] ~@3 [eb3,a3,d4] ~", // Ebmaj7 D
  M: "~@4 [d3,ab3,c4]@3 ~@3 [d3,ab3,c4] ~@3 [d3,ab3,c4] ~", N: "~@4 [eb3,a3,d4]@3 ~@3 [eb3,a3,d4] ~@3 [eb3,a3,d4] ~",
  O: "~@4 [e3,ab3,c4]@4 ~@2 [e3,ab3,c4] ~@5", P: "~@4 [eb3,a3,c4]@4 ~@2 [eb3,a3,c4] ~@5",
  Q: "~@4 [ab3,c4,eb4]@3 ~@3 [ab3,c4,eb4] ~@5", R: "~@2 [ab3,c4,eb4]@2 ~@2 c4 ab3 [ab3,d4,f4] ~@7, ~@3 eb4 ~@4",
  S: "[ab3,c4,eb4,g4]@2 ~@2 [ab3,c4,eb4,g4]@2 ~@2 [bb3,eb4,e4,ab4]@2 ~@2 [bb3,eb4,e4,ab4]@3 ~", // Abmaj7 Ebsus4
  T: "[ab3,c4,eb4,g4]@2 ~ [ab3,c4,eb4,g4] ~ [c4,eb4,g4] ab3 ~ [ab3,eb4,gb4]@2 ~ [ab3,b3,eb4,gb4] ~ [eb4,gb4] [ab3,b3] ~, ~@8 b3 ~@7", // Abmaj7 Cm Ab7 Abm7 Ebm Abm
  U: "[g3,c4,eb4]@2 ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~@2 [g3,c4,eb4]@2 ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~@2", // Cm
  V: "[gb3,bb3,c4,eb4]@2 ~ [gb3,bb3,c4,eb4] ~ [gb3,bb3,c4,eb4] ~@2 [gb3,bb3,c4,eb4]@2 ~ [gb3,bb3,c4,eb4] ~ [gb3,bb3,c4,eb4] ~@2", // Cm7b5
  W: "[f3,g3,b3,eb4]@2 ~ [f3,g3,b3,eb4] ~ [f3,g3,b3,eb4] ~@2 [e3,ab3,bb3,eb4]@2 ~ [e3,ab3,bb3,eb4] ~ [e3,ab3,bb3,eb4] ~@2", // Ebaug Emaj7
  X: "[gb3,bb3,db4,eb4]@2 ~ [gb3,bb3,db4,eb4] ~ [gb3,bb3,db4,eb4] ~@2 [f3,ab3,c4,eb4]@2 ~ [f3,ab3,c4,eb4] ~ [f3,ab3,c4,eb4] ~@2", // Ebm7 Fm7
  Y: "~@2 [g3,bb3,d4,f4]!2 ~ [g3,bb3,d4,f4]!2 ~@3 [e3,bb3,eb4,gb4]!2 ~ [e3,bb3,eb4,gb4]!2 ~", // Gm7 Ebm
  Z: "~@2 [ab3,c4,eb4,g4]!2 ~ [ab3,c4,eb4,g4]!2 ~ [ab3,d4,g4,bb4] ~@7", // Abmaj7 Gm
  AA: "~@2 [eb3,a3]!2 [f3,bb3]!2 [d3,b3]!2 eb3@2 ~@6, ~@8 c4 ~@7", // Ebdim Bb5 G
  AB: "~@2 [eb3,a3]!2 [f3,bb3]!2 [d3,b3]!2 [eb3,c4] ~@7", AC: "~@2 [ab3,eb4]!2 [c4,g4]!2 [ab3,eb4]!2 [ab3,g4] ~@7",
  AD: "[eb4,a4]@2 ~@4 [eb4,a4] ~@3 d5@4 [eb4,a4]@2, ~@5 eb4 ~@2", AE: "[ab3,d4] ~@7", AF: "~@10 f4@3 e4@2 ~",
  AG: "f4@3 e4@2 eb4@3 d4@3 db4@2 c4@2 ~", AH: "b3 a3@2 c4 ab3 ~@3",
  AI: "~@2 [ab3,c4,eb4]@2 ~@2 [ab3,c4,eb4]@2 [ab3,d4,f4] ~@7", // Ab Ddim
  AJ: "[f3,ab3,c4,eb4]!2 ~@2 [f3,ab3,c4,eb4]!2 ~@2 [gb3,a3,c4,eb4]!2 ~@2 [gb3,a3,c4,eb4]!2 ~@2, g4 ~@7", // Fm7 Gbdim
  AK: "[f3,ab3,c4,eb4]!2 ~@2 [f3,ab3,c4,eb4]!2 ~@10", // Fm7
  AL: "[f3,ab3,c4,eb4]!2 ~@2 [f3,ab3,c4,eb4]!2 ~@2 [gb3,a3,c4,eb4]!2 ~@2 [gb3,a3,c4,eb4]!2 ~@2", // Fm7 Gbdim
  AM: "[g3,bb3,c4,eb4]!2 ~@2 [g3,bb3,c4,eb4]!2 ~@10", // Cm7
  AN: "~ [g3,c4] ~ [g3,c4] ~ [f3,ab3,bb3]@2 ~ g3 ~@7, ~ bb3@2 bb3@2 ~@2 [bb3,c4]@2 ~@7", // C5 Bb7 Bbsus2
})).s("gm_alto_sax").gain(0.36).pan(0.2)

// chords · trumpet · "tk8"
const trumpet = note(`<
  A B C D ~@6 E F ~ G H@2 I ~ J K L M ~ M N O ~@3 G H@2 I ~ J K ~@3 P Q R S G H@2 I ~ T U V W X Y Z AA AB@2 AC AD ~@2 AE
  AF AG AH AI W X Y Z AA AB@2 L M ~ M N O ~@3 G H@2 I ~ J K AJ AK AL AM AN AO AP ~@2 AQ
>`.pickRestart({
  A: "[ab4,d5]@3 [ab4,d5] ~@6 [c5,f5]@3 ~ [ab4,eb5] ~", B: "[ab4,d5]@3 [ab4,d5] ~@6 [ab4,eb5]@3 c5 f5 ~",
  C: "[ab4,d5]@2 ~ [ab4,d5] ~@6 [ab4,eb5]@4 [c5,f5] ~", D: "[d5,bb5] ~ [d5,bb5] ~ [d5,bb5]!2 ~ [d5,bb5] ~@8",
  E: "~@2 bb4!5 ~ db5!5 ~@3", F: "~@2 c5!2 ~ c5!2 ~ d5 ~@7", G: "~@2 d4!2 eb4!2 f4!2 gb4@2 ~@6",
  H: "~@2 d4!2 eb4!2 f4!2 gb4 ~@7", I: "~@2 g4!2 bb4!2 g4!2 bb4 ~@7", J: "~@10 [db4,g4]!5 ~",
  K: "~@2 [db4,ab4]!5 ~ [db4,ab4]!7 ~", L: "[a3,f4] ~@15", M: "~@4 bb4 ab4 g4 f4 e4@2 f4@4 bb4 ~",
// … 132 more lines

More by Charlie Rich