Strudelify

I'm Gettin' Sentimental Over You

Dorsey

KeyA majorTempo176 bpm
0:00/0:00
// I'm Gettin' Sentimental Over You — Dorsey
// 176 bpm, 4/4, key A 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 153 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(176/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 · "Jazz Bass"
const bass = note(`<
  ~@2 A B@6 C D E@5 F@2 G@7 H@2 I@2 J K L@3 M N@8 O@5 P@2 Q@5 R@2 S@2 T U V W@2 X Y@6 Z@8 AA AB AC AD AE AF AG AH AI AJ
  AK AL AM AN AI AJ AO AP AQ AR AS AT AG AH AU AV AW AX AE AY AZ BA AE BB BC AF BD BE BF BG BH AY BI BJ BK BE BL BG AM
  BM BN AV BO ~ BP ~ BQ ~ BR BS AQ AJ BT BA BU BV BW BX BY ~ BZ@4
>`.pickRestart({
  A: "~@7 g#2@5", B: "[c#2@11 c#2@11 f#2@28 c3@7 f#2@7 b1@21 ~ b1@21 e2@36 ~]/6", C: "~ e2@2 a1@8 ~",
  D: "a1@3 g2@16 ~@2 g2@3", E: "[f#2@21 ~ b1@21 e2@21 a1@21 ~ d2@34]/5", F: "[~@5 d2@3 g#2@21 ~ c#2@18]/2",
  G: "[~@3 f#2@36 ~@3 f#2@4 b1@21 b1@21 e2@39 ~ b1@3 a1@37]/7", H: "[~@2 e1@3 ~ g2@21 a#1@21]/2",
  I: "[a1@21 ~ g#2@10 c#2@11 f#1@5]/2", J: "~ f#1 ~@2", K: "~@3 f#1@5 ~@6 f#1@5 ~@5",
  L: "[f#1@6 ~@16 f#1@5 ~@5 a1@21 ~ d2@16 ~@2]/3", M: "d2 g#2@7",
  N: "[c#2@21 ~ g#2@21 c#2@21 c#2@16 ~@2 c#2@3 ~ c#2@21 f#2@21 f2@21 ~ e2@21 d#2@17 ~@4]/8",
  O: "[~@7 d2@7 ~ c#2@7 b1@5 ~@5 a1@7 g#1@4 g#2@16 ~@2 g#2@3 g2@21 ~ f#2@16 ~ f#2@4 f#2@6 ~ f#2@4 ~@2]/5",
  P: "[~@11 b0, ~@5 b1@42 ~]/2", Q: "[b1@3 e2@36 ~@3 e2@4 e2@21 a1@11 a1@10 d2@11 g#2@11 c2@10]/5",
  R: "[b1@11 b1@16 ~@2 b1@3 b1@16]/2", S: "[~@2 b1@3 ~ e2@40 b1@2]/2", T: "~@2 e2@11 a#1@11", U: "a1@7 ~",
  V: "d2@5 ~@7 d3@7 ~@5", W: "[~@11 a2@5 ~@7 d2@5 ~@7 d3@7 ~@6]/2", X: "~@11 a2@5 ~@8",
  Y: "[~@11 f2@11 f2@24 e2@40 e1@4 e2@3 ~ a1@50]/6", Z: "[~@9 a1@12 a1@12 a1@12 d2@22 ~ g2@22 ~@2 c2@22 ~@2 f2@76]/8",
  AA: "a#1 ~@7", AB: "e2@11 ~ a1@5 ~@7", AC: "d2@6 ~ c2@5 a#1@6 g#2@5 ~", AD: "g2@5 ~ g2@4 ~@2 c#2@6 g#1@4 c#2 ~",
  AE: "c2@4 c1 ~ e2@6 f2@5 ~ c2@3 ~@3", AF: "c2@6 g2@4 c2 ~ f2@6 c2@4 f2 ~", AG: "d2@6 a2@4 d2 ~ g2@5 ~ g2@4 ~@2",
  AH: "c2@6 g2@4 c2 ~ f2@5 ~ f2@4 ~@2", AI: "~@6 d2@4 a#0 ~ f2@5 ~ a#2@4 ~@2, ~ a#1@10 ~@13",
  AJ: "e2@5 ~ e2@4 ~@2 a1@5 ~ a1@4 ~@2", AK: "d#2@6 a#2@4 d#2 ~ g#2@6 d#2@4 g#2 ~",
  AL: "d2@5 ~ d2@4 ~@2 g2@5 ~ g2@4 ~@2", AM: "c2@6 ~ a#1@5 a1@6 f#2@5 ~", AN: "f2@6 g2@6 ~ a2@5 b1@4 ~@2",
  AO: "d2@5 ~ d2@4 ~@2 a1@6 e2@4 a1 ~", AP: "d2@6 ~ c2@5 b1@6 b1@5 ~", AQ: "a#1@4 a#0 ~ d2@6 d#2@5 ~ a#1@3 ~@3",
  AR: "~@6 g2@4 e1 ~ a#2@5 ~ e3@4 ~@2, ~ e2@10 ~@13", AS: "~@6 c#2@4 a0 ~ e2@5 ~ a2@4 ~@2, ~ a1@10 ~@13",
  AT: "e2@6 b1@4 e2 ~ a1@2 b2 ~ c3 ~ [c#3,g3]@4 ~@2", AU: "a#1@6 c2@6 ~ d2@5 f2@4 ~@2",
  AV: "e2@6 b1@4 e2 ~ a1@5 ~ a1@4 ~@2", AW: "d#2@5 ~ d#2@4 ~@2 g#2@5 ~ g#2@4 ~@2",
  AX: "d2@5 ~ d2@4 ~@2 g2@2 a3 ~ a#3 ~ [b3,f4]@4 ~@2", AY: "f2@6 ~ d#2@5 d2@6 b1@5 ~",
  AZ: "a#1@6 f2@4 a#1 ~ g#2@6 d#2@4 g#2 ~", BA: "g2@6 d2@4 g2 ~ g2@2 a3 ~ a#3 ~ [b3,f4]@4 ~@2",
  BB: "~@6 a2@4 f1 ~ c3@5 ~ f3@4 ~@2, ~ f2@10 ~@13", BC: "a#1@6 f2@4 a#1 ~ g2@6 d2@4 g2 ~",
  BD: "a#1@3 ~@2 a#0 a#1@5 ~ a#1@3 ~ a1@5 ~@2 a0", BE: "a1@6 e2@4 a1 ~ a1@3 ~@2 a1@6 ~",
  BF: "a1@3 ~@2 a0 g#2@6 d#2@4 ~ g2@6 ~", BG: "g2@6 a2@6 ~ b2@5 c#2@4 ~@2",
  BH: "~@6 e2@4 c1 ~ g2@5 ~ c3@4 ~@2, ~ c2@10 ~@13", BI: "a#1@6 f2@4 a#1 ~ b1@6 f2@4 b1 ~",
  BJ: "c2@5 ~ c2@4 ~@2 f2@6 c2@4 f2 ~", BK: "a#1@5 ~ a#1@5 ~ a#1@3 ~ a1@5 ~@2 a0", BL: "a1@5 ~ g#2@6 d#2@4 g2@5 ~@2 g1",
  BM: "f2@6 g2@6 a2@5 ~ b1@4 ~@2", BN: "~@6 d2@4 a#0 ~ f2@5 ~ a#2@4 ~@2, a#1@5 ~@7", BO: "d2@5 ~@19", BP: "a#1@5 ~@19",
  BQ: "a1@5 ~@19", BR: "d2 ~@7", BS: "~@10 f2@7 ~ f2@4 ~@2", BT: "d2@6 c2@6 a#1@6 g#2@5 ~",
  BU: "~@6 e2@4 c1 ~ g2@5 ~ c3@4 ~@2, c2@5 ~@7", BV: "c2@6 g2@4 c2 ~ f2@3 ~@2 f1 f2@5 ~",
  BW: "a#1@5 ~ a#1@4 ~@2 g#2@6 d#2@4 g#2 ~", BX: "g2@5 ~ g2@4 ~@2 g2@3 ~@3 c#2@4 c2@2", BY: "~@9 c2@2 f1",
  BZ: "[~@11 d#2@37]/4",
})).s("gm_acoustic_bass").gain(0.22).pan(0.4)

// chords · piano
const piano = note(`<
  ~@2 A B@6 C D@8 E@2 F@7 G@4 ~ H@3 I@8 J@7 K@5 L@4 M N@6 O@5 P@8 ~ 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 ~@2 BP ~ BQ ~ BR BS AN BT BU
  BV BW BX BY BZ CA ~ CB@4
>`.pickRestart({
  A: "~@7 [g#2,b3,d#4,f#4,a#4]@5", // G#m7
  B: "[[c#3,b3,c#4,f4,a4]@11 [c#3,b3,d4,f4,g#4]@11 [c4,e4,f#4,a4]@39 f#2@2 ~@12 f#3@11 ~@10 g3@11 [e2,b3,d4,f#4,g#4]@37, ~@22 f#2@36 ~@6 [b2,a3,c#4,d#4,f#4]@21 ~ [b2,a3,b3,d#4,g4]@21 ~@37]/6", // C#aug C#7 F#m7b5 E7 B7 Baug
  C: "~@2 [b3,d4,f#4,g#4]@2 ~@9 [g3,b3,d4,e4]@11, ~ a2@3", // G#m7b5 Em7
  D: "[~@24 a3@7 ~@11 e4@4 ~@10 g3@11 g3@7 ~@14 g3@7 ~@11 c#4@4 c#4@7 ~@32 e4@3 ~@11 g#3@11 b3@7 ~@7 c#4@4, ~@3 g2@43 b2@42 a3@8 g3@14 d3@43 ~@21 [c#3,f4,g#4]@18, ~@10 [b3,d4,f4,a4]@36 ~@21 b3@7 g3@11 d4@25 [f#4,a4]@32 c#4@11 ~@21 c#4@14 ~@4, ~@24 [f#2,g#4]@15 c#4@7 ~@21 d4@14 b3@7 c#4@15 a3@7 ~@7 a3@11 e4@21 ~@3 [b3,d#4,f#4,g#4]@21 ~@8 b3@11, ~@24 [c#4,e4]@8 a3@14 [a3,b3,d#4,g4]@21 [e2,f#4]@21 [a2,f4]@21 ~@11 c#4@18 a3@13 ~ g#2@40]/8", // C# Bm7b5 F#m F#sus2 G#m7 C#m D#aug Esus2 …
  E: "[f4@3 [c4,e4,f#4,a4]@37 ~@2 [c4,e4,f#4,a4]@2 ~@2 b2@2, ~@3 f#2@43 ~@2]/2", // F#m7b5
  F: "[~@5 [a3,d#4]@14 a3@7 ~@11 d#4@3 [b3,d4,f#4,g#4]@37 ~@3 [b3,d4,f#4,g#4]@2 ~@22 g3@7 ~@11 c#4@4 ~@10 a3@11 g#3@7 ~@11 d4@3, ~@5 [c#4,f#4]@36 ~@63 f4@15 a3@7 [b3,d4,f4,a4]@21 d4@14 c4@7, ~@19 [b2,g4]@21 e2@43 a2@43 g2@42, ~@19 d#4@14 b3@7 ~@61 f3@3 a3@8 g3@14 ~@21 c4@7 g#3@14, ~@19 b3@7 a3@14 ~@43 [g3,a3,c#4,f4]@21 c#4@11 f3@11 ~@21 [a#2,f4]@21]/7", // Adim G#m7b5 F#5 Bm7b5 Em C#aug A#5
  G: "[b3@7 ~@11 f#4@4 [g#2,b3,d#4,f#4,a#4]@10 [c#3,b3,c#4,f4,a4]@48 ~@16, [a2,a4]@7 ~@25, f#4@3 ~@13, e4@14 ~ e4@7 ~@74, ~@4 b3@7 ~@37]/4", // G#m7 C#aug A
  H: "[~@16 [g3,a3,c4,e4]@14 ~@7 [c4,e4,f#4,a4]@14 ~@7 [b3,d#4,f#4,g#4]@14, ~@8 a2@21 ~ d3@21 g#2@21]/3", // Am7 F#m7b5 G#m7
  I: "[~@8 [b3,d#4,f4,g#4]@14 ~@7 [b3,g#4]@14 b3@7 ~@11 f4@3 ~@8 [b3,c#4,g#4]@14 b3@7 ~@14 a3@7 ~@11 e4@3 ~@11 f3@11 g3@7 ~@11 d4@3 ~@7 [g3,b3,c#4,f4]@10 ~@4, c#3@21 ~ g#2@43 ~@21 c#4@7 b3@11 f4@25 ~@21 b3@7 g3@14 ~@21, ~@29 [d#4,f#4]@36 ~@7 e4@35 e4@14 c#4@7 ~@22 d4@14 b3@7 ~@21, ~@43 [c#3,g#4]@14 c#4@7 ~@22 f4@14 c#4@7 c#4@7 a3@14 [a3,c4,d#4,g4]@21 ~ [e2,f#4]@21 d#2@17 ~@4, ~@43 [c#4,f4]@7 b3@14 c#3@21 ~ [c#3,g#4]@21 [f#2,f#4]@21 f2@43 ~@21]/8", // Fm7b5 E C#7 G7 D#m C#5 Am7b5 Esus2 …
  J: "[~@7 [d3,d4]@7 ~@25 [g#2,g#3]@4 ~@11 a#3@10 ~@22 a3@7 ~@11 e4@3 [f#2,a3,c4,e4,f#4]@8 [b2,a3,c#4,d#4,f#4]@13 b2@8 [a3,c#4,d#4,g#4]@19 ~@2 b2@3 [a3,c#4,d#4,g#4]@3 ~@5, ~@15 [c#3,c#4]@28 ~@29 [b3,d4,f4,a4]@36 ~@60, ~@22 [b2,b3]@21 ~@43 [f#2,f#4]@14 c4@7 ~@61, ~@32 [a2,a3]@11 [g#2,b3,d#4,f#4,a#4]@21 g2@43 ~@61, ~@86 [c4,e4]@7 a3@14 ~@61]/7", // D G# F#m7b5 B7 Amaj7 C# Bm7b5 B …
  K: "[~@3 [b3,d4,f#4,g#4]@39 e2@2 ~@2 g3@7 ~@11 d4@3 [a2,g3,a3,c#4,e4]@11 [a2,g3,a3,c#4,f4]@10 [d3,d4,f#4,a4]@11 [g#2,c4,e4,f#4,a#4]@11 [c3,a#3,d4,e4,g4]@10, ~@3 e2@36 ~@7 [e2,e4]@21 ~@53, ~@23 d4@9 ~@28, ~@46 b3@14 b3@7 ~@53, ~@53 g3@14 ~@53]/5", // G#m7b5 A7 Aaug D G#aug C7 E
  L: "[[b2,a3,c#4,d#4,f#4]@11 ~@11 f#3@10 ~@11 g3@11 e2@7 [b3,d4,f#4,g#4]@19 ~@3 e2@3 [b3,d4,f#4,g#4]@3 ~@7, ~@11 [b2,a3,c#4,d#4,f#4]@21 [b2,a3,b3,d#4,g4]@21 ~@43]/4", // B7 G#m7b5 B7 Baug
  M: "~@2 [e2,g#3,b3,d4,f#4]@11 [a#2,g#3,c4,d4,f4]@11", N: "[[a2,g3,a3,c#4,f4]@128 ~@3 [f2,g#3,c4,d#4,f4]@11 f2@2]/6",
  O: "[~@3 [g#3,c4,d4,f4]@8 ~@12 g3@4 ~@6 d4@2 [a2,a3,c#4,e4]@25, ~@11 e2@20 a#3@4 ~@25, ~@11 [g3,a#3,d4,e4]@12 e4@12 ~@25, ~@21 e3@2 a#3@4 g3@8 ~@25, ~@23 d4@6 e3@6 ~@25]/5", // Dm7b5 A Em7b5
  P: "[~@9 [a2,g3,b3,d4,e4]@12 [a2,g3,a3,c4,d#4]@12 [a2,g3,a#3,c#4,e4]@12 [d3,c4,d4,f4,a4]@22 ~ [g2,b3,d4,f4,g#4]@22 ~@2 [c3,a#3,d4,d#4,g4]@22 ~@2 [f2,a3,c#4,d#4,f4]@75 ~]/8", // Em7 Am7b5 A7 Dm7 G7 Cm7 Faug
  Q: "~@3 [g3,c#4,f4,a#4] ~@2", R: "~@12 [f3,c4,d4,g#4]@3 ~@2 [f3,c4,d4,g#4]@2 ~@5",
  S: "~ [b3,f4,g4,f5,g5,e6]@4 ~@11 [f3,b3,d#4,a#4]@2 ~@6", // Em D#sus2
  T: "~@5 e4 a4@4 ~ d5@5 ~ c3 ~ e4@3 ~@2, ~ a#3@16 ~ [a#3,a4,d5]@3 ~@3", // A#maj7
  U: "~ c3@4 [d#3,g3,a#3,d4]@2 ~@6 f3@4 [d#3,a3,d4,g4,b4]@2 ~@5", V: "[f3,c4,f4,a4,e5]@11 ~@5 [f3,b3,d#4,g#4]@2 ~@6",
  W: "[d#3,a#3,d#4,g4,c5]@11 ~@2 f3@4 [d#3,g3,a3,c4]@2 ~@5", X: "~@4 [a3,c4,d4,f4] ~@7 [a3,c4,d4,f4]@11 ~",
  Y: "~@4 [g3,d4,e4,b4]@2 ~@6 [c#3,g3,c#4,e4,a4]@11 ~", Z: "~ d#3@4 [f#3,c#4,d#4,a#4]@2 ~@9 [f#3,c4,f4,a#4]@2 ~@6",
  AA: "~ [c4,f4,a4,f5,a5,e6]@4 ~@11 [f3,a3,b3,d4]@2 ~@6", AB: "~@4 [e3,a#3,c#4,g#4] ~@7 [e3,a#3,c#4,g#4]@11 ~",
  AC: "~@12 [d#3,g3,a3,d4]@3 ~@2 [d#3,g3,a3,d4]@2 ~@5", AD: "~@12 [d4,f4,a#4]@3 ~@2 [d4,f4,a#4]@2 ~@5",
  AE: "~ e3@4 [a3,d4,f#4,b4]@2 ~@9 [g3,c#4,f4,a#4]@2 ~@6", AF: "[f3,b3,f4,a4,d5]@11 ~ [c#3,g3,c#4,f4,a4]@11 ~",
  AG: "~ f3@12 ~@7 f4@2 a4 ~, [f4,a4,d5]@18 b3@5 ~, b3@15 ~ f3@7 ~", // Dm
  AH: "~@5 d4 g4@4 ~ c5@5 ~ a#2 ~ d4@3 ~@2, ~ g#3@16 ~ [g#3,g4,c5]@3 ~@3", // G#maj7
  AI: "~@4 [g3,d4,e4,a#4] ~@7 [g3,d4,e4,a#4]@11 ~", // Em7b5
  AJ: "~ c#3@12 ~@7 c#4@2 f#4 ~, [c#4,f#4,a4]@18 g3@5 ~, g3@15 ~ c#3@7 ~", // F#m
  AK: "~ [g3,d4,e4,d5,e5,b5]@4 ~@8 [g3,c#4,f4,c#5,f5,a#5]@4 ~@7", // Em7 Gm7b5
  AL: "[f3,c4,f4,a4,e5]@11 ~@2 [b3,f4,g#4,f5,g#5,d#6]@4 ~@7", // Fmaj7 Fm7b5
  AM: "~ c3@4 [d#3,g3,a#3,c4]@2 ~@5 [d#3,a3,d#4,f4,d5]@11 ~", AN: "~@4 [a3,d4,f4,c5] ~@7 [a3,d4,f4,c5]@11 ~",
  AO: "~@4 [g3,d4,e4,b4]@2 ~@7 [g3,c#4,f#4,c#5,f#5,a5]@4 ~@7", // Em7 F#m
  AP: "~ [f#3,c#4,d#4,c#5,d#5,a#5]@4 ~@11 [f#3,g#3,c4,d#4]@2 ~@6", // D#m7 G#7
  AQ: "~ [c4,f4,a4,f5,a5,e6]@4 ~@7 [f3,b3,f4,g#4,d5]@11 ~", AR: "~@4 [e3,a#3,d4,g4] ~@7 [e3,a#3,d4,g4]@11 ~",
  AS: "~@4 [d#3,a3,d4,g4] ~@7 [d#3,a3,d4,g4]@11 ~", AT: "~@2 [g#3,d4,f4,c5] ~@5 [c4,f4,f#4,a#4] ~@3",
  AU: "~ [b3,f4,a4,f5,a5,d6]@4 ~@7 [f3,b3,f4,g4,d#5]@11 ~", // Bm7b5 D#aug
  AV: "~ a#3@15 ~@4 e4@2 a4 ~, [a4,d5]@9 a#3@2 ~, ~ e4@18 ~@5, ~ e3@13 ~@2 e3@6 ~@2", // D5
  AW: "~ d#3@12 ~@7 d#4@2 f4 ~, [d#4,f4,d5]@18 a3@5 ~, a3@15 ~ d#3@7 ~", // Dm
  AX: "~ [f3,d4,a#4]@3 f3@2 ~@2 f4 ~ a#4 ~@2 [b3,f4,g#4,f5,g#5,d#6]@4 ~@7, f4@4 ~@3 d4@2 ~@15", // A# Fm7b5
  AY: "~ [a#3,e4,a4,e5,a5,d6]@4 ~@11 [a3,c#4,d#4,f4]@2 ~@6", // A#maj7 Aaug
  AZ: "[d4,f4,a#4]@4 ~@3 a#2@4 [g#3,d4,g4,c5]@2 ~@4 [g3,c#4,f#4,b4]@6 ~", // A# G#maj7 Gmaj7
  BA: "[c#3,g3,c#4,e4,b4]@11 ~@6 [g3,c#4,f#4,b4]@6 ~", // C#m7b5 Gmaj7
  BB: "[g3,c#4,f#4,b4]@4 ~@3 [c4,f#4,d#5]@3 c4@2 ~ f#4@2 ~@2 [f3,b3,e4,a4]@6 ~, ~@3 a#4@2 ~@7", // Gmaj7 Cdim Fmaj7
  BC: "~@4 [f3,b3,e4,a4] ~@7 [f3,b3,e4,a4]@11 ~", // Fmaj7
  BD: "~ a#3@15 ~@4 e4@2 g4 ~, [g4,c#5]@9 a#3@2 ~, ~ e4@18 ~@5, ~ e3@13 ~@2 e3@6 ~@2", // Gdim
  BE: "~@4 [d#3,g3,a3,b3,d4] ~@7 [d#3,g3,a3,b3,d4]@11 ~", // G
  BF: "~ [f3,d4,a#4]@3 f3@2 ~@2 f4 ~ a#4 ~@5 [g#3,d4,f4,b4]@2 ~@6, f4@4 ~@3 d4@2 ~@15", // A# G#dim
  BG: "~@4 [a#3,d#4,g4,c5]@2 ~@6 [d#3,a3,d#4,f4,d5]@11 ~", // Cm7 Dm
  BH: "[a#3,d4,f4]@4 ~@2 [d3,g#3,d4,f4,c5]@9 ~@2 [g3,c#4,f#4,b4]@6 ~", // A# Dm7b5 Gmaj7
  BI: "[c#3,g3,c#4,e4,b4]@11 ~ [g3,c#4,f#4,b4]@3 ~@6 [g3,c#4,f#4,b4]@2 ~", // C#m7b5 Gmaj7
  BJ: "~@3 [g3,c#4,f#4,b4]@2 ~@2 [c4,f#4,a#4,f#5,a#5,d#6]@4 ~@6 [f3,b3,e4,a4]@6 ~", // Gmaj7 Cm7b5 Fmaj7
  BK: "~ b3@15 ~@4 f4@2 a4 ~, [a4,d5]@9 b3@2 ~, ~ f4@18 ~@5, ~ f3@13 ~@2 f3@6 ~@2", // D5
  BL: "~ e3@12 ~@7 e4@2 g#4 ~, [e4,g#4,c5]@18 a#3@5 ~, a#3@15 ~ e3@7 ~", // Eaug
  BM: "~ a3@15 ~@4 d#4@2 f4 ~, [f4,d5]@9 a3@2 ~, ~ d#4@18 ~@5, ~ d#3@13 ~@2 d#3@6 ~@2", // Dm
  BN: "~ a#3@15 ~@4 d4@2 f4 ~, [f4,d5]@9 a#3@2 ~, ~ d4@18 ~@5, ~ d3@13 ~@2 d3@6 ~@2", // Dm
  BO: "~@4 [g3,b3,d4,e4]@2 ~@7 a2@3 [g3,c#4,f4,a#4]@2 ~@6", BP: "g4 ~@11", BQ: "[g3,c#4,f#4,b4] ~@5",
  BR: "[f3,a3,c4,e4] ~@5", BS: "~@11 [d#3,a3,d#4,f4]@13, ~@10 c#5@13 ~",
  BT: "[d3,g3,d4,e4,b4]@11 ~ [c#3,g3,c#4,f4,a#4]@11 ~", BU: "~@12 [f3,g#3,c4,d4]@3 ~@2 [f3,g#3,c4,d4]@2 ~@5",
  BV: "~ [b3,f4,a4,f5,d6]@4 ~@8 [b3,d#5]@3 b3@2 ~@2 g#4 ~ d#5 ~, a5@4 ~@8 [f4,g#4]@4 ~@3 f4@2 ~@3", // Bm7b5 B Fm
  BW: "~@4 [e3,a#3,d4,a4] ~@7 [e3,a#3,d4,a4]@11 ~", // Dsus2
  BX: "[d#3,a#3,d#4,g4,d5]@11 ~ g4@2 d#4 d4 ~ a3 [d#3,f#3,a3,c#4]@4 ~@2", // D#maj7 D#m7b5
  BY: "[d3,g#3,d4,f4,a#4]@11 ~@5 [c4,d#4,f#4,g#4]@2 ~@6", // A#7 G#7
  BZ: "~ [b3,f4,g4,f5,d6]@4 ~@7 [b3,d4,f4,a4]@3 ~@3 [c#4,c#5]@4 [c4,c5]@2, g5 ~@5", CA: "~@9 [c4,c5]@2 [f3,f4]",
  CB: "[~@11 [a#2,d#3,g3,c#4,f4,a#4,d#5,g5,c#6,f6]@37]/4", // D#7
})).s("gm_piano").gain(0.36).pan(0.6)

// other · alto sax
const alto_sax = note(`<
  ~@2 A@4 B@4 C D@6 ~@3 E@5 F@2 G@3 ~@2 H@2 I@8 J K@5 L@3 ~@4 M@5 N O@4 P@6 Q@8 R S ~ T U ~ V W ~@6 X Y ~ Z ~ AA@2 AB V
  W ~@4 AC@2 AD AE ~@2 AF AG AH AI AJ AK ~@4 AL AI AJ AK ~@3 AM R ~ AN ~ AO ~ AN AP AN AB AQ AR ~ Z ~ AS ~@2 AT@4
>`.pickRestart({
  A: "[~@21 a4@2 ~ g4@11 g#4@11 a4@43 ~@7, ~@14 a#4@9 g#4@3 ~@70]/4", B: "[~@3 g#4@11 g4@21 f#4@43 ~@18]/4",
  C: "~ a4@7", D: "[g#4@21 ~ g4@21 f#4@21 f4@21 ~ e4@43 ~@15]/6", E: "[~@8 c#5@11 c5@21 b4@43 a#4@32 ~@5]/5",
  F: "[~@16 d4@6 ~@2 f4@2 ~ g4@16 f4@5, ~@11 d#4 ~@12, ~@23 e4@2 ~ f#4@2 ~@20]/2",
  G: "[a4@11 d4@3 e4@2 f#4@3 a4@3 a#4@10 a4@11 g#4@21 ~@8]/3", H: "[~ e4@5]/2",
  I: "[~@3 d#4@42 ~ f#4@21 f4@21 e4@21 ~ f4@21 e4@21 g4@21 ~ f#4@18]/8", J: "~ f4@7",
  K: "[~@7 c#4@7 ~ d4@7 f#4@5 ~@5 a4@7 a#4@25 a4@21 e4@17 ~ e4@4 e4@6 ~ e4@4 ~@2]/5", L: "[~@5 g#4@46 ~@21]/3",
  M: "[~@11 g#4@21 g4@21 ~ f#4@44 ~@11 c5@6 b4@5]/5", N: "a#4@23 ~", O: "[a4@95 ~]/4",
  P: "[~@11 d#4@6 c4@5 d4@24 ~@12 d5@12 a#4@12 ~@10 a#3@2 a3@47 ~@3, ~@46 d4@7 f4@2 a4@2 c#5@2 ~@29 f#4@2 d4@2 ~@52, ~@52 d#4@2 g4@2 b4@2 ~@24 g4@7 e4@2 c4@2 ~@51]/6",
  Q: "[~@9 d4@12 d#4@12 e4@12 f4@7 f#4@8 g4@8 f4@8 f#4@8 g4@8 f4@8 f#4@8 g4@8 g#4@73 ~@3]/8", R: "a4 ~@11",
  S: "~@4 e4@7 ~ a4@2 ~@10", T: "~@6 g4@2 ~@4 g4@3 ~ g4@2 ~@4 g4@2",
  U: "~@11 g3@2 ~@11, f#4 e4 d4 c4 a#3 g#3 ~@6, ~ f4@2 d#4@2 c#4@2 b3@2 a3@2 ~@13", V: "c4 b3", W: "a#3 a3",
  X: "~@6 d4@2 ~@4 f4@3 ~ g4@2 ~@4 a4@2", Y: "~@5 c5@2 c#5 c5 a#4 ~@2", Z: "~@11 f4",
  AA: "[~@4 e4@2 e4@3 ~ e4 ~@5 e4@2 e4@4 e4@26]/2", AB: "d4 c#4", AC: "g4/2", AD: "~@6 f4@3 f#4 g4 [g#4,a4] a#4@12",
  AE: "g4", AF: "~ f4@2 g#4@3", AG: "g4 f#4", AH: "~@6 g4@15 ~ f#4@2",
  AI: "~@3 b3 ~@7 f4, f4 d#4 c#4 ~@9, ~ e4@2 d4@2 c4@2 ~@17", AJ: "~@2 f4 f4@8 e4",
  AK: "~@3 a3 ~@8, d#4 c#4 b3 ~@9, ~ d4@2 c4@2 a#3@2 ~@17", AL: "g4@21 ~ f#4@2", AM: "~@16 c5@7 ~", AN: "f4 ~@11",
  AO: "e4 ~@11", AP: "~@16 f#4@7 ~", AQ: "c4@3 ~", AR: "~@4 e4@8 d#4@9 ~ d4@2", AS: "~@3 g4@4 g#4 g4 f4@2 e4",
  AT: "[~@2 a3 ~@2 a#3 d4@2 f4 ~@2 f4@37]/4",
})).s("gm_alto_sax").gain(0.4).pan(0.4)

// other · alto sax
const alto_sax_2 = note(`<
  ~@2 A B@3 C@4 D E@6 ~@3 F@5 G H I@3 ~@2 J@2 K@8 L M@5 N@3 ~@4 O@6 P@4 Q@4 ~@2 R@8 S T ~ U V ~@9 W X ~ Y ~ Z@2 ~@7 AA@2
  AB AC ~@2 AD AE AF AG AH AI ~@4 AJ AG AH AI ~@3 AK AL ~ S ~ AM ~ AN AO S ~@2 AP ~ Y ~ AQ ~@2 AR@4
>`.pickRestart({
  A: "~@7 d#4@5", B: "[d4@21 ~ e4@43 ~@7]/3", C: "[~@3 d#4@11 d#4@21 d4@43 ~@18]/4", D: "~ e4@7",
  E: "[c#4@21 ~ c4@21 b3@21 c#4@21 ~ c#4@43 ~@15]/6", F: "[~@8 g#4@11 g4@21 f#4@43 f4@32 ~@5]/5", G: "~@2 b3",
  H: "c4@2 ~ d4@21, ~ c#4 ~@10", I: "[e4@11 a3@5 d4@5 ~ d#4@10 d4@11 c#4@21 ~@8]/3", J: "[~ c4@5]/2",
  K: "[~@3 b3@42 ~ b3@85 c#4@21 d#4@21 ~ d4@18]/8", L: "~ c#4@7",
  M: "[~@7 a3@7 ~ a3@7 d4@5 ~@5 f#4@7 f#4@25 f4@21 c4@17 ~ c4@4 c4@6 ~ c4@4 ~@2]/5", N: "[~@5 d#4@46 ~@21]/3",
  O: "[~@11 d#4@21 d#4@21 ~ d4@44 ~@11 f4@29 e4@5 ~]/6", P: "[f4@95 ~]/4",
  Q: "[~@11 c4@35 ~@12 g4@12 e4@12 d4@12 ~@2, ~@46 a#3@7 c4@2 d#4@2 f#4@2 ~@37, ~@26 b3 d4 f4 ~@19]/4",
  R: "[~@9 b3@12 c4@12 c#4@12 c4@23 c#4@23 ~ d#4@24 d#4@74 ~@2]/8", S: "d4 ~@11", T: "~@4 d4@7 ~ e4@2 ~@10",
  U: "~@6 d4@2 ~@4 d#4@3 ~ d#4@2 ~@4 d4@2",
  V: "~@11 d3@2 ~@11, c#4 b3 a3 g3 f3 d#3 ~@6, ~ c4@2 a#3@2 g#3@2 f#3@2 e3@2 ~@13",
  W: "~@6 a#3@2 ~@4 d4@3 ~ f4@2 ~@4 f#4@2", X: "~@5 f4@2 f#4 f4!2 ~@2", Y: "~@11 d4",
  Z: "[~@4 d4@2 d4@3 ~ d4 ~@5 d4@2 d4@4 c#4@26]/2", AA: "d4/2", AB: "~@6 d4@5 [d#4,e4] f4@12", AC: "e4 d#4",
  AD: "~ d4@2 d#4@3", AE: "d4 c#4", AF: "~@6 d4@15 ~ c#4@2",
  AG: "~@3 f#3 ~@7 c4, c4 a#3 g#3 ~@9, ~ b3@2 a3@2 g3@2 ~@17", AH: "~@2 c4 c4@8 b3",
  AI: "~@3 e3 ~@8, a#3 g#3 f#3 ~@9, ~ a3@2 g3@2 f3@2 ~@17", AJ: "d4@21 ~ c#4@2", AK: "~@16 f4@7 ~", AL: "e4 ~@11",
  AM: "c#4 ~@11", AN: "c4 ~@11", AO: "~@16 d#4@7 ~", AP: "~@4 b3@8 b3@9 ~ a#3@2", AQ: "~@3 f4@4 f#4 f4 d#4@2 d4",
  AR: "[~@11 c#4@37]/4",
})).s("gm_alto_sax").gain(0.4).pan(0.4)

// other · tenor sax
const tenor_sax = note(`<
  ~@2 A B@3 C@4 D E@6 ~@3 F@5 G H I@3 ~@2 J@2 K@8 L M@5 N@3 ~@4 O@5 P Q@4 R@4 ~@2 S@8 T U ~ V W ~@9 X Y ~ Z ~ AA@2 ~@7
  AB AC AD AE ~@2 AF AG AH AI AJ AK ~@4 AL AI AJ AK ~@3 AM T ~ AN ~ AO ~ T AP AQ ~@2 AR ~ Z ~ AS ~@2 AT@4
>`.pickRestart({
  A: "~@7 f#3@5", B: "[f3@21 ~ e3@43 ~@7]/3", C: "[~@3 a3@11 a3@21 g#3@43 ~@18]/4", D: "~ f3@7",
  E: "[e3@21 ~ d#3@21 d3@21 g3@21 ~ e3@43 ~@15]/6", F: "[~@8 a3@11 a3@21 g#3@43 g3@32 ~@5]/5", G: "~@2 f3",
  H: "f#3@2 ~ g#3@21, ~ g3 ~@10", I: "[f#3@11 d3@5 f#3@5 ~ f#3@10 f3@11 c#3@21 ~@8]/3", J: "[~ d3@5]/2",
  K: "[~@3 c#3@42 ~ c#3@85 e3@21 c3@21 ~ b2@18]/8", L: "~ a#2@7",
  M: "[~@7 d3@7 ~ d3@7 f#3@5 ~@5 a3@7 b3@25 b3@21 e3@17 ~ e3@4 e3@6 ~ e3@4 ~@2]/5", N: "[~@5 a3@46 ~@21]/3",
  O: "[~@11 a3@21 a3@21 ~ g#3@44 ~@11 g#3@11]/5", P: "g3@23 ~", Q: "[a3@95 ~]/4",
  R: "[~@11 d#3@6 c3@5 d3@24 ~@12 d4@12 a#3@12 g3@12 ~@2, ~@46 d3@7 f3@2 a3@2 c#4@2 ~@37, ~@26 d#3 g3 b3 ~@19]/4",
  S: "[~@9 d3@12 d#3@12 e3@12 f3@23 f3@23 ~ g3@24 a3@74 ~@2]/8", T: "f3 ~@11", U: "~@4 g3@7 ~ g3@2 ~@10",
  V: "~@6 f3@2 ~@4 f3@3 ~ f3@2 ~@4 e3@2",
  W: "~@11 e2@2 ~@11, d#3 c#3 b2 a2 g2 f2 ~@6, ~ d3@2 c3@2 a#2@2 g#2@2 f#2@2 ~@13",
  X: "~@6 f3@2 ~@4 g3@3 ~ a#3@2 ~@4 g3@2", Y: "~@5 g3@2 g#3 g3!2 ~@2", Z: "~@11 g#3",
  AA: "[~@4 g3@2 g3@3 ~ g3 ~@5 g3@2 g3@4 g3@26]/2", AB: "e3", AC: "d#3", AD: "~ g#3 g3@2", AE: "f3", AF: "~ a3@2 f3@3",
  AG: "e3 d#3", AH: "~@6 g#3@15 ~ g3@2", AI: "~@3 c3 ~@7 f#3, f#3 e3 d3 ~@9, ~ f3@2 d#3@2 c#3@2 ~@17",
  AJ: "~@2 f#3 f#3@8 f3", AK: "~@3 a#2 ~@8, e3 d3 c3 ~@9, ~ d#3@2 c#3@2 b2@2 ~@17", AL: "g#3@21 ~ g3@2",
  AM: "~@16 g3@7 ~", AN: "g#3 ~@11", AO: "g3 ~@11", AP: "~@16 a3@7 ~", AQ: "a3 ~@11", AR: "~@4 f3@8 f3@9 ~ e3@2",
  AS: "~@3 b3@4 c4 b3 g#3@2 g3", AT: "[~@11 a#2@37]/4",
})).s("gm_tenor_sax").gain(0.4).pan(0.4)

// other · baritone sax · "Bari Sax"
const baritone_sax = note(`<
  ~@2 A@4 B@4 C D@7 E@2 F@5 G H I@3 ~@2 J@3 K@8 L@5 M@3 ~@4 N@5 O P@4 Q@6 R@8 S T ~ U V ~@9 W X ~ Y ~ Z@2 ~@7 AA AB AC
  AD ~@2 AE AF AG AH AI AJ ~@4 AK AH AI AJ ~@3 AL AM ~ S ~ AN ~ AM AO S ~@2 AP ~ Y ~ AQ ~@2 AR@4
// … 310 more lines

More by Dorsey