Strudelify

Warm Breeze

Basie

KeyF majorTempo120 bpm
0:00/0:00
// Warm Breeze — Basie
// 120 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 206 bars on a 32-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.

// chords · piano
const piano = note(`<
  A B@2 C D@3 E F G H I J K L M N O P Q R@4 S@2 T@2 U@2 V ~ W X Y Z AA AB ~@2 AC AD AE AF AG AH AI ~ AJ AK AL AM@2 AN AO
  AP AQ@2 AR AS AT AU AV@2 AW@2 ~@2 AX@2 AY AZ BA@4 BB BC@2 BD BE BF BG BH BI ~ BJ ~ BK BL BM BN@2 BO@4 BP BQ@2 BR@7 BS
  BT ~ BU ~ BK BV BM BW@2 BX BY BZ CA CB CC ~ CD@7 BS CE CF@2 CG@2 CH@3 ~@2 CI@2 CJ ~ CK@3 ~ CL ~ CM CN CO@2 CP@2 CQ
  CR@3 CS@3 CT@4 CU CV CW CX@2 CY@2 CZ BP DA ~ DB DC@3 DD@2 DE@2 DF DG@3 DH@2 DI@3 DJ DK@2 ~@2 DL@3 ~
>`.pickRestart({
  A: "ab5 ~@28 c6@3, [f2,g3,a3,a5]@21 [f2,g3,a3]@11, ~@5 c6@24 ~@3, ~@3 d6", // F
  B: "[~@20 a3@11 ~@30 d5@3, [gb2,eb3,eb6]@31 g2@22 [bb3,d5]@3 f5@8, a3@5 ~@3 f3@8, ~@5 c6@8 c6@18 ~ bb3@16 a5@16, ~@8 d6@24 ~@5 [db6,d6,f6]@27]/2", // Ebm Bb Db
  C: "~@23 [f5,gb5]@9, [gb2,a3], eb3@21 eb3@11, ~@7 eb5@9, ~@22 e5@9 ~", // Gbmaj7 Gbm
  D: "[~@24 [a4,c5]@5 d4@10 ~ eb4@4 ~ eb4@3 e4@5 a4@3 c4@2 d4@2 ~ g4@2 ~@14 f3@3 bb3@3 f3@2 bb3@3 [ab3,d4]@2 f3@2 ~ [ab3,d4]@3, [g2,f3,bb3]@4 ~ [c3,e3,bb3]@3 ~ a2 bb2 b2, ~@8 f5@23 ~@65, ~@8 d5@5 d4@16 ~@34 f4@13 ~@20, ~@11 bb4@5 [a4,c5]@5 [bb4,d5]@10 ~@65]/3", // Am Abdim Gm7 C7 Am Bb
  E: "[c3,a3,c4]@5 d3@3 db3@5 c3@19", F: "[d3,d4]@8 [db3,db4]@8 [f2,d3,a3,d4]@5 [f2,c3,a3,c4]@2 ~@9, [f2,a3] ~",
  G: "~@8 [c3,c4]@5 ~ gb2@18, ~@13 [eb3,a3,d4]@19", // C D
  H: "e4@8 db4@7 ~ [g2,f3,bb3,db4]@5 [g2,f3,bb3,c4]@2 ~@9, [g2,f3,bb3] ~", I: "~@8 [c3,c4]@5 [gb2,eb3,a3,eb4]@19",
  J: "d4@8 db4@7 ~ [g2,f3,bb3,db4]@5 [g2,f3,bb3,c4]@2 ~@9, [g2,f3,bb3]@15 ~@17", K: "~ [c2,e3,bb3,eb4]",
  L: "[d3,d4]@8 [db3,db4]@7 ~ [f2,d3,a3,db4]@5 [f2,c3,a3,c4]@2 ~@9, [f2,a3]@15 ~@17", // D Db Dm F
  M: "~@17 [d5,f6]@3 ~ [a5,f6] ~@10, ~@16 a5@3 ~@2 d5@2 ~@9", // Dm
  N: "~@8 gb4@7 ~@2 f2@4 [f2,eb3,a3,d4,f4]@2 ~@9, [f2,eb3] ~, g4 ~@3, ~ [a3,d4]@14 ~ [eb3,a3,d4,gb4]@5 ~@11", // Dm F7 D5 D
  O: "~ [f2,eb3,a3,d4]", // Dm
  P: "[g3,g4]@8 [gb3,gb4]@7 ~ [bb2,gb3,c4,d4,gb4]@5 [bb2,f3,c4,d4,f4]@2 ~@9, [bb2,c4,d4]@15 ~@17", // G Gb Bbaug Bb
  Q: "~ [bb2,g3,c4,d4]", // Gm
  R: "[[eb4,g4]@7 ~ [eb4,gb4]@7 ~ [eb4,gb4]@8 [d4,f4]@7 ~ [d4,f4]@8 [bb3,e4]@8 [bb3,db4]@6 [b3,d4]@7 [g2,f3,bb3,db4,f4]@27 [c3,ab3,bb3,db4,e4]@5 [c3,ab3,bb3,db4,e4]@35, [g2,g3]@55 ~@73]/4", // Eb Ebm Dm Bbdim Bbm Bm Gm7b5 Bbm7b5 …
  S: "[~@8 [f2,eb3,g3]@4 ~@10 f2@2 ~@5 [f2,eb3,g3,a3,d4]@34 ~, ~@8 [a3,d4]@2 ~@11 [eb3,g3,a3,c4]@3 ~@40]/2", // Cm Dm D5 Am7b5
  T: "[~@8 [bb2,g3,c4,d4]@4 ~@9 [bb2,d3,g3,c4]@3 ~@5 [bb2,g3,c4,d4]@35]/2", // Gm
  U: "[~@8 [g2,f3,a3,bb3,d4]@4 ~@12 g2@4 ~@2 [d4,f4]@10 [db4,e4]@7 ~ [db4,e4]@5 ~ [b3,d4]@3 ~@7, ~@21 g3@8 [g2,f3]@26 ~@9]/2", // Gm7 Dm Dbm Bm G7
  V: "~@8 [c3,f3,bb3,d4]@4 ~@4 [c3,f3,bb3,d4]@7 ~ [c3,f3,bb3,d4]@5 [c3,e3,bb3,d4]@3", // Bb C7
  W: "[d3,d4]@8 [db3,db4]@8 ~ [f2,db3]@4 ~ [c3,a3,c4]@3 ~@7, [f2,a3]@16 [a3,db4]@5 f2@2 ~@9", // D Db F A
  X: "[d3,d4]@8 [db3,db4]@7 ~ [f2,db3,a3,db4]@5 ~ f2@2 ~@8, [f2,a3]@16 ~@5 [c3,a3,c4]@3 ~@8", Y: "~ [a2,g3,c4,eb4]@3",
  Z: "[d2,gb3,c4,eb4]@31 ~", AA: "~ [g2,f3,bb3,db4]", AB: "[c2,e3,bb3,c4]@24 [c2,c3]@4 ~ [f1,f2]@3",
  AC: "[f2,d3,g3,a3,c4]@5 [f2,d3,g3,a3,c4]@2 ~@25", AD: "~@3 [d3,gb3,c4,eb4,bb4]",
  AE: "~ a4@7 [gb2,e3,a3,db4]@8 ~ [gb2,e3]@5 [g2,f3,bb3,d4]@3 ~@7, [g2,g3,bb3,d4]@8 ~@8 [a3,db4]@5 ~@11", // Gbm7 Gb7 Gm7 Gm A
  AF: "~ [d2,gb3,c4], ~@15 eb4@16 ~", AG: "[g2,f3,a3,bb3,d4]@5 ~ g2@2 ~@24, ~@5 [f3,a3,bb3,d4]@2 ~@25",
  AH: "[c2,e3,a3,bb3,db4]@5 bb3 [c2,e3]@2 ~@24, ~@5 a3@2 ~@25, ~@6 db4 ~@25", // A C
  AI: "~@16 [f2,ab3,b3,e4]@8 [f2,ab3,b3,e4]@5 ~ [f2,a3,c4,d4]@2", // E Dm7
  AJ: "[f2,eb3,g3,a3,d4]@16 [e2,d3,gb3,ab3,db4]@6 [f2,eb3,g3,a3,d4]@3 ~@7", AK: "~@3 [f2,eb3,a3,c4,gb4]",
  AL: "[bb2,g3,c4,d4,f4]@16 [bb2,g3,c4,d4,f4]@5 ~ [bb2,g3,c4,d4,f4]@2 ~@8", // Gm7
  AM: "[~@21 [bb2,f3,c4,d4,f4]@10 ~ [g2,f3]@15 ~ [g2,f3,a3,b3,e4]@5 ~ [g2,f3,a3,b3,e4]@2 ~@8, ~@31 [a3,b3,e4]@16 ~@17]/2", // Bb G7 Em Asus2
  AN: "~@21 [g2,f3,a3,b3,e4]@2 ~@9", AO: "~@8 [g2,f3,bb3,db4]@16 ~ [bb3,db4]@4 ~ [c3,e3,bb3,c4]@2, ~@24 [g2,f3]@5 ~@3",
  AP: "~ [c2,c3,bb3,db4]", // Gb
  AQ: "[[f2,d3,g3,a3,d4]@13 [f2,d3,g3,a3,d4]@10 ~ [f2,db3,g3,a3,db4]@13 ~ [f2,db3,g3,a3]@9 ~ [f2,db3,g3,a3,db4]@5 [f2,c3,g3,a3,c4]@3 ~@8, ~@37 db4@10 ~@17]/2", // Dm Faug F
  AR: "~ [a2,g3,c4,eb4]", AS: "[d2,gb3,c4,eb4]", AT: "[g2,f3,a3,bb3,d4]", AU: "~ [g3,bb3,d4]@29 ~@2, [c3,f3]@31 ~",
  AV: "[~ [eb2,bb2,ab3,db4,f4]@7]/2", AW: "[[c2,c3]@56 c2@5 f2@3]/2",
  AX: "[[f2,d3,g3,a3,d4]@48 ~ gb2@15, ~@48 [eb3,a3,c4]@15 ~]/2", // Dm Adim
  AY: "[g2,f3,bb3,d4]@24 [g2,f3,bb3,d4]@5 ~ bb3@2, ~@29 [c3,e3,d4]@3", AZ: "~ [gb2,eb3,a3,c4]",
  BA: "[[g2,f3]@20 ~ [g2,f3]@3 ~@29 e3@11 [f2,c3]@58 ~@6, [bb3,d4]@30 ~ c2@33 ~@64, ~@31 e3@20 ~@13 [g3,a3]@49 ~@15, ~@32 d4@81 ~@15, ~ bb3 ~@2]/4", // G7 F5 Bb Gsus2
  BB: "[f2,eb3,a3,d4,g4]@15 ~@2 a3@4 ~ [f2,eb3,f4]@3 ~@7, ~@16 [f2,eb3,d4,gb4]@5 [a3,d4]@2 ~@9", // Dm F7 D5
  BC: "[~@5 [f2,eb3,a3,d4,g4]@10 ~ [f2,eb3,a3,d4,gb4]@3 ~@5 [f2,eb3,a3,d4,f4]@4 ~@4 [c4,d4,g4]@15 ~ [bb2,gb3,c4,d4,gb4]@5 ~ f4@2 ~@8, ~@31 [bb2,g3]@16 ~@6 [bb2,f3,c4,d4]@2 ~@9]/2", // Dm D Dm Csus2 Bbaug Eb Bb
  BD: "~@5 [bb2,f3,c4,d4,g4]@10 ~ [bb2,gb3,c4,d4,gb4]@3 ~@5 [bb2,f3,c4,d4,f4]@4 ~@4", // Gm7 Bbaug Bb
  BE: "[g2,f3,b3,e4,g4]@16 [ab2,gb3,c4,gb4]@5 ~ [g2,f3]@3 ~@7, ~@21 [b3,f4]@3 ~@8", // Em Ab7 G7 Bdim
  BF: "~@17 [a3,b3,d4]@14 ~, ~@16 [g2,f3]@15 ~", BG: "f3@20 ~ f3@11, [g2,db4,f4]@31 ~",
  BH: "c2@21 c2@11, [e3,bb3,db4,a4]", // A
  BI: "[f2,d3,g3,a3,d4]@16 [f2,db3,g3,a3,db4]@5 ~ [f2,g3,a3,c4]@2 ~@8, ~@21 c3@3 ~@8", // Dm Faug F
  BJ: "[a2,g3,c4,eb4]@16 [a2,g3,d4]@5 ~ [a2,g3]@2 ~@8, ~@21 c4@3 ~@8", // Am7b5 Dsus4 A7
  BK: "[g2,f3,bb3,db4]@16 [g2,f3,c4]@5 ~ [g2,f3]@3 ~@7, ~@21 bb3@3 ~@8", // Gm7b5 Csus4 G7
  BL: "~@17 e3@12 [f2,c3,a3,bb3,c4]@3, ~@16 [c2,bb3,db4]@13 ~@3", BM: "~ [ab2,gb3,bb3,c4,f4]",
  BN: "[~ a3@14 ~ [gb2,e3,ab3,bb3,eb4]@13 [f2,d3,g3,a3,d4]@23 ~ [c3,c4]@11, [g2,f3,b3,e4] ~@3]/2", // Ebm Dm C Em
  BO: "[[eb3,a3,d4]@24 [c3,c4]@5 ~ [a3,bb3,d4]@25 ~ c4@5 [g2,f3,bb3,d4]@11 [a2,g3,c4,e4]@8 [g2,f3,bb3,d4]@5 ~ [eb3,a3,c4]@7 ~ [g2,f3]@34, gb2@29 [g2,f3]@26 c3@5 ~@25 gb2@8 [bb3,d4]@34 ~]/4", // D C Bbmaj7 Gm7 Am7 Gm7 Adim G7 …
  BP: "[c2,e3,bb3,d4]", BQ: "[[f2,c3]@51 ~@3 [f2,c3]@3 ~@7, [g3,a3,d4]@61 ~@3]/2",
  BR: "[[f2,eb3,a3,d4,g4]@48 ~ a3@5 [f3,f4]@7 ~ [bb2,g3]@50 [a3,a4]@5 ~ f4@7 [g2,f3,b3,e4,g4]@51 [e3,e4]@6 [f3,f4]@7 ~ [g2,f3]@34, ~@48 a4@6 ~@7 [c4,d4,g4]@50 ~@6 f3@7 ~@65 [bb3,d4]@34 ~]/7", // Dm F Eb A Em E F G7 …
  BS: "[c2,e3,bb3,d4]@5 ~ e3@2 ~@24, ~@5 [c2,bb3,d4]@2 ~@25", // C7 Gm
  BT: "[f2,d3,g3,a3,d4]@16 [f2,db3,g3,a3,db4]@5 [f2,c3,g3,a3,c4]@2 ~@9", // Dm Faug F
  BU: "[a2,g3,c4,eb4]@15 ~ [a2,g3]@5 [a2,g3,c4]@3 ~@8, ~@15 d4@6 ~@11", // Am7b5 A7 Am7
  BV: "~@16 [c2,e3,bb3,db4]@13 [f2,c3,g3,a3,c4]@3", // Bbdim F
  BW: "[[g2,f3,a3,b3,e4]@16 ~ e3@12 ~ [g3,a3,d4]@18 [c3,c4]@5 [d3,d4]@3 ~@8, ~@16 [gb2,ab3,bb3,eb4]@13 [f2,d3]@18 ~@17]/2", // Em Gsus2 C D Ebm Dm
  BX: "~@4 [c3,c4]@3 [gb2,eb3,a3,d4]@5 [c3,c4]@4", BY: "[g2,f3,bb3,d4]@16 [c3,c4]@5 ~ d3@3 ~@7, ~@21 d4@2 ~@9",
  BZ: "~@8 [c3,c4]@5 ~ bb3@10 [c3,c4]@8, ~@13 [e3,a3,d4]@11 ~@8", CA: "[g2,f3,bb3,d4]@16 [c3,c4]@5 [d3,d4]@2 ~@9",
  CB: "~@8 [c3,c4]@5 [e3,a3,bb3,d4]@11 [c3,c4]@8", CC: "[f2,d3,g3,a3,d4]@15 ~ c4@5 [d3,d4]@2 ~@9, ~@15 c3@6 ~@11",
  CD: "[[f2,eb3,a3,d4,g4]@47 ~ a4@5 ~ f4@7 [bb2,g3,c4,d4,g4]@51 [a3,a4]@6 [f3,f4]@7 ~ f3@50 [e3,e4]@6 [f3,f4]@7 [g2,f3,bb3,d4]@35, ~@47 a3@6 f3@8 ~@64 [g2,b3,e4,g4]@50 ~@49]/7", // Dm Gm A F E F Gm7 Em
  CE: "~@5 d7@3 a6@8 f6@5 d6@2 ~@6 d7@2 ~, ~@8 ab6 ~@23",
  CF: "[a6@8 d6@6 f6@2 ~@13 f7@11 eb7@5 c7@3 g6@5 eb6@3 c6@5 g5@2 ~, ab6 ~@63]/2",
  CG: "[[d6,f6]@5 [d6,f6]@3 [db6,e6]@5 [db6,e6]@3 [c6,eb6]@5 gb5@3 ~@13 [bb5,db6]@3 [a5,c6]@8 [g5,bb5]@8 [f5,a5]@5 ~ [e5,g5]@2, ~@29 [g2,f3,bb3]@35]/2", // Dm Dbm Cm Bbm Am Gm F Em …
  CH: "[~@5 [bb3,e4,a4,c5,e5,a5]@10 ~ [bb3,e4,g4,e5,g5]@5 [c4,c5]@8 ~ [c5,f5,a5,c6]@10 [a3,d4,g4,c5,f5,a5]@4 ~@4 [a3,d4,g4,a4,c5,f5]@5 [c4,c5]@8 [c3,bb3,eb4,g4,bb4,f5]@11 [c4,c5]@5 [eb3,a3,d4,f4,a4,f5]@19, ~@16 c5@3 ~@10 [a3,d4,g4]@10 ~@57]/3", // Am Edim C F Dm7 C Cm7 C …
  CI: "[~@29 g4@6 gb4@3 f4@2 d4@3 db4@2 c4@3 g3@3 gb3@2 f3@3 b2@2 c3@3 d3@3]/2", CJ: "c3@3 ~",
  CK: "[~@31 d6@6 f6@3 d6@5 f6@3 d6@5 g5@3 bb5@5 c6@35, ~@31 db6 ~@8 db6 ~@7 db6 ~@47]/3", CL: "[eb5,eb6]",
  CM: "[c3,bb3,d4,e4,a4]@21 ~ [c3,b3,e4]@10, ~@21 ab4@10 ~", CN: "~ [c3,bb3]@2 ~@29, [d4,e4,g4] ~@15",
  CO: "[[c3,bb3,eb4,gb4]@24 f2@5 ~ f2@34]/2", // Cm7b5
  CP: "[[bb2,f3,c4,d4,f4]@15 ~ [bb2,gb3,c4,d4,gb4]@5 ~ [bb2,gb3]@18 [bb2,gb3,c4,d4,gb4]@5 [bb2,g3,c4,d4,g4]@19, ~@21 [c4,d4,gb4]@17 ~@26]/2", // Bb Bbaug Ebm Bbaug Gm D7
  CQ: "[d3,ab3,c4,f4,ab4]", // Dm7b5
  CR: "[[b3,e4]@8 [b3,eb4]@7 ~ [g2,f3,b3,d4]@5 ~ [b3,d4]@7 ~ bb3@18 [c3,gb3,bb3,eb4]@5 ~ [bb3,eb4]@7 ~ bb3@18 ~@8 f3@4 ~ f3@3, [g2,f3]@4 ~@4 [g2,f3]@4 ~@10 [g2,f3]@3 ~@4 [c3,gb3,eb4]@19 ~@6 [c3,gb3]@3 ~@4 [a3,d4]@19 ~@16, ~@61 [f2,eb3]@15 ~@9 f2@10 ~]/3", // E5 B G7 Bm Cm7b5 Eb5 G7 Cdim …
  CS: "[f3@5 ~@2 f3@5 ~ f3@3 ~@8 f3@5 f3@3 f3@5 ~@3 f3@5 f3@3 f3@8 [gb3,gb4]@5 [bb2,g3,c4,d4,g4]@23 ~@2 f3@9 ~, ~@5 f2@14 ~ f2@15 ~@2 f2@18 ~@41, ~@16 f3@8 ~@61 f4@10 ~]/3", // Gb Gm
  CT: "[[b2,ab3,g4]@24 [f3,f4]@5 [c3,bb3,eb4,g4]@19 [b2,b3]@6 [c3,c4]@7 [c3,bb3,eb4,g4]@11 [d3,a3,c4,f4]@8 [d3,g3,bb3,eb4]@5 [b2,ab3,d4]@7 ~ [c3,g3,bb3,eb4]@35, d4@7 ~@25]/4", // E F Cm7 B C Cm7 Dm7 Ebmaj7 …
  CU: "[g3,bb3,eb4]@15 [g3,bb3,db4,e4]@16 ~, f2", CV: "[bb2,g3,d4,f4] [f2,g3,bb3,db4,e4], c4@5 ~@3",
  CW: "[bb2,g3,c4,d4,f4]", // Gm7
  CX: "[~@5 [bb2,ab3,c4,d4,g4]@10 ~ [bb2,ab3,b3,d4,g4]@13 [bb2,ab3,c4,d4,g4]@10 ~ [a2,g3,b3,db4,gb4]@5 ~@3 [c4,d4,g4]@5 [b2,b3]@3 ~@8, ~@47 [bb2,ab3]@5 ~@12]/2", // Gm G Gm Gbm Csus2 B Bb7
  CY: "[~@16 [eb2,b2,g3,b3]@5 ~ [g3,b3]@6 ~@2 eb2@18 [d2,gb3,c4,f4]@5 [db2,f3,b3,eb4]@11, ~@22 [eb2,b2]@3 ~@4 [c3,g3,c4]@20 ~@15]/2", // Ebaug G D7 Db7 Abm C5
  CZ: "[c2,e3,bb3,d4]@5 [c2,e3,bb3]@2 ~@25, ~@5 d4 ~@26", // C7
  DA: "[c2,gb3,bb3,eb4]@23 ~ [c2,gb3,bb3,eb4]@5 [f2,eb3,a3,db4]@3", // Cm7b5 Faug
  DB: "[bb2,g3,c4,d4,g4]@8 [bb2,gb3,c4,d4,gb4]@7 ~ [bb2,gb3,c4,d4,gb4]@5 [bb2,f3,c4,d4,f4]@2 ~@9", // Gm Bbaug Bb
  DC: "[~@21 [f3,f4]@3 [g3,g4]@5 ~ [d3,ab3]@24 ~@7 [g2,f3,b3,e4]@11 [g2,f3,b3,eb4]@5 ~@3 [g2,f3,b3,eb4]@5 ~ [b3,d4]@2 ~@8, ~@29 [c4,f4]@24 ~@32 [g2,f3]@2 ~@9]/3", // F G Ddim Em Gaug Bm F5 G7
  DD: "[~@7 [c3,gb3,bb3,eb4]@15 ~@2 [c3,gb3,bb3,eb4]@5 [f2,eb3,a3,d4]@19 ~@8 f3@5 f3@2 ~, ~@29 bb3 ~@23 f2@11]/2", // Cm7b5 Dm
  DE: "[~@8 f3@5 f3@2 ~@9 f3@5 f3@2 ~@9 f3@5 f3@3 ~@8 f3@4 ~ f3@2 ~, f3 ~ f3 ~ f3 ~ f3 ~, ~@4 f2@14 ~@2 f2@15 ~@2 f2@15 ~ f2@9 ~@2]/2",
  DF: "[bb2,g3,c4,d4,g4]@7 ~ [bb2,gb3,c4,d4,gb4]@7 ~ [bb2,gb3,c4,d4,gb4]@5 [bb2,f3,c4,d4,f4]@2 ~@9", // Gm Bbaug Bb
  DG: "[~@21 [f3,f4]@3 [g3,g4]@5 [d3,ab3,c4,f4]@26 ~@6 [g2,f3,b3,e4]@10 ~ [b3,eb4]@5 ~@3 [g2,f3,b3]@5 [g2,f3,b3,d4]@3 ~@8, ~@71 f3@8 eb4@5 ~@12, ~@72 g2@7 ~@17]/3", // F G Dm7b5 Em B G7
  DH: "[~@8 [c3,gb3,bb3,eb4]@15 ~ [c3,gb3,bb3,eb4]@5 [a3,d4]@26 ~@6 [d3,ab3,c4,f4]@3, ~@29 [f2,eb3]@22 ~@13]/2", // Cm7b5 D5 Dm7b5 F7
  DI: "[~@5 [d3,ab3,c4,f4]@18 ~ [a2,gb3,gb4]@5 ~@7 gb4@3 f4@5 ~ [ab2,f3,e4]@18 ~ [bb3,eb4]@32, ~@23 db4@5 ~ [f3,c4]@15 b3@19 ~@33, ~@29 g4@7 ~@60, ~@30 ab2@14 ~@19 [c3,gb3]@32 ~]/3", // Dm7b5 D Db Eb5 F5 Cdim
  DJ: "[c3,bb3,eb4,gb4]@16 [f2,eb3,a3,db4]@5 ~ f2@10, ~@21 [eb3,a3,d4]@10 ~", // Cm7b5 Faug D
  DK: "[~@8 [d6,bb6]@3 ~@5 [eb6,bb6]@5 ~ [e6,bb6]@3 ~@4 [f6,bb6]@34 ~]/2", // Gm Eb5 Edim Bb5
  DL: "[~@8 [d4,bb4]@5 ~@3 [eb4,bb4]@5 ~ [e4,bb4]@3 ~@4 [f4,bb4]@67]/3", // Gm Eb5 Edim Bb5
})).s("gm_piano").gain(0.31).pan(0.4)

// 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 S T U V W X Y Z AA AB AC AD AE ~ AF AG AH AI AJ AK ~@2 AL AM AN AO AP AQ AR P AS
  AT AU AV AW AX AY AZ AL BA AH BB E BC BD@2 BE BF ~@2 BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU AZ BV BO BW BX BU BY
  BZ CA CB B CC CD E CE G CF CG CH CI CJ CK CL CM CN CO CP CQ CR BU CE CS CT CU CV CW CX CY H CZ CF CG DA DB DC AW CL CC
  CE DD DE DF CR BU CE DG DH DI DJ DK DL DM DN DO DP DQ DR DS DT DU DV DW DX DY T DZ EA EB@2 EC ED@2 EE EF EG EH EI EJ
  EK DQ EL DS DT DU EM EN ~ EO EP EQ ER ES ET EU EV EO EP EQ EW EX EY EZ FA FB@2 ~ FC@2 FD ~ FE@2 ~
>`.pickRestart({
  A: "f2@5 f2@3 a2@8 c2@8 f2@7 ~", B: "gb2@7 ~ gb2@8 a2@8 gb2@8", C: "g2@7 a2@9 bb2@8 g2@8",
  D: "gb2@7 ~ gb2@8 a2@7 gb2@8 ~", E: "g2 a2 bb2 d3", F: "c3@5 c3@3 c2@8 d2@7 e2@8 ~", G: "f2 a1 bb1 b1",
  H: "c2@8 d2@7 eb2@8 ~ e2@8", I: "f2@8 f3@7 ~ f3@8 c3@8", J: "d3@5 c3@3 a2@8 gb2@7 ~ gb2@8",
  K: "g2@8 a2@8 bb2@7 ~ g2@8", L: "c3@8 c2@8 gb2@7 ~ gb2@8", M: "g2@7 a2@8 ~ bb2@8 db3@7 ~",
  N: "c3@5 c3@3 c2@8 d2@8 e2@7 ~", O: "f2@7 g2@8 ~ a2@8 f2@8", P: "c3@8 d3@8 eb3@7 ~ e3@8", Q: "f3 f2 c3 f2",
  R: "f3@4 ~ f3@2 ~ eb3@8 d3@8 c3@8", S: "bb2@7 ~ c3@8 d3@8 f2@8", T: "bb2 a2 g2 f2",
  U: "g2@6 g1@2 g2@7 ~ g2@5 g1@3 g2@8", V: "g2@5 g1@3 g2@8 g2@7 ~ g1@8", W: "g2@8 db3@8 db2@7 ~ c2@8",
  X: "c3@4 ~ c3@2 ~ c2@8 d2@8 e2@8", Y: "f2@5 ~ f2@2 eb2@8 d2@8 c2@8", Z: "f2@4 ~ f2@3 g2@8 a2@8 c3@8",
  AA: "bb2@4 ~ bb2@2 ~ a2@8 g2@8 f2@8", AB: "bb1 c2 d2 f2", AC: "g2@5 d2@3 b1@8 d2@8 g1@8", AD: "g2 a2 b2 g2",
  AE: "c3@5 g2@3 c2@8 c3@8 g2@6 c2@2", AF: "f2@8 f3@7 ~ f3@7 ~ c3@8", AG: "f3 f2 a2 c3", AH: "a2 eb3 c3 a2",
  AI: "d3@4 ~ d3@2 ~ c3@8 bb2@8 a2@8", AJ: "g2 db3 bb2 g2", AK: "c3@8 d3@7 ~ e3@8 c3@5 f2@3", AL: "f2 c3 d3 f2",
  AM: "f3@8 a2@8 c3@7 ~ d3@8", AN: "g2@8 gb2@7 ~ gb2@7 ~ g2@5 d2@3", AO: "g2 d3 a2 gb2", AP: "g2@8 a2@8 bb2@7 ~ d3@8",
  AQ: "c3 c2 c3 c2", AR: "f2 f3!2 f2", AS: "f3@8 a2@8 bb2@7 ~ b2@8", AT: "c3@7 ~ f2@8 g2@8 a2@7 ~",
  AU: "bb2@8 d2@7 ~ g2@8 f2@8", AV: "bb1@8 bb2@7 a2@8 ~ ab2@8", AW: "g2 b1 c2 db2", AX: "d2 e2 f2 d2",
  AY: "g2@8 bb2@8 db2@8 ~ c2@7", AZ: "c3@5 g2@3 c2@8 c3@8 c2@8", BA: "f3@8 f2@8 db3@7 ~ d3@8",
  BB: "d3@4 ~ d3@3 a2@8 d2@8 gb2@8", BC: "c3@8 c2@8 c3@7 ~ c3@8",
  BD: "[eb3@7 ~ bb2@8 eb3@8 eb2@7 eb3@9 eb2@8 bb2@8 eb2@8]/2", BE: "c2 ~@3", BF: "~@24 c2@5 f2@3",
  BG: "f2@4 ~ f2@3 a1@8 bb1@8 b1@8", BH: "c2@8 f2@8 gb2@7 ~ gb2@8", BI: "g2@8 a2@8 bb2@7 ~ b2@8",
  BJ: "c3@5 c3@2 ~ bb2@8 a2@8 gb2@8", BK: "g2 d2 bb1 b1", BL: "c2 d2 e2 g2", BM: "f2@8 a2@8 bb2@7 ~ b2@8",
  BN: "c3@8 c2@8 d2@8 e2@7 ~", BO: "f2 e2 d2 c2", BP: "f2 g2 a2 f2", BQ: "bb2@4 ~ bb2@3 bb1@8 bb2@8 bb1@8",
  BR: "bb2@7 ~ bb2@8 a2@7 ~ ab2@8", BS: "g2@7 ~ g2@8 ab2@8 g2@8", BT: "g1 a1 b1 d2", BU: "g2 a2 bb2 db3",
  BV: "f2 g2 a2 c2", BW: "a1@7 ~ a1@8 a2@8 eb2@7 ~", BX: "d2!2 d3 d2", BY: "c3@8 c2@8 ~ c3@7 e2@8",
  BZ: "f2@8 a2@7 ~ ab2@5 eb2@3 ab2@8", CA: "g2@5 d2@3 g2@8 gb2@5 ~ db2@2 gb2@6 ~@2", CB: "f2@9 e2@7 d2@8 c2@8",
  CC: "g2 a2 bb2 g2", CD: "c3@8 c2@8 c3@8 gb2@7 ~", CE: "c3 c2 d2 e2", CF: "c2 db2 d2 e2", CG: "f2 c3 a2 g2",
  CH: "f2 f1 g1 a1", CI: "bb1@8 d2@8 g2@8 f2@7 ~", CJ: "bb2@7 ~ bb2@8 a2@8 ab2@8", CK: "g2@5 d2@3 b1@8 c2@8 db2@8",
  CL: "d2@7 ~ e2@8 f2@8 d2@8", CM: "g2 bb2 a2 g2", CN: "c3@8 g2@8 c2@8 e2@7 ~", CO: "f2 a2 c2 e2",
  CP: "f2@7 ~ f2@8 c3@8 bb2@8", CQ: "a2@7 ~ a2@8 eb2@8 a2@8", CR: "d2 a2 gb2 d2", CS: "f2@8 a2@8 ab2@5 eb2@3 ab2@8",
  CT: "g2@5 d2@3 g2@8 gb2@6 db2@3 gb2@7", CU: "f2 d2 c2 f2", CV: "c3@8 f2@8 gb2@7 ~ gb2@8", CW: "g2 f2 e2 d2",
  CX: "c2 g2 e2 c2", CY: "g2 d2 bb1 g1", CZ: "f2@7 a1@8 ~ bb1@8 b1@8", DA: "f2@7 eb2@8 ~ d2@8 c2@8", DB: "bb1 d2 g2 f2",
  DC: "bb2@7 ~ bb2@7 ~ a2@8 ab2@8", DD: "f2@8 e2@8 d2@7 c2@9", DE: "f1 g1 a1 c2", DF: "a1@7 ~ a1@8 eb2@8 a1@8",
  DG: "f2@5 ~ f2@2 a1@8 bb1@8 b1@8", DH: "c2@8 g2@8 f2@8 f2@7 ~", DI: "bb2@8 f2@8 ~ bb2@8 bb1@7",
  DJ: "~ b1@7 b2@8 b1@8 b1@8", DK: "c2@8 c3@8 gb2@8 f2@7 ~", DL: "f3@4 ~ f3@3 eb3@7 d3@8 ~ b2@8", DM: "c3 c2 g2 gb2",
  DN: "f2@4 ~ f2@3 d3@8 c3@7 f2@8 ~", DO: "bb2@7 c3@8 ~ d3@8 f2@8", DP: "bb2@8 a2@8 g2@7 f2@8 ~", DQ: "bb1 c2 d2 bb1",
  DR: "bb2@8 a2@7 ~ bb2@8 e2@8", DS: "eb2 f2 g2 eb2", DT: "eb3 eb2 d3 db3", DU: "c3 e2 g2 c3", DV: "c2 d2 e2 c2",
  DW: "c3 d3 eb3 f3", DX: "f2@8 f3@8 f2@8 f3@7 ~", DY: "bb2 c3 d3 f2", DZ: "d3 d2 d3 ab2", EA: "g2!2 b2 d3",
  EB: "[c3@7 ~ c3@8 d3@8 eb3@7 f3@8 ~@14 f2@3 f3@5 f3@2 ~]/2", EC: "f3@5 f2@3 f3@4 ~ f3@2 ~ f3@5 f2@3 f3@5 ~ f3@2",
  ED: "[f3@5 f2@3 f3@5 f3@2 ~ f3@5 f2@3 f3@5 bb2@10 ~ c3@8 d3@8 bb2@8]/2", EE: "b2@8 b1@8 b2@7 ~ b2@8",
  EF: "c3 g2 eb2 c2", EG: "f2 f3 f2 b2", EH: "c3 d3 eb3 c3", EI: "f3@7 f2@8 ~ f2@8 f3@8", EJ: "bb2@7 f2@8 ~ f2@8 f3@8",
  EK: "bb2@5 bb2@2 ~ a2@7 g2@8 ~ f2@8", EL: "bb2@7 ~ a2@7 bb2@8 ~ e2@8", EM: "c2@7 ~ d2@7 e2@9 c2@8",
  EN: "c3@8 d3@7 eb3@8 ~ f3@5 f2@3", EO: "bb2 c3 d3 d2", EP: "eb2 e2 f2 bb1", EQ: "d2 d3 ab2 g2",
  ER: "g1@8 g2@7 ~ g2@8 b1@8", ES: "c2@7 d2@8 eb2@8 ~ gb2@8", ET: "f2@8 c3@8 d3@7 eb3@8 ~",
  EU: "f3@5 f2@3 f3@4 ~ f3@3 f3@5 f2@3 f3@5 f3@3", EV: "f3@5 f2@3 f3@5 f3@3 f3@5 f2@3 f3@5 f3@2 ~", EW: "g1!2 g2 b1",
  EX: "c2@8 d2@7 ~ eb2@8 gb2@8", EY: "f2 c3 f2 eb2", EZ: "d2@8 d3@8 ab2@7 ~ a2@8", FA: "ab2@7 ~ ab2@8 g2@8 g1@8",
  FB: "[c2@8 d2@8 eb2@8 gb2@7 f2@8 ~ c3@7 ~ f3@5 f2@11]/2",
  FC: "[~@8 ab2@8 g2@5 gb2@8 ~ f2@10 f3@5 c3@3 f3@7 ~ f3@5 c3@3]/2", FD: "f3@7 f3@5 ~ c3@3 f2@8 db2@5 bb1@2 ~",
  FE: "[~@13 eb2@51]/2",
})).s("gm_acoustic_bass").gain(0.31).pan(0.6)

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

More by Basie