Strudelify

Fly Me to the Moon

Basie

KeyC majorTempo120 bpm
0:00/0:00
// Fly Me to the Moon — Basie
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 76 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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(`<
  A B C D E F G H I J K E L M N O P Q R S T U V H W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR H AS AT
  AU H AV AW AX AY AZ BA BB BC BD BE BF BG BH BI AU Q BJ BK BL BM BN ~ BO BP@2
>`.pickRestart({
  A: "~@11 e2", B: "a1 b1 c2 e2", C: "d2@4 d2 ~ a2@6 d3@6 a2@4 g#2@2", D: "g3 g2 b2 d3",
  E: "e2@4 g#1 ~ d2@5 ~ c2@6 b1@4 ~@2", F: "a1@4 a0 ~ b1@6 c2@6 e2@4 a1@2", G: "d2@3 a2@3 d3@3 a2@2 g#2",
  H: "g2 d3 b2 g2", I: "c2@4 c2 ~ b1@6 c2@6 f#2@6", J: "f2@3 c3@3 f3@3 c3@2 c2", K: "b1@4 f1@2 f2@5 ~ d2@6 b1@3 ~ f1@2",
  L: "a1@4 a1 ~ c2@6 c#2@4 c#1@2 c#2@6", M: "d2@2 d1 d2@3 d2@3 f#2@3", N: "g2@3 ~ g2@2 a2@6 g2@5 g1 g2@5 g1",
  O: "c2@3 ~ c2@2 g2@6 f3@2 c3@2 a2@2 f2@6", P: "~@4 b1 ~ b2@4 b1 ~ a1@6 a2@2 e2@2 a1@2, e2 ~@3",
  Q: "d2@3 e2@3 f2@3 a2@2 d2", R: "g2@3 g3 a2 g2 g3 d3 b2 g2@3", S: "g2@2 g1 g2@3 c2@3 e2@3",
  T: "e2@4 b1@2 b2@5 ~ g#2@6 e2@3 ~ b1@2", U: "a1@3 b1@3 c2@3 e2@2 d#2", V: "d2@3 ~ d1 ~ c2@6 b1@6 a1@4 g#2@2",
  W: "c2@4 c1@2 c#2@6 c2@5 c1 f#2@6", X: "f2 c3 a2 f2", Y: "b1 f2 d2 b1", Z: "~@4 b1 ~ b2@4 b1 ~ a#1@6 g#1@6, e2 ~@3",
  AA: "a1@6 b1@6 c2@6 c#2@5 c#1", AB: "d2 a2 f2 d2", AC: "~@4 a1 ~ a2@4 a1 ~ g2@5 g1 f2@6, d2 ~@3",
  AD: "e2@3 ~ e2@2 b2@6 a#1@4 a#1 ~ g#1@6", AE: "a1@5 a0 a#1@5 a#0 a1@5 a0 d#2@5 d#1",
  AF: "d2@3 ~ d2@2 a2@6 g#2@4 g#1@2 g#2@6", AG: "g2@3 e2@3 g2@2 g1 g2@3", AH: "c2@4 g1@2 g2@5 ~ e2@6 c2@3 ~ g1@2",
  AI: "b1@6 d2@5 ~ e2@5 e1 a1@6", AJ: "a1@5 a0 b1@5 b0 c2@5 c1 c#2@6", AK: "d3@6 a2@6 d2@5 d1 f#2@5 f#1",
  AL: "g2@6 a1@6 a#1@6 b1@5 b0", AM: "c2@6 b1@6 c2@5 c1 f#2@6", AN: "f2@5 f1 e2@6 d2@5 d1 c2@5 c1", AO: "b1 a#1 d2 e2",
  AP: "e2@6 e2@6 a#1@6 a1@5 a0", AQ: "a1@6 a#1@6 ~@4 e1 ~ e2@4 e1 ~, ~@2 a1 ~", AR: "d2@6 e2@6 f2@6 f2@5 ~",
  AS: "c2 d2 e2 g2", AT: "a1@4 e1@2 e2@5 ~ c#2@6 a1@3 ~ e1@2", AU: "d2 e2 f2 a2", AV: "c2 b1 c2 e2",
  AW: "e2@6 d#2@6 e2@5 e1 a1@5 a0", AX: "a1@6 b1@5 b0 c2@6 c#2@6", AY: "d2 e2 f2 f#2",
  AZ: "g2@3 ~ g2@2 d3@6 a#1@5 a#0 b1@5 b0", BA: "c3@6 g2@6 c2@5 c1 f#2@6", BB: "f2@5 f1 e2@5 e1 d2@5 d1 c2@5 c1",
  BC: "d2@5 d1 a#1@5 a#0 d2@4 d2 ~ d#2@6", BD: "e2@3 b1@3 a#1@2 a#0 a#1@3", BE: "a1@4 a1 ~ c2@6 c#3@2 g2@2 e2@2 c#2@6",
  BF: "d2@4 a1@2 a2@5 ~ f2@6 d2@3 ~ a1@2", BG: "g2@6 d#2@6 g2@5 g1 g2@5 g1", BH: "a#1@4 f1@2 f2@5 ~ d2@6 a#1@3 ~ f1@2",
  BI: "a1 e2 c#2 a1", BJ: "f2@3 ~ f1 ~ g2@5 ~ g#2@6 c3@4 f2@2", BK: "f2@6 f2@5 f1 f2@6 b1@6", BL: "d2@5 d2@6 d2",
  BM: "g2@5 g2@6 g2", BN: "g2 ~@11", BO: "f#2 c#2@5", BP: "[c2@3 ~]/2",
})).s("gm_acoustic_bass").gain(0.21).pan(0.3)

// chords · piano
const piano = note(`<
  ~@4 A@3 B@2 C D E F G@7 H@3 I@3 J@3 K@2 L M@3 N@2 O P Q@3 R@3 S T@3 U V W@2 X@2 Y Z AA@4 AB@2 AC AD@2 AE@3 AF AG AH AI
  ~ AJ@2
>`.pickRestart({
  A: "[~@22 [f#3,c4,e4,a4]@11 ~ [f#3,c4,e4,a4]@2 ~@10 [c4,d4,f4,a4]@6 ~@2 [f3,a3,c4,d4]@18]/3", // F#m7b5 Dm7
  B: "[[f3,g#3,b3,d4]@10 [b3,d4,f4,g4]@11 ~ [e3,g3,a3,c4]@12 [e3,a#3,d4,a4]@8 [e3,a#3,c#4,f#4]@6]/2", // Fdim G7 Am7 Dsus2 F#7
  C: "[e3,a3,c4,g4]@9 ~ [e3,a3,c4,g4]@2 ~@12", D: "[a3,d4,f4,b4]@9 ~ [a3,d4,f4,b4]@2 ~@12",
  E: "~@3 [b3,d4,f4,g#4]@2 [g#3,d4,f4,b4]@7", F: "[g3,b3,c4,e4] ~@3 [g3,a#3,e4,c#5,c#6]@4",
  G: "[[c4,d4,f4,a4]@10 ~@12 [f3,a3,c4,d4]@14 [f3,a3,c4,d4]@4 [f3,b3,d4,g#4]@6 [e3,b3,d4,g4]@12 [d#3,a3,c4,g4]@4 ~@8 [g3,b3,d4,e4]@12 [g3,c#4,f#4,b4]@4 ~@8 [f3,a3,c4,d4]@11 ~ [c4,d4,f4,a4]@11 ~ [f3,a3,c4,e4]@12 [f3,b3,d4,a4]@12 [f3,b3,e4,a4]@14 [e3,b3,d4,g4]@6 [g#3,d4,f4,c5]@6]/7", // Dm7 Fdim Em7 Am7b5 Em7 Gmaj7 Dm7 Fmaj7 …
  H: "[[g#3,d4,f4,b4]@22 [a3,c4,e4]@6 ~@6 [c4,e4,a4]@11 ~ [f3,c4,d4,a4]@24 ~@2]/3", // G#dim Am Dm7
  I: "[[f3,b3,e4,a4]@11 [e3,b3,d4,g4]@7 [e3,g3,a#3,c4]@2 [e3,a#3,c4,g#4]@3 [e3,g3,a3,c4]@12 ~]/3", // Fmaj7 Em7 C7 Eaug Am7
  J: "[[a3,d4,f4,b4]@22 [g#3,d4,f#4,c#5]@12 ~@2 [g#3,d4,g4,c5]@3 ~@7 [f#3,c4,e4,a4]@8 [g#3,d4,f4,b4]@6 [a3,e4,g4,c5]@6 [a#3,e4,g4,c#5]@4 ~@2]/3", // Bm7b5 C#sus4 G#maj7 F#m7b5 G#dim Am7 A#dim
  K: "[~@4 [c4,e4,f4,a4]@2 ~@6 [c4,d4,f4,a4]@10 [c4,f4,a4,e5]@13 ~ [c4,f4,a4,e5]@6 ~@6]/2", // Fmaj7 Dm7 Fmaj7
  L: "~@4 g4@8 [g#3,e4,g4,c5]@3 ~@9, [e3,g#3,b3,d4,b4] ~", // C E7
  M: "[[g3,b3,c#4,f#4]@4 [g#3,c4,d4,g4]@8 [g3,c#4,e4,b4]@4 [g3,c#4,f4,c5]@6 [f3,a3,c4,d4]@12 ~@2 [f#3,c4,d#4,a#4]@3 ~@13 [f3,a3,c4]@8 [d3,f3,g#3,c4]@10 ~@2, ~@23 e4@7 ~@6]/3", // Gmaj7 G#maj7 C#m7b5 Csus4 Dm7 Cm7b5 F Dm7b5
  N: "[~@3 [a3,d4,e4,g4]@2 [e3,g3,a3,d4]@6 [a3,d4,f#4,b4]@7 [g#3,d4,f4,c5]@3 [f#3,c4,e4,a4]@3]/2", // Asus4 Em7 Bm7 Dm7b5 F#m7b5
  O: "~@2 [g#3,d4,f4,b4]@3 [a3,c4,e4,g4]@4 [a#3,e4,g4,c#5]@3", P: "[c4,f4,a4,e5] ~@3 [c4,d4,f4,a4]@2 [a3,d#4,f#4,c5]@2",
  Q: "[[b3,f4,a4,e5]@3 [g#3,b3,e4]@2 [g3,a#3,c#4,e4]@3 ~@3 [e3,b3,d4,g4]@6 [e3,a#3,c4,g4]@4 ~@2 [e3,a3,c4,g4]@3 [g3,d4,e4,b4]@4 [f3,a3,c4,e4]@3 [e3,b3,d4,g4]@3]/3", // Esus4 E Gdim Em7 C7 Am7 Em7 Fmaj7 …
  R: "[~@2 [g#3,d4,f4,c5]@3 [f3,a3,b3,d4]@4 [g#3,d4,f4,b4]@2 [g#3,d4,f4,c5]@7 [g#3,c4,d4,g4]@3 [f#3,a3,c4,e4]@2 [f#3,c4,e4,a4]@7 [g3,c#4,f4,a#4]@5 ~]/3", // Dm7b5 Bm7b5 G#dim Dm7b5 G#maj7 F#m7b5 Gm7b5
  S: "~@3 [c4,e4,f4,a4]@2 [f3,a3,c4,e4]@7", T: "[[f3,b3,e4,a4]@11 [e3,b3,d4,g4]@12 [g3,c#4,f4,a#4]@12 ~]/3",
  U: "[f3,c4,e4,a4]", V: "[f3,b3,e4,a4]@9 ~ [f3,b3,e4,a4]@2 ~@12",
  W: "[[e3,b3,d4,g4]@5 ~ [e3,b3,d4,g4]@2 [g#3,d4,f4,c5]@3 [g#3,d4,f4,c5]@6 [g#3,d4,f4,c5]@3 [f#3,c4,e4,a4]@4]/2", // Em7 Dm7b5 F#m7b5
  X: "[[f#3,c4,e4,a4]@3 [g#3,b3,d4,f4]@2 [a3,c4,e4,g4]@4 [a#3,e4,g4,c#5]@2 [c4,f4,a4,e5]@4 ~@3 [a3,e4,g4,c5]@2 [a3,d#4,f#4,c5]@4]/2", // F#m7b5 G#dim Am7 A#dim Fmaj7 Am7 Adim
  Y: "~@2 g4@3 [c#4,g4,a#4,e5]@3 [b3,f4,a4,d5]@4, [g3,b3,d4,f4,d5]@5 ~@7", Z: "[b3,e4,g4,d5]@5 ~@3 [a#3,c4,e4,f#4]@4",
  AA: "[~@3 [g3,b3,d4,e4]@2 [f3,c4,e4,a4]@4 [e3,b3,d4,g4]@2 [f3,b3,d4,a4]@4 [g#3,d4,f4,c5]@2 [f3,b3,d4,a4]@2 ~@4 [g#3,c4,d4,f4]@6 ~ [g#3,e4,g4,c5]@5 [f#3,a3,c4,e4]@7 [a#3,c#4,e4,g4]@5 ~]/4", // Em7 Fmaj7 Em7 Bm7b5 Dm7b5 Bm7b5 Dm7b5 C …
  AB: "[[c4,f4,a4,e5]@11 [c4,f4,a4,d5]@6 [c4,f4,a4,d5]@4 [b3,d4,f4,g4]@3]/2", AC: "[e4,g4,g#4,c5]",
  AD: "[[c#4,g4,a#4,f5]@11 [c4,f4,a4,e5]@13]/2", // Gm7b5 Fmaj7
  AE: "[[c4,f4,a4,e5]@10 [c4,e4,f4,a4]@11 ~ [c4,e4,f4,g#4]@6 ~@2 [g#3,c4,e4,g4]@16 [g#3,e4,g4,c5]@8 [g#3,d#4,g4,c5]@6 ~@4 [d3,f3,g#3]@6 ~@2, ~@30 c4@5 ~]/3", // Fmaj7 Fm C G#maj7 Ddim
  AF: "[d2,d3]@8 ~ [d2,d3]@8 ~ [d2,d3]@5 ~, [a#3,f4,a#4]@23 ~", // D A#5
  AG: "~@4 [b3,c4,d#4,f#4,b4] ~@7 [b3,c4,d#4,f#4,b4]@11 ~, [g2,g3]@23 ~", // B G
  AH: "[c2,c3] ~@5 [g4,e5,a5] ~@5, ~@12 d#5 ~@11", AI: "[g4,e5,a5] ~@4 [g4,e5,a5] ~@6, d#5 ~@9 d#5 ~@13",
  AJ: "[[c2,g2,e3,g3,b3,d4]@3 ~]/2", // Cmaj7
})).s("gm_piano").gain(0.18).pan(0.3)

// chords · electric guitar jazz · "Jazz Guit"
const electric_guitar_jazz = note(`<
  ~@5 A B C D E F G H I@2 J K B L M G N B C O E F P Q B I P R S T E U Q I V O W X P Y B C Z AA B C AB P Q AC V O W X P
  AD B I G AA B@2 AE AF AG AH AI ~@2 AJ@2
>`.pickRestart({
  A: "[c3,f#3] ~@4 [c3,f#3] ~@6", B: "[f3,c4] ~@4 [f3,c4] ~@6", C: "[f3,b3] ~@4 [f3,b3] ~@6",
  D: "[e3,a3]@3 ~@7 [e3,a#3]@4 ~@10", E: "[e3,a3] ~@4 [e3,a3] ~@6", F: "[d3,a3] ~@4 [d3,a3] ~@6",
  G: "[d3,g#3] ~@4 [d3,g#3] ~@6", H: "[c3,g3]@3 ~@7 [e3,a#3]@4 ~@10", I: "[f3,c4]@3 ~@7 [f3,c4]@4 ~@10",
  J: "[e3,b3]@3 ~@7 [d#3,a3]@4 ~@10", K: "[d3,g3]@3 ~@7 [c#3,g3]@4 ~@10", L: "[f3,c4]@3 ~@7 [f3,b3]@4 ~@10",
  M: "[f3,b3]@3 ~@7 [e3,b3]@4 ~@10", N: "[c3,a3] ~@4 [c3,a3] ~@6", O: "[e3,b3]@3 ~@7 [e3,a#3]@4 ~@10",
  P: "[d3,g#3]@3 ~@7 [d3,g#3]@4 ~@10", Q: "[c3,f#3]@3 ~@7 [e3,a3]@4 ~@10", R: "[c#3,g3]@3 ~@7 [c#3,g3]@4 ~@10",
  S: "[f3,c4]@3 ~@7 [f#3,c4]@4 ~@10", T: "[f3,c4]@3 ~@7 [d3,g#3]@4 ~@10", U: "[d3,a3]@3 ~@7 [d3,g#3]@4 ~@10",
  V: "[f3,b3]@3 ~@7 [c#3,g3]@4 ~@10", W: "[e3,a3]@3 ~@7 [f3,c4]@4 ~@10", X: "[f3,b3]@3 ~@7 [f3,b3]@4 ~@10",
  Y: "[c3,f#3]@3 ~@7 [c#3,g3]@4 ~@10", Z: "[e3,b3] ~@4 [e3,b3] ~@6", AA: "[c#3,g3] ~@4 [c#3,g3] ~@6",
  AB: "[e3,b3]@3 ~@7 [e3,b3]@4 ~@10", AC: "[f3,c4]@3 ~@7 [e3,a3]@4 ~@10", AD: "[c3,f#3]@3 ~@7 [e3,a#3]@4 ~@10",
  AE: "[e3,g#3] ~@4 [e3,g#3] ~@6", AF: "[e3,g#3]@3 ~@7 [d3,g#3]@4 ~@10", AG: "[d3,a#3] ~@4 [d3,a#3] ~@6",
  AH: "[d#3,a3] ~@4 [d#3,a3] ~@6", AI: "[e3,c4] ~@11", AJ: "[[g2,e3,g3,b3,d4]@3 ~]/2",
})).s("gm_electric_guitar_jazz").gain(0.13).pan(0.3)

// other · vibraphone · "Vibes"
const vibraphone = note(`<
  ~@12 A B C D E F ~ G@2 ~@7 A H I@2 J K ~@2 L@2 M N ~ O P@2 Q R ~@6 S T U V ~ O W X ~@4 Y@5 Z AA ~ AB AC ~@2
>`.pickRestart({
  A: "~@2 [c#4,c#5]", B: "[d4,d5]@3 [a4,a5]@2 [a4,a5] ~@6", C: "~@5 c6@4 b5@2 g5", D: "~@8 g5 a5 ~ g5",
  E: "b5@5 a#5 b5@6 a5@2 e5 ~@9, a#5 ~@23", F: "~@11 d5 c5@4 f5@2 f5@2 ~@4, ~@12 c#5 ~@11",
  G: "[~@11 [e5,e6]@12 [c5,c6]]/2", H: "[d4,d5]@3 ~@3 [a4,a5]@4 [a4,a5]@2 ~@12",
  I: "[~@10 [c5,c6]@7 ~ [b4,b5]@4 [e5,e6]@25 ~]/2", J: "~@16 [c5,c6]@7 ~", K: "[a4,a5] ~@11",
  L: "[~@22 c6@8 b5 ~@3 b5@2 a5@4 g5@2 ~@4 f5@2]/2", M: "~@8 g5 a5 ~ c6", N: "b5@6 a5@6 g5@3 ~@3 f5@4 e5@2",
  O: "~@2 a5 g5@2 f5 ~@2 e5@4", P: "[d5@3 ~@3 e5@4 d5@2 f5@4 a5@2 ~@4 g#5@12 f5@2 e5@3 ~@3 d5@4 c5@2]/2",
  Q: "~@16 a5@7 ~", R: "e5@2 e5 ~@9", S: "~@11 c6", T: "~@4 c6@2 b5@4 b5@2 a5@4 g5@3 ~@3 f5@2",
  U: "~@4 g5@7 ~ a5@2 ~@4 c6@2 ~@4", V: "b5@10 a5@2 g5@3 ~@3 f5@4 e5@2", W: "d5@3 ~@3 e5@4 d5@2 f5@4 a5@2 ~@6",
  X: "~@2 e5 f5 e5 c6@4 g#5@2 a5",
  Y: "[~@16 [a3,a4]@2 [c4,c5]@4 [e4,e5]@6 ~ [b3,b4] [a3,a4]@4 [c4,c5]@25 ~@5 g4@2 a4@4 c5@6 ~@2 c4@4 g4@25 ~@13, ~@30 [a#3,a#4] ~@47 c#4 ~@41]/5", // A C E B A C A#
  Z: "~@2 d4, ~@4 f3@19 ~, ~@6 a#3@17 ~, ~@10 c4@13 ~", AA: "~@4 [b3,c4,d#4,f#4] ~@19", AB: "~@18 d5 e5 f5 g5 a5 b5",
  AC: "c6 c5@5",
})).s("gm_vibraphone").gain(0.15).pan(0.3)

// other · vibraphone · "Vibes" · soft notes · D#maj7 C# C Asus2 D#sus2
const vibraphone_soft = note("<~@65 [~@3 [d4,d#4,d5,d#5] [c#4,c#5] [c4,c5] ~@18] ~ [~@3 [a4,b4] g4 [d#4,f4] ~@18] ~@8>")
  .s("gm_vibraphone").gain(0.08).pan(0.3)

// other · alto sax
const alto_sax = note(`<
  ~@12 A B C D E F ~ G@2 H D I ~ J K L A M ~ N O P Q ~ R@2 S I ~@17 T U V A W@8 X Y ~ Z AA@3
>`.pickRestart({
  A: "~@2 c#4", B: "d4@3 a4@2 a4 ~@6", C: "~@10 c5@6 c#5 c5 b4@4 g4@2", D: "~@8 g4 a4 ~ g4", E: "b4@6 b4@6 a4@2 e4 ~@9",
  F: "~@11 d4 c4@4 f4@2 f4@2 ~@4, ~@12 c#4 ~@11", G: "[~@11 c#4@3 e4@3 g4@3 a#4@3 a4]/2",
  H: "~@10 a#4@2 a4@4 a#4 a4 g4@4 f4@2", I: "b4@6 a4@6 g4@3 ~@3 f4@4 e4@2", J: "~@4 a4@2 g4@6 f4@3 ~@3 e4@4 d4@2",
  K: "~@4 e4@7 ~ f4@2 ~@4 a4@6", L: "g#4@10 f4@2 e4@3 ~@3 d4@4 c4@2", M: "d4@3 ~@3 a4@4 a4@2 ~@12",
  N: "~@6 e4@2 e4@2 ~@2 g4@3 ~@3 g4@4 e4@2", O: "~@4 f4@8 g4@4 a4@7 ~", P: "f4@2 ~@4 c4@4 c4@2 c4@4 c4@3 ~@3 c4@2",
  Q: "~@4 c4@8 c4@3 ~@3 c4@4 c4@2", R: "[~@11 c4@4 d4 ~ d4 e4@2 e4 ~@2 f4]/2", S: "~@8 g4 a4 ~ c5",
  T: "~@2 a4 g4@2 f4 ~@2 g4@4", U: "d4@3 ~@3 e4@4 d4@2 f4@4 a4@2 ~@6", V: "~@2 e4 f4 e4 c5@4 g#4@2 a4",
  W: "[f4@2 a4 ~@3 a4@4 a4@24 c5@6 c#5 c5 b4@4 e5@37 ~@5 a4@2 c5@4 e5@5 [d5,d#5] c#5 [b4,c5] a4@4 c5@25 ~@5 g4@2 a4@4 c5@5 [a4,b4] g4 [d#4,f4] c4@4 g4@25 ~@4 c4@2 ~ e4@2 ~ g4@2 g#4, ~@102 a#4 ~@47 c#4 ~@34 d4@2 ~ f4@2 ~@2]/8", // D#maj7 Cmaj7 Asus2 D#sus2
  X: "a#4", Y: "a#4@4 b4@17 ~@3", Z: "~@18 d4 e4 f4 g4 a4 b4", AA: "[c5 g4@14 ~@3]/3",
})).s("gm_alto_sax").gain(0.3).pan(0.6)

// other · alto sax
const alto_sax_2 = note(`<
  ~@12 A B C ~@4 D@2 ~@7 A E ~ F G H ~@2 I@2 J K ~ L M@2 N O ~@5 P@2 Q R S ~ L T U ~@12 V W X@2
>`.pickRestart({
  A: "~@2 a#3", B: "c4@3 f4@2 f4 ~@6", C: "~@10 a4@6 a#4 a4 g#4@4 e4@2", D: "[~@11 g#3@3 c#4@3 d4@3 g4@3 f#4]/2",
  E: "c4@3 ~@3 f4@4 f4@2 ~@12", F: "~@12 d4@3 ~@3 d4@4 c#4@2", G: "~@4 d4@8 c#4@4 f4@7 ~", H: "c4 ~@11",
  I: "[~@11 a3@4 g#3 ~ g#3 a3@2 a#3 ~@2 c4]/2", J: "~@8 d4 d#4 ~ d#4", K: "e4@6 f4@6 e4@3 ~@3 d4@4 d4@2",
  L: "~@2 e4 d4@2 c4 ~@2 e4@4", M: "[d4@3 ~@3 d4@4 d4@2 d4@4 b3@2 ~@4 d4@12 d4@2 d4@3 ~@3 d4@4 c4@2]/2", N: "~@2 c#4",
  O: "e4@2 e4 ~@9", P: "[~@11 c#4@2 d4 d#4 e4 f4 f#4 g4 g#4 a4 a#4@2 c5]/2", Q: "~@4 c5@2 d4@4 d4@2 e4@4 e4@3 ~@3 f4@2",
  R: "~@2 g4@4 a4 ~@2 c5 ~@2", S: "b4@10 a4@2 g4@3 ~@3 f4@4 e4@2", T: "a3@3 ~@3 d4@4 d4@2 d4@4 d4@2 ~@6",
  U: "~@2 b3 c4 b3 g4@4 f4@2 f#4", V: "~@18 b3 c4 d4 e4 f4 g4", W: "g#4 d#4@5", X: "[d4@3 ~]/2",
})).s("gm_alto_sax").gain(0.35).pan(0.7)

// other · alto sax · soft notes
const alto_sax_soft = note("<~@33 [~@12 a#3@4 a#3@3 ~@3 a3@2] [~@4 a3@8 g#3@3 ~@3 g#3@4 a3@2] ~@41>")
  .s("gm_alto_sax").gain(0.2).pan(0.7)

// other · tenor sax
const tenor_sax = note(`<
  ~@4 A@2 B C ~ D E F G H I ~ J K L M@2 N@2 O@2 P Q R G S ~ T U V ~@2 W@2 X Y ~ Z AA@2 AB AC ~@5 AD@2 AE AF AG ~ Z AH AI
  AJ AK@8 AL AM ~ AN AO AP@2
>`.pickRestart({
  A: "[~@22 c4@8 b3@3 ~@3 a3@3 ~@3 g3@4 f3@2]/2", B: "~@8 g3 a3 ~ c4", C: "b3@6 a3@4 ~@2 g3@3 ~@3 f3@4 e3@2",
  D: "~@4 a3@2 g3@6 f3@3 ~@3 e3@4 d3@2", E: "~@4 e3@7 ~ f3@2 ~@4 a3@6, ~@18 g#3 ~@5",
  F: "g#3@10 f3@2 e3@3 ~@3 d3@4 c3@2", G: "~@2 g3", H: "a3@3 e4@2 e4 ~@6", I: "~@10 f4@6 f#4 e4 f4@4 d4@2",
  J: "~@11 b2", K: "c3@2 f3!2 ~@8", L: "~@5 a3@4 g3@2 f3", M: "[~@4 e3@13 ~@5 f3@6 g#3@6 b3@6 d4@6 e4@2]/2",
  N: "[~@8 c4 b3@2 a3@4 c4@2 a3 d4@2 e4 ~@3]/2", O: "[~@8 b3 a3@2 g3@4 a3@2 g3 a#3@2 c4 ~@3]/2", P: "~@8 a3 g3@2 f3",
  Q: "~@4 e4@7 ~ d4@2 ~@4 f3@6", R: "e3@8 c4 g#3@2 a3", S: "a3@3 ~@3 e4@4 e4@2 ~@12",
  T: "~@6 e4@2 e4@2 ~@2 c4@3 ~@3 c4@4 b3@2", U: "~@4 c4@8 b3@4 g3@7 ~", V: "f3 ~@11",
  W: "[~@11 f#3@4 f3 ~ f3 g3@2 g3 ~@2 a3]/2", X: "~@8 c4!2 ~ c4", Y: "b3@6 c4@6 c#4@3 ~@3 g3@4 b3@2",
  Z: "~@2 c4 b3@2 a3 ~@2 b3@4", AA: "[a3@3 ~@3 c4@4 c4@2 b3@4 a3@2 ~@4 b3@12 b3@2 c4@3 ~@3 c4@4 f#3@2]/2",
  AB: "~@2 a#3", AC: "c4@2 c4 ~@9", AD: "[~@11 g#3@2 a3 a#3 b3 c4 c#4 d4 d#4 e4 f4@2 f#4]/2",
  AE: "~@4 f#4@2 g#3@4 g#3@2 a3@4 a#3@3 ~@3 c4@2", AF: "~@2 d4@4 e4 ~@2 d#4 ~@2", AG: "b3@10 c4@2 c#4@3 ~@3 d4@4 b3@2",
  AH: "f3@3 ~@3 c4@4 c4@2 b3@4 a3@2 ~@6", AI: "~@2 g#3 a3 g#3 d4@4 d4@2 e4", AJ: "~@2 c#3",
  AK: "[d3@2 a3 ~@3 a3@4 a3@24 c4@6 c#4 c4 b3@4 e4@37 ~@5 a3@2 c4@4 e4@6 ~ b3 a3@4 c4@25 ~@5 g4@2 a4@4 c5@6 ~ d#4 c4@4 g4@25 ~@4 c4@2 ~ e4@2 ~ g4@2 g#4, ~@102 a#3 ~@47 c#4 ~@34 d4@2 ~ f4@2 ~@2]/8",
  AL: "a#4", AM: "a#4@4 b4@17 ~@3", AN: "~@18 f3 g3 a3 b3 c4 d4", AO: "d#4 c4@5", AP: "[b3@3 ~]/2",
})).s("gm_tenor_sax").gain(0.3)

// other · tenor sax · soft notes · D#maj7 Asus2
const tenor_sax_soft = note(`<
  ~@33
  [~@12 f#3@4 f#3@3 ~@3 f3@2]
  [~@4 f3@8 f3@3 ~@3 f3@4 g3@2]
  ~@30
  [~@3 [d4,d#4] c#4 c4 ~@18]
  ~
  [~@3 [a4,b4] g4 f4 ~@18]
  ~@8
>`).s("gm_tenor_sax").gain(0.2)

// other · tenor sax
const tenor_sax_2 = note(`<
  ~@12 A B C ~@4 D@2 ~@7 A E ~ F G H ~@2 I@2 J K ~ L M@2 N O ~@5 P@2 Q R S ~ L T U ~@12 V W X@2
>`.pickRestart({
  A: "~@2 e3", B: "f3@3 c4@2 c4 ~@6", C: "~@10 e4@6 f4 e4 d4@4 b3@2", D: "[~@11 d3@3 f3@3 g#3@3 b3@3 c4]/2",
  E: "f3@3 ~@3 c4@4 c4@2 ~@12", F: "~@12 g#3@3 ~@3 g#3@4 g3@2", G: "~@4 g#3@8 g3@4 c#4@7 ~", H: "a3 ~@11",
  I: "[~@11 e3@4 d3 ~ d3 e3@2 e3 ~@2 f3]/2", J: "~@8 a3!2 ~ a3", K: "f3@6 f3@6 g3@3 ~@3 f3@4 g3@2",
  L: "~@2 a3 g3@2 f3 ~@2 g3@4", M: "[f3@3 ~@3 g#3@4 g#3@2 f3@4 d3@2 ~@4 g#3@12 g#3@2 g#3@3 ~@3 g#3@4 e3@2]/2",
  N: "~@2 g3", O: "f3@2 f3 ~@9", P: "[~@11 f3@2 f#3 g3 g#3 a3 a#3 b3 c4 c#4 d4@2 e4]/2",
  Q: "~@4 e4@2 f3@4 f3@2 g3@4 g3@3 ~@3 a3@2", R: "~@2 g3@4 a3 ~@2 a3 ~@2", S: "f3@10 f3@2 g3@3 ~@3 g3@4 g3@2",
  T: "d3@3 ~@3 g#3@4 g#3@2 f3@4 d3@2 ~@6", U: "~@2 f3 f#3 f3 c4@4 c4@2 c4", V: "~@18 d3 e3 f3 g3 a3 b3", W: "a#3 f3@5",
  X: "[e3@3 ~]/2",
})).s("gm_tenor_sax").gain(0.35).pan(0.4)

// other · tenor sax · soft notes
const tenor_sax_soft_2 = note("<~@33 [~@12 d#3@4 d#3@3 ~@3 d3@2] [~@4 d3@8 d3@3 ~@3 d3@4 e3@2] ~@41>")
  .s("gm_tenor_sax").gain(0.2).pan(0.4)

// other · baritone sax · "Bari Sax"
const baritone_sax = note(`<
  ~@4 A@2 B C ~ D E F G H I ~ J K L M@2 N@2 O@2 P Q R G S T U V W ~@2 X@2 Y Z ~ AA AB@2 AC AD ~@5 AE@2 AF AG AH ~ AA AI
// … 241 more lines

More by Basie