Strudelify

The Queen Bee

Basie

KeyC majorTempo120 bpm
0:00/0:00
// The Queen Bee — 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 117 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 L M N O P Q R@2 S T U E V W X Y Z AA AB AC AD AE B A AF T AG AH Z I AI AJ AK AL AM AE AN AO@2 AP
  AQ T AR AS AN AT AU AV AW AX AY ~@2 X AZ BA AE BB F BC AK BD BE BF Z BG@2 BH AU BI BD BJ BK BB AR BF BL I BM BN BO BG
  BP BQ BL AZ@2 BR BS T F BT BU AT BV BN BW BX BY BZ CA CB CC CD CE@2
>`.pickRestart({
  A: "g2@5 ~ g2@4 ~@2 c2@5 ~ c2@4 ~@2", B: "g2@5 ~ g2@4 ~@2 c2@6 g2@4 c2@2", C: "g2@5 ~ g2@4 ~@2 c2@3 ~@2 c1 c#2@5 ~",
  D: "c2@5 ~ c2@4 ~@2 f#2@6 c#2@4 f#2@2", E: "f2@4 f1 ~ a2@6 a#2@5 ~ f2@3 ~@3", F: "a#1@6 c2@6 d2@5 ~ f#2@4 ~@2",
  G: "f2@5 ~ f2@4 ~@2 a1@5 ~ a#1@3 ~@2 a#0", H: "a1@5 ~ a1@4 ~@2 d2@3 ~@2 d1 g#2@3 ~@2 g#1",
  I: "~@6 a#2@4 g1 ~ d3@5 ~ g3@4 ~@2, g2@5 ~@7", J: "c2@6 c2@4 c2@2 c2@2 d3 ~ d#3 ~ [e3,a#3]@4 ~@2",
  K: "a1@6 e2@4 a1@2 a1@2 b2 ~ c3 ~ [c#3,g3]@4 ~@2", L: "d2@6 a2@4 d2@2 d2@5 ~ g#2@3 ~@2 g#1",
  M: "g2@6 f2@6 e2@6 d#2@5 ~", N: "d2@6 a2@4 d2@2 g2@2 a3 ~ a#3 ~ [b3,f4]@4 ~@2",
  O: "g2@6 d2@4 g2@2 a1@2 b2 ~ c3 ~ [c3,g3]@4 ~@2", P: "g2@5 ~ a1@3 ~@2 a0 d2@5 ~ d2@4 ~@2",
  Q: "g2@5 ~ c1@3 ~@7 g1@2 c1@3 ~@3", R: "~@4 g1@2 c1@3 ~@7 g1@2 c1@3 ~@3", S: "~@4 g1@2 c1@3 ~@3 c3@5 ~ c2@4 ~@2",
  T: "f2@6 e2@6 d2@6 b1@5 ~", U: "a#1@4 a#0 ~ d2@6 d#2@5 ~ a#1@3 ~@3",
  V: "a1@5 ~ a1@4 ~@2 d2@2 e3 ~ f3 ~ [f#3,c4]@4 ~@2", W: "g2@5 ~ g2@4 ~@2 a1@5 ~ a#1@5 ~",
  X: "g2@6 d2@4 g2@2 c2@2 d3 ~ d#3 ~ [e3,a#3]@4 ~@2", Y: "a1@6 e2@4 a1@2 d#2@5 ~ d#2@4 ~@2",
  Z: "a1@3 e2@2 a1 d2@3 a2@2 d2", AA: "g2@6 d2@4 g2@2 c2@3 ~@2 c1 g2@3 ~@2 g1",
  AB: "g2@5 ~ c#2@5 ~ c2@2 d3 ~ d#3 ~ [e3,a#3]@4 ~@2", AC: "a#1@3 ~@2 a#0 b1@5 ~ f2@2 g3 ~ g#3 ~ [a3,f4]@4 ~@2",
  AD: "a1@6 e2@4 a1@2 d2@5 ~ d2@4 ~@2", AE: "g2@5 ~ g2@4 ~@2 c2@2 d3 ~ d#3 ~ [e3,a#3]@4 ~@2",
  AF: "g2@6 d2@4 g2@2 f#2@2 g#3 ~ a3 ~ [a#3,e4]@4 ~@2", AG: "~@6 d2@4 a#0 ~ f2@5 ~ a#2@4 ~@2, a#1@5 ~@7",
  AH: "f2@5 ~ f2@4 ~@2 a#1@5 ~ a#1@4 ~@2", AI: "c2@4 c1 ~ e2@6 f2@5 ~ c2@3 ~@3", AJ: "a1@6 e2@4 a1@2 g#2@5 ~ g#2@4 ~@2",
  AK: "a1@6 e2@4 a1@2 d2@2 e3 ~ f3 ~ [f#3,c4]@4 ~@2", AL: "d2@6 a2@4 d2@2 c#2@2 e3 ~ f3 ~ [f3,c4]@4 ~@2",
  AM: "d2@5 ~ d2@4 ~@2 g2@5 ~ g2@4 ~@2", AN: "a1@5 ~ a1@4 ~@2 d2@5 ~ d2@4 ~@2",
  AO: "g2@5 ~ g2@4 ~@2 g2@2 a3 ~ a#3 ~ [a#3,f4]@4 ~@2", AP: "g2@5 ~ g2@4 ~@2 g2@5 ~ f#2@5 ~",
  AQ: "g2@6 d2@4 g2@2 c2@5 ~ c#2@5 ~", AR: "a#1@6 g#1@6 g1@6 f#2@5 ~",
  AS: "f2@5 ~ f2@4 ~@2 a#1@2 c3 ~ c#3 ~ [d3,g#3]@4 ~@2", AT: "g2@6 f2@6 e2@6 g#2@5 ~",
  AU: "g2@6 d2@4 g2@2 c2@5 ~ c2@4 ~@2", AV: "~@6 c2@4 a0 ~ e2@5 ~ a2@4 ~@2, a1@5 ~@7",
  AW: "d2@5 ~ d3@4 ~@2 d2@3 ~@3 d2@4 g2@2", AX: "~@9 c#2@2 c2", AY: "~@9 f#2@2 f2", AZ: "g2@3 d2@2 g2 c2@3 g2@2 c2",
  BA: "g2@5 ~ g2@4 ~@2 f#2@5 ~ f#2@4 ~@2", BB: "f2@6 g2@6 a2@5 ~ b1@4 ~@2", BC: "f2@6 c2@4 f2@2 a#1@5 ~ a#1@4 ~@2",
  BD: "g2@4 g1 ~ a#2@6 c3@5 ~ g2@3 ~@3", BE: "~@6 e2@4 c1 ~ g2@5 ~ c3@4 ~@2, c2@5 ~@7",
  BF: "f2@6 g2@6 a2@5 ~ a#1@4 ~@2", BG: "g2@4 g1 ~ b2@6 c3@5 ~ g2@3 ~@3", BH: "c2@5 ~ c2@4 ~@2 f#2@6 c2@4 f#2@2",
  BI: "g2@5 ~ g#2@3 ~@2 g#1 a1@5 ~ d2@5 ~", BJ: "g2@3 ~@2 g1 d#2@3 ~@2 d#1 g2@5 ~ c2@5 ~",
  BK: "c2@5 ~ c2@4 ~@2 c2@5 ~ c2@5 ~", BL: "a1@5 ~ a1@4 ~@2 d2@6 a2@4 d2@2", BM: "c2@6 a#1@6 a1@6 a#1@5 ~",
  BN: "a1@5 ~ a1@4 ~@2 a1@3 ~@2 a0 a1@3 ~@2 a0", BO: "d#2@6 a#1@4 d#2@2 d2@5 ~ g#2@3 ~@2 g#1",
  BP: "g2@6 d2@4 g2@2 g2@5 ~ c2@3 ~@2 c1", BQ: "f2@3 c2@2 f2 e2@3 b1@2 e2", BR: "g2@5 ~ g2@4 ~@2 c2@5 ~ c#2@5 ~",
  BS: "c2@5 ~ c2@4 ~@2 f#2@5 ~ f#2@4 ~@2", BT: "f2@5 ~ f2@4 ~@2 a1@3 ~@2 a0 a#1@5 ~",
  BU: "a1@5 ~ a1@4 ~@2 d2@3 ~@2 d1 g#2@5 ~", BV: "c2@5 ~ c2@4 ~@2 c2@2 d3 ~ d#3 ~ [e3,a#3]@4 ~@2",
  BW: "d#2@6 a#1@4 d#2@2 d2@3 ~@2 d1 g#2@5 ~", BX: "g2@6 a2@6 b2@5 ~ c#2@4 ~@2",
  BY: "c2@5 ~ c#2@3 ~@2 c#1 c2@3 ~@2 c1 g2@3 ~@2 g1", BZ: "f2@3 c2@2 f2 d2@3 a2@2 d2",
  CA: "d2@5 ~ c#2@5 ~ d2@5 ~ g#2@3 ~@2 g#1", CB: "g2@6 a2@6 b2@5 ~ g#2@4 ~@2", CC: "g2@5 ~ c#2@6 c2@5 ~ c3@4 f2@2",
  CD: "~@4 a2@8 a#2@3 ~@3 b2@3 ~@3", CE: "[~@3 f1@13]/2",
})).s("gm_acoustic_bass").gain(0.22).pan(0.4)

// chords · piano
const piano = note(`<
  A@2 ~ 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 R AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU@2 AV S AW AX AY AZ BA BB BC BD ~ BE BF BG BH BI AV BJ BK BL BM BN BO@2 BP BQ BR BS BT BU BV BW R BX BY BZ CA CB
  CC CD CE CF CG CH A@2 ~ B C D E ~ CA AQ CI CJ CK CL CM CN CO CP CQ CR ~
>`.pickRestart({
  A: "~@22 [a#4,d5,f5,g5,c6] ~, ~@11 c7", B: "~@3 [a#4,d5,e5,a5,c6,c7]@2 [a#4,d5,e5,a5,c6,c7] ~@6",
  C: "~@16 [a4,c5,e5,g5,c6] ~@7, ~@8 c7 ~@3", D: "[g#4,c5,e5,g5,c6,c7]@2 ~@14 [g#4,c5,e5,g5,c6] ~@7, ~@8 c7 ~@3",
  E: "[a4,c5,e5,g5,c6,c7] ~@11", F: "a#3@15 ~@5 f4@2 g4 ~, [f4,g4,d5]@18 a#3@5 ~, f3@12 ~@4 f3@7 ~",
  G: "~ [a#3,f4,g4,f5,d6]@4 ~@7 [e3,a#3,e4,a4,c5]@11 ~, g5 ~@5", // Gm7 Am
  H: "~ [g3,c#4,f4,c#5,b5]@4 ~@8 [g3,a#4]@3 g3@2 ~@2 e4 ~ a#4 ~, f5@4 ~@8 [c#4,e4]@4 ~@3 c#4@2 ~@3", // G7 Gm C#m
  I: "~ d3@4 [f#3,c4,e4,a4]@2 ~@5 [f#3,c4,d4,a4]@4 ~@5 [f#3,c4,d#4,a#4]@2 ~", // F#m7b5 D7 Cm7b5
  J: "~@12 [f3,b3,d4,a4]@3 ~@2 [f3,b3,d4,a4]@2 ~@5", K: "~@4 [f3,c4,e4,a4]@2 ~@7 [b3,f4,a4,f5,d6]@4 ~@7, ~@3 a5 ~@2",
  L: "~@2 [f3,a#3,d4,g4] ~@5 [f#3,a3,c4,d#4] ~@3", // Gm7 F#dim
  M: "[f3,a3,a#3,d4]@4 ~@2 [g3,c4,e4,a4]@4 ~@3 d3@4 [f#3,c4,e4,b4]@2 ~@5", // A#maj7 Am7 Esus2
  N: "~ g2@3 ~@2 c2@3 ~@4 a2@3 ~@2 c2@3 ~@3, ~@2 g2 ~@5 g2 ~@3, ~@5 [f3,a#3,d4,g4]@2 ~@10 [g3,c4,e4,b4]@2 ~@5", // Gm7 Cmaj7
  O: "~@4 g2@2 c2@3 ~@4 a2@3 ~@2 c2@3 ~@3, [d3,a3,d4,f4,c5]@11 ~@5 g2@2 ~@6, ~@17 [g3,c4,e4,b4]@2 ~@5", // Dm7 Cmaj7
  P: "~@4 g2@2 c2@3 ~@4 [g3,c4,e4,c5,b5]@3 g2@2 c2@3 ~@3, [f3,a#3,f4,a4,d5]@11 ~ e5@4 ~@8", // Cmaj7 A#maj7
  Q: "~@4 [g2,a3,d4,f4,c5]@2 c2@3 ~@4 [a#3,e4,g#4,e5,c#6]@4 ~@7, ~@3 g#5 ~@2", // Dm7 A#m7b5
  R: "~ a3@15 ~@4 e4@2 g4 ~, [g4,c5]@9 a3@2 ~, ~ e4@18 ~@5, ~ e3@14 ~ e3@6 ~@2", // C5
  S: "~ g#3@15 ~@4 d4@2 g4 ~, [g4,c5]@9 g#3@2 ~, ~ d4@18 ~@5, ~ d3@14 ~ d3@6 ~@2", // C5
  T: "~@4 [a3,e4,g4,c5] ~@7 [a3,e4,g4,c5]@11 ~", // Am7
  U: "~ [g3,a4]@3 g3@2 ~@2 e4 ~ a4 ~@5 [f#3,c4,d4,a4]@2 ~@6, [c4,e4]@4 ~@3 c4@2 ~@15", // Gsus2 D7 C
  V: "~@6 [g3,c4,e4,a4]@2 ~ [g3,d4,f4,a#4]@2 ~, [d5,d6]", W: "~ [a#3,f4,a4,f5,d6]@4 ~@7 [e3,a#3,e4,g4,c5]@11 ~, a5 ~@5",
  X: "[c3,g3,c4,e4,b4]@11 ~@2 [g3,c5]@3 g3@2 ~@2 f4 ~ c5 ~, ~@12 [c#4,f4]@4 ~@3 c#4@2 ~@3", // Cmaj7 C5 C#
  Y: "[c3,g3,c4,e4,a4]@11 ~@5 [f#3,g#3,c4,e4,b4]@2 ~@6", // Am7 E
  Z: "[f3,a#3,f4,a4,d5]@11 ~ [e3,a#3,d4,a4]@4 ~@2 [f3,a3,a#3,d4]@4 ~@2", // A#maj7 Dsus2 A#maj7
  AA: "[f3,a#3,d4,a4]@2 ~ [f3,a#3,b3,d#4]@2 ~@3 [e3,a3,a#3,d4] ~@3", // A#maj7 D#sus2 Dsus2
  AB: "~@3 [g3,d4,f4,a#4]@2 ~ [g#3,d4,f4,b4]@4 ~@3 [a3,f4,a4,f5,c6]@4 ~@7, ~@3 a5 ~@2", // Gm7 G#dim F
  AC: "~ a2@4 [g3,a3,c4,e4]@2 ~@9 [f#3,b3,c4,e4]@2 ~@6", AD: "~@4 [f3,a3,a#3,d4]@2 ~@7 c3@4 [e3,a#3,d4,g4]@2 ~@5",
  AE: "~ [a#3,f4,a4,f5,d6]@4 ~@8 [a#3,e4,a4,e5,d6]@4 ~@7, a5 ~@2 a5 ~@2", // A#maj7
  AF: "[f3,a#3,f4,a4,d5]@11 ~@2 c3@4 [e3,a#3,d4,a4]@2 ~@5", // A#maj7 Dsus2
  AG: "[f3,a#3,f4,a4,d5]@11 ~@2 [a#3,e4,g#4,e5,d#6]@4 ~@7, ~@3 g#5 ~@2", // A#maj7 D#sus4
  AH: "~@12 [g#3,c4,d4,f4]@3 ~@2 [g#3,c4,d4,f4]@2 ~@5", // Dm7b5
  AI: "~ f3@4 [a3,c4,e4,g4]@2 ~@6 [g#3,d4,g4,d5,c6]@4 ~@7, ~@3 g5 ~@2", // Am7 G#maj7
  AJ: "[c3,g3,c4,e4,a4]@11 ~@2 d3@4 [f#3,c4,e4,b4]@2 ~@5", AK: "~@12 [f3,a#3,d4,a4]@3 ~@2 [f3,a#3,d4,a4]@2 ~@5",
  AL: "~@12 [e3,a#3,d4,a4]@3 ~@2 [e3,a#3,d4,a4]@2 ~@5", // Dsus2
  AM: "~ [e3,c4,e4,c5,a5]@4 ~@8 g#2@4 [g3,c4,e4,b4]@2 ~@5, e5 ~@5", // Am Cmaj7
  AN: "~ a2@4 [g3,a3,c4,e4]@2 ~@6 d3@4 [f#3,b3,c4,e4]@2 ~@5", // Am7 Esus2
  AO: "~ d3@4 [f3,d4,a4]@2 ~@9 [f3,d4,a4]@2 ~@6, ~@5 c-1@6 ~@5 c-1@6 ~@2", // Dm
  AP: "~ [c4,f4,a4,f5,d6]@4 ~@7 [f3,b3,f4,a4,e5]@11 ~, a5 ~@5", AQ: "~@2 [f3,a#3,d4,g4] ~@5 [e3,a#3,d4,g4] ~@3",
  AR: "[c3,g3,c4,e4,b4]@11 ~@2 d3@4 [f#3,c4,e4,b4]@2 ~@5", AS: "[g3,d4,g4,a#4,g5]@11 ~ [g3,d4,g4,a#4,g5]@11 ~",
  AT: "[e3,a#3,e4,g4,d5]@11 ~@2 g2@4 [f3,a#3,d4,g4]@2 ~@5", // Em7b5 Gm7
  AU: "[[g3,d4,g4,a#4,g5]@11 ~ [a#3,d4,g4]@4 ~@5 [a#3,d4,g4]@2 ~ [f3,a#3,f4,a4,d5]@11 ~@4 [e3,a3,a#3,d4]@2 ~@4 [e3,g3,a#3,c#4]@2 ~, ~@4 c-1@2 ~ c-1@2 ~@7]/2", // Gm A#maj7 Dsus2 Edim
  AV: "~@12 [e3,a3,c4,g4]@3 ~@2 [e3,a3,c4,g4]@2 ~@5", AW: "[e3,a3,e4,g4,c5]@11 ~@2 [g#3,d4,g4,d5,c6]@4 ~@7, ~@3 g5 ~@2",
  AX: "~ a2@4 [g3,a3,c4,e4]@2 ~@5 [f#3,c4,f#4,a#4,d5]@11 ~", AY: "~@12 [f3,a#3,d4,g4]@3 ~@2 [f3,a#3,d4,g4]@2 ~@5",
  AZ: "[f3,a#3,f4,g4,d5]@11 ~ [e3,a#3,e4,a4,c5]@11 ~", // Gm7 Am
  BA: "~ g3@15 ~@4 c4@2 e4 ~, [e4,a4]@9 g3@2 ~, ~ c4@18 ~@5, ~ c3@14 ~ c3@6 ~@2", // A5
  BB: "~ d3@4 [f#3,a#3,c4,e4]@2 ~@5 [f#3,c4,e4,b4]@3 ~@2 [f3,a#3,d4,a4]@7", BC: "~@2 c#6 d6 ~@2 d7@6",
  BD: "~@2 b6 c7 ~@2 c6@6", BE: "~@3 [a3,c4,f4]@2 ~ [f#3,b3,c4,e4]@2 ~ [f#3,a#3,c4,d#4]@2 ~, ~ c-1 ~@2",
  BF: "[f3,a#3,f4,a4,d5]@11 ~ [e3,a#3,e4,g4,d5]@11 ~", // A#maj7 Em7b5
  BG: "~@6 [a#3,d4,f4,a4,c5,c6]@3 ~ [a#3,d4,e4,g4,d5,d6]@7 ~ [a#3,d4,e4,g4,c5,c6]@3 ~ [a#3,d4,f4,a4,d5,d6] ~", // A#maj7 Em7b5 C7 A#maj7
  BH: "~ g2@4 [f3,a#3,d4,g4]@2 ~@9 [d#3,a3,c4,f#4]@2 ~@6", BI: "~@2 [f3,a#3,d4,a4] ~@5 [e3,a3,a#3,d4] ~@3",
  BJ: "~@6 [g#3,c4,d4,f5,f6]@3 ~ [g#3,c4,e4,g5,g6]@7 ~ [g#3,c4,d4,f5,f6]@3 ~ [a3,c4,e4,g5,g6] ~", // Dm7b5 C Dm7b5 Am7
  BK: "~@3 [e3,a3,e4,g4,c5]@11 ~@2 [g#3,c4,d4,f4]@2 ~@6", // Am7 Dm7b5
  BL: "~ a2@4 [g3,a3,c4,e4]@2 ~@6 [c4,f#4,a#4,f#5,e6]@4 ~@7, ~@3 a#5 ~@2", // Am7 C7
  BM: "a#3@15 ~@5 f4@2 a4 ~, [f4,a4,d5]@18 a#3@5 ~, f3@12 ~@4 f3@7 ~", // Dm
  BN: "a#3@15 ~@5 e4@2 g4 ~, [e4,g4,c5]@18 a#3@5 ~, e3@12 ~@4 e3@7 ~", // C
  BO: "[~@3 f#5 [e5,g5]@4 [c5,e5]@4 [a4,c5]@3 ~ [f4,a4]@2 ~@4 [e4,g4]@14 ~@6 c5 ~ d5 c5 ~ a4]/2", // Em C Am F Em
  BP: "b4@18 c5 ~ d5 c5 ~ a4", BQ: "b4@4 d5@2 f5@4 a5@8 f5 ~ g5 f5 ~ d5", BR: "e5@6 c5@2 d#5 a5@2 g#5",
  BS: "g5@2 d5 f5@2 e5@7", BT: "~@3 [f3,a#3,d4,a4]@2 ~ [f#3,c4,f4,a#4]@4 ~@2 [g3,c4,e4,b4]@4 ~@2 [f#3,c4,e4,b4]@4 ~@2",
  BU: "~@4 [f3,a3,a#3,d4] ~@7 [f3,a3,a#3,d4]@11 ~", // A#maj7
  BV: "[f3,a#3,d4,a4]@4 ~@2 [f#3,a#3,c4,d#4]@4 ~@2 g4@2 f4 d4 ~ a#3 [e3,a#3,d4,a4]@4 ~@2", // A#maj7 Cm7b5 Dsus2
  BW: "~ [a#3,e4,a4,e5,d6]@4 ~@10 [e3,a3,a#3,d4]@2 ~@4 [e3,a#3,c#4,g#4]@2 ~, a5 ~@5", // A#maj7 Dsus2 A#m7b5
  BX: "~@12 [g#3,d4,g4,c5]@3 ~@2 [g#3,d4,g4,c5]@2 ~@5", // G#maj7
  BY: "a3@15 ~@5 e4@2 g4 ~, [e4,g4,c5]@18 a3@5 ~, e3@12 ~@4 e3@7 ~", // C
  BZ: "~ a2@4 [g3,c4,e4,b4]@2 ~@5 [f#3,c4,f#4,a#4,d5]@11 ~", // Cmaj7 F#aug
  CA: "~@5 f4 g4@4 ~ d5@5 ~ g2 [a#3,f4,g4,d5]@3 ~@3, a#3@2 ~", // Gm7
  CB: "~@5 e4 a4@4 ~ d5@5 ~ c3 [a#3,e4,a4,d5]@3 ~@3, a#3@2 ~", // A#maj7
  CC: "[c#3,g3,c#4,f4,a4]@11 ~ [g3,b3,c#4,f#4]@4 ~@2 f#4@2 c#4 a3 ~ g3", // C#aug Gmaj7
  CD: "~ [g3,c#4,f4,c#5,c6]@4 ~@7 [f#3,c4,e4,b4]@4 ~@5 [f#3,c4,d#4,a#4]@2 ~, f5 ~@5", // Csus4 Esus2 Cm7b5
  CE: "~@12 [f3,a3,b3,e4]@3 ~@2 [f3,a3,b3,e4]@2 ~@5", // Fmaj7
  CF: "~@4 [f3,a#3,d4,g4]@2 ~@6 [f3,a#3,d4,g4]@4 ~@2 g4@2 e4 d4 ~ a#3", // Gm7
  CG: "~ [a3,d4,f4,d5,c6]@4 ~@7 [d3,g#3,d4,f4,b4]@11 ~, f5 ~@5", // Dm7 Ddim
  CH: "~ a2@4 [g3,a#3,c#4,f4]@2 ~@5 [f#3,c4,f#4,b4,d5]@11 ~", // Gm7b5 Bm
  CI: "~@2 [g3,c#4,f#4,b4] ~@3 [g3,c#4,f#4,b4]@2 ~ [g3,c#4,f#4,b4]@2 ~", // Gmaj7
  CJ: "~ [g3,c5]@3 g3@2 ~@2 f4 ~ c5 ~ [f#3,g#3,b3,c4,e4]@4 ~@5 [f#3,c4,f4,a#4]@2 ~, [c#4,f4]@4 ~@3 c#4@2 ~@15", // C5 E F#maj7 C#
  CK: "~ b3@15 ~@4 f4@2 a4 ~, [a4,d#5]@9 b3@2 ~, ~ f4@18 ~@5, ~ f3@14 ~ f3@6 ~@2", // Adim
  CL: "~@3 [e3,a#3,d4,a4]@2 ~ a#4@2 f4 d#4 ~ b3 [e3,a#3,d4,g4]@4 ~@2 [f3,a3,a#3,d4]@4 ~@2", // Dsus2 Em7b5 A#maj7
  CM: "~ f3@4 [e3,a3,c4,g4]@2 ~@6 [c4,f#4,b4,f#5,e6]@4 ~@7, ~@3 b5 ~@2", // Am7 Cmaj7
  CN: "~@3 [f#3,b3,c4,e4]@2 ~ [f3,a#3,b3,d#4]@4 ~@2 [f#3,c4,e4,a4]@4 ~@5 [f#3,a#3,c4,f4]@2 ~", // Esus2 D#sus2 F#m7b5 F#maj7
  CO: "~@12 [f3,b3,e4,a4]@3 ~@2 [f3,b3,e4,a4]@2 ~@5", CP: "a4 ~@11", CQ: "~@4 a2@8 a#2@3 ~@3 b2@3 ~@2 [c6,d6]",
  CR: "c6@2 ~@3 [c4,c#4] c4@2 ~@16", // C#maj7
})).s("gm_piano").gain(0.22).pan(0.6)

// other · alto sax
const alto_sax = note(`<
  A B C@2 D E F@3 ~ G@3 H@2 I J K L M@3 N@2 O P@3 Q@2 R ~@11 S@2 T@2 U ~ V W@2 X@2 Y Z AA AB@3 AC AD AE ~ AF@2 ~ AG AH
  AI ~ AJ@4 ~@5 AK AL AM@2 AN AO AP AQ AR AS AT@4 ~@3 AU B C@2 D E F@3 AV@4 AW@2 AX AY AZ ~ BA ~
>`.pickRestart({
  A: "d5@10 c5 d5 c5@4 d5@2 ~@6", B: "~@4 a4@6 a#4 a4 g4@4 a4@2 ~@6",
  C: "[~@4 d5@2 ~@4 c5@2 a4@4 a#4 a4 g4@4 a4@18 g#4@8]/2", D: "g4@6 f4@2 g4 ~@3", E: "~@2 e4@4 d4@2 e4 ~@3",
  F: "[~@4 g4@2 ~@4 f4@2 e4@4 f4 e4 d4@4 e4@14 a#4@4 a4@2 d#4@4 d4@26]/3",
  G: "[~@2 f4@4 e4@2 a4 e4@2 d#4@10 f4@2 e4@13]/3", H: "[f4@6 e4@5 d4@7 ~@2 c5 ~@2 a4]/2",
  I: "a#4@2 f5 d5@2 c5 ~@2 d#4@4", J: "d4 e4", K: "f4@6 ~@2 c4 e4@2 d4", L: "~@5 e4 ~@5 f4",
  M: "[~@16 a4@2 c5@2 a4@2 e5@35 ~ c5@5 [a4,a#4,b4] g#4@2 f4@4 ~@2]/3", N: "[g4@2 ~ g4@2 e4@13 ~@6]/2",
  O: "~@2 d5@4 c5@5 a#4", P: "[a4@4 g4@2 ~@4 d5@6 ~ g4 e4@4 c5@50, ~@18 f4 ~@53]/3",
  Q: "[~@4 d5@6 c5 d5 c5@4 d5@2 ~@4 a4@6 a#4 a4 g4@4 a4@2 ~@4 d4@7 ~]/2", R: "f4@3 f4@2 f4 ~@6", S: "~ e4@2 ~ e4@2",
  T: "~ a4@2 ~ a4@2", U: "e4 ~@7", V: "d4 d#4", W: "[e4@6 ~@2 f4 g4@2 a4@7 g4@3 f#4@3]/2",
  X: "[f4@12 ~@3 e4 d#4 d4 c#4@4 c4@14 d4@12]/2", Y: "e4@6 d4@5 c4", Z: "~@8 f4 g4 ~@2", AA: "e4@2 c4 ~@2 d#4@7",
  AB: "[~@4 d4@7 ~ g4@2 ~@4 a#4@4 d5@18 b4 [g4,a4] e4@4 c5@26, ~@42 f4 ~@29]/3", AC: "~@2 g#4 b4@2 e5 b4@2 g#4 e4@2 d4",
  AD: "~@9 a#4@2 a4", AE: "~@9 a4@2 f4", AF: "[~@6 f4@2 ~@4 c4@4 d#4@2 ~@4 d4@6 e4 d4 c4@2 ~@4 a4@4 g4@2 ~@4 d4@2]/2",
  AG: "~@2 d4 c4 ~@2 d4@2 c4 ~@2 d4", AH: "~@4 c4@8 a4@4 g#4@2 g4@4 e4 ~", AI: "~@4 e4@2 ~@4 d4@2 e4@4 f4 e4 d4@4 e4@2",
  AJ: "[~@4 e4@2 d4@2 ~@4 e4@4 d4@2 ~@4 e4@5 f#4 g4 [g#4,a4] b4@4 a#4@2 ~@10 a4@6 a4@2 f4@4 f4@2 d4@2 ~@4 a#3@4 f#4@26, ~@30 a#4 ~@65]/4", // Amaj7
  AK: "~@8 c4 d4 ~ f4", AL: "a4@4 f4@7 ~ d4@4 d#4@7 ~", AM: "[d4 ~@10 f4@4 d4@2 c4 d4@2 d4 ~@3]/2", AN: "~@2 e4",
  AO: "e4 ~ e4 ~@3 e4 ~ e4 ~@3 g4 ~ g4 ~@3 g4 ~ g4 ~@3", AP: "e4 g4@5", AQ: "~@5 b4 [a4,a#4] ~@17, ~@2 c5 ~@9",
  AR: "e4@2 f4 e4@2 ~@7", AS: "~@2 d4 f4@2 d4 a4@2 d4 f4@2 d4",
  AT: "[e4@4 d5@8 c5@4 d5@2 c5@4 a4@38 ~@4 g#4@2 ~@4 a4@7 ~ e4@4 e4@2 e4@4 d4@2 ~@6]/4",
  AU: "~@4 d5@6 c5 d5 c5@4 d5@2 ~@6", AV: "[~@16 d5@2 c5@4 a4@38 ~@4 g#4@2 ~@4 a4@7 ~ e4@4 e4@2 e4@4 d4@2 ~@6]/4",
  AW: "[~@3 d#4 ~@2 d4@2 d4 f4@2 a4@4 e4@2 e4 e4@2 d4 ~@3]/2", AX: "~@3 d#4 ~@2 e4@2 e4 f4 ~@2",
  AY: "~@6 a4@11 [f#4,g4] e4@2 ~@4, ~@18 f4 ~@5", AZ: "d4@3 d#4@2 d4 ~@2 c#4 d4@2 f4", BA: "~@5 [c4,d4] c4@2 ~@16",
})).s("gm_alto_sax").gain(0.4).pan(0.4)

// other · alto sax · soft notes
const alto_sax_soft = note("<~@15 A ~@9 B ~@20 C ~@10 D ~@13 E ~@14 F G ~@5 H ~@18 I ~@4>".pickRestart({
  A: "~@11 b4 [a4,a#4] ~@11", B: "~@15 c#5 b4 a4 ~@6", C: "~@2 [d4,d#4] [c4,c#4] ~@20", D: "~@15 c#5 ~@8",
  E: "~@3 f4 ~@20", F: "~@6 e4 ~@2 e4 ~@2", G: "~@5 d#4@7", H: "~@3 a3 ~@2 d4@2 d#4 d4@2 f4", I: "~@16 g#4 ~@7",
})).s("gm_alto_sax").gain(0.24).pan(0.4)

// other · alto sax
const alto_sax_2 = note(`<
  A B C@2 D ~ E@3 ~@2 F@2 G@2 H I J K ~@5 L M ~@2 N@2 O ~@11 P@2 Q@2 R ~@7 S T ~@3 U V W ~ X@2 ~ Y Z AA ~ AB@4 ~@5 AC AD
  AE@2 AF AG AH AI AJ ~@3 AK@2 ~@3 AL B C@2 D ~ E@3 ~@2 AK@2 AM@2 AN AO AP ~@3
>`.pickRestart({
  A: "a#4@10 a4 a#4 a4@4 a#4@2 ~@6", B: "~@2 f4@4 e4@2 e4 ~@3", C: "[~@2 a#4 ~@2 g#4 e4@3 f4@2 e4@9 e4@4]/2",
  D: "e4@6 d4@2 e4 ~@3", E: "[~@2 e4 ~@2 d4 c4@3 a#3@2 c4@7 d#4@3 b3@2 a#3@13]/3", F: "[~@9 c4@2 b3@13]/2",
  G: "[c4@6 b3@5 a#3@7 ~@2 f#4 ~@2 d#4]/2", H: "f4@2 a#4 g4@2 g4 ~@2 c4@4", I: "a#3 c4", J: "d4@6 ~@2 a3 c4@2 a#3",
  K: "~@5 c4 ~@5 d4", L: "~@2 f4@4 g4@5 f4", M: "e4@2 e4 ~@2 e4@4 ~@3",
  N: "[~@4 a#4@7 ~ a4@4 a#4@2 ~@4 f4@7 ~ f4@4 e4@2 ~@4 a#3@7 ~]/2", O: "d4@3 d4@2 d4 ~@6", P: "~ c4@2 ~ c4@2",
  Q: "~ f4@2 ~ f4@2", R: "f4 ~@7", S: "~@8 d4 e4 ~@2", T: "c4@2 a3 ~@2 c4@7", U: "~@2 e4 g#4@2 b4 g#4@2 e4 c4@2 a#3",
  V: "~@9 d#4@2 d4", W: "~@9 e4@2 d4", X: "[~@12 a#3@4 c4@2 ~@4 a#3@6 b3 a#3 a#3@2 ~@4 e4@4 e4@2 ~@4 a#3@2]/2",
  Y: "~@2 a#3!2 ~@2 a3@2 a3 ~@2 a#3", Z: "~@4 a#3@8 e4@4 f4@2 e4@4 c4 ~", AA: "~@4 c4@2 ~@4 c4@2 c4@4 c#4 c4 c4@4 c4@2",
  AB: "[~@4 c4@2 c4@2 ~@4 c4@4 c4@2 ~@4 c4@7 [c#4,d4] e4@4 d#4@2 ~@10 f4@6 f4@2 d4@4 d4@2 a#3@2 ~@4 g3@4 c#4@26, ~@30 d#4 ~@65]/4", // Dmaj7
  AC: "~@8 a#3!2 ~ d4", AD: "f4@4 c4@7 ~ c4@4 c4@7 ~", AE: "[a#3 ~@10 d4@4 a#3@2 a#3 a#3@2 a#3 ~@3]/2", AF: "~@2 c#4",
  AG: "c4 ~ c4 ~@3 c4 ~ c4 ~@3 e4 ~ e4 ~@3 e4 ~ e4 ~@3", AH: "d4 d4@5", AI: "~@5 g#4 [f#4,g4] ~@17, ~@2 a4 ~@9",
  AJ: "c4@2 c#4 c4@2 ~@7", AK: "[~@16 d#4@2 ~@4 e4@7 ~ c#4@4 c#4@2 c#4@4 b3@2 ~@6]/2",
  AL: "~@4 a#4@6 a4 a#4 a4@4 a#4@2 ~@6", AM: "[~@3 b3 ~@2 a#3@2 a#3 d4@2 e4@4 c4@2 c4 c4@2 c4 ~@3]/2",
  AN: "~@3 b3 ~@2 c4@2 c4!2 ~@2", AO: "~@6 f4@11 [d#4,e4] c#4@2 ~@4, ~@18 d4 ~@5", AP: "a#3@3 b3@2 a#3 ~@2 b3 a#3@2 d4",
})).s("gm_alto_sax").gain(0.4).pan(0.4)

// other · alto sax · soft notes
const alto_sax_soft_2 = note("<~@15 A ~@30 B ~@39 C D ~@5 E ~@23>".pickRestart({
  A: "~@11 f#4 [e4,f4] ~@11", B: "~@2 [d#4,e4] [c#4,d4] ~@20", C: "~@6 c4 ~@2 c4 ~@2", D: "~@5 c4@7",
  E: "~@3 a3 ~@2 a#3@2 b3 a#3@2 d4",
})).s("gm_alto_sax").gain(0.24).pan(0.4)

// … 389 more lines

More by Basie