Strudelify

The Wind Machine

Basie

KeyC minorTempo120 bpm
0:00/0:00
// The Wind Machine — Basie
// 120 bpm, 4/4, key C minor. 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 225 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 F Q C D R F S G T U V W X Y Z AA AB AC AD AE AF AG AH V AI AJ AK@2 AL AM AN AO AB AP
  AQ AR AS AT F AU AV AW AX AY U AZ BA BB BC AJ AS BD BE@2 BF ~ AB AC BG AE BH@2 BI BJ BK AW BL BM BN BO BP BQ BM BR
  BS@2 BL BT Z BU BV BW BA F BO BQ AB BX BY BZ CA CB CC AB CD BJ BV CE BA BM BN CF CG BQ CH CI U CJ CK AG K@2 BV CL CM
  BU CN CO AB CP CQ AP CR CS AB@2 V CT CU CV CK BT CW I CX CY BM CZ DA AR AS CQ V DB DC DD DE DF DG ~@2 DH DI AE DJ DK
  DL DM M DN DO ~@3 DP@4 DQ AR DR DS DT DU DV DW DX DY DZ EA EB ~ EC ~ ED EE EF EG EH EI EJ BV EK ~@3 EL@3 ~ EM@3 ~ EN@4
  EO
>`.pickRestart({
  A: "c2@6 g2@6 c3@6 g2@5 d2", B: "db2 eb2 e2 g2", C: "d2 e2 f2 a2", D: "eb2 a2 gb2 eb2",
  E: "e2@6 gb2@6 g2@6 b2@4 ~ e2", F: "c3 c2 e2 g2", G: "a2 a1 db2 e2", H: "a1@4 e1@2 e2@5 ~ db2@6 a1@4 e1 ~",
  I: "d3 d2 gb2 a2", J: "f2@3 ~ f1 ~ g2@5 ~ ab2@6 c3@4 f2@2", K: "c2@4 g1 ~ d2@6 e2@4 ~ g1 g2@4 g1 ~",
  L: "c2@6 g2@6 c3@6 g2@5 eb2", M: "d2 d3 a2 gb2", N: "d2@4 a1@2 e2@6 f2@4 a1 ~ gb2@6",
  O: "g2@4 d2 ~ a2@6 b2@4 d2 ~ d3@4 d2 ~", P: "g2@4 d2 ~ a2@6 b2@4 d2 ~ d3@5 d2", Q: "db2 db3 g2 e2",
  R: "e2@5 b1 gb2@6 g2@4 b1 ~ b2@4 b1 ~", S: "a1 a2 e2 db2", T: "d2 a2 gb2 d2", U: "f2 g2 ab2 c3", V: "c2 d2 e2 g2",
  W: "a1 b1 db2 e2", X: "d2 e2 f2 gb2", Y: "g2 a2 b2 d3", Z: "c2 c3 g2 e2", AA: "c2@2 c1 c2@3 bb2@3 f2@3",
  AB: "eb2 f2 g2 bb2", AC: "e2@4 bb1@2 bb2@5 ~ g2@6 e2@5 bb1", AD: "f2 c3 ab2 f2", AE: "gb2 c3 a2 gb2",
  AF: "g2@4 ~ g1 a2@6 bb2@6 d3@4 g2 ~", AG: "eb2@4 bb1 ~ f2@6 g2@4 bb1 ~ bb2@4 bb1 ~",
  AH: "c2@4 g1@2 g2@5 ~ e2@6 c2@4 ~ g1", AI: "a1@4 c2@2 c3@5 ~ a2@6 a1@5 c2",
  AJ: "ab2@3 ~@2 ab1 bb2@5 ~ b2@6 eb3@4 ab2@2",
  AK: "[g2@4 g1 ~ a2@6 bb2@6 d3@4 ~@2 eb2@6 bb2@6 eb2@6 eb2@6, ~@23 g2@2 ~@23]/2", AL: "f2@4 f1 ~ f2@6 g2@6 g2@5 ~",
  AM: "ab2 gb2 f2!2", AN: "bb1@3 ~ bb1@2 f2@6 c2@3 ~@3 eb3@6, ~@17 c2@2 ~@5", AO: "db2@6 ab2@6 bb1@4 bb0 ~ bb1@4 ~ bb0",
  AP: "e2 gb2 g2 bb2", AQ: "f2@4 c2 ~ g2@6 ab2@4 c2 ~ c3@4 c2 ~", AR: "gb2 ab2 a2 c3",
  AS: "g2@4 d2@2 d3@5 ~ bb2@6 g2@4 d2 ~", AT: "eb2@4 bb1 ~ bb2@5 ~ g2@6 eb2@5 bb1", AU: "c3 c2 c3 bb2",
  AV: "a2 g2 a2 c3", AW: "ab2@6 bb2@6 b2@6 eb3@4 ab2 ~", AX: "g2@3 ~ g1 ~ f2@6 e2@6 d2@5 db2",
  AY: "c2@4 g1@2 d2@6 eb2@4 g1 ~ eb2@6", AZ: "bb1@4 c2 ~ g2@6 ab2@4 c2 ~ c3@5 c2", BA: "g2 d3 bb2 g2",
  BB: "c2@6 g2@6 c2@4 c1 ~ c2@4 ~ c1", BC: "a1 g2 a2 c3", BD: "c2@6 db2@6 c2@4 c1 ~ c2@6",
  BE: "[f2@18 bb2@11 ~ bb2@6 bb1@12]/2", BF: "eb2 ~@7", BG: "f2@6 g2@6 ab2@6 c3@4 f2 ~",
  BH: "[g2@3 ~ g1 ~ a2@5 ~ bb2@6 d3@4 ~@2 eb2@4 bb1@2 bb2@5 ~ g2@6 eb2@5 bb1, ~@23 g2@2 ~@23]/2",
  BI: "c2@4 g1 ~ g2@5 ~ e2@6 c2@5 g1", BJ: "c2 g2 e2 c2", BK: "f2@4 c2 ~ g2@6 a2@4 ~ c2 c3@4 c2 ~", BL: "g2 a2 bb2 d3",
  BM: "eb2 bb2 g2 eb2", BN: "f2@4 c2@2 c3@5 ~ a2@6 f2@4 c2 ~", BO: "f2 g2 a2 c3",
  BP: "bb1@5 f1 c2@6 d2@4 f1 ~ f2@4 f1 ~", BQ: "bb2 bb1 d2 f2", BR: "e2 bb2 g2 e2",
  BS: "[f2@4 f1 ~ g2@6 ab2@6 c3@4 ~@2 gb2@6 c3@6 a2@6 gb2@6, ~@23 f2@2 ~@23]/2", BT: "eb2 g2 bb2 bb1",
  BU: "c2@6 g2@6 c3@6 g2@5 gb2", BV: "f2 c3 a2 f2", BW: "ab2@4 eb2 ~ bb2@6 b2@4 ~ eb2 eb3@5 eb2",
  BX: "f2@3 ~@2 f1 g2@5 ~ ab2@6 c3@4 ~ f2", BY: "eb2@4 bb1@2 bb2@5 ~ g2@6 eb2@4 bb1 ~",
  BZ: "e2@4 bb1 ~ bb2@5 ~ g2@6 e2@4 bb1 ~", CA: "f2@4 c2@2 c3@5 ~ ab2@6 f2@5 c2",
  CB: "gb2@4 c2 ~ ab2@6 a2@4 c2 ~ c3@4 c2 ~", CC: "g2@5 d2 a2@6 bb2@4 d2 ~ d3@4 d2 ~", CD: "c2@6 g2@6 c3@6 g2@5 db2",
  CE: "ab2@3 ~ ab1 ~ bb2@5 ~ b2@6 eb3@4 ab2@2", CF: "f2@4 c2 ~ g2@6 a2@4 c2 ~ c3@4 c2 ~", CG: "bb1 f2 d2 bb1",
  CH: "eb2@4 bb1@2 bb2@5 ~ g2@6 eb2@4 ~ bb1", CI: "e2@4 bb1 ~ gb2@6 g2@4 bb1 ~ bb2@4 bb1 ~",
  CJ: "gb2@4 c2 ~ ab2@6 a2@4 ~ c2 c3@4 c2 ~", CK: "g2@6 a2@6 bb2@6 d3@4 g2 ~",
  CL: "ab2@4 eb2 ~ bb2@6 b2@4 eb2 ~ eb3@4 eb2 ~", CM: "g2@3 ~ g1 ~ a2@5 ~ bb2@6 d3@4 g2@2",
  CN: "f2@3 ~ f1 ~ eb2@6 d2@6 c2@4 b1 ~", CO: "bb1@4 f1 ~ c2@6 db2@4 f1 ~ d2@6", CP: "eb2@4 ~@2 bb1@11 ~ b1@6",
  CQ: "eb2@4 bb1@2 bb2@5 ~ g2@6 eb2@5 bb1", CR: "f2@4 c2@2 c3@5 ~ ab2@6 f2@4 ~ c2",
  CS: "gb2@4 c2@2 c3@5 ~ a2@6 gb2@4 c2 ~", CT: "c2@5 g1 g2@4 ~ g1 c2@6 c2@6", CU: "a1 g2 eb2 a1",
  CV: "ab2@4 eb2@2 eb3@5 ~ b2@6 ab2@4 eb2 ~", CW: "a1@4 g1 ~ d2@6 eb2@4 ~ g1 g2@5 g1",
  CX: "g2@4 d2@2 d3@5 ~ b2@6 g2@4 d2 ~", CY: "bb1@3 ~ bb1 ~ e2@6 bb1@6 bb1@4 ~ bb0",
  CZ: "e2@4 bb1 ~ gb2@6 g2@4 ~ bb1 bb2@4 bb1 ~", DA: "f2@4 c2@2 c3@5 ~ ab2@6 f2@4 c2 ~",
  DB: "c3@6 g2@6 c2@3 ~ c2@2 g2@6", DC: "a1@6 g2@6 a2@6 g2@5 a2", DD: "ab2@2 ab2@2 ab2 ~ eb3@2, ~@17 ab2@2 ~@5",
  DE: "g2@4 d2 ~ d3@5 ~ bb2@6 g2@4 d2 ~", DF: "c2@4 c1 ~ c2@5 c1 c2@6 c2@6", DG: "f2 ~@5", DH: "~@6 c2@11 ~ c2@2 ~@4",
  DI: "f2@5 c2 c3@4 c2 ~ f2@4 f1 ~ gb2@6", DJ: "g2@3 ~ g2 ~ gb2@6 g2@4 g1 ~ ab2@6",
  DK: "ab2@4 d2@2 d3@5 ~ b2@6 ab2@5 d2", DL: "a1 e2 c2 a1", DM: "f2@6 c3@6 ~@4 c2 ~ c3@4 c2 ~, ~@2 f2 ~",
  DN: "d2@3 ~ d2@2 a2@6 d2@6 d2@4 d1 ~", DO: "g2 ~@7", DP: "c2/4", DQ: "~@4 c2 ~ c3@4 c2 ~ f2@4 f1 ~ gb2@6, f2 ~@3",
  DR: "g2@6 g2@6 g2@4 g1 ~ ab2@4 ~ ab1", DS: "ab2 eb3 b2 ab2", DT: "a1@5 e1 b1@6 c2@4 e1 ~@5 e1 ~, ~@3 e2",
  DU: "f2@3 ~ f2@2 c3@6 f2@3 ~ f2 ~ db2@6", DV: "d2 e2 gb2 a2", DW: "d2@4 d1 ~ d2@6 d2@6 eb2@6", DX: "b1 e2 f2 a2",
  DY: "bb1@3 ~@2 bb1 a1@6 bb1@6 f2@6", DZ: "a1@3 ~ a0 ~ b1@5 ~ c2@6 e2@4 a1@2",
  EA: "d2@4 d1 ~ d2@5 ~ eb2@6 d2@4 ~ d1, ~@11 d1@2 ~@11", EB: "g2 ~@5", EC: "a2@2 bb2 ~@9", ED: "a2 a1 a2!2",
  EE: "d2 d3 d2 gb2", EF: "g2 g1 a2!2", EG: "c2@6 c2@6 c2@6 e2@5 ~", EH: "f2@4 ~@2 f2@11 ~ f2@5 ~",
  EI: "f2 ~ c2@2 f2@2 a2@2", EJ: "bb2 ~@3 bb1@4", EK: "c2 ~@11", EL: "[f2@3 ~]/3", EM: "[eb2@3 ~]/3", EN: "db2/4",
  EO: "f2@2 f1 ~@9",
})).s("gm_acoustic_bass").gain(0.3).pan(0.3)

// chords · piano
const piano = note(`<
  A@2 B C D@5 E@3 F G@2 H I J@3 K L M N@2 O L P Q R S@2 T U V W@2 T X Y Z AA@3 AB AC@2 AD AE AF@3 AG AH AI AJ@3 AK@2 AL
  AM AN AO AP AQ AR AS AT@2 AU ~ AV P AW AX@2 AY AZ BA BB BC@4 BD BE@3 BF BG BH BI@2 BJ@2 BK BL AR BM BN BO T BP@2 BQ BR
  BS@2 BT@3 BU@2 AG BV BW@2 BX BY BZ CA CB CC CD CE BA CF CG CH CI@2 CJ@2 CK CL@2 CM CN@2 CO CE CP@3 CQ CR@2 CS CT CU@2
  T CV@2 CW@2 CX CY@2 CZ DA DB DC DD ~@2 DE@3 DF DG DH DI DJ DK DL ~@3 DM@4 DN@2 DO DP DQ DR DS DT@2 DU@2 DV DL ~ DW ~
  DX DY DZ EA EB@2 EC ED EE EF EG EH EI@3 ~ EJ@3 ~ EK@4 EL
>`.pickRestart({
  A: "[[c2,g3,a3,e4] ~@22 [db3,e4,g4,db5]@3 ~@11 [e3,db5,db6]@9 ~@2, ~@9 db4@2 ~, ~@37 g5@2 ~@9]/2", // Am7 Dbdim Dbm
  B: "[d2,a3,c4,f4] ~@23", C: "f4 a4@3 ~ a2@19, gb4 ~@11",
  D: "[[e2,e3,g3,d4] ~@22 eb5@2 ~ e5@20 ~ [a2,f3,g3,db4]@2 ~@22 [a2,g3,a3,db4,g4]@3 ~@10 [f5,g5,a5,f6] db5 ~@12 gb5@20 ~@2, ~@25 [e4,a5]@22 ~@48 f5@2 gb4@23, ~@48 d3@11 ~, ~@97 c6@21 ~@2]/5", // Em7 Aaug A7 F A5
  E: "[f5 ~@5 [f4,d5,f5,c6] ~@6 f5@3 ~ [f4,ab4,c5,d5,f5] ~@5 [c2,g3,a3,e4]@2 ~@22 [c2,g3,a3,e4]@2 ~@23, ~@4 f4 ~@19]/3", // Dm7 Dm7b5 Am7
  F: "~ gb5@10 ~, d3@11 ~, f5 ~@11, ~ gb4@23, ~ c6@21 ~@2",
  G: "[~@5 e5@2 ~@3 a4 ~ e5@4 ~@8 a4@2 f4@2 ~ d2@19, ~@23 e4@2 ~@23]/2", H: "~@10 a4@2 a5@4 a4 ~@7",
  I: "~@5 c5@2 ~@3 g4 ~ c5@4 ~@7 g4",
  J: "[~@5 db5@2 ~@3 g4 ~ db5@4 ~@7 e4@2 [f4,a4]@3 ~ a2@17 ~ c5@2 ~ c5@20 ~@2, ~@49 [eb2,c4]@23, ~@49 gb5@21 ~@2]/3", // F Cm
  K: "~@2 [g5,b5] [gb5,bb5] ~ b5 [gb5,bb5]@2 [g5,b5] ~@2 [g5,b5], ~@10 g5 ~@13", // G Gb G
  L: "~@5 ab5 ~ a5@2 ~@2 eb5 ~ a4@2 ~@2 eb4 a3@4 ~@2",
  M: "[f5,a5] ~@5 [f4,a4,db5,a5] f5 ~@5 f5@3 ~ [f4,g4,a4,db5,f5] ~@6", // F Faug
  N: "[~@10 a4@2 a5@4 a4 ~@6 f5@2 ~ gb5@20 ~@2, ~@25 [d3,gb4]@23, ~@25 c6@21 ~@2]/2", // D
  O: "[f2,d4,f4] ~@12 [d3,c5,c6]@9 ~@2, c5 ~@5 c4@4 ~@2, ~@13 f5 ~@10", P: "~@5 e5@2 ~@3 bb4 ~ e5@4 ~@7 bb4",
  Q: "[d2,gb3,a3,c4,gb4] ~@11 [e5,gb5,a5,e6] c5 ~@10", R: "a5 ~@5 [a4,d5,f5,a5,d6] ~@5 a5@3 ~@2 [a4,b4,d5,f5,a5] ~@6",
  S: "[~ c5@3 ~@2 [f4,c5]@4 g3 ~ [gb4,c5]@3 ~@2 [g4,c5] ~@5 c2@3 ~@3 [a4,e5,c6] ~@5 [f2,d5,f5]@5 ~ [f2,d5,f5] ~@6, e4 ~@15]/2", // F5 Gbdim C5 Am Dm
  T: "~@5 eb5@2 ~@3 bb4 ~ eb5@4 ~@7 bb4", U: "~ db4@2 ~@2 bb1@19, e4 ~@7, ~ c4 ~@22",
  V: "f5 ~@5 [f4,ab4,eb5,c6] f5 ~@5 f5@3 ~ [f4,ab4,c5,eb5,f5] ~@6", // Fm7
  W: "[[gb2,eb4,gb4] ~@12 [eb3,c4,c5]@9 ~ [g5,d6]@2 ~@5 [g4,d5,f5,g5,d6] ~@5 g5@3 ~@2 [g4,bb4,d5,f5,g5] ~@6, c5@2 ~@10 c6@9 ~@27, ~@13 gb5 ~@34]/2", // Ebm Cm G5 G7 Gm7
  X: "~ e5@10 ~, eb5 ~@11, ~ e4@23, ~ bb5@21 ~@2", Y: "d4 ~ e4@2 ~ g2@19, ab4 ~@7, ~ eb4@2 ~@21",
  Z: "g5 ~@5 [g4,eb5,g5,c6] ~@6 g5@3 ~ [g4,a4,c5,eb5,g5] ~@6", // Cm Am7b5
  AA: "[~@2 f5@20 ~ [g2,f4,g4,d5]@3 ~@11 [f3,d5]@9 ~ bb4@4 ~@2 bb3@6 ~ c5 [eb4,bb4,bb5] ~@10, ab2@11 ~@25, f5@2 ~@35 g5 ~@34, ~ [f4,b5]@22 ~@13 [d4,d6]@9 ~@27]/3", // G7 Dm Eb5 Fdim D
  AB: "~@5 f2 a4 ~ eb5@3 [eb3,g5,g6]@4 ~@2 [eb3,bb3,g5,e6] ~@6, ~@11 e6@2 ~@4 g6@2 ~@5", // Eb
  AC: "[[eb5,f5] [ab4,eb6] ~@12 f5@8 ~ [bb1,f3,ab3,d4]@2 ~@11 c2@2 ~@2 eb5 [c6,ab6] ~@6, ~@6 f2@5 ~@13, ~@6 e5 ~@17, ~@13 [eb3,a5]@10 ~@25]/2", // Ebsus2 Ab5 Bb7 Fm Ebdim
  AD: "db2@2 ~@3 [bb4,e5,db6] ~@6 [bb1,d3,f3,ab3,d4] ~@5 [bb1,d3,gb3,ab3,d4] ~@5", // Bbdim Bb7 Bbaug
  AE: "~ c5@10 ~, c5 ~@11, ~ c4@23, ~ g5@21 ~@2",
  AF: "[c4 e4@3 ~ bb1@18 [f5,c6]@2 ~@5 [f4,ab4,c5,eb5,c6] f5 ~@4 f5@3 ~@2 [f4,ab4,c5,eb5,f5] ~@5 [gb2,eb3,gb3,a3,eb4]@3 ~@10 [a4,c5,eb5,gb5,c6] ~@11, db4 ~@35]/3", // F5 Fm7 Ebdim Adim
  AG: "~@5 d5@2 ~@3 g4 ~ d5@4 ~@7 g4", AH: "bb4@3 ~@2 bb3@6 ~ gb5@2 ~@2 c5 a4 [ab4,b4,f5]@3 ~@3, ~@12 a4 ~@11",
  AI: "~@5 c5@2 ~@3 ab4 ~ c5@4 ~@8",
  AJ: "[~@5 c3 bb4 e5@3 ~ [g2,bb4,db5]@5 ~ [g2,bb4,db5] ~@5 [eb3,g5,g6]@3 d6@2 ~ [eb3,a3,g5,d6] ~@17 [ab2,f4,ab4,eb5]@3 ~@11 [f3,eb5,eb6]@9 ~@2, ~@23 db6@2 ~@4 g6@2 ~@29 eb4@8 ~@4, ~@61 ab5 ~@10]/3", // Gdim Eb Ebmaj7 Fm7 F7
  AK: "[[g2,f3,g3,bb3,f4] ~@11 [bb4,d5,f5,g5,d6] ~@12 g4@3 ~ g2@19, ~@23 d4@2 ~@23, ~@12 eb4 ~@11]/2", // Gm7
  AL: "~@5 f5@2 ~@3 c5 ~ f5@4 ~@7 c5", AM: "~ eb5@10 ~, d5 ~@11, ~ [bb1,eb4]@23, ~ ab5@21 ~@2",
  AN: "[g2,g3,bb3,f4] ~@23", AO: "[c5,e5,c6] ab4 ~@9 [c2,e3,ab3,bb3,e4]@3 ~@3 [c2,e3,g3,bb3,e4]@3 ~@4",
  AP: "~@5 g5@2 ~@3 c5 ~ g5@4 ~@7 c5", AQ: "[ab2,f4,ab4] ~@12 [f3,eb5,eb6]@9 ~ f3, eb5 ~@5 eb4@4 ~@2, ~@13 ab5 ~@10",
  AR: "[f3,bb3,g5,g6]@2 e6@2 ~ [f3,bb3,g5,e6] ~@18, eb6 ~@4 g6@2 ~@17", // Gm7 Edim
  AS: "[c2,ab3,bb3,e4] ~@10 [c2,e3,ab3,bb3,e4]@3 ~@3 [c2,e3,g3,bb3,e4]@3 ~@4", // Caug C7
  AT: "[[f2,a3,c4,eb4]@3 [bb1,ab3,c4,eb4]@3 [bb1,ab3,c4,eb4]@2]/2", AU: "[eb2,g3,bb3,c4,eb4] ~@23",
  AV: "eb5 ~@5 [eb4,bb4,c5,eb5,bb5] ~@6 eb5@3 ~ [eb4,g4,bb4,c5,eb5] ~@6", // Cm7
  AW: "[eb3,f5,f6]@2 d6@2 ~ [eb3,ab3,f5,d6] ~@18, db6 ~@4 f6@2 ~@17", // Ebsus2 Ddim
  AX: "[[gb2,gb3,a3,eb4] ~@22 e4@2 ~ f4@2 ~ d2@19, ~@25 g4@3 ~@20]/2", // Ebdim
  AY: "~ [g4,eb5]@3 ~@2 [ab4,eb5]@4 bb3 ~ [a4,eb5]@3 ~@2 [bb4,eb5] ~@6", // Cm Ab5 Adim Eb5
  AZ: "[e3,g5,g6]@2 d6@2 ~ [e3,bb3,g5,d6] ~@18, db6 ~@4 g6@2 ~@17", // Em Em7b5
  BA: "~ e5@10 ~, c3@11 ~, eb5 ~@11, ~ e4@23, ~ bb5@21 ~@2",
  BB: "[eb3,g6]@2 d6@2 ~ [eb3,a3,g5,d6] ~@18, db6 ~@4 g6@2 ~@17", // Eb Ebmaj7
  BC: "[~@5 eb5@2 ~@3 ab4 ~ eb5@4 ~@7 [g5,d6]@2 ~@5 [g4,d5,f5,g5] ~@6 g5@3 ~ [g4,bb4,d5,f5,g5] ~@5 bb4@4 ~@2 bb3@6 ~ gb5@3 ~ c5 a4 [ab4,b4,f5]@3 ~@2 [f2,eb3,f3,a3,eb4]@3 ~@10 [c5,eb5,g5,c6] a4 ~@10, ~@60 a4 ~@35]/4", // G5 G7 Gm7 Fdim F7 Cm
  BD: "~ eb4@2 ~@2 c2@19, g4 ~@7, ~ d4 ~@22",
  BE: "[~@5 c6@2 ~@5 [f4,d5] [ab4,c6] ~@9 [bb2,d4,f4,c5]@3 ~@11 [d3,c5]@9 ~ f4@2 ~ g4@2 ~ bb2@19, ~@36 [c4,c6]@9 ~@4 [gb4,bb4]@3 ~@20, ~@37 f5 ~@34]/3", // Dm Ab Bb D7 C Gb
  BF: "c4 e4@3 ~ bb1@19, db4 ~@11", BG: "[f2,eb3,f3,ab3,eb4] ~@11 [ab4,c5,eb5,f5,c6] ~@11",
  BH: "~ eb5@10 ~, gb2@11 ~, eb5 ~@11, ~ eb4@23, ~ a5@21 ~@2",
  BI: "[~@2 f5@20 ~ [eb2,g3,bb3,c4,g4]@3 ~@10 [c5,eb5,g5,bb5,eb6] ~@11, e5 ~@23, ~ [g2,f4,bb5]@22 ~@25]/2", // Cm7 Gm7
  BJ: "[~@5 c6@2 ~@5 [g4,e5,c6] bb4 ~@9 [c3,e4,g4,c5]@3 ~@10 g5 [e3,c5,c6]@9 ~@2, ~@9 c4@2 ~]/2", // C
  BK: "~@5 c6 ~@6 g4 [a4,eb5,c6] ~@10", BL: "ab4@2 f4 ~@2 eb2@19, f4 ~@23", BM: "~@5 c5@2 ~@3 g4 ~ c5@4 ~@8",
  BN: "~@5 c6 ~@6 f4 [a4,eb5,c6] ~@10", BO: "~ d5@10 ~, db5 ~@11, ~ [bb2,d4,ab5]@22 ~",
  BP: "[[bb1,eb4,f4] ~@12 [eb3,c5,c6]@9 ~@2 [gb4,bb4]@2 g4@2 ~ bb2@19, c5@2 ~@10 c4@8 ~@3 f4@2 ~@23, ~@13 f5 ~@34]/2", // Bbsus4 Cm Gb
  BQ: "~ db5@10 ~, db5 ~@11, ~ [e2,db4,g5]@22 ~", BR: "~@5 c6@2 ~@5 [f4,c6] [ab4,eb5] ~@10",
  BS: "[d4 gb4@3 ~ c2@17 ~ g5@2 ~@5 [g4,bb4,d5,f5,g5,d6] ~@5 g5@3 ~@2 [g4,bb4,d5,f5,g5] ~@6, eb4 ~@23]/2", // Gm7
  BT: "[[c3,eb5,eb6]@2 c6@2 ~ [c3,g3,eb5,c6] ~@17 [e3,g5,g6]@3 d6@2 ~ [e3,bb3,g5,d6] ~@20 e5@20 ~@2, b5 ~@4 eb6@2 ~@16 db6@2 ~@4 g6@2 ~@16 eb5@2 e4@23, ~@24 c3@11 ~, ~@49 bb5@21 ~@2]/3", // Cm Em Em7b5
  BU: "[[f2,eb3,f3,a3,eb4] ~@11 [a4,c5,eb5,g5,c6] ~@10 [ab2,f4,ab4,eb5]@3 ~@10 ab5 [f3,eb4,eb5]@9 ~ f3, ~@12 eb6@3 ~]/2", // F7 Am7b5 Fm7 F7
  BV: "~ c5@10 ~, eb2@11 ~, c5 ~@11, ~ c4@23, ~ g5@21 ~@2",
  BW: "[~ d4 eb4@2 ~ c2@17 ~ d4@2 [eb4,g4]@3 ~ c2@19, g4 ~@15]/2", // Eb
  BX: "[f5,c6] ~@5 [f4,c5,d5,f5,c6] ~@6 f5@3 ~ [f4,ab4,c5,d5,f5] ~@6", BY: "~ c4 d4@2 ~ f2@19, ~ [db4,f4]@3 ~@20",
  BZ: "f4 ~ g4@2 ~ bb2@19, bb4 ~@7, ~ gb4@2 ~@21", CA: "[e2,db3,e3,g3,db4] ~@11 [g4,bb4,db5,e5,bb5] ~@11",
  CB: "~@5 c6 ~@6 [f4,eb5] [ab4,c6] ~@10", // F7 Ab
  CC: "[gb2,eb4,gb4] ~@12 [eb3,c5]@9 ~@2, c5@2 ~@10 [c4,c6]@9 ~@3, ~@13 gb5 ~@10", // Ebm Cm C
  CD: "[g2,f4,g4] ~@12 [d4,d5,d6]@9 ~@2, d5 ~@5 f3@4 ~@2, ~@13 g5 ~@10", // G7 D
  CE: "bb4@3 ~@2 bb3@6 ~ gb5@3 ~ c5 a4 [ab4,b4,f5]@3 ~@2 bb3, ~@12 a4 ~@11", CF: "[c2,g3,bb3,e4] ~@23",
  CG: "[f2,eb4,g4] ~@11 g5 [c5,c6]@9 ~@2, c5 ~@5 [eb3,c4]@4 ~@2", CH: "~ f5@10 ~, f5 ~@11, ~ [ab2,f4,b5]@22 ~",
  CI: "[~@5 d6 ~@6 [g4,f5] [bb4,d6] ~@9 [c2,e3,g3,bb3,e4]@3 ~@10 [bb4,c5,e5,g5,c6] ~@11]/2", // G7 Bb C7
  CJ: "[~@2 eb5@20 ~ [f5,c6]@2 ~@5 [f4,ab4,c5,d5,f5,c6] ~@6 f5@3 ~ [f4,ab4,c5,d5,f5] ~@6, f2@11 ~@13, d5 ~@23, ~ [eb4,a5]@22 ~@25]/2", // F5 Dm7b5 Ebdim
  CK: "[c3,g3,eb6]@2 c6@2 ~ [c3,g3,eb5,c6] ~@18, b5 ~@4 eb6@2 ~@17", // Cm
  CL: "[[eb2,g3,bb3,c4,g4] ~@5 [bb1,d3,gb3,ab3,d4]@11 ~ [b1,eb3,gb3,a3,eb4] ~@4 [eb2,c4,eb4,bb4]@3 ~@11 [c3,bb3,bb4]@9 ~@2, ~@12 bb5@3 ~, ~@37 eb5 ~@10]/2", // Cm7 Bbaug B7 Cm7 C7
  CM: "[db3,e5,e6]@2 c6@2 ~ [db3,g3,e5,c6] ~@18, c6 ~@4 e6@2 ~@17", // Dbm C
  CN: "[[f5,c6] ~@5 [f4,c5,eb5,f5,c6] ~@6 f5@3 ~ [f4,ab4,c5,eb5,f5] ~@5 eb5@2 ~ eb5@20 ~@2, ~@25 [gb2,eb4]@23, ~@25 a5@21 ~@2]/2", // F5 F7 Fm7 Ebm
  CO: "[eb2,d4,f4] ~@12 [bb3,bb4,bb5]@9 ~@2, bb4 ~@5 d3@4 ~@2, ~@13 f5 ~@10", // Dm Bb
  CP: "[[c3,e4,g4] ~@12 [e3,db5,db6]@9 ~ c2@3 ~@3 [bb4,e5,db6] ~@5 [c2,e3,g3,bb3,e4]@3 ~@4 [c2,e3,g3,bb3,e4] ~@7 eb5@20 ~@2, db5 ~@5 db4@4 ~@14 a2@11 ~, ~@13 g5 ~@33 eb5@2 eb4@23, ~@49 c6@21 ~@2]/3", // C Dbm Bbdim C7
  CQ: "~@2 [b4,eb5] [bb4,d5] ~ eb5 [bb4,d5]@2 [b4,eb5] ~@2 [b4,eb5], ~@10 b4 ~@13", // B Bb B
  CR: "[[g2,g3,bb3,f4] ~@25 g4@2 ~ bb2@19, ~@23 f4@2 bb4@3 ~@20, ~@12 gb4 ~@11]/2", // Gm7
  CS: "~ eb5@10 ~, eb5 ~@11, ~ [a2,eb4]@23, ~ c6@21 ~@2", // Adim
  CT: "[gb3,c4,a5,a6]@2 eb6@2 ~ [gb3,c4,a5,eb6] ~@18, eb6 ~@4 a6@2 ~@17", // Gbdim
  CU: "[~ [b3,g4]@3 ~@2 [c4,g4]@4 ~ d3 [db4,g4]@3 ~@2 [d4,g4] ~@5 [bb1,f3,ab3,eb4]@2 ~@10 [bb1,eb3,f3,ab3,eb4]@3 ~@4 [bb1,d3,f3,ab3,d4] ~@5]/2", // Em C5 Dbdim G5 Bbsus4 Bb7
  CV: "[~@5 e5@2 ~@3 bb4 ~ e5@4 ~@7 [eb3,f6]@3 d6@2 ~ [eb3,ab3,f5,d6] ~@18, ~@23 db6@2 ~@4 f6@2 ~@17]/2", // Ebsus2 Ddim
  CW: "[~@5 c5@2 ~@3 gb4 ~ c5@4 ~@7 e5@2 ~ f5@20 ~@2, ~@25 [g2,f4]@23, ~@25 bb5@21 ~@2]/2", // G7
  CX: "[eb2,bb3,c4,g4] ~@11 [c5,eb5,g5,bb5,eb6] ~@11, g3 ~@11", // Cm7
  CY: "[db4 [e4,g4]@3 ~ g2@17 ~ [ab5,c6]@2 ~@5 [ab4,c5,e5,ab5,c6] ~@5 [e5,db6] [g4,db5] ~@10, eb4 ~@23]/2", // Em Ab Abaug Dbm Gdim
  CZ: "~@5 eb5@2 ~@3 g4 ~ eb5@4 ~@8", DA: "~ gb5@3 ab2 ~ [eb5,eb6]@3 ~@2 [ab2,ab3,b3,f4]@2 ~@11",
  DB: "[g2,g3,bb3,f4] ~@11 [bb4,d5,f5,g5,d6] ~@11, f3 ~@11", // Gm7
  DC: "[c2,e3,g3,bb3,e4] ~@5 [c5,e5,c6] ab4 ~@10 [c2,e3,g3,bb3,e4] ~@5", DD: "[f2,eb3,f3,a3,eb4] ~@23",
  DE: "[~@6 [c2,e3,ab3,bb3,e4]@11 ~ [c2,e3,g3,bb3] ~@4 e5@2 ~ f5@10 [f2,d3,f3,a3,d4] ~@5 [gb2,eb3,gb3,a3,eb4] ~@4 gb5@2 ~@5 [gb4,c5,eb5,gb5,c6] ~@6 gb5@3 ~ [gb4,a4,c5,eb5,gb5] ~@6, ~@18 e4@2 ~@5 [f2,d3,a5]@11 ~@36]/3", // Caug C7 Dm Ebdim Cdim Gbdim Dm
  DF: "[d2,bb4,d5]@3 ~@2 [d2,bb4,d5] ~@5 [g2,f3,g3,bb3,f4]@3 ~@4 [ab2,f3,ab3,b3,f4] ~@5", // Gm Gm7 Fdim
  DG: "~ f5@10 ~, ab2@11 ~, f5 ~@11, ~ f4@23, ~ b5@21 ~@2",
  DH: "[c3,e5,e6]@2 b5@2 ~ [c3,g3,e5,b5] ~@18, bb5 ~@4 e6@2 ~@17", // C Cmaj7
  DI: "[c5,c6] [g4,e5] ~@9 e5@2 ~ f5@10, ~@13 [f2,d3,a5]@11", // C Dm
  DJ: "[gb3,bb5,bb6]@2 e6@2 ~ [gb3,c4,bb5,e6] ~@18, eb6 ~@4 bb6@2 ~@17", // Gb Gb7
  DK: "[d2,bb3,c4,gb4] ~@11 [d2,gb3,bb3,c4,gb4] ~@5 [d2,gb3,a3,c4,gb4] ~@5", DL: "[g2,f3,a3,b3,f4] ~@23", DM: "c2/4",
  DN: "[~ [f4,c5]@11 [f2,f3,a3,d4] ~@4 [gb2,eb3,gb3,a3,eb4]@3 ~@3 [eb3,gb5,gb6]@3 d6@2 ~ [eb3,a3,gb5,d6] ~@18, [d5,c6]@12 d3@2 ~@9 d6@2 ~@4 gb6@2 ~@17]/2", // F5 Dm Ebdim Ebm D D7
  DO: "~@2 g5@10 [g2,f3,g3,bb3,f4] ~@5 [ab2,f3,ab3,b3,f4] ~@5, gb5 ~@11, ~ [g2,f3,bb5]@11 ~@12", // Gm7 Fdim Gm7
  DP: "~ ab5@10 ~, ab2@11 ~, g5 ~@11, ~ ab4@23, ~ eb6@21 ~@2", DQ: "~ [gb4,g4,a4]@3 ~ e2@19, ~ f4 ~@22",
  DR: "f2@2 ~@3 [a4,e5,c6] ~@6 c5@3 ~@2 c4@6 ~", DS: "[d2,a3,c4] gb4 ~@22",
  DT: "[[d2,gb3,a3,c4,gb4] ~@5 [d2,gb3,bb3,c4,gb4] ~@6 gb5@3 d3 ~ [eb5,eb6]@3 ~@2 [b1,f3,a3,d4,f4]@3 ~@10 [d5,f5,a5,f6] ~@11]/2", // D7 Daug Eb Bm7b5 Dm
  DU: "[bb1@2 ~@3 [a4,db5,bb5] ~@6 b5 db3@3 ~ [db3,ab3,f5,b5] ~@5 c5@2 ~ c5@20 ~@2, ~@12 [f5,f6]@3 ~@2 f6@2 ~@6 [a2,c4]@23, ~@25 g5@21 ~@2]/2", // A Db7 F Am
  DV: "[d2,gb3,a3,c4,gb4] ~@4 [gb3,c4,bb5,bb6]@4 ~@2 [gb3,c4,bb5,eb6] ~@6 [d2,gb3,a3,c4,gb4] ~@5, ~@5 eb6@2 ~@4 bb6@2 ~@11", // D7 Cm7b5 D7
  DW: "[a2,g3,c4,e4]@3 ~ [bb2,ab3,db4,f4] ~@19", DX: "c4 g4, [a2,g3]", DY: "ab4 a4, [d2,gb3,c4]",
  DZ: "db5 d5, [g2,f3,b3,a4]", EA: "eb5@11 ~ [a4,e5]@2 ~@10, [c3,e3,bb3]@17 ~@7",
  EB: "[f2 ~@5 f2@11 ~ [f2,f3,a3,e4] ~@4 d5@2 ~ e5@20 ~@2, ~@25 [f2,e4,a5]@22 ~]/2", // Fmaj7
  EC: "[bb2,ab3,c4,d4,g4]@2 ~@10 [bb2,a3,c4,d4,g4]@11 ~", ED: "[bb2,ab3,c4,d4,g4]@11 ~ [bb2,ab3,c4,d4,g4]@11 ~",
  EE: "[c3,c4] [f3,f4]", EF: "[bb3,bb4] [eb4,eb5]", EG: "[ab4,ab5] [db5,db6]", EH: "[gb5,gb6] [b5,b6]",
  EI: "[[f4,c6,e6,g6,c7]@3 ~]/3", EJ: "[[c5,f5,a5,c6]@3 ~]/3", EK: "[c5,eb5,ab5,c6]/4", EL: "[c3,c6]@2 [f2,f5] ~@9",
})).s("gm_piano").gain(0.18).pan(0.3)

// chords · piano · soft notes
const piano_soft = note(`<
  ~ A ~@3 B ~@3 C ~@12 D ~@6 E ~@4 F ~ G ~ B ~ H ~@3 I ~@3 J ~ K ~@2 L ~ M@2 N ~@14 O ~ P ~@3 Q ~ R ~ S L ~@2 T ~@7 U ~
  U ~@3 T ~@5 V W@2 X@2 ~@7 Y ~@3 V Z N L ~@2 Z ~ U ~@2 AA AB ~ AC AD AE ~ AF L ~@11 AG@2 ~@4 AH ~@8 AI@2 ~@2 AD ~ AJ
  ~@9 M@2 ~@7 AK ~ AL ~@8 AM ~@20
>`.pickRestart({
  A: "~@23 e3", B: "~ c3@22 ~", C: "c6 ~@5 [ab4,c5] ~@6 c6@3 ~ c6 ~@6, ~@4 [ab4,c5,d5] ~@3",
  D: "~@6 g4 ~@5 [f4,g4,a4,db5,a5]@3 ~@2 a5 ~@6", E: "d6 ~@5 b4 ~@6 d6@3 ~ d6 ~@6, ~@4 [a4,b4,d5,f5] ~@3",
  F: "c6 ~@5 c5 ~@6 c6@3 ~ c6 ~@6, ~@4 [f4,ab4,c5,eb5] ~@3", G: "~@6 bb4 ~@6 d6@3 ~ d6 ~@6, ~@4 [g4,bb4,d5,f5] ~@3",
  H: "c6 ~@5 [a4,c5] ~@6 c6@3 ~ c6 ~@6, ~@4 [g4,a4,c5,eb5] ~@3", I: "~@11 bb3@3 f6@2 ~@8", J: "~ eb2@22 ~",
  K: "~@13 c6@3 ~ c6 ~@6, ~@4 [f4,ab4,c5,eb5] ~@3", L: "~@13 c5 ~@10", M: "[~@23 a3@4 ~@21]/2", N: "~@23 f3",
  O: "bb5 ~@5 g4 ~@6 bb5@3 ~ bb5 ~@6, ~@4 [eb4,g4,bb4,c5] ~@3", P: "ab3 ~@7", Q: "bb3 ~@7", R: "[a3,g5] ~@7",
// … 554 more lines

More by Basie