Strudelify
Told You So cover art

I Told You So

Told You So

Basie

KeyF majorTempo116 bpm
0:00/0:00
// Told You So — Basie
// 116 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 186 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(116/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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano
const piano = note(`<
  ~ A B@2 C D E F G H I J K L M N O ~ P Q R S T U V L W X Y Z I AA AB ~ AC AD AE AF AG U AH AI AJ AK AL AM AN AO AP AQ@2
  AR AS@2 AT AH AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS AQ@2 BT@2 BU BV BW BX BY BZ
  CA CB CC CD CE CF CG@2 CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV@2 CW CI CX CY CZ DA DB DC DD DE DF DG DH DI DJ DK
  CW DL@2 DM@2 DN DO DP DQ BO DR DS DT CU DU DV DW DX DY DZ EA EB EC ED EE EF EG EH EI EJ EK@2 EL CI EM EN EO EP EQ ER
  ES ET EU EV EW EX EY EZ FA FB S FC U ~@2
>`.pickRestart({
  A: "[f3,a3,bb3,d4]@9 ~ [f3,a3,bb3,d4]@3 ~@5 [a3,c4,f4]@4 ~@2", // Bbmaj7 F
  B: "[[gb3,c4,e4,b4]@5 ~ [ab3,b3]@5 [f3,ab3,b3,eb4]@6 [f3,g3,bb3,d4] ~@3 [f3,a3,c4]@2 ~, ~@6 [gb3,c4,e4]@11 ~@7]/2", // Esus2 Abm Fm7b5 Gm7 F Gbm7b5
  C: "[a3,c4,f4]@3 ~@7 [e3,bb3,d4,a4] ~@13", D: "[f3,bb3,d4,a4]@9 ~ [f3,bb3,d4,a4]@3 ~@5 [a3,c4,f4]@4 ~@2",
  E: "[g3,db4,f4,c5]@9 ~ [gb3,c4,d4,bb4]@2 ~@12", F: "[f3,b3,d4,g4]@9 ~ [f3,b3,d4,g4]@3 ~@5 [f3,bb3,d4,a4]@4 ~@2",
  G: "[f3,a3,bb3,d4]@9 ~ [f3,ab3,b3,d4] ~@13", H: "[f3,a3,c4]@9 ~ [g3,c4,e4,a4]@2 ~@12",
  I: "[g3,a3,c4,eb4]@3 ~@7 [gb3,c4,e4,b4] ~@13", J: "[f3,b3,e4,a4]@3 ~@7 [e3,bb3,d4,a4] ~@11 [d3,f3,a3,c4,f4]@2",
  K: "~@4 f4@2 ~@4 f4@2 [e3,bb3,d4,a4]@3 ~ c4@6 [a3,c4,f4] ~", L: "~@12 [g3,c4,e4,a4]@9 ~ [g3,a3,c4,eb4]@2",
  M: "~@12 [gb3,c4,eb4,a4]@9 ~ [f3,ab3,b3,eb4] ~", N: "~@12 [f3,b3,eb4,bb4]@9 ~ [e3,bb3,d4,a4] ~",
  O: "~@12 [e3,bb3,eb4,ab4]@9 ~ [eb3,a3,d4,g4]@2", P: "[eb3,a3,d4,g4] ~@7", Q: "[ab3,d4,gb4,b4] ~@5",
  R: "[db3,b3]@5 ~@19", S: "[a3,f4,c5]@9 ~ [g3,b3,c4,e4]@2 ~@12",
  T: "[g3,a3,c4,eb4]@3 ~@7 [gb3,c4,eb4,bb4] ~@7 [gb3,bb3,c4,f4]@4 ~@2", U: "~@6 d5@4 f5@13 ~, ~@6 db5 ~@17",
  V: "~@12 [ab3,b3,eb4,gb4]@3 ~@7 [a3,f4,c5] ~", W: "~@5 [gb3,bb3,c4,d4] ~@5 [f3,b3,d4,a4]",
  X: "~@12 [e3,bb3,d4,a4]@9 ~ [d3,f3,a3,c4] ~", Y: "~@5 [e3,bb3,d4,a4] ~@6", Z: "[f3,a3,c4]@3 ~@7 [g3,c4,e4,b4] ~@13",
  AA: "[f3,b3,eb4,ab4]@9 ~ [f3,b3,db4,g4] ~@13", AB: "[f3,g3,bb3,d4]@9 ~ [e3,bb3,c4,g4] ~@7 [e3,bb3,eb4,ab4]@4 ~@2",
  AC: "[eb3,g3,a3,d4]@3 ~@15 [eb3,a3,d4,ab4]@4 ~@2", AD: "[ab3,d4,gb4,b4] ~@11",
  AE: "~@12 [ab3,d4,f4,b4]@3 ~ b2 ~ [ab3,d4,f4,b4]@4 ~@2", AF: "[a3,c4,f4]@9 ~ [g3,b3,c4,e4] ~@11 [g3,c4,eb4,a4]@2",
  AG: "~@5 [gb3,bb3,c4,eb4] ~@3 [gb3,bb3,c4,f4]@2 ~", AH: "~@5 [f3,bb3,d4,a4] ~@6",
  AI: "[a3,c4,f4]@9 ~ [g3,c4,e4,a4] ~@11 [eb4,g4,c5]@2", AJ: "~@5 [c4,e4,gb4,ab4,b4] ~@6",
  AK: "[b3,f4,g4,d5]@9 ~ [bb3,e4,g4,d5] ~@13", AL: "[a3,f4,c5]@9 ~ [bb3,d4,e4,ab4] ~@11 [a3,f4,c5]@2",
  AM: "~@5 [g3,c4,e4,b4] ~@5 [c4,eb4,g4]", AN: "~@5 [c4,gb4,ab4,b4,e5] ~@6", AO: "[b3,d4,f4,bb4]",
  AP: "~@10 c2@2 [bb3,e4,ab4,db5]@3 ~ c2 ~ [bb3,e4,ab4,db5]@4 ~@2", // Bbm7b5
  AQ: "[~@12 [a3,eb4,g4,d5]@3 ~ [a3,eb4,g4,d5]@6 [a3,eb4,g4,d5]@20 ~@6]/2", // Dsus4
  AR: "~@10 bb2@2 [d4,f4,bb4]@3 ~ bb2 ~ [d4,f4,bb4]@4 ~@2", // Bb
  AS: "[[ab3,d4,f4,b4]@10 ~@2 f4@10 [a3,f4,c5]@14 [ab3,c4,d4,f4]@9 ~ [g3,c4,db4,f4] ~, ~ [ab3,b3,d4]@2 ~]/2", // Abdim F Dm7b5 Csus4 Abdim
  AT: "~@12 [gb3,c4,f4,a4]@9 ~ [f3,ab3,b3,eb4] ~", AU: "[f3,bb3,d4,g4]", AV: "[a3,c4,f4]@3 ~@7 [g3,c4,e4,b4]@2 ~@12",
  AW: "[eb4,g4,c5]@9 ~ [c4,gb4,ab4,b4,e5] ~@11 [b3,f4,ab4,eb5]@2", AX: "~@12 [bb3,e4,g4,d5]@9 ~ [a3,f4,c5] ~",
  AY: "~@5 [bb3,c4,e4,ab4] ~@5 [a3,f4,c5]", AZ: "~@12 [g3,b3,c4,e4]@3 ~@7 [c4,eb4,g4]@2",
  BA: "~@12 [c4,e4,gb4,b4]@9 ~ [b3,f4,a4,d5] ~", BB: "~@12 [b3,f4,ab4,eb5]@3 ~ g2 ~ [b3,f4,ab4,eb5]@4 ~@2",
  BC: "[bb3,db4,e4,ab4]", BD: "[a3,c4,eb4,g4]@3 ~@7 [bb3,b3,eb4,g4,d5] ~@7 [ab3,d4,f4,b4]@4 ~@2",
  BE: "[a3,b3,d4,eb4,g4]@2 ~ [f3,bb3,d4,a4]@2 ~ [a3,b3,eb4,g4,d5]@2 ~ [g3,db4,e4,bb4]@2 ~", // G Bbmaj7 G Gdim
  BF: "[bb3,eb4,gb4,db5]@3 ~@7 [g3,d4,f4,bb4] ~@13", BG: "~@10 b2 ~ [ab3,d4,f4,b4]@3 ~ b2 ~ [ab3,d4,f4,b4]@4 ~@2",
  BH: "[a3,f4,c5]@9 ~ [ab3,c4,d4,f4]@2 ~@12", BI: "[g3,bb3,db4,f4]@3 ~@7 [gb3,c4,f4,a4] ~@13",
  BJ: "[f3,b3,eb4,ab4]@9 ~ [e3,bb3,db4,ab4] ~@13", BK: "~@10 f2@2 [f3,a3,c4]@3 ~ f2 ~ [f3,a3,c4]@4 ~@2",
  BL: "[a3,c4,f4]@3 ~@7 [g3,a3,c4,e4] ~@13", BM: "[eb3,g3,c4]@9 ~ [gb3,bb3,c4,eb4] ~@13",
  BN: "[f3,b3,d4,g4]@9 ~ [e3,bb3,db4,ab4]@2 ~@12", BO: "[f3,a3,c4]@9 ~ [e3,bb3,d4,a4] ~@13",
  BP: "[f3,a3,c4]@9 ~ [g3,c4,e4,b4] ~@11 [c4,eb4,g4]@2", BQ: "~@6 [c4,gb4,bb4,eb5]@2 ~ [c4,f4,gb4,a4]@2 ~",
  BR: "~@10 g2 ~ [b3,f4,ab4,eb5]@3 ~ g2 ~ [b3,f4,ab4,eb5]@4 ~@2", // Fm7b5
  BS: "[bb3,d4,e4,g4]@9 ~ [bb3,d4,e4,g4]@3 ~@5 [bb3,e4,ab4,db5]@4 ~@2", // Em7b5 Bbm7b5
  BT: "[[d4,f4,bb4]@10 ~@2 [d4,f4]@10 [ab3,d4,f4,b4]@12 ~@2 [ab3,b3,d4,f4]@3 ~@3 [ab3,b3,d4,f4]@4 ~@2, ~@6 bb3@11 ~@7]/2", // Bb Dm Abdim
  BU: "[a3,c4,f4]@3 ~@7 [ab3,c4,d4,f4] ~@11 [g3,c4,db4,f4]@2", BV: "~@12 [gb3,c4,e4,b4]@3 ~@7 [f3,ab3,b3,d4] ~",
  BW: "~@12 [e3,ab3,bb3,db4]@9 ~ [a3,c4,f4] ~", BX: "~@12 [f3,bb3,d4,g4]@9 ~ [a3,f4,c5]@2",
  BY: "~@12 [a3,f4,c5]@3 ~ f2 ~ [a3,f4,c5]@4 ~@2", BZ: "[eb4,g4,c5]@9 ~ [c4,gb4,bb4,e5]@2 ~@10 [b3,eb4,f4,ab4]@2",
  CA: "~@5 [bb3,e4,ab4,db5] ~@5 [a3,f4,c5]", CB: "~@12 [bb3,db4,e4,ab4]@3 ~@7 [a3,c4,f4] ~",
  CC: "~@12 [a3,c4,f4]@3 ~ f2 ~ [a3,c4,f4]@4 ~@2", CD: "[g3,db4,f4,c5]@9 ~ [gb3,ab3,c4,e4,b4] ~@11 [f3,ab3,b3,eb4]@2",
  CE: "~@12 [f3,bb3,b3,d4]@3 ~ g2 ~ [f3,bb3,b3,d4]@4 ~@2", // Bb
  CF: "[f3,bb3,d4,a4]@9 ~ [e3,bb3,db4,ab4]@2 ~@10 [eb3,g3,a3,d4]@2", // Bbmaj7 Bbm7b5 Ebmaj7
  CG: "[~@22 [eb3,g3,a3,d4]@14 ~@4 a3 ~ eb3@2 g3 ~ d4@2]/2", CH: "~@10 bb2@2 [bb3,d4,f4]@3 ~ bb2 ~ [bb3,d4,f4]@4 ~@2",
  CI: "[ab3,d4,f4,b4]", CJ: "~@10 f2 ~ [a3,f4,c5]@3 ~ f2 ~ [a3,f4,c5]@4 ~@2",
  CK: "[g3,db4,f4,c5]@9 ~ [gb3,ab3,b3,c4,e4]@2 ~@12", CL: "[f3,ab3,b3,eb4]@3 ~@7 [e3,ab3,bb3,db4] ~@11 [a3,c4,f4]@2",
  CM: "~@3 [a3,c4,f4]@2 ~ [d4,f4,bb4]@2 ~ [ab3,b3,d4,f4]@2 ~", // F Bb Abdim
  CN: "[a3,f4,c5]@3 ~@7 [g3,c4,e4,a4]@2 ~@10 [eb3,c4,g4]@2", CO: "~@12 [gb3,b3,c4,e4]@9 ~ [f3,b3,d4,ab4]@2",
  CP: "~@12 [f3,b3,d4,ab4]@9 ~ [a3,c4,f4] ~", CQ: "~@5 [bb3,d4,e4,a4] ~@6", CR: "[a3,f4,c5]@9 ~ [ab3,d4,g4,c5] ~@13",
  CS: "[ab3,d4,f4,c5]@4 ~@2 [g3,a3,c4,eb4]@4 ~@2 [gb3,ab3,b3,c4,e4]@9 ~ [gb3,ab3,c4,e4,b4] ~", // Dm7b5 Am7b5 E
  CT: "~@6 [f3,b3,d4,ab4]@9 ~ [f3,b3,d4,ab4]@3 ~@5", CU: "[e3,bb3,db4,ab4]",
  CV: "[[eb3,a3,d4,g4,b4]@5 ~ [eb3,d4]@5 [eb3,g3,bb3,d4]@6 [eb3,a3,d4,g4] ~@5 [d4,f4,bb4], ~@6 [a3,b3,g4]@11 ~@7]/2", // G Ebmaj7 Bb Em
  CW: "~@12 [d4,f4,bb4]@3 ~ bb2 ~ [d4,f4,bb4]@4 ~@2", CX: "[a3,f4,c5]@9 ~ [g3,c4,e4,b4]@2 ~@12",
  CY: "[eb4,g4,c5]@9 ~ [c4,gb4,ab4,b4,e5] ~@11 [b3,eb4,f4,ab4]@2", CZ: "~@12 [bb3,d4,f4,g4]@3 ~@7 [a3,f4,c5] ~",
  DA: "~@5 [bb3,d4,f4,g4] ~@3 [b3,f4,ab4,d5]@2 ~", DB: "[a3,f4,c5]@3 ~@7 [ab3,c4,d4,f4] ~@13",
  DC: "[g3,db4,f4,c5]@9 ~ [gb3,c4,eb4,bb4] ~@11 [f3,b3,d4,g4]@2", DD: "~@5 [e3,bb3,db4,ab4] ~@6",
  DE: "[a3,c4,f4]@9 ~ [d4,f4,bb4] ~@7 [ab3,d4,f4,b4]@4 ~@2", DF: "[a3,f4,c5]@9 ~ [ab3,d4,f4,c5] ~@11 [eb3,g3,c4]@2",
  DG: "~@12 [gb3,ab3,c4,e4,b4]@3 ~@7 [f3,ab3,b3,eb4] ~", DH: "~@12 [f3,b3,eb4,ab4]@3 ~ g2 ~ [f3,b3,eb4,ab4]@4 ~@2",
  DI: "~@10 c2 ~ [e3,ab3,bb3,db4]@3 ~@3 [e3,ab3,bb3,db4]@4 ~@2", // Bbm7b5
  DJ: "~@10 f2@2 [eb3,g3,a3,d4]@3 ~@3 [eb3,g3,a3,d4]@4 ~@2", // Ebmaj7
  DK: "[eb3,a3,d4,g4,b4]@4 ~@2 [e3,bb3,eb4,ab4]@4 ~@2 [eb3,f3,a3,c4]@3 ~@7 [d4,f4,bb4]@2", // G Emaj7 F7 Bb
  DL: "[[ab3,d4,f4,b4]@5 ~ f4@5 [a3,f4,c5]@4 [bb3,f4,g4,d5]@2 ~ [a3,c4,e4,g4]@2 ~ [g3,d4,f4,bb4]@2 ~, ~@2 [ab3,d4,b4]@3 ~@3]/2", // Abdim F Gm7 Am7 Gm7 Abdim
  DM: "[[gb3,c4,eb4,bb4]@5 ~@6 [f3,b3,d4,g4]@6 [e3,g3,bb3,db4] ~@3 [f3,b3,d4,ab4]@2 ~, ~@6 [gb3,bb3,c4,eb4]@11 ~@7]/2", // Cm7b5 G7 Edim Fdim Cm7b5
  DN: "[gb3,c4,eb4,a4]@4 ~@2 [g3,db4,e4,bb4]@4 ~@2 [ab3,d4,f4,b4]@3 ~@7 [ab3,d4,f4,b4]@2", // Gbdim Gdim Abdim
  DO: "~@12 [a3,f4,c5]@9 ~ [g3,c4,db4,f4] ~", DP: "~@5 [gb3,c4,d4,a4] ~@6",
  DQ: "[f3,b3,d4,bb4]@9 ~ [e3,bb3,db4,ab4] ~@13", // Bb Bbm7b5
  DR: "[a3,c4,f4]@2 ~ [d4,f4,bb4]@2 ~ [a3,c4,f4]@2 ~ [ab3,c4,d4,f4]@2 ~", // F Bb F Dm7b5
  DS: "[g3,db4,f4,c5]@9 ~ [gb3,c4,e4,b4] ~@11 [f3,b3,d4,a4]@2", DT: "~@12 [f3,b3,d4,bb4]@3 ~@3 [f3,b3,d4,bb4]@4 ~@2",
  DU: "[eb3,a3,c4,f4]@4 ~@2 [e3,ab3,bb3,eb4]@4 ~@2 [eb3,bb3,c4,g4]@3 ~@7 [eb3,a3,d4,g4]@2", // F7 Emaj7 Cm7 Ebmaj7
  DV: "~@5 [a3,eb4,ab4,db5] ~@5 [a3,d4,f4,c5]", DW: "~@12 [a3,d4,f4,c5]@3 ~ bb2 ~ [a3,d4,f4,c5]@4 ~@2",
  DX: "[ab3,b3,d4,f4]", DY: "[a3,f4,c5]@3 ~@7 [ab3,b3,d4,e4] ~@13", DZ: "[g3,c4,db4,f4]@3 ~@7 [gb3,a3,c4,d4]@2 ~@12",
  EA: "[f3,b3,eb4,ab4]@3 ~@7 [e3,bb3,eb4,g4] ~@13", EB: "[a3,c4,f4]@9 ~ [f3,a3,bb3,d4] ~@13",
  EC: "[f3,bb3,d4,g4]@3 ~@7 [f3,a3,c4]@2 ~@12", ED: "[gb3,c4,e4,b4]",
  EE: "[f3,b3,eb4,ab4]@9 ~ [f3,bb3,d4,a4] ~@7 [a3,c4,f4]@4 ~@2", // Fm7b5 Bbmaj7 F
  EF: "[a3,c4,f4]@9 ~ [f3,bb3,d4,a4]@2 ~@6 [d3,ab3,b3,f4]@4 ~@2", // F Bbmaj7 Ddim
  EG: "[e3,a3,c4,g4]@2 ~ [f3,bb3,d4,a4]@2 ~ [f3,ab3,b3,d4]@2 ~ [g3,b3,c4,e4]@2 ~", // Am7 Bbmaj7 Fdim Cmaj7
  EH: "[a3,c4,d4,f4]@2 ~ [g3,c4,e4,b4]@2 ~ [b3,eb4,f4,bb4]@2 ~ [c4,gb4,ab4,b4,e5]@2 ~", EI: "[b3,f4,ab4,eb5]",
  EJ: "[bb3,e4,g4,d5]@4 ~@2 [b3,f4,bb4,eb5]@4 ~@2 [bb3,e4,ab4,db5]@9 ~ [a3,b3,eb4,g4,d5]@2", // Em7b5 Bmaj7 Bbm7b5 G
  EK: "[~@22 [a3,eb4,g4,d5]@14 ~@4 a3@2 eb4 ~ g4 ~ d5 ~]/2", EL: "[ab3,d4,f4,c5]",
  EM: "[a3,d4,eb4,g4]@2 ~ [ab3,d4,e4,b4]@2 ~ [a3,d4,eb4,g4]@2 ~ [ab3,b3,d4,gb4]@2 ~", // Dsus4 E7 Dsus4 Abm7b5
  EN: "[g3,bb3,db4,eb4]@9 ~ [gb3,b3,c4,e4] ~@13", EO: "[f3,b3,d4,a4]@9 ~ [f3,bb3,d4,a4] ~@13", EP: "[f3,a3,bb3,d4]",
  EQ: "[a3,c4,f4]@9 ~ [g3,a3,c4,e4] ~@13", ER: "[g3,c4,e4,b4]@9 ~ [gb3,b3,c4,e4] ~@13",
  ES: "[f3,b3,e4,a4]@9 ~ [e3,ab3,bb3,d4]@2 ~@12", ET: "[d3,a3,c4,f4]@9 ~ [e3,bb3,d4,a4] ~@13",
  EU: "[a3,c4,f4]@9 ~ [g3,b3,c4,e4] ~@13", EV: "[g3,c4,eb4,a4]@9 ~ [gb3,ab3,c4,e4,b4]@2 ~@12",
  EW: "[f3,ab3,b3,eb4]@9 ~ [f3,b3,eb4,g4] ~@11 [f3,bb3,d4,a4]@2", EX: "~@5 [e3,bb3,d4,a4] ~@3 [e3,bb3,db4,ab4]@2 ~",
  EY: "[eb3,g3,a3,d4] ~@11", EZ: "[eb3,g3,a3,d4]@3 ~@15 [eb3,ab3,a3,d4]@4 ~@2", FA: "[ab3,d4,f4,db5] ~@11",
  FB: "~@12 [ab3,b3,d4,f4]@3 ~ b2 ~ [ab3,b3,d4,f4]@4 ~@2", // Abdim
  FC: "[g3,c4,eb4,a4]@3 ~@7 [gb3,c4,eb4,bb4] ~@7 [gb3,bb3,c4,f4]@4 ~@2", // Am7b5 Cm7b5 Gbmaj7
})).s("gm_piano").gain(0.31)

// bass · acoustic bass · "Jazz Bass"
const bass = note(`<
  A B C D E B F G H I J K L M N O P Q R S T U V ~ W I X Y Z AA X AB AC AD AE AF AG I AH ~ AI AJ N AK AL AM AN AO AP AQ
  AR AS AT AU AV AW AX AY X AZ BA AM BB BC BD BE BF BG AT BH AN BI BJ BK N BL BM BN BO BP BQ BR AR BS BT BN BU AZ BV BW
  BX BY BZ CA CB CC AC AQ CD CE AT CF CG CH CI CJ N AZ Z CK CL CM CN CO CP CQ CR M CS CT CU CV BB CW CX CY CZ BC DA DB
  DC CE DD DE DF DG DH BF DI DJ DK DL DM AO DA DN DO AS AG DP DQ DR L DS DT DU DV DW DX CC DY AQ DZ BS AG EA EB EC AX AA
  ED EE Z EF EG EH EI Q AE AF EJ AY EK ~ EL EM
>`.pickRestart({
  A: "~@4 c3 ~ c3 ~", B: "f3@3 ~ f3@2 f3@5 ~ f3@5 ~ f3@5 ~", C: "d3@3 ~ d2 ~ c3@5 ~ b2@3 ~ d2 ~ a2@3 ~ ab3@2",
  D: "g3@5 ~ g3@5 ~ c3@5 ~ f3@5 ~", E: "f3@5 ~ f3@5 ~ c3@3 ~ c2 ~ e3@3 ~ c3@2",
  F: "eb4@2 bb3@2 eb3@2 eb3@3 ~ db3@2 d3@5 ~ ab3@3 ~ gb3@2", G: "g3@3 ~ g3@2 f3@5 ~ g3@5 ~ c3@3 ~ eb4@2",
  H: "c3@3 ~ g2 ~ c3@5 ~ c3@5 ~ c3@5 ~", I: "f3@5 ~ f3@5 ~ e3@5 ~ e3@5 ~", J: "e3@5 ~ e3@5 ~ d3@5 ~ gb3@3 ~ d3@2",
  K: "g3@5 ~ b3@3 ~ g3@2 c4@2 g3@2 c3@2 gb3@3 ~ e3@2", L: "f3@5 ~ a3@3 ~ f3@2 c3@5 ~ e3@3 ~ c3@2",
  M: "f3@5 ~ a3@3 ~ f3@2 e3@5 ~ e3@5 ~", N: "eb3@5 ~ eb3@5 ~ d3@5 ~ d3@5 ~",
  O: "g3@5 ~ g3@5 ~ db4@2 ab3@2 db3@2 db3@3 ~ b2@2", P: "c3@5 ~ c3@5 ~ c4@2 g3@2 c3@2 gb3@3 ~ e3@2", Q: "f3 ~@7",
  R: "f4 ~@3 f2@2", S: "[bb1,bb2] ~@7", T: "b2@5 ~@11 eb2@8", U: "f3@3 ~ f2 ~ f3@5 ~ e3@3 ~ a1 ~ e3@5 ~",
  V: "eb3@5 ~ eb3@5 ~ d3@3 ~ d2 ~ ab3@3 ~@3", W: "ab3@5 ~ f3@3 ~ eb3@2 e3@5 ~ gb3@3 ~ e3@2",
  X: "eb3@5 ~ eb3@5 ~ d4@2 a3@2 d3@2 ab3@3 ~ gb3@2", Y: "g3@3 ~ g2 ~ g3@3 ~ db3@2 c3@3 ~ c2 ~ g3@3 ~ c3@2",
  Z: "f3@5 ~ f3@5 ~ c3@5 ~ c3@5 ~", AA: "f4@2 c4@2 f3@2 f3@3 ~ eb3@2 e3@5 ~ e3@5 ~",
  AB: "g3@5 ~ d3@5 ~ db3@5 ~ db3@5 ~", AC: "c4@2 g3@2 c3@2 db3@3 ~ b2@2 c3@3 ~ c2 ~ c3@5 ~", AD: "f3@5 ~@19",
  AE: "f3@3 ~@15 f3@5 ~", AF: "bb2 ~@7", AG: "b2@5 ~ a2@5 ~ g2@5 ~ f2@3 ~ gb3@2",
  AH: "eb3@5 ~ eb3@5 ~ d3@3 ~ bb2@2 ab3@3 ~@3", AI: "ab4@2 eb4@2 ab3@2 db3@3 ~ b2@2 c3@5 ~ c3@5 ~",
  AJ: "f3@5 ~ f3@5 ~ e3@3 ~ a1 ~ e3@5 ~", AK: "g3@5 ~ db3@5 ~ c3@3 ~ c2 ~ e3@3 ~ c3@2",
  AL: "f4@2 c4@2 f3@2 db3@3 ~ b2@2 c3@5 ~ e3@3 ~ c3@2", AM: "f3@3 ~ f2 ~ f3@5 ~ e3@5 ~ e3@5 ~",
  AN: "eb3@5 ~ eb3@5 ~ d3@5 ~ ab3@5 ~", AO: "g3@5 ~ a3@5 ~ bb3@5 ~ b3@3 ~ g3@2",
  AP: "c3@5 ~ d3@5 ~ eb3@3 ~ c2 ~ e3@3 ~ c3@2", AQ: "f4@2 c4@2 f3@2 a3@5 ~ bb3@5 ~ b3@5 ~",
  AR: "c4@3 ~ g3@2 e3@5 ~ f3@5 ~ f3@5 ~", AS: "bb2@5 ~ a2@5 ~ g2@5 ~ f2@3 ~ bb2@2",
  AT: "b2@5 ~ a2@5 ~ g2@5 ~ f2@3 ~ b2@2", AU: "f4@2 c4@2 f3@2 f3@3 ~ eb3@2 e3@3 ~ e2 ~ e3@5 ~",
  AV: "eb3@5 ~ eb3@3 ~ eb3@2 d3@5 ~ gb3@3 ~ d3@2", AW: "g3@3 ~ g2 ~ db3@5 ~ c3@5 ~ c3@3 ~ db3@2",
  AX: "c3@5 ~ bb2@5 ~ a2@5 ~ g2@3 ~ c3@2", AY: "f3@5 ~ f3@3 ~ f3@2 e3@3 ~ a1 ~ e3@5 ~",
  AZ: "g3@5 ~ g3@5 ~ c3@5 ~ c3@5 ~", BA: "f3@3 ~ f2 ~ db3@5 ~ c3@5 ~ c3@3 ~ gb3@2",
  BB: "eb3@5 ~ eb3@5 ~ d3@5 ~ d3@3 ~ ab3@2", BC: "g3@5 ~ a3@5 ~ bb3@5 ~ b3@3 ~ db3@2",
  BD: "c3@5 ~ d3@5 ~ eb3@5 ~ e3@3 ~ gb3@2", BE: "f3@5 ~ f3@5 ~ f3@3 ~ db3@2 f3@3 ~ gb3@2",
  BF: "f3@5 ~ f3@5 ~ f3@5 ~ f3@5 ~", BG: "b2@5 ~ b2@5 ~ bb2@5 ~ c3@5 ~", BH: "f3@5 ~ f3@5 ~ e3@3 ~ e2 ~ e3@5 ~",
  BI: "g3@3 ~ g2 ~ g3@5 ~ c3@5 ~ gb3@5 ~", BJ: "f3@5 ~ g3@5 ~ ab3@5 ~ a3@3 ~ f3@2",
  BK: "f3@3 ~ f2 ~ a3@3 ~ f3@2 e3@3 ~ a1 ~ e3@5 ~", BL: "g3@5 ~ g3@5 ~ c3@5 ~ c3@3 ~ gb3@2",
  BM: "f3@5 ~ f3@3 ~ db3@2 c3@5 ~ gb3@3 ~ e3@2", BN: "f3@3 ~ f2 ~ f3@3 ~ f3@2 e3@5 ~ e3@5 ~",
  BO: "eb3@5 ~ eb3@5 ~ d3@3 ~ bb2@2 ab3@3 ~ ab3@2", BP: "g3@5 ~ f3@5 ~ e3@5 ~ d3@3 ~ db3@2",
  BQ: "c3@3 ~ c3@2 bb2@5 ~ c3@5 ~ c3@3 ~ gb3@2", BR: "f3@3 ~ f2 ~ a3@5 ~ bb3@5 ~ b3@5 ~",
  BS: "bb2@5 ~ c3@5 ~ db3@5 ~ d3@3 ~ c3@2", BT: "b2@3 ~ b1 ~ a2@5 ~ g2@5 ~ f2@3 ~ b2@2",
  BU: "eb3@5 ~ eb3@5 ~ d3@3 ~ d2 ~ ab3@5 ~", BV: "f3@3 ~ f2 ~ c4@3 ~ f3@2 c3@5 ~ c3@5 ~",
  BW: "f3@5 ~ g3@5 ~ ab3@3 ~ f2 ~ a3@3 ~ e3@2", BX: "eb3@3 ~ c2 ~ eb3@5 ~ d4@2 a3@2 d3@2 ab3@3 ~ gb3@2",
  BY: "g3@5 ~ db3@5 ~ c3@5 ~ c3@5 ~", BZ: "f3@5 ~ db3@5 ~ c3@5 ~ e3@3 ~ c3@2", CA: "f3@5 ~ g3@5 ~ ab3@5 ~ a3@3 ~ e3@2",
  CB: "eb3@3 ~ eb2 ~ eb3@5 ~ d3@5 ~ d3@3 ~ ab3@2", CC: "g3@5 ~ f3@5 ~ e3@5 ~ d3@3 ~ g3@2",
  CD: "c4@5 ~ eb4@5 ~ f4@3 ~ c4@2 f3@3 ~ b2@2", CE: "bb2@5 ~ c3@5 ~ db3@5 ~ d3@3 ~ bb2@2",
  CF: "f3@5 ~ e3@5 ~ d3@5 ~ c3@3 ~ e3@2", CG: "eb3@5 ~ eb3@5 ~ d3@5 ~ ab3@3 ~ gb3@2",
  CH: "g3@5 ~ db3@5 ~ c3@5 ~ g3@3 ~ c3@2", CI: "f3@3 ~ db4@2 c3@5 ~ c3@5 ~ c3@5 ~",
  CJ: "f3@5 ~ f3@3 ~ f3@2 e3@5 ~ e3@5 ~", CK: "f3@5 ~ c4@3 ~ f3@2 bb3@2 f3@2 bb2@2 b2@3 ~ a2@2",
  CL: "bb2@5 ~ a2@5 ~ d3@5 ~ d3@3 ~ eb3@2", CM: "d3@5 ~ g3@10 ~@2 f3@2 ~ d4@2 ~",
  CN: "c3@3 ~ c2 ~ bb2@5 ~ a2@5 ~ g2@3 ~ gb3@2", CO: "f3@5 ~ eb3@5 ~ d3@5 ~ c3@3 ~ db3@2",
  CP: "c3@5 ~ eb3@3 ~ c3@2 f3@5 ~ f3@5 ~", CQ: "bb2@3 ~ bb1 ~ a2@5 ~ g2@5 ~ f2@3 ~ bb2@2",
  CR: "b2@3 ~ b1 ~ db3@5 ~ d3@5 ~ eb3@3 ~ gb3@2", CS: "eb3@5 ~ eb3@5 ~ d3@3 ~ d2 ~ gb3@3 ~ d3@2",
  CT: "g4@2 d4@2 g3@2 db3@3 ~ b2@2 c3@5 ~ c3@5 ~", CU: "f3@5 ~ db4@5 ~ c3@5 ~ c3@5 ~",
  CV: "f3@5 ~ f3@5 ~ e3@5 ~ e3@3 ~ d3@2", CW: "g3@3 ~ g2 ~ g3@3 ~ db3@2 c3@5 ~ c3@5 ~",
  CX: "f3@3 ~ f2 ~ f3@3 ~ db3@2 c3@5 ~ c3@3 ~ f3@2", CY: "f3@3 ~ f2 ~ f3@5 ~ e3@5 ~ ab3@3 ~ e3@2",
  CZ: "eb3@3 ~ c2 ~ eb3@5 ~ d3@5 ~ d3@5 ~", DA: "c3@5 ~ d3@5 ~ eb3@5 ~ e3@3 ~ c3@2",
  DB: "f3@5 ~ eb3@5 ~ d3@5 ~ c3@3 ~ gb3@2", DC: "f3@5 ~ gb3@5 ~ f4@2 c4@2 f3@2 b2@3 ~ a2@2",
  DD: "b2@5 ~ db3@5 ~ d3@5 ~ eb3@3 ~ b2@2", DE: "f3@5 ~ g3@5 ~ a2@3 ~ c4@2 eb3@3 ~ eb3@2",
  DF: "d3@5 ~ c3@5 ~ b2@3 ~ d2 ~ a2@3 ~ ab3@2", DG: "g3@5 ~ g3@5 ~ c3@3 ~ eb4@2 c3@3 ~ a3@2",
  DH: "c3@5 ~ c3@5 ~ c3@5 ~ c3@5 ~", DI: "eb3@3 ~ eb2 ~ eb3@3 ~ eb3@2 d3@5 ~ d3@5 ~",
  DJ: "g3@3 ~ g2 ~ db3@5 ~ c3@5 ~ c3@5 ~", DK: "f3@5 ~ db3@5 ~ c3@5 ~ c3@5 ~", DL: "f3@5 ~ bb2@5 ~ a2@5 ~ e3@5 ~",
  DM: "eb3@5 ~ g3@3 ~ eb3@2 d4@2 a3@2 d3@2 ab3@3 ~ gb3@2", DN: "f3@5 ~ gb3@5 ~ f3@5 ~ c4@3 ~ f3@2",
  DO: "f3@5 ~ f3@5 ~ b2@5 ~ b2@5 ~", DP: "f3@5 ~ a3@3 ~ f3@2 e3@3 ~ e2 ~ e3@5 ~",
  DQ: "eb3@3 ~ eb2 ~ eb3@5 ~ d3@3 ~ d2 ~ a3@3 ~ d3@2", DR: "g3@5 ~ b3@3 ~ g3@2 c3@3 ~ c2 ~ c3@5 ~",
  DS: "f3@3 ~ g2 ~ f3@5 ~ f3@5 ~ c4@3 ~ f3@2", DT: "d3@3 ~ d2 ~ e3@5 ~ f3@5 ~ gb3@3 ~ ab3@2",
  DU: "g3@5 ~ g3@3 ~ db3@2 c3@5 ~ f3@5 ~", DV: "f4@2 c4@2 f3@2 db3@3 ~ b2@2 c3@3 ~ gb3@2 c3@5 ~",
  DW: "f3@5 ~ g3@5 ~ ab3@5 ~ a2@5 ~", DX: "bb2@3 ~ db3@2 c3@3 ~ b2@2 db3@3 ~ bb2@2 d3@5 ~",
  DY: "c3@5 ~ db3@3 ~ db3@2 c3@5 ~ e3@3 ~ c3@2", DZ: "c4@3 ~ g3@2 e3@5 ~ f3@3 ~ f2 ~ f3@5 ~",
  EA: "f3@5 ~ e3@3 ~ gb3@2 f3@3 ~ c3@2 e3@3 ~ e3@2", EB: "eb3@5 ~ eb3@3 ~ db3@2 d3@5 ~ ab3@5 ~",
  EC: "g3@3 ~ g2 ~ d4@3 ~ g3@2 c3@3 ~ c2 ~ e3@3 ~ c3@2", ED: "eb3@3 ~ a1 ~ eb3@5 ~ d4@2 a3@2 d3@2 ab3@3 ~ gb3@2",
  EE: "g3@5 ~ db3@5 ~ c3@3 ~ c2 ~ gb3@5 ~", EF: "f4@2 c4@2 f3@2 f3@3 ~ eb3@2 e3@3 ~ a1 ~ e3@5 ~",
  EG: "eb3@5 ~ eb3@5 ~ d3@5 ~ gb3@3 ~ d3@2", EH: "g3@3 ~ g2 ~ g3@5 ~ db3@3 ~ db2 ~ db3@5 ~",
  EI: "c3@5 ~ e3@3 ~ c3@2 c3@3 ~ d3@2 c3@5 ~", EJ: "b2@3 ~@3 a2@5 ~ g2@5 ~ f2@3 ~ b2@2",
  EK: "eb3@5 ~ eb3@5 ~ d3@3 ~ bb2@2 ab3@5 ~", EL: "g2@2 c2@2 f2 ~@3", EM: "~@9 f2@2 ~",
})).s("gm_acoustic_bass").gain(0.36)

// other · alto sax
const alto_sax = note(`<
  A B@2 C D E@2 F@2 ~@7 G@2 H I@2 ~@11 J I H I K ~@28 L M@3 ~@3 N O@3 P Q@2 R@2 I ~@7 S T U V S W X Y Z ~ AA ~ S AB ~ AC
  AD AE AF@2 AG@2 AH AI AJ AK AL AM@2 AN AO AP AQ@3 AP AR AS@2 AT AU AV AW@2 AX AY AZ@3 ~ N BA BB@3 BC@5 ~@3 A B@2 BD BE
  BF@3 BG BH BI BJ BK@3 BL@2 ~@7 G@2 H I K ~@4 AC
>`.pickRestart({
  A: "~@6 f4 ~@2 g4 ~@2", B: "[d5@16 c5@2 ~ a4@3 gb4@13 ~@11 f4@2]/2", C: "~@4 f4@2 ~@3 e4@2 ~ f4@6 a4@2 ~@4",
  D: "~@16 c4@2 f4@3 ~@3", E: "[bb4@16 a4@2 f4@3 ~ c5@6 b4@2 c5@4 bb4@6 a4@2 bb4@4 a4@2]/2",
  F: "[~@4 a4@2 ~@4 ab4@2 a4@5 ~ d4@16 f4@14]/2", G: "[~@16 ab4@7 f4@3 ~@22]/2", H: "f4 ~@7 ab4@4", I: "f4 ~@7",
  J: "~@2 ab4", K: "~@6 bb4@2 a4@2 bb4@2 a4@6 g4@3 ~@3", L: "~@4 d4@2 f4@3 ~@3 g4@3 ~@3 ab4@3 ~@3",
  M: "[a4@3 ~@3 bb4@3 ~@3 c5@4 db5@3 ~@3 d5@17 bb4 g4 ~ f4@4 e4@24 ~@2]/3", N: "~@11 ab4",
  O: "[a4@4 c5@2 ~@4 f5@2 ~@4 e5@2 ~@4 eb5@8 c5@2 ~@4 ab4@4 a4@2 ~@3 d5@8 ~ b4@2 ~@4 gb4@4 g4@3 ~@3 bb4@2]/3",
// … 364 more lines

More by Basie