Strudelify

Sweet Georgia Brown

Basie

KeyG minorTempo225 bpm
0:00/0:00
// Sweet Georgia Brown — Basie
// 225 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 182 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(225/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 · "Bas"
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 Y AA AB AC AD AE Q R AF AG AH AI G AJ AK AL AM L AN AO AP AQ AR AS
  AT AU E F AV AW AX AY AX AZ BA BB@2 ~ BC@2 BD BE BF BG BH BI BJ BK BL BM O BN BO BP AR AS BQ BR E F AV BS BT BU BV BW
  BX BY BZ CA Q R CB CC CD CE CF CG AK AL CH BJ CI CJ M CK A B CL CM CN CO CP CQ CR CS BT CT CU CV CW CX AR AS CY CZ DA
  DB DA DC DD DE BJ DF DG DH DI AE AR AS DJ DK DL DM DN DO AX DP AX DQ BA DR@2 AE AR AS DJ DK DL DM DN DO AX DS AX DT@2
  AC DU DV DW DX DY DZ EA EB
>`.pickRestart({
  A: "g2 ab2 a2 bb2", B: "b2 c3 db3 d3", C: "g2@3 g1 g2@4 ab2@4 eb3@4", D: "g2@2 ~ g2 d3@4 db2@3 ab1 ab2@3 ab1",
  E: "c2@3 c3 g2@3 g1 f2@4 gb2@3 g1", F: "g2@4 f2@3 g1 eb2@4 d2@3 g1", G: "c2@3 c1 c2@4 db2@3 db1 db2@4",
  H: "c2@4 e2@4 gb2@2 ~ gb2 e2@4", I: "f3 a2 bb2 b2", J: "c3 d3 eb3 c3", K: "f2@2 ~ f2 c3@4 gb2@2 ~ gb2 e2@4",
  L: "f2@3 c2 c3@3 ~ a2@4 f2@3 c2", M: "bb1@3 f1 f2@3 ~ d2@4 bb1@3 f1", N: "c2@4 e2@4 f2@2 ~ f2 c3@4",
  O: "bb1 c2 d2 f2", P: "a1!2 ab2 eb3", Q: "g3 b2 c3 db3", R: "d3 e3 f3 d3", S: "g2!2 ab2 gb2",
  T: "g2@3 d2 d3@3 d2 db2@3 ab1 ab2@3 ab1", U: "c2 db2 d2 eb2", V: "e2 f2 gb2 g2", W: "c2@3 g1 g2@3 g1 db2@3 db1 db2@4",
  X: "c2@2 ~ c2 db2@4 d2@2 ~ d2 a2@4", Y: "g2 d3 bb2 g2", Z: "a1 db2 d2 ab2", AA: "c2@3 c1 c2@4 f2@4 f2@4",
  AB: "bb1 f2 a1 e2", AC: "ab2@3 ab1 ab2@4 g2@2 ~ g2 d3@4", AD: "c2@3 c1 gb2@4 f2@3 f1 f2@4",
  AE: "bb1@3 bb0 bb1@4 a1@4 ab2@3 ab1", AF: "g2@4 g2@4 ab2@3 ab1 ab2@4", AG: "g2@3 d2 d3@3 d2 db2@3 db1 db2@4",
  AH: "c3@3 g1 g2@4 e2@3 e1 g1@4", AI: "c2@3 g1 d2@4 e2@3 g1 g2@3 g1", AJ: "c2@3 c1 g2@4 gb2@4 db3@4",
  AK: "f2 gb2 g2 ab2", AL: "a2 bb2 b2 c3", AM: "f2@2 ~ f2 f2@4 gb2@4 gb2@4", AN: "a2@4 a2@4 ab2@3 ab1 ab2@4",
  AO: "g2@4 d3@4 gb2@3 gb1 gb2@4", AP: "f2@4 f2@4 e2@3 e1 e2@4", AQ: "eb2 db2 d2 gb2",
  AR: "g2@3 g3 d3@3 d2 c3@4 db3@3 d2", AS: "d3@4 c3@3 d2 bb2@4 a2@3 d2", AT: "g2 e2 a1 c3",
  AU: "bb1@4 b1@4 c2@4 db2@3 db1", AV: "c2@4 c2@4 db2@2 ~ db2 b1@4", AW: "c2@4 e2@4 eb2@3 d2@5", AX: "g2 ~@15",
  AY: "~@4 a2@6 ~ d2@5", AZ: "~@4 c3@6 ~ f2@5", BA: "bb2 ~@7 a2 ~@7",
  BB: "[ab2 ~@10 b2 ~@3 c3@5 c2@2 ~@2 f2@2 ~@2 f2@2 ~ bb1]/2", BC: "[~@4 g2 ~@3 g2@2 ~ g2 ~@3 g1@5 a1@4 b1@4 g1@4]/2",
  BD: "g2@3 g1 g2@4 g2@3 g1 gb2@3 gb1", BE: "g2@3 g1 gb2@3 gb1 g2@3 g1 db2@4", BF: "c2@3 ~ c3@7 ~ c2@3 ~",
  BG: "b1 c2 eb2 g2", BH: "c3 bb2 a2 g2", BI: "c2 g2 gb2 e2", BJ: "f2 g2 a2 c3", BK: "f3 eb3 d3 c3",
  BL: "f2@4 f2@4 gb2@2 ~ gb2 db3@4", BM: "f2@2 ~ f1 eb2@4 d2@4 c2@3 b1", BN: "c2@4 c2@4 f2@2 ~ f2 c3@4",
  BO: "bb1 bb2 f2 d2", BP: "a1@3 a0 a2@4 ab2@4 ab2@4", BQ: "g2@2 ~ g2 d3@4 ab2@4 eb3@4",
  BR: "g2@3 d2 d3@3 d2 db2@4 db2@4", BS: "c2@2 ~ c2 db2@4 d2@4 gb2@4", BT: "g2@3 d2 d3@3 ~ bb2@4 g2@3 d2",
  BU: "a1@3 e1 e2@3 e1 d3@4 a2@4", BV: "g2@4 a2@4 bb2@4 d3@3 g2", BW: "c2@2 ~ c2 g2@4 f2@4 f2@4",
  BX: "bb2@4 f2@4 a1@2 ~ a1 g2@4", BY: "ab2 gb2 g2 b1", BZ: "c2@4 g2@4 f2@3 c2 c3@3 c2",
  CA: "bb1@2 ~ bb1 ab1@4 a1@3 a0 ab2@4", CB: "g2@3 g1 g2@4 ab2@3 ab1 ab2@4", CC: "g2@3 d2 d3@3 d2 db2@2 ~ db2 b1@4",
  CD: "c3@3 g1 c3@3 g1 g2@4 g1@4", CE: "c2@3 g1 d2@3 g1 e2@4 g2@3 g1", CF: "c2@2 ~ c2 g2@4 db2@4 db2@4",
  CG: "c2@2 ~ c2 f2@4 gb2@4 db3@4", CH: "f2@3 f1 f2@4 gb2@3 gb1 gb2@4", CI: "bb1 f2 d2 bb1",
  CJ: "c2@3 c1 c2@4 f2@3 f1 f2@4", CK: "a1@2 ~ a1 g2@4 ab2@4 gb2@4", CL: "g2@3 d2 d3@3 d2 ab2@4 gb2@4",
  CM: "g2@3 g1 d2@4 db2@4 b1@4", CN: "c3 e2 f2 gb2", CO: "g2 a2 bb2 g2", CP: "c2@2 ~ c2 g2@4 db2@2 ~ db2 ab2@4",
  CQ: "c3 g2 d2!2", CR: "g2 a2 bb2 d3", CS: "a1@2 ~ a1 db2@4 d2@2 ~ d2 a2@4", CT: "c2@3 c1 gb2@4 f2@3 c2 c3@3 c2",
  CU: "bb1@3 bb0 bb1@4 a1@3 e1 e2@3 e1", CV: "ab2@2 ~ ab2 gb2@4 g2@4 db2@4", CW: "c2 ~@15",
  CX: "~@4 bb1@4 a1@3 a0 ab2@3 ab1", CY: "g2@4 gb2@4 g2@4 g2@3 g1", CZ: "g2@3 g1 g2@4 g2@3 g1 db2@3 db1",
  DA: "c2 c3 g2 e2", DB: "c2@4 db2@3 db1 c2@2 ~ c2 b1@4", DC: "c2@4 b1@4 c2@4 gb2@3 gb1",
  DD: "f2@3 f3 c3@3 c2 bb2@4 b2@3 c2", DE: "c3@4 bb2@3 c2 ab2@4 g2@3 c2", DF: "f2@4 c3@4 e2@3 e1 f2@4",
  DG: "bb1@2 ~ bb1 db2@4 a2@4 a2@4", DH: "ab2 d3 g2 d3", DI: "gb2@3 c2 ab2@4 a2@3 c2 c3@3 c2",
  DJ: "g2@2 ~ g2 gb2@4 g2@4 g2@3 g1", DK: "g2@4 g2@4 g2@3 g1 db2@3 db1", DL: "c2 d2 e2 g2",
  DM: "c2@4 db2@4 c2@3 c1 a2@4", DN: "ab2@3 ab1 bb1@3 bb0 c2@3 g1 g2@3 g1", DO: "b1@3 b0 c2@4 db2@4 d2@4",
  DP: "~@4 a2@6 d2@5 ~", DQ: "~@4 c3@6 f2@5 ~", DR: "[ab2 ~@9 b2 ~@3 c3@5 ~ c2@2 ~@2 f2@2 ~@2 f2@2 bb1 ~]/2",
  DS: "~@10 d2@5 ~", DT: "[~@10 f2 ~@3 bb2@5 ~ bb1@4 a1@2 ~ a1 e2@4]/2", DU: "b1@4 c2@3 c1 b1@3 b0 c2@3 c1",
  DV: "c3 c2 e2 g2", DW: "f2@4 gb2@4 f2@2 ~ f2 eb2@4", DX: "e2@4 f2@4 gb2@2 f2 ~@5", DY: "~@2 bb2 a2",
  DZ: "ab2@6 g2@9 ~", EA: "~@8 b2@2 c3@5 ~", EB: "ab2@2 a2@5 ~ bb2@2 bb1 ~@5",
})).s("gm_acoustic_bass").gain(0.17).pan(0.3)

// chords · piano
const piano = note(`<
  A@3 B C@3 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 AL@3 AM AN AO AP AQ AR AS
  AT@2 AU AV@2 AW AX AY AZ BA BB@2 ~ BC@2 BD BE BF BG BH@2 BI BJ@2 BK BL BM BN BO BP BQ BR BS@2 AU BT BU BV BW@2 BX@2 BY
  BZ CA AC AD CB CC CD CE BT CF@2 CG CH CI CJ CK CL CM AQ AR CN CO CP CQ CR CS CT@2 CU CV CW CX CY CZ DA DB DC@2 DD DE ~
  DF AK DG DH DI DJ DK DL DM DN DO DP DQ DR DS DT DU AW DV AY DW BA DX@2 DM DN DO DP DQ DR DS DT DU AW DY AY DZ@2 EA ~
  EB EC ED EE EF ~@2
>`.pickRestart({
  A: "[d4@2 ~ e4 d4@2 ~@10 [g2,f3,a3,b3] ~@14 d4@5 e4 ~@3 f4@4 e4 ~@3, [g2,f3,a3,b3]@16 ~@7 [g2,f3,a3,b3]@17 [gb2,gb3]@8, ~@7 [e4,g4]@21 ~@20]/3", // G7 Gb Em
  B: "d4@4 c4@2 ~ [db3,f3,b3] ~@8, [g2,f3]@3 ~@5", // Db7 G7
  C: "[g4@2 ~ a4 g4@2 ~@10 [c3,e3,bb3]@2 ~@13 g4@5 a4 ~@3 bb4@4 a4 ~@3, [c3,e3,bb3]@16 ~@7 [c3,e3,bb3]@17 [f3,b3]@8, ~@7 [a4,c5]@21 ~@20]/3", // C7 Fdim Am
  D: "g4@4 f4@2 ~ e4 ~@3 [gb2,e3,ab3,bb3,db4]@5, [e3,bb3] ~", E: "[f2,eb3,g3,a3,c4] ~@6 e5 f5@2 ~ f4 ~@4", F: "f4 ~@15",
  G: "~@3 [eb3,a3,d4,g4,c5] ~@4 [e3,bb3,eb4,ab4,c5]@8", H: "[eb3,a3,eb4,g4,c5]@8 c5 ~@3 g4@2 ~ bb4",
  I: "~@8 [g4,f5,bb5] ~@7", J: "~@7 [g4,eb5,bb5] ~@3 [g4,db5,bb5] ~@2 f4 ~", K: "[g4,f5,bb5] ~@15",
  L: "[a2,g3,db4,gb4,a4]@8 [ab2,gb3,c4,f4,ab4]@6 ~ [g2,f3,b3,e4,g4]", M: "~@4 g5 g6 g5 g6 g5 g6 g5 g6 g5 g6 g5 g6",
  N: "g5 g6 g5 g6 g5 g6 g5 g6 g5 g6 g5 g6 g5 g6 g5 g6",
  O: "g5 g6 g5 [f3,b3,e4,g6] g5 g6 g5 g6 [gb3,c4,f4,g5] g6 g5 g6 g5 g6 g5 g6", // Em Csus4
  P: "[f3,b3,e4,g5] g6 g5 g6 g5 g6 g5 g6 g5 g6 g5 g6 [f3,b3,eb4,g5] g6 g5 g6, ~@7 [f3,b3,eb4]@4 ~@5", // Em Ebaug Fm7b5
  Q: "g5 g6 g5 [e3,bb3,d4,g6] g5 g6 g5 g6 [e3,bb3,d4,g5] g6 g5 g6 g5 g6 g5 g6", // Em7b5
  R: "[e3,bb3,d4,g5] g6 g5 g6 g5 g6 g5 g6 g5 g6 g5 g6 [e3,bb3,d4,g5] g6 g5 g6, ~@7 [e3,bb3,d4]@5 ~@4", // Em7b5
  S: "g5 g6 g5 [e3,bb3,d4,g6] g5 g6 g5 g6 g5 g6 g5 g6 g5 g6 g5 g6, ~ [f3,bb3,eb4]", // Em7b5 Ebsus2
  T: "g5 g6 g5 g6 g5 g6 g5 g6 g5 g6 ~@6, [e3,bb3,d4] [gb3,c4,d4]", U: "[g3,bb3,d4] ~@7 d5@3 d4 g4@2 ~@2",
  V: "[a2,g3,f5] ~@3 eb5@2 ~ [d3,gb3]@9, ~@7 gb4 ~@8", W: "[g2,bb3] ~@10 g4 bb4@3 d5",
  X: "[c3,bb3,f5] ~@3 eb5@2 ~ gb4@5 d5@2 ~ f4, ~@7 [eb3,a3]@9, ~@12 db5 ~@3", // Fsus4 Ebdim
  Y: "~@3 [ab3,d4] ~@4 [g3,db4] ~@2 e5 a4@2 ~@2, ~@4 db5 ~@3", // Abdim Gdim
  Z: "[gb3,c4] ~@2 eb5 ab4@2 ~@2 [f3,b3] ~@2 d5 g4@2 ~@2, c5 ~@3 b4 ~@3", // Gbdim Fdim
  AA: "~@4 db5 c5 ~ bb4 g5@2 ~@2 g4@2 ~ bb4, [e3,bb3] [eb3,a3]", // Edim Ebdim
  AB: "~@8 [a2,g3,db4,gb4,a4]@2 ~@2 [ab2,gb3,c4,f4,ab4] ~@3", AC: "~@3 [f3,b3,d4,a4] ~@4 [f3,b3,d4,a4] ~@6 e3",
  AD: "[f3,b3,d4,a4] ~@3 [f3,b3,d4,a4]@8 ~@3 d2", AE: "[f3,b3,d4,a4] ~@6 [gb3,c4,eb4,bb4]@2 ~@7",
  AF: "[b3,d4,f4] a4 ~@2 g2@2 ~@5 [b3,f4,ab4,b4,eb5]@5", AG: "[e3,bb3,d4,g4] ~@10 a3 [bb3,e4,g4,d5]@3 ~",
  AH: "[bb3,e4,g4,d5]@6 ~ gb3 [g3,d4,e4] ~@3 [e3,bb3,e4,g4] ~@3, ~@4 bb4 ~@3", // Em7b5 Em7 Edim
  AI: "[e3,bb3,d4,g4] ~@10 db3 [eb4,f4]@2 ~@2", AJ: "[c2,e3,g3,bb3]@6 ~ b2 [db4,ab4] ~@7",
  AK: "[eb3,a3,c4,g4] ~@10 g3 [a3,eb4,g4,c5]@3 ~", // Am7b5
  AL: "[[a3,eb4,g4,c5]@6 ~ e3 [f3,c4,eb4] ~@3 [eb3,a3,eb4,g4] ~@2 c4@2 ~@7 [gb2,bb3,db4,e4] ~@7 [eb3,a3,c4] ~@3 [eb3,a3,c4,g4]@4 ~@8, ~@8 a4@2 ~@5 g4 ~@15 g4@2 ~@15]/3", // Am7b5 F7 Am7b5 Gb7 Adim Am7b5
  AM: "[d4,a4] ~@10 [b3,f4,ab4,b4,d5]@4 ~", AN: "~@3 [bb3,e4,g4,bb4,d5]@5 ~@3 [a3,eb4,gb4,a4,c5]@5",
  AO: "~@3 [f2,f3,c4,f4] d4@2 ~ f3 ~@3 e2 [b3,d4]@2 ~@2", AP: "[bb3,eb4] ~@7 [d3,c4,d4,gb4] ~@7",
  AQ: "[d4,a4] ~@10 d2 [a3,b3,f4]@2 ~@2", AR: "f3@11 d2 ~@4, [b3,d4]@7 ~", AS: "[d4,g4] ~@10 a2 [c4,d4]@2 ~@2",
  AT: "[~@7 [b1,g3,d4,g4] e4@2 ~@5 d4@2 ~@10 g2 [g3,bb3,e4]@2 ~@2, ~@15 g4 ~@16]/2", AU: "e3@11 g2 ~@4, [bb3,d4]@7 ~",
  AV: "[[c3,bb3,d4,e4] ~@7 [eb4,ab4] ~@6 [e3,bb3,d4,g4]@2 ~@7 [eb2,g3,db4]@3 [d2,gb3,c4]@5]/2", AW: "[g2,g3,bb3] ~@15",
  AX: "~@4 [a2,g3,db4,f4]@6 ~ [d3,gb3,db4,eb4]@5", AY: "[g2,e3,bb3,d4] ~@15",
  AZ: "~@4 [c3,bb3,eb4,g4]@6 ~ [f2,eb3,a3,d4,gb4]@5", BA: "[bb2,ab3,c4,d4,f4] ~@7 [a2,g3,b3,db4,e4] ~@7",
  BB: "[[ab2,gb3,bb3,c4,eb4] ~@10 [b2,a3,db4] ~@3 [c3,bb3,d4]@9 [f2,eb3,bb3]@2 ~@2 [f2,eb3,a3]@2 ~ [bb2,d3,bb3]]/2", // Ab7 Gbm Gm Ebsus2 F7 Bb
  BC: "[~@4 [g2,f3,b3,eb4] ~@3 [g2,f3,b3,eb4]@2 ~ [g2,f3,b3,d4] ~@3 [g2,f3,b3,eb4]@17]/2", // Gaug G7 Gaug
  BD: "[g2,f3,a3,b3,d4] ~@3 [g2,f3,a3,b3,d4] ~@3", BE: "[g2,f3,a3,b3,d4]@2 ~@6 [g2,f3,a3,b3,d4]@2 ~ [db3,f3,b3,eb4]@5",
  BF: "~@4 [c3,e3,bb3,d4]@11 ~", BG: "[b2,eb3,a3,db4]@2 ~ [c3,e3,bb3,d4] ~@12",
  BH: "[~@3 c3 [d4,e4]@2 ~@2 [bb3,g4]@2 ~ g2 [bb3,e4]@2 ~ d4@2 ~@7 [gb2,bb3,db4,e4] ~@7, ~@15 g4 ~@16]/2", // Dsus2 Eb Bbdim Gb7
  BI: "~@3 [eb3,a3,c4,g4] ~@4 [eb3,a3,c4,g4] ~@6 d3", // Am7b5
  BJ: "[[eb3,a3,c4,g4] ~@3 [eb3,a3,c4,g4]@8 ~@3 [eb3,a3,c4,g4]@2 ~@10 gb2 [db4,e4]@2 ~@2]/2", // Am7b5 Dbm
  BK: "[eb3,f3,a3,eb4]@9 ~@3 [f2,a3,eb4,g4] ~@3", BL: "~@3 [d3,g3,bb3,f4] ~@4 [d3,g3,bb3,f4] ~@7",
  BM: "[eb3,bb3,c4,g4] ~@10 [eb3,a3,c4,g4] ~@4", BN: "[bb3,f4] ~@10 f2 [f3,g3,d4]@2 ~@2",
  BO: "[a2,db3,e3,g3]@6 ~ ab2 ~@3 ab2 [eb4,gb4]@2 ~@2", BP: "~@3 g2 [d4,f4]@2 ~@2 [b3,a4]@2 ~ d2 [b3,f4]@2 ~@2",
  BQ: "[b3,f4,a4]@13 ~@3, g2@15 ~", BR: "[b3,d4,f4,a4] ~@3 g2@2 ~@2 [c4,eb4,gb4,bb4] ~@3 ab2@2 ~@2",
  BS: "[~@3 g2 [d4,f4]@2 ~@2 [b3,eb4,f4,ab4] ~@3 db3@2 ~ d4@2 ~@10 g2 [g3,bb3,e4]@2 ~@2, ~@15 g4 ~@16]/2", // Dm Fm7b5 Edim
  BT: "[c3,bb3,d4,e4] ~@10 [f3,b3,eb4,ab4] ~@4", BU: "~@3 c3 [d4,e4]@2 ~@5 [gb3,c4,d4,a4] ~@4",
  BV: "[e3,bb3,e4]@6 ~@2 e4 e4@6 ~, g4@2 ~@6 [g2,bb3,g4]@5 ~@3", // Edim Gm
  BW: "[~@3 [db3,g3,b3,e4] ~@7 d3 [e4,gb4]@2 ~ [e3,bb3,e4]@7 ~@2 e4 e4@6 ~, ~@15 g4@2 ~@7 [g2,bb3,g4]@5 ~@3]/2", // Dbm7b5 Esus2 Edim Gm
  BX: "[~@3 [c3,g3,c4,g4] eb4@2 ~@5 f2 [c4,eb4]@2 ~ [bb1,d3,f3,ab3]@7 ~@2 [a2,g3,b3,db4] ~@7]/2", // C5 Cm Bb7 A7
  BY: "[c4,eb4,gb4,bb4] ~@3 ab2@2 ~@5 [g2,a3,d4,a4] e4@2 ~ a3", BZ: "[bb3,d4,e4,g4] ~@3 c3@2 ~@5 f2 [c4,eb4]@2 ~@2",
  CA: "~@3 [bb2,f3,d4,f4] db4@2 ~ f3 ~@3 [g3,db4,e4,g4,b4] ~@3 ab2", // Bb Dbm7b5
  CB: "~@3 [b3,f4,a4,b4,d5]@4 ~@4 [ab2,bb3,eb4,bb4] f4@2 ~ bb3", CC: "[g2,f3,a3,b3]@6 ~ gb2 [db3,b3,eb4,f4] ~@7",
  CD: "[c3,bb3,d4,e4] ~@10 g2 [d4,e4]@2 ~@2", CE: "[e3,bb3,e4,g4] ~@6 c3 [bb3,g4]@2 e4 ~@5, ~@8 eb4 ~@7",
  CF: "[[c2,e3,g3,bb3]@6 ~ b2 ~@3 [e3,bb3,db4,ab4] ~@3 [f2,eb3,f3,a3]@7 ~ e2 [f2,f3,eb4,g4]@5 ~@3]/2", // C7 Bbm7b5 F7 Cm
  CG: "[f2,f3,a3,eb4] ~@7 [f2,a3,eb4,g4] ~@7", CH: "~@3 [f2,f3,c4,g4] d4@2 ~ f3 [gb2,bb3,db4,e4] ~@7",
  CI: "eb3@11 c2 ~@4, [a3,c4]@7 ~", CJ: "~@3 [bb2,f3,bb3,f4] db4@2 ~ f3 [g3,d4]@2 ~@6",
  CK: "[c3,bb3,c4,eb4] ~@10 [f2,f3,c4,g4] d4@2 ~ f3", CL: "[bb2,g3,d4,f4]@15 ~",
  CM: "[a2,db3,e3,g3]@6 ~ eb4@2 ~@7, ~@7 bb4 ~@8", CN: "~@3 [g2,a3,d4,a4] e4@2 ~ a3 [ab2,gb3,bb3,c4]@6 ~ g2",
  CO: "~@3 g2 [d4,f4]@2 ~@5 [f3,b3,eb4,ab4] ~@4", CP: "~@3 [e3,bb3,d4,g4] ~@4 [e3,bb3,d4,g4] ~@6 eb3",
  CQ: "[e3,bb3,d4,g4] ~@3 [e3,bb3,d4,g4]@8 ~@2 g2 ~", CR: "[c2,e3,g3,bb3]@6 ~ b2 [f3,b3,eb4,ab4] ~@7",
  CS: "~@3 [bb3,e4,g4,bb4,d5]@4 ~@4 [d3,a3,e4,a4] f4@2 ~ a3", // Em7b5 Dsus2
  CT: "[~@3 [e3,bb3,d4,g4] ~@4 [e3,bb3,d4,g4] ~@6 b3@2 ~@7 [c4,e4,gb4,a4] ~@3 d3@2 ~@2, ~@15 e4 ~@16]/2", // Em7b5 Gbm7b5
  CU: "~@3 g2 [d4,e4]@2 ~@2 [bb3,g4]@2 ~ d2 [bb3,e4]@2 ~@2", CV: "~@3 [eb3,bb3,c4,g4] ~@4 [a3,c4,eb4,g4] ~@3 f2@2 ~@2",
  CW: "[bb1,d3,f3,ab3]@6 ~@5 [g3,db4,e4,g4,b4]@4 ~", CX: "[ab2,c4,eb4,gb4] ~@10 [f3,b3,d4,a4] ~@4",
  CY: "[c3,bb3,d4,e4] ~@15", CZ: "~@4 bb4@2 bb4 ~ a4@2 a4 ~ ab4 ~@3", DA: "[a3,b3,d4]@13 ~@3, [g2,f3]@15 ~",
  DB: "[gb2,eb3,ab3,bb3,db4]@2 [g2,f3,a3,b3,d4] ~@13", DC: "[[g1,g2]@31 ~]/2", DD: "[e3,bb3,d4]@13 ~@3, c3@15 ~",
  DE: "[c3,eb3,bb3,d4]@2 [c3,eb3,bb3,d4] ~@13", DF: "[d4,g4] ~@7 [bb3,d4,e4,g4] ~@2 db4@2 ~@3, ~@11 ab4 ~@4",
  DG: "[a3,eb4,g4,c5]@6 ~ e3 [f3,c4,eb4] ~@3 [eb3,a3,eb4,g4] ~@3, ~@4 a4 ~@3", // Am7b5 F7 Am7b5
  DH: "~@3 [eb3,a3,c4,g4] ~@4 [eb3,a3,c4,g4] ~@7", // Am7b5
  DI: "~@3 [eb3,a3,c4,g4] ~@4 [e2,d3,gb3,ab3,b3]@2 [f2,eb3,g3,a3,c4] ~@5", DJ: "~@7 [a2,gb3,a3,c4]@7 ~ db3",
  DK: "~@3 [b3,f4,ab4,b4,d5]@5 [d4,g4] ~@7", DL: "~@3 [eb3,a3,c4,gb4] ~@4 [eb3,a3,c4,gb4] ~@7",
  DM: "~@4 [bb1,d3,f3,ab3]@4 ~@3 [a2,e3,b3,e4] [gb3,c4,eb4,bb4] ~@3", // Bb7 Asus2 Cm7b5
  DN: "[b3,d4,f4,a4] ~@3 g2@2 ~@2 e4 f4@2 ~@5, ~@4 a4 ~@3", // Bm7b5
  DO: "~@3 d2 [f4,a4]@2 ~ [f4,a4] ~@3 g2 a4@2 ~@2, ~@12 f4 ~@3", // F
  DP: "[f3,b3,d4,a4] ~@6 d4@2 ~@3 [e3,bb3,db4,g4] ~@3, ~@7 a4 ~@8", // Bm7b5 Edim
  DQ: "[b3,d4,f4,a4] ~@3 [g2,bb3,db4,e4] ~@10 [b3,f4,ab4,b4,eb5]", DR: "~@3 [bb3,e4,g4,bb4,d5]@13",
  DS: "[e3,bb3,d4,g4] ~@3 [db2,f3,ab3,b3]@4 [bb3,d4,e4,g4] ~@3 c3@2 ~@2", // Em7b5 Db7 Em7b5
  DT: "[ab2,c4,eb4,gb4] ~@10 [c3,g3,d4,g4] eb4@2 ~ g3", DU: "[b2,eb3,a3,db4]@2 [c3,e3,bb3,d4] ~@7 [d2,gb3,c4]@5 ~",
  DV: "~@4 [a2,g3,db4,f4]@6 [d3,gb3,db4,eb4]@5 ~", DW: "~@4 [c3,bb3,eb4,g4]@6 [f2,eb3,a3,d4,gb4]@5 ~",
  DX: "[[ab2,gb3,bb3,c4,eb4] ~@9 [b2,a3,db4] ~@3 [c3,bb3,d4]@9 ~ [f2,eb3,bb3]@2 ~@2 [f2,eb3,a3]@2 [bb2,d3,bb3] ~]/2", // Ab7 Gbm Gm Ebsus2 F7 Bb
  DY: "~@10 [d3,gb3,c4,d4]@5 ~", // D7
  DZ: "[~@10 [eb3,a3,d4,gb4,a4] ~@5 bb1@6 ~@2 [a2,g3,db4,gb4,a4]@8, ~@14 [bb2,ab3,d4,g4,bb4]@9 ~@9]/2", // D Gbm Gm
  EA: "[ab2,gb3,c4,f4,ab4] [g2,f3,b3,eb4,g4]", EB: "[c3,e3,bb3,d4] ~@5 [c3,e3,bb3,d4]@9 ~", EC: "~@4 gb2@2 f2@9 ~",
  ED: "eb2@2 f2@5 ~ gb2@2 f2 ~@5", EE: "[f5,f6]@4 [g5,g6] ~@3 [bb5,bb6]@4 [d6,d7] ~@3",
  EF: "[f6,f7]@4 [gb6,gb7]@2 [g6,g7] ~@3 [d6,d7]@5 ~", // F Gb G D
})).s("gm_piano").gain(0.14).pan(0.3)

// other · alto sax
const alto_sax = note(`<
  ~@32 A B C@2 D E F@2 G H@4 I@4 J@2 K L M@2 N O@2 P@2 Q R@2 ~ S@2 T U V W ~@54 X Y Z AA AB AC AD AE AF AG AH AI AJ AK
  AL AM AN@2 AO AA AP@2 AQ@2 AR@2 AS@2 AT@2 AU@2 AV AW@2 AA AP@2 AQ@2 AR@2 AS@2 AX AY AZ@4 BA ~@7
>`.pickRestart({
  A: "g3@6 ~ a3 b3@2 ~ g3 ~@3 d4", B: "~@3 b3@5 e4 ~@3 d4 ~@3", C: "[g4@8 d4@2 ~ b3 ~@3 g3@17]/2",
  D: "~@4 g3@3 a3 bb3@2 ~ g3 ~@3 d4", E: "~@3 bb3@5 e4 ~@3 d4 ~@3", F: "[g4@8 eb4@2 ~ e4 ~@3 c4@17]/2",
  G: "~@3 f3 g3@3 a3@5 f3 ~@3",
  H: "[c4 ~@3 a3@3 c4 d4@3 b3 c4@3 f4@9 c4@2 ~ a3 ~@3 f3@5 f3@3 gb3 g3@2 ~ f3 ~@3 d4@17]/4",
  I: "[~@4 d4@3 db4 d4@2 ~ f4 ~@3 d4@12 [c4,db4] bb3@3 db4@5 c4@3 bb3 c4@2 ~ bb3 ~@3 g3@13 d4@3 d4, ~@28 b3 ~@35]/4", // Dbmaj7
  J: "[f4@3 f4 g4@3 g4 bb4@2 ~ b4 ~@3 d5@9 db5 [bb4,b4,c5] [g4,ab4,a4] [e4,f4,gb4] [d4,eb4] ~@3]/2", // Ebmaj7
  K: "f4@4 e4@3 d4 ~@8", L: "~@12 g3@3 g3", M: "[bb3@3 bb3 d4@3 d4 e4@2 ~ g4 ~@3 bb4@12 a4 [g4,ab4] ~@3]/2",
  N: "a4@4 gb4@3 g4 ~@8", O: "[~@4 d4@3 bb3 c4@3 d4 bb3@3 db4@13 ~@4]/2",
  P: "[~@4 d4@3 bb3 c4@3 d4 bb3@3 g4@12 gb4@5]/2", Q: "f4@3 g4 f4@3 d4 e4@3 gb4 e4@3 db4",
  R: "[eb4@3 f4 eb4@3 d4 ~@3 gb4 ~@3 g4@5 d4@2 ~ d4 eb4@3 ab4 g4@3 f4]/2",
  S: "[~@4 g4 ~@3 e4@2 ~ d4 ~@3 e4@5 d4@3 b3 ~@4 d4@3 e4]/2", T: "f4@3 d4 f4@3 d4 f4@3 d4 db4@3 d4",
  U: "f4@3 d4 gb4@3 g4 ~@8", V: "~@4 a4@7 ~ d4 ~@3", W: "eb4@2 ~ e4 ~@3 d4@5 [c4,db4] [bb3,b3] [ab3,a3] [gb3,g3]",
  X: "f4 e4", Y: "eb4 d4", Z: "d4 ~@7", AA: "~@4 g4@2 g4 ~ gb4@2 gb4 ~ f4 ~@3", AB: "e4@12 d4@2 b3 ~",
  AC: "db4@2 d4 ~@13", AD: "~@4 e4@2 f4 ~ d4@2 f4 ~ g4@2 d4 ~", AE: "f4@4 e4@2 d4 ~@9", AF: "~@4 g4@6 e4@5 ~",
  AG: "d4@2 e4 ~@3 d4@5 ~ e4@2 eb4 ~", AH: "e4@2 eb4 ~ e4@2 gb4 ~ g4@2 e4 ~ d4 ~@3", AI: "gb4@2 g4 ~ e4@2 d4 ~@9",
  AJ: "~@4 c4@2 eb4 ~ gb4@2 g4 ~ gb4@2 eb4 ~", AK: "c4@2 eb4 ~ gb4@2 g4 ~ gb4@2 eb4 ~ c4@2 eb4 ~",
  AL: "g4@2 eb4 ~ g4@2 eb4 ~ g4@2 eb4 ~ d4@2 eb4 ~", AM: "g4@2 eb4 ~ g4@2 eb4 ~ gb4@2 g4 ~@5",
  AN: "[~@2 d4@5 ~ d4@2 d4 ~@3 d4@5 ~ d4@2 d4 ~@3 d4@5 ~]/2", AO: "d4@2 c4 ~ d4@2 eb4 ~ d4@2 f4 ~ d4@2 bb3 ~",
  AP: "[~@4 g4 ~@3 e4@2 d4 ~@3 e4@5 ~ d4@2 e4 ~@5 e4@2 d4 ~]/2",
  AQ: "[db4@2 d4 ~ eb4@2 e4 ~ f4@2 g4 ~@3 f4@5 ~ e4@2 d4 ~@9]/2",
  AR: "[~@4 g4 ~@3 eb4@2 e4 ~@3 e4@5 ~ eb4@2 d4 ~@5 c4@2 d4 ~]/2",
  AS: "[eb4@2 e4 ~ f4@2 gb4 ~ g4@2 c4 ~@3 eb4@5 ~ e4@2 e4 ~@3 e4@5 ~]/2",
  AT: "[~@4 d4@2 bb3 ~ c4@2 d4 ~ bb3@2 db4@13 ~@5]/2", AU: "[~@4 d4@2 bb3 ~ c4@2 d4 ~ bb3@2 g4@12 gb4@5 ~]/2",
  AV: "f4@2 g4 ~ f4@2 d4 ~ e4@2 gb4 ~ e4@2 db4 ~",
  AW: "[eb4@2 f4 ~ eb4@2 d4 ~@3 gb4 ~@3 g4@5 ~ d4@2 d4 ~ eb4@2 ab4 ~ g4@2 f4 ~]/2",
  AX: "~@2 d4 ~ g4@2 bb4 ~ db5@2 d5 ~ bb4@2 g4 ~", AY: "db5@6 c5@9 ~",
  AZ: "[~@4 g4@2 gb4 ~ g4@2 bb4 ~ d5@2 g5@8 f5 ~ gb5@2 a4 ~@3 bb4@5 ~ d4@2 eb4 ~ e4@2 a4 ~@3 ab4@5 ~ eb4@2 d4 ~@3 g4@5 ~]/4",
  BA: "gb4@2 g4@5 ~ gb4@2 g4 ~@5",
})).s("gm_alto_sax").gain(0.39).pan(0.6)

// other · piccolo · "Alto Sax"
const piccolo = note(`<
  ~@178
  [f6@4 g6 ~@3 bb6@4 d7 ~@3]
  [f7@4 gb7@2 g7 ~@3 d7@5 ~]
  [~@8 gb6@2 g6@5 ~]
  [ab6@2 a6@5 ~ bb6@2 bb5 ~@5]
>`).s("gm_piccolo").gain(0.39).pan(0.6)

// other · alto sax
// … 397 more lines

More by Basie