Strudelify

Ya Gotta Try

Basie

KeyC majorTempo232 bpm
0:00/0:00
// Ya Gotta Try — Basie
// 232 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 170 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(232/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 A Q C R S T U V W J X Y Z AA AB AC AD AE AF D E AG AH V AI J K AJ M AK@2 AL AD B AF R
  AM F AH H AN AO AP AQ@3 AR@2 AS@3 ~ AT AU AV AW AX T U A AI AO AP AY AZ F O BA A Q BB BC AX AG U H AI BD X BE BF F BG
  BH AD BI BJ BK BL T G A BM BN BO BP BQ BR BF BS A BT BU BV S BW BX V BY BZ CA CB@2 CC ~@2 CD CE CF D CG T U CH CI ~@7
  CJ Q CK CL CG CM U CN CO CP CQ AM AR@4 AS@3 CR@3
>`.pickRestart({
  A: "c2@3 c1 e2@4 f2@4 c2@2 ~@2", B: "b1@4 a1@4 g1@4 b1@3 ~", C: "a#1@4 c2@4 d2@3 ~ a#1@3 ~",
  D: "a1@4 b1@4 c#2@3 ~ d#2@3 ~", E: "d2@4 e2@4 f#2@3 ~ g#2@3 ~", F: "~@4 b2@3 g1 d3@4 g3@3 ~, g2@7 ~@9",
  G: "g2@4 a2@4 a#2@3 ~ c#2@3 ~", H: "c2@4 d2@4 e2@3 ~ f#2@3 ~", I: "f2@4 g2@4 a2@3 ~ f2@3 ~",
  J: "e2@4 f#2@4 g#2@3 ~ a#1@3 ~", K: "a1@4 g1@4 f1@4 a#1@3 ~", L: "g2@3 g1 c2@4 d2@4 g2@2 ~@2",
  M: "f#2@3 f#1 f#2@4 g2@4 f#2@2 ~@2", N: "f2@4 g2@4 g#2@3 ~ f2@3 ~", O: "e2@4 e2@3 ~ a1 ~ b2 c3 [c#3,g3]@3 ~",
  P: "d2@4 a2@2 ~ d2 g2@4 d2@2 ~ g2", Q: "b1@3 b0 d#2@4 e2@4 b1@2 ~@2", R: "~@4 c#2@3 a0 e2@4 a2@3 ~, a1@7 ~@9",
  S: "d2@4 c2@4 b1@4 g#2@3 ~", T: "g2@3 g1 b2@4 c3@4 g2@2 ~@2", U: "~@4 a#2@3 g1 d3@4 g3@3 ~, g2@7 ~@9",
  V: "c2@4 a#1@4 a1@4 f#2@3 ~", W: "f2@3 f1 a2@4 a#2@4 f2@2 ~@2", X: "a1@4 b1@4 c2@3 ~ d#2@3 ~",
  Y: "d2@4 e2@4 f#2@3 ~ d#2@3 ~", Z: "g2@3 g1 f2@4 g2@4 g2@2 ~@2", AA: "~@4 a2@3 g1 c3@4 g3@3 ~, g2@7 ~@9",
  AB: "c2@4 c2@3 ~ d#2 ~ f3 f#3 [g3,c#4]@3 ~", AC: "d2@4 a1@2 ~ d2 c#2@4 c#2@3 ~", AD: "c2@4 b1@4 a1@4 c2@3 ~",
  AE: "~@4 d#2@3 b0 f#2@4 b2@3 ~, b1@7 ~@9", AF: "a#1@4 g#1@4 g1@4 a#1@3 ~", AG: "g2@4 a2@4 b2@3 ~ g#2@3 ~",
  AH: "g2@3 g1 a#2@4 c3@4 g2@2 ~@2", AI: "f2@4 e2@4 d2@4 f2@3 ~", AJ: "g2@4 b1@4 c2@3 ~ d#2@3 ~",
  AK: "[f2@4 d#2@4 d2@4 f2@2 ~ e2@5 b1@2 ~ e2 a1@2 ~ d2@4 ~]/2", AL: "g2@4 d2@2 ~ g2!2 ~ a3 a#3 [b3,f4]@3 ~",
  AM: "d2@3 d1 f#2@4 g2@4 d2@2 ~@2", AN: "f2@4 f2@3 ~ f2@4 f2@3 ~", AO: "e2@3 e1 g#2@4 a2@4 e2@2 ~@2",
  AP: "a1@3 a0 c2@4 d2@4 a1@2 ~@2", AQ: "[d2@3 d1 f#2@4 g2@4 d2@2 ~ c2@4 g2@5 g2@6 ~ g1@17]/3",
  AR: "[~@3 g2@5 g2@6 ~ g1@17]/2", AS: "[~@3 g2@5 g2@6 ~ g1@5 g2@8 g1@3 c2@2 ~@15]/3",
  AT: "~@4 e2@3 c1 g2@4 c3@3 ~, c2@7 ~@9", AU: "b1@4 c#2@4 d#2@3 ~ f2@3 ~", AV: "e2@3 e1 g2@4 a2@4 e2@2 ~@2",
  AW: "a1@2 ~ a0 a1@3 ~ a1@2 ~ a0 a1@3 ~", AX: "~@4 f#2@3 d1 a2@4 d3@3 ~, d2@7 ~@9", AY: "g2@4 b1@4 c2@3 ~ g2@3 ~",
  AZ: "f#2@3 f#1 a2@4 b2@4 f#2@2 ~@2", BA: "d2@4 d2@3 ~ g2@4 g2@3 ~", BB: "~@4 g2@3 e1 b2@4 e3@3 ~, e2@7 ~@9",
  BC: "a1@3 ~ a1@3 ~ a1@3 ~ a1@2 ~ a0", BD: "~@4 g#2@3 e1 b2@4 e3@3 ~, e2@7 ~@9", BE: "d2@4 c2@4 b1@4 d#2@3 ~",
  BF: "d2@3 d1 f2@4 g2@4 d2@2 ~@2", BG: "c2@4 g2@2 ~ c2 d#2@4 d#2@3 ~", BH: "d2@4 a1@2 ~ d2 c#2@4 g#1@2 ~ c#2",
  BI: "b1@4 a1@4 g1@4 f2@3 ~", BJ: "e2@4 d2@4 c2@4 a#1@3 ~", BK: "a1@4 a1@3 ~ a1@3 ~ a1@3 ~",
  BL: "d2@4 d2@3 ~ d2@2 ~ d1 g2@3 ~", BM: "f2@4 c2@2 ~ f2 f2@2 ~ f1 f2@2 ~ f1",
  BN: "b1@4 b1@3 ~ e2 ~ f#3 g3 [g#3,d4]@3 ~", BO: "a1@4 a1@2 ~ a1 a1@4 a1@3 ~", BP: "a1@4 g1@4 f#1@4 g2@3 ~",
  BQ: "f#2@4 c#2@2 ~ f#2 c2@3 ~ b1@3 ~", BR: "e2@4 e2@3 ~ e2@2 ~ e1 a1@3 ~", BS: "g2@3 ~ g2@3 ~ g2@2 ~ g1 g2@2 ~ g1",
  BT: "b1@4 f#2@2 ~ b1 b1@2 ~ b0 e2@2 ~ e1", BU: "e2@4 f#2@4 g2@3 ~ a#1@3 ~", BV: "a1@4 e2@2 ~ a1 a1@4 a1@3 ~",
  BW: "g2@4 g2@3 ~ g2@2 ~ g2@3 ~ g1", BX: "g2@3 ~ g2@3 ~ g2@4 g2@3 ~", BY: "f2@4 f2@3 ~ d2@2 ~ d1 c2@3 ~",
  BZ: "b1@4 f#2@2 ~ b1 e2@4 b1@2 ~ e2", CA: "a1@4 a1@3 ~ a1@3 ~ d2@2 ~ d1",
  CB: "[~@4 f#2@3 d1 a2@4 d3@2 ~ c2@5 g2@2 ~ c2 g#2@2 ~ d2@4 ~, d2@7 ~@25]/2", CC: "d2@2 ~ d1 g2@4 d2@2 ~ g2 c2@3 ~",
  CD: "c2@4 c2@3 ~ c2@2 ~ b1@4 ~", CE: "b1@4 c#2@4 d#2@3 ~ b1@3 ~", CF: "a#1@4 f2@2 ~ a#1 a#1@2 ~ a1@4 ~",
  CG: "d2@4 d2@3 ~ d2@2 ~ g2@4 ~", CH: "c2@4 c2@2 ~ f#2@5 c#2@2 ~ f#2", CI: "f2 ~@7",
  CJ: "c2@4 g2@2 ~ c2 c2@2 ~ b1@3 ~ b0", CK: "a#1@4 f2@2 ~ a#1 a#1@2 ~ a1@3 ~ a0", CL: "a1@4 g1@4 f1@4 d#2@3 ~",
  CM: "g2@4 f2@4 e2@4 g#2@3 ~", CN: "c2@4 g2@2 ~ f#2@2 ~ g#3 a3 [a#3,e4]@3 ~", CO: "f2@4 c2@2 ~ f2 d2@3 ~ c2@3 ~",
  CP: "b1@4 b1@3 ~ e2@4 e2@3 ~", CQ: "a1@4 e2@2 ~ a1 a1@3 ~ d2@3 ~", CR: "[~ f2@3]/3",
})).s("gm_acoustic_bass").gain(0.35).pan(0.4)

// chords · piano
const piano = note(`<
  A@4 B@2 C@2 D@2 E@2 F G@2 H@2 I@2 J K@2 L@2 M@2 N@2 O P@3 Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI T AJ AK AL AM
  AN AO AP AQ AR@2 AS@2 AT@3 ~ AU AV AW AX AY AZ W BA BB BC BD BE BF BG BH BI AU BJ BK BL BM BN BO BP AU BQ BR U BS BT
  BU BV BB BW BX BY BZ BN CA CB CC CD CE CF CG CH CI CJ AU CK BK CL CM CN CO CP CQ@2 CR CS CT CU ~@2 CV CW CX CY CZ DA
  DB DC DD ~@7 DE DF DG CY DH BT DI DJ DK DL DM DN DO@2 DP@2 DQ@3 DR@3
>`.pickRestart({
  A: "[d#5@2 ~ e4 [g4,e5]@3 ~ b5@3 c3 [b3,e4,g4,d5]@2 ~@10 [a3,d#4,f#4,c#5]@2 ~ [a3,d#4,f#4,c#5] a5@2 ~@2 [d3,g#3]@10 ~@2 g#3@2 ~ g4 ~@3 [g3,c#4,f#4,b4] ~@4 [g3,c#4,f#4,b4]@7 g#5, b3@10 ~@22 [d4,g4,c5]@13 ~ d4@2 ~@16, ~@7 d5@4 a5@2 ~@2 b5@12 ~@4 e5@22 ~@11, ~@43 d3@4 ~@17]/4", // C Em7 D#m7b5 Ddim Gmaj7 Csus2
  B: "[a5@2 ~ [f#3,c4,e4,a4] e5@2 ~@2 e5@3 d5@2 ~@11 [f3,b3,e4,a4]@2 ~ [f3,b3,e4,a4] ~@3 c#6, ~@8 [f#3,c4,e4,a4]@7 e5@13 ~@4]/2", // F#m7b5 Fmaj7 F#m7b5
  C: "[d6@2 ~@2 a5@2 ~@2 [f3,a#3,d4,g4,a5]@3 [f3,a#3,d4,g4] ~@7 [e3,a3,a#3,d4] ~@7 g5@5, ~@11 g5@2 ~@2 a5@11 ~@6, ~@24 [e3,a3,a#3,d4]@7 ~]/2", // Gm7 Dsus2
  D: "[e5@7 ~ [e3,g3,a3,c4]@2 ~ [e3,g3,a3,c4] ~@7 [g#3,d4,f4,c5] ~@8 b4@2 ~@2, ~@7 d5@13 ~@3 e5@5 ~@4, ~@24 [g#3,d4,f4,c5]@7 ~]/2", // Am7 Dm7b5
  E: "[[c3,c5,d5]@7 ~@6 c4@2 e4 ~@3 [c4,e4,a4] ~@4 c-1@4 g5 ~@3, [c4,e4]@12 a3@3 ~@9 [c4,e4,a4]@7 ~, a3@10 ~ c3@5 ~@3 c-1@4 ~@9, ~@7 c5@12 ~@4 a5@5 ~@4]/2", // Csus2 Am C Am
  F: "~@3 [f#3,d4,a4] ~@4 [f#3,d4,a4]@7 ~, e5@7 d5@9, ~@3 c-1@4 ~ c-1@4 ~@4", // D
  G: "[d3@8 e5@3 ~@4 f4 ~@3 [g3,b3,d4,e4] ~@5 g3@3 ~@4, [d4,f4,c5]@12 [g#3,d5]@2 g5@17 ~, g#3@10 ~ d3@5 ~@16, ~@13 d4@2 ~@9 [c#4,e4,c#5,e5,a5]@3 ~@5]/2", // Em7 Dm7 G#dim A
  H: "[d3@2 ~ [f3,c4,d4,a4]@2 ~@3 d5@2 ~ [f3,b3,d#4,g#4,e5] ~@7 [e4,b5] g4@3 a5 b5@2 ~ [c3,a5] [b3,e4,g4,d5]@2 ~ b5, ~@15 b5@2 ~@6 d5@4 ~@5, ~@8 b3@5 ~@3]/2", // Dm7 Fm7b5 E5 F Em7
  I: "[~@3 b5@2 ~@2 a5 b5 ~@3 [a3,a5]@2 ~ f#4 ~@8 [g#3,d4,f4,c5]@2 ~ [g#3,d4,f4,c5] ~@4, [d#4,f#4,c#5]@13 ~ d#4@2 ~@16, [d#3,a3]@10 ~ d#3@4 e5@16 ~]/2", // A Dm7b5 D#m7 D#dim
  J: "[c#3,g3]@10 ~@2 g3@2 ~ [e4,g#5], [c#4,e4,b4]@13 ~ c#4@2, ~@11 c#3@4 ~", // C#dim E C#m7
  K: "[a5@2 ~ [f#3,c4,e4,b4,e5] ~@3 e5 ~@3 e5 d5@2 ~@5 [f3,b3,e4,a4] ~@4 [f3,b3,e4,a4]@7 c#6, ~@8 [f#3,c4,e4,b4]@7 e5@14 ~@3]/2", // Esus2 Fmaj7 Esus2
  L: "[d6@2 ~ a5 ~@3 a5 ~@3 a5 [a#3,g5]@2 ~ g4 ~@3 [e3,a3,a#3,d4] ~@7 g5@5, [f4,g4,d5]@13 ~ f4@2 ~@8 [e3,a3,a#3,d4]@7 ~, [f3,a#3]@10 ~ f3@4 a5@11 ~@6]/2", // D# Dsus2 G7 Dsus2 A#5
  M: "[~@3 [e3,a3,c4,g4] ~@4 [e3,a3,c4,g4]@7 ~ [d3,g#3]@10 ~@2 g#3@2 ~ [f4,b4], e5@6 ~ d5@12 ~@8 [d3,e5]@4 ~, ~@16 [d4,f4,b4]@13 ~ d4@2]/2", // Am7 Ddim Fdim Dsus2 Bdim
  N: "[d5@3 [g3,b3,c4,e4,c5] ~@3 e5 ~@3 g5@2 ~@6 [f#3,c4,e4,b4] ~@8 a5@2 ~@2, ~@8 [g3,b3,c4,e4]@7 b5@13 ~@4, ~@24 [f#3,c4,e4,b4]@7 ~]/2", // Cmaj7 Esus2 Cmaj7 Esus2
  O: "c6@2 ~ [f4,c6] a4@3 c6 c6@2 ~ g2 [c4,f4,a4,d5,c6]@2 ~@2, c4@5 ~@3, ~@7 d5@4 ~@5", // F5 Dm7
  P: "[c6@2 ~ [d#3,a3,c4,f#4] c6@2 ~@2 c6@2 ~ c6 ~@7 [e3,a3,c4,g4] ~@4 d#3@2 ~ [g3,c#4,f4,c5]@2 ~@6 [f#3,g#3,c4,e4,b4] ~@4 c#3@2 ~ [f3,g#3,b3,d#4]@2 ~@3, ~@8 [d#3,a3,c4,f#4]@7 c6@8 a#5@8 a5@8 g#5@9]/3", // D#dim Am7 Csus4 E Fm7b5 D#dim
  Q: "~@3 [e3,g3,b3,d4] ~@4 [e3,g3,b3,d4]@7 ~", R: "~@3 [a3,d#4,g#4,c#5] ~@4 [a3,d#4,g#4,c#5]@7 ~",
  S: "~@3 [g#3,c4,d4,f4] ~@4 [g#3,c4,d4,f4]@7 ~", T: "~@12 g3@3 f#4, [f#4,b4]@13 ~@3, ~@11 c#3@4 ~",
  U: "~@12 c4@3 a4, [a4,e5]@13 ~@3, ~@11 f#3@4 ~", V: "~@3 f4 a4@3 d5@4 ~ [b3,f4,a4,d5]@2 ~@2, b3@5 ~@3",
  W: "~@8 [f3,a#3,d4,a4]@2 ~ [f3,a#3,d4,a4] ~@4", X: "~@12 a#3@3 a4, [a4,d5]@13 ~@3, ~@11 e3@4 ~",
  Y: "a3@10 ~@3 e4@2 g4, [e4,g4,c5]@12 a3@3 ~, e3@8 ~@3 e3@5", Z: "~@12 g#3@3 f4, [f4,c5]@13 ~@3, ~@11 d3@4 ~",
  AA: "~@12 a3@3 e4, [e4,c5]@13 ~@3, ~@11 c3@4 ~", AB: "~@3 [a3,c4,e4] ~@4 [a3,c4,e4]@7 ~, ~@3 c-1@4 ~ c-1@4 ~@4",
  AC: "~@8 [c-1,f#3,d4,a4]@3 [f#3,d4,a4] ~@4, ~@11 c-1@4 ~", AD: "~@3 [d3,f3,g#3,c4] ~@4 [d3,f3,g#3,c4]@6 ~@2",
  AE: "~@3 [g3,d4,e4,b4] ~@4 [g3,c#4,f4,a#4]@2 ~ [f3,c4,e4,a4]@4 ~", AF: "~@3 [f3,a3,c4,d4] ~@4 [f3,f4,a4,e5]@7 ~",
  AG: "~@3 [e3,b3,d4,g4] ~@4 [e3,b3,d4,g4]@7 ~", AH: "~@8 [a3,d#4,g#4,c#5]@2 ~ [a3,d#4,g#4,c#5] ~@4",
  AI: "~@8 [g#3,c4,d4,g4]@2 ~ [g#3,c4,d4,g4] ~@4", AJ: "c4@10 ~@3 f#4@2 a4, [f#4,a4,e5]@12 c4@3 ~, f#3@8 ~@3 f#3@5",
  AK: "~@8 [f3,b3,e4,a4]@2 ~ [f3,b3,e4,a4] ~@4", AL: "~@3 [f3,g3,a#3,d4] ~@4 [f3,g3,a#3,d4]@7 ~",
  AM: "~@3 [e3,a#3,d4,g4] ~@4 [e3,a#3,d4,g4]@7 ~", AN: "~@3 [e3,g3,a3,c4] ~@4 [d3,d4,f4,c5]@7 ~",
  AO: "~@8 [g#3,d4,f#4,c#5]@2 ~ [g#3,d4,f#4,c#5] ~@4", AP: "g3@10 ~@3 c4@2 e4, [c4,e4,b4]@12 g3@3 ~, c3@8 ~@3 c3@5",
  AQ: "~@3 [f#3,c4,e4,b4] ~@4 [f#3,c4,e4,b4]@6 ~@2", // Esus2
  AR: "[c3@2 ~ [c-1,g1,g2]@5 [g1,g2]@6 ~@14 c4@3 ~, ~@3 [e3,c4,g4]@2 ~@3 a#4 ~@5 [f3,c4,e4,a4]@2 [a4,d5]@13 ~@3, ~@15 [g1,g2]@17, ~@27 f3@4 ~]/2", // C5 G C Fmaj7 D5 G
  AS: "[~@3 [c-1,g1,g2]@5 ~@3 [f3,a3,c4,d4]@4 ~@4 [f3,a3,c4,d4] ~@4 [f3,a3,c4,d4]@6 ~@2, ~@3 [e3,g3,c4] ~@4 [g1,g2]@6 ~ [g1,g2]@17]/2", // C5 Dm7 C G
  AT: "[c3@2 ~ [c-1,g1,g2]@5 [f#3,c4,d#4,a#4]@2 ~ [f3,c4,e4,a4]@4 ~ a4 f4 e4 c4 ~@3 [f3,a3,c4,d4] ~@4 g2@3 c3@2 ~@15, ~@3 [e3,g3,c4]@2 ~@3 [g1,g2]@6 ~ [g1,g2]@5 [g1,g2]@8 ~@20]/3", // C5 Cm7b5 Fmaj7 Dm7 C G
  AU: "~@8 [e3,a3,c4,g4]@2 ~ [e3,a3,c4,g4] ~@4", AV: "~@12 a3@3 f#4, [f#4,c#5]@13 ~@3, ~@11 d#3@4 ~",
  AW: "~@8 [g3,b3,d4,e4]@2 ~ [g3,b3,d4,e4] ~@4", // Em7
  AX: "[g3,c#4,f#4,b4]@3 ~@3 [g3,a3,c#4,f4]@2 f#4 c#4 a3 g3 [g3,c#4,f4,a#4]@3 ~", // Gmaj7 C#aug Gm7b5
  AY: "~@3 [f#3,a3,c4,e4] ~@4 [f#3,a3,c4,e4]@7 ~", AZ: "~@3 [f3,a3,b3,d4] ~@4 [f3,a3,b3,d4]@7 ~",
  BA: "~@8 [e3,a#3,d4,a4]@2 ~ [e3,a#3,d4,a4] ~@4", BB: "~@12 a3@3 g4, [g4,c5]@13 ~@3, ~@11 e3@4 ~",
  BC: "~@3 [g#3,d4,f4,c5] ~@4 [g#3,d4,f4,c5]@7 ~", BD: "~@3 [c4,e4,a4] ~@4 [c4,e4,a4]@7 ~, ~@3 c-1@4 ~ c-1@4 ~@4",
  BE: "a3@10 ~@3 c4@2 e4, [c4,e4,c5]@12 a3@3 ~, c3@8 ~@3 c3@5", BF: "~@3 [a3,e4,g#4,c#5] ~@4 [a3,e4,g#4,c#5]@7 ~",
  BG: "~@3 [b3,f4,a4,e5] ~@4 [b3,f4,a4,e5]@7 ~", BH: "~@3 [g3,d4,e4,b4] ~@4 [c#3,c#4,f4,a4]@7 ~",
  BI: "[c4,a4,e5]@3 c4 f4 ~ a4 e5 [f3,f4,g#4,d#5]@7 ~", BJ: "~@12 a3@3 g#4, [g#4,c#5]@13 ~@3, ~@11 d#3@4 ~",
  BK: "~@3 [g3,b3,d4,e4] ~@4 [g3,b3,d4,e4]@7 ~", // Em7
  BL: "[g3,c#4,f#4,b4]@3 ~ [g3,b3,c#4,f#4]@3 ~ [g3,c#4,f#4,b4]@3 ~ [g3,a#3,c#4,f4]@3 ~", // Gmaj7 Gm7b5
  BM: "~@8 [f#3,c4,e4,b4]@2 ~ [f#3,c4,e4,b4] ~@4", BN: "~@3 [f3,b3,e4,a4] ~@4 [f3,b3,e4,a4]@7 ~",
  BO: "~@3 f4 g4@3 d5@4 ~ [a#3,f4,g4,d5]@2 ~@2, a#3@5 ~@3", // Gm7
  BP: "a#3@10 ~@3 e4@2 a4, [e4,a4,d5]@12 a#3@3 ~, e3@8 ~@3 e3@5", BQ: "~@8 [g#3,d4,f4,c5]@2 ~ [g#3,d4,f4,c5] ~@4",
  BR: "~@3 [g3,b3,c4,e4] ~@4 [g3,b3,c4,e4]@7 ~", BS: "~@3 [f3,c4,e4,a4] ~@4 [f3,c4,e4,a4]@7 ~",
  BT: "~@12 b3@3 a4, [a4,e5]@13 ~@3, ~@11 f3@4 ~", // A5
  BU: "~ a3@3 ~@5 g3@3 ~@4, [e4,g4,e5,g5,c6]@3 ~@5 [c#4,f4,c#5,f5,c6]@3 ~@5", // C C#maj7
  BV: "~ c4@3 ~@7 [f3,b3,d#4,g#4] ~@4, [f#4,a4,f#5,a5,e6]@3 ~@13", // Fm7b5 F#m7
  BW: "a3@10 ~@3 d#4@2 g#4, [d#4,g#4,c#5]@12 a3@3 ~, d#3@8 ~@3 d#3@5", BX: "~@3 [g3,d4,e4,b4] ~@4 [g3,d4,e4,b4]@7 ~",
  BY: "~ g3@3 ~@4 [g3,c#4,f4,b4]@3 ~ [g3,c#4,f4,a#4]@3 ~, [c#4,f4,c#5,f5,a5]@3 ~@13", // G7 Gm7b5 C#aug
  BZ: "~ c4@3 ~@6 [f#3,b3,c4,e4]@2 ~@2 [f3,a3,b3,e4]@2, [f#4,a4,f#5,a5,e6]@3 ~@13", // Esus2 Fmaj7 F#m7
  CA: "~@12 a#3@3 a4, [a4,d5]@13 ~@3, ~@11 f3@4 ~", CB: "~@12 a#3@3 g4, [g4,d5]@13 ~@3, ~@11 e3@4 ~",
  CC: "~@3 [e3,a3,c4,g4] ~@6 [e3,a3,c4,g4]@2 [d3,a3,c4,f4]@3 ~", // Am7 Dm7
  CD: "~ a3@3 ~@4 e3@2 ~ [g#3,d4,f#4,b4]@2 ~@3, [d4,f#4,d5,f#5,b5]@3 ~@13", // G#m7b5 Bm
  CE: "~@3 [f3,b3,d4,g#4] ~@4 a2@2 ~ [f#3,c4,e4,a4]@2 ~@3", CF: "~@8 [f#3,c4,e4,a4]@2 ~ [f#3,c4,e4,a4] ~@4",
  CG: "~@3 [a3,f4,g#4,c#5] ~@4 [a3,c#4,e4,f#4]@3 ~@3 [a3,d#4,f#4,d5]@2", // C# F#m7 D
  CH: "~ g3@3 ~@6 [g3,b3,d4,e4]@2 [g3,c#4,f4,a#4]@3 ~, [d#4,e4,d#5,e5,b5]@3 ~@13", // Em7 Gm7b5 Emaj7
  CI: "~@3 [f3,a3,c4,d4] ~@4 [f3,a3,c4,d4]@7 ~", // Dm7
  CJ: "[f3,a3,b3,d4]@3 ~ [e3,g3,a#3,c#4]@3 ~ [f3,a3,c4,d4]@3 ~ [f3,a3,b3,e4]@3 ~", // Bm7b5 Edim Dm7 Fmaj7
  CK: "b2@2 ~ [a3,c#4,d#4,f#4]@2 ~@3 [a3,c#4,d#4,f#4]@3 ~ [g3,d4,e4,b4]@3 ~", // D#m7b5 Em7
  CL: "a2@2 ~ [g3,c#4,f#4,b4]@2 ~@4 g3@3 ~@4, ~@8 [c#4,e4,c#5,e5,a#5]@3 ~@5", // Gmaj7 A#dim
  CM: "~@12 c4@3 b4, [b4,e5]@13 ~@3, ~@11 f#3@4 ~", CN: "[f3,f4,a4,d5]@7 ~@4 [f3,a#3,d4,a4]@4 ~",
  CO: "[f3,a#3,d4,a4]@3 ~ [f3,a3,a#3,d4]@3 ~@4 [f3,a#3,d4,a4] ~@4", CP: "~@3 [e3,a#3,d4,a4] ~@4 [e3,a#3,d4,a4]@7 ~",
  CQ: "[~ a3@3 ~@4 a4 f4 e4 c4 ~@2 [f3,d4,a4]@2 ~ a3@3 ~@7 [g#3,d4,f#4,c#5] ~@4, [e4,g4,e5,g5,c6]@3 ~@11 c-1@4 ~@14, ~@16 [d4,f#4,d5,f#5,b5]@3 ~@13]/2", // Dm C#sus4 C Bm
  CR: "~ g3@3 ~@4 e4 c4 b3 g3 [f#3,c4,e4,a4]@3 ~, [c4,e4,c5,e5,b5]@3 ~@13", // F#m7b5 Cmaj7
  CS: "c4@10 ~@2 c4@3 ~, [f#4,b4,e5]@13 ~@3, f#3@8 ~@3 f#3@4 ~", // Esus2
  CT: "~@3 [e3,g3,c4] ~@4 [f#3,a#3,c4,f4]@2 ~ [f3,a3,c4,e4]@4 ~, ~@3 c-1@4 ~@9", // C F#maj7 Fmaj7
  CU: "[f3,a3,c4,e4]@3 ~ [f3,f4,a4,d5]@7 ~ g4 ~@3", CV: "~@3 [e3,a3,c4,g4] ~@4 [e3,a3,c4,g4]@2 ~ [a3,c#4,d#4,g4]@4 ~",
  CW: "~@3 [a3,c#4,d#4,g#4] ~@4 [a3,c#4,d#4,g#4]@7 ~", // Amaj7
  CX: "~ g#3@3 ~@4 [g#3,d4,g4,c5]@2 ~@4 [g3,c#4,f#4,b4]@2, [d4,f4,d5,f5,c6]@3 ~@13", // G#maj7 Gmaj7 Dm7
  CY: "~@8 [g3,b3,c#4,f#4]@2 ~ [g3,b3,c#4,f#4] ~@4", CZ: "~@3 [f#3,a3,c4,e4] ~@7 [f3,b3,d4,a4]@4 ~",
  DA: "~@8 [f3,a3,b3,e4]@2 ~ [f3,a3,b3,e4] ~@4", DB: "~@3 [f3,a#3,d4,a4] ~@4 [f3,a#3,d4,a4]@7 ~",
  DC: "c3@2 ~ [e3,a#3,d4,a4]@2 ~@2 [e3,e4,g4,d5]@8 ~", DD: "[e3,a3,c4,g4]@3 ~@13",
  DE: "c3@2 ~ [e3,a3,c4,g4]@2 ~@3 [e3,a3,c4,g4]@2 ~ [a3,c#4,d#4,g#4]@4 ~", // Am7 Amaj7
  DF: "~@12 a3@3 g4, [g4,c#5]@13 ~@3, ~@11 d#3@4 ~", DG: "[d3,d4,f4,c5]@7 ~ f4 ~@2 [g3,c#4,f#4,b4]@4 ~",
  DH: "d3@2 ~ [f#3,c4,e4,a4]@2 ~@3 [f#3,a3,c4,e4]@2 ~ [f3,b3,e4,a4]@4 ~", // F#m7b5 Fmaj7
  DI: "~@3 [f3,a#3,d4,g4] ~@4 [f3,a#3,d4,g4]@7 ~", DJ: "[e3,e4,g4,d5]@6 ~ [e3,e4,a4,c#5]@8 ~",
  DK: "[e3,e4,g4,c5]@7 ~@3 [f3,a3,c4,d4]@2 [c-1,f3,d4,a4]@4", DL: "[d3,d4,f#4,b4]@7 ~ [d3,d4,f#4,c#5]@7 ~",
  DM: "a2@2 ~ [g3,b3,c4,e4]@2 ~@3 [g3,a3,c4,e4]@3 ~ [f#3,g#3,c4,e4,b4]@3 ~", // Cmaj7 Am7 E
  DN: "~@3 [f#3,g#3,c4,e4,b4] ~@4 [f#3,g#3,c4,e4,b4]@6 ~@2", // E
  DO: "[~ g3@2 [g1,g2]@5 [f#3,c4,f4,a#4]@2 ~ [f3,a3,c4,e4]@4 ~@4 [f3,a3,c4,e4] ~@4 [f3,a3,c4,e4]@6 ~@2, [e4,g4,e5,g5,c6]@3 ~@5 [g1,g2]@6 ~ [g1,g2]@17]/2", // G F#maj7 Fmaj7 C G
  DP: "[~ g3@2 [g1,g2]@5 [f#3,c4,f4,a#4]@2 ~@14 [f3,c4,d4,a4]@2 ~ [f3,c4,d4,a4] ~@4, [e4,g4,e5,g5,c6]@3 ~@5 [g1,g2]@6 [f3,c4,e4,a4]@2 ~@16, ~@15 [g1,g2]@17]/2", // G F#maj7 Dm7 C G Fmaj7 G
  DQ: "[c3@2 ~ [c-1,g1,g2]@5 [f#3,c4,f4,a#4]@2 ~ [f3,c4,e4,a4]@4 ~ [f3,a3,c4,d4]@3 ~ [c4,a4,d5]@3 c4 f4 ~ a4 d5 g2@3 c3@2 ~@7 [d5,f5,c6]@3 ~@5, ~@3 [e3,g3,c4]@2 ~@3 [g1,g2]@6 ~ [g1,g2]@5 [g1,g2]@8 ~@20]/3", // C5 F#maj7 Fmaj7 Dm7 D7 Dm7 C G
  DR: "[[d#5,f#5,c6]@3 ~@4 [e5,g5,c6]@2 ~@3 f2@36]/3", // Cdim C
})).s("gm_piano").gain(0.42)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@35 A B C ~ D ~ E F ~@4 G ~@3 A ~@4 H ~@4 I ~@7 J ~@6 K ~@5 L M ~ J ~@4 C ~@4 B ~ N ~@2 K ~@5 O D ~@12 B P ~@7 Q ~@9
  R ~@9 J S ~@2 N ~ T U V ~@7 W ~@4
>`.pickRestart({
  A: "[c#3,g3]@5 ~@2 c#4, c#4@3 ~", B: "[f#3,c4]@5 ~@2 f#4, f#4@3 ~", C: "~@11 g2 ~@4", D: "[e3,a#3]@5 ~@2 e4, e4@3 ~",
  E: "[d3,g#3]@5 ~@2 d4, d4@3 ~", F: "[c3,a3]@5 ~@2 c4, c4@3 ~", G: "~@8 b3@7 ~", H: "~@8 a3@7 ~",
  I: "[f3,c4]@5 ~@3, f4@3 ~", J: "[d#3,a3]@5 ~@2 d#4, d#4@3 ~", K: "[e3,a3]@5 ~@2 e4, e4@3 ~", L: "~@8 g3@7 ~",
  M: "f4@3 ~@5 b3@7 ~", N: "[f3,b3]@5 ~@2 f4, f4@3 ~", O: "[f3,a#3]@5 ~@2 f4, f4@3 ~", P: "b3@7 ~@9", Q: "~@4 c4@7 ~@5",
  R: "~@7 a#3@8 ~", S: "g#3@7 ~@9", T: "a#3@6 ~ a#3@8 ~", U: "a3@7 ~@9", V: "a3@7 ~ g#3@7 ~", W: "~@4 f4@3 ~@9",
})).s("gm_piano").gain(0.24)

// other · alto sax
const alto_sax = note(`<
  ~@42 A@2 ~@12 B C D@2 ~@5 E ~@2 F G H I@2 ~@11 F G H I@2 ~@11 J@2 K ~ L@3 M N O@2 P@3 ~ Q@3 R S T U@2 ~ V W X Y ~ Z
  ~@9 AA AB ~@14 AA AC W X Y ~@5 AD@2 AE@3
>`.pickRestart({
  A: "[~@15 c4@17]/2", B: "c4@7 c4@9", C: "~@4 d4@7 [b3,c4,c#4] g#3@2 ~@2, ~@12 a#3 ~@3",
  D: "[a3@2 ~@2 a3@2 ~@2 c4@3 e4@2 ~@2 e4@9 ~@8]/2", E: "~@4 d4@5 [c4,c#4] [a#3,b3] [g#3,a3] g3@3 a3",
  F: "~@2 a3@4 a3 ~", G: "a3@7 a3@9", H: "~@2 a#3@4 a#3 ~", I: "[g3@2 ~@2 g3@2 ~@2 g3@2 ~ g3@2 ~@2 f#3@17]/2",
  J: "[~@4 e4@8 d4@2 ~ c#4@2 ~@15]/2", K: "~@4 g4@6 ~@2 d4@2 ~ c#4, ~@11 e4@2 ~@3",
  L: "[f4@3 ~ f4@3 f#4@5 e4@3 ~ e4@3 f4@5 e4@3 ~ e4@3 f4@13 f4@2 ~ a#3, ~@3 f#4@2 ~@10 f4@2 ~@10 f4@2 ~@19]/3",
  M: "~@15 e4", N: "~@3 e4@9 d4@2 ~@2", O: "[b3@7 b3 ~@3 d4@2 ~@3 g#3@4 b3@3 a3@2 ~@7, ~@15 d4@2 ~@15]/2",
  P: "[~@15 f#4@5 f4@2 ~ f4 e4@2 ~ d#4@2 ~@2 e4@5 d#4@2 ~ d#4 d4@2 ~ c#4@2 ~ c4@2]/3",
  Q: "[~@4 c#4@2 ~@2 d4@2 ~ b3@2 ~@2 e4@13 d4@3 c#4@2 ~@14 g4]/3", R: "~@3 g4@5 e4@2 ~@2 e4@2 ~@2",
  S: "c#4@7 c#4@2 ~@6 f4", T: "f#4@3 c4@5 f#4@3 c4@5",
  U: "[f4@3 b3@5 f4@3 b3@2 ~@2 f4@5 a#3@3 a3 a#3@2 ~ a#3@2 ~ a#3@2]/2", V: "~@8 c4 ~@3 d4 ~@3", W: "f4@7 f#4@4 ~@5",
  X: "~@4 c4@2 ~ b3 c4@3 e4 g4@3 g#4", Y: "~@3 g#4@8 ~@5", Z: "~@4 d4@6 [c4,c#4] [a#3,b3] g3@3 a3", AA: "~@11 f#4@5",
  AB: "g4 ~@7", AC: "g4@2 ~@6 c4 ~@3 d4 ~@3", AD: "[~@4 d4@5 [c4,c#4] [a#3,b3] [g#3,a3] g3@3 a3@2 ~@15]/2",
  AE: "[~ g4@3]/3",
})).s("gm_alto_sax").gain(0.35).pan(0.4)

// other · tenor sax
const tenor_sax = note(`<
  ~@32 A@4 B@2 C@3 D E@2 ~ F@7 B@2 G@2 H I J@8 ~@34 K@2 L M N@3 O P Q@2 R@3 ~ S@3 T U V W@2 ~ X Y Z AA@3 ~ AB@6 AC@3 AD
  ~@6 AB@6 AC@3 AE Y Z AF@8 AG@3
>`.pickRestart({
  A: "[d#3@2 ~@2 e3@2 ~@2 b3@3 a3@2 ~@2 b3@5 b3@3 a3 b3@2 ~ a3@2 ~@2 e3@21 ~@3 a3@5 g#3@2 ~@2]/4",
  B: "[a3@2 ~@2 e3@3 d#3 e3@3 d3@2 ~@2 e3@8 d4@5 c#4@2 ~@2]/2", C: "[d4@2 ~@2 a3@3 g#3 a3@2 ~ g3@2 ~@2 a3@33]/3",
  D: "g#3", E: "[~@7 a3 a3@3 a3@2 ~@2 b3@17]/2",
  F: "[~@3 d4@5 b3@3 c4@2 ~@2 g4@25 d#3@2 ~ e3@2 ~@2 b3@9 b3@2 ~ a3@2 ~@2 b3@9 b3@2 ~ a3@2 ~@2 e3@21 ~@3 a3@5 g#3@2 ~@2]/7",
  G: "[d4@2 ~@2 a3@3 g#3 a3@2 ~ g3@2 ~@2 a3@17]/2", H: "a3@7 a3@9", I: "~@4 b3@7 [g#3,a3,a#3] e3@2 ~@2, ~@12 g3 ~@3",
  J: "[g3@2 ~@2 g3@2 ~@2 g3@3 c4@2 ~@2 c4@9 g#3@3 a3@2 ~@2 c4@5 c4@2 ~ c4 c4@2 ~ c4@2 ~@2 c4@7 b3 [g3,g#3,a3,a#3] f#3 ~@2 g3 a3@3 c4@5 c4@2 ~ c4 c4@2 ~ c4@2 ~@2 c4@7 b3 [g3,g#3,a3,a#3] f#3 ~@2 g3 a3@3 c4@5 c4@2 ~ c4 c4@2 ~ c4@2 ~@2 c4@5 c4@5 [a#3,b3] [g#3,a3] [f#3,g3] f3@3 e3]/8", // Bmaj7 Amaj7 Gmaj7
  K: "[~@4 d4@8 a3@2 ~ a3@2 ~@15]/2", L: "~@4 d4@6 ~@2 a#3@2 ~ g3, ~@11 d4@2 ~@3", M: "~@6 e4 ~",
  N: "[d#4@3 ~ d#4@3 e4@5 c#4@3 ~ c#4@3 d4@5 c#4@3 ~ c#4@3 d4@13 d4@2 ~ g3, ~@3 e4@2 ~@10 d#4@2 ~@10 d4@2 ~@19]/3",
  O: "~@15 c4", P: "~@3 c4@9 c4@2 ~@2", Q: "[a3@7 g#3 ~@3 b3@2 ~@3 f3@4 g#3@3 f#3@2 ~@7, ~@15 b3@2 ~@15]/2",
  R: "[~@15 c#4@5 c#4@2 ~ c#4 c#4@2 ~ c4@2 ~@2 b3@5 b3@2 ~ b3 b3@2 ~ a#3@2 ~ a3@2]/3",
  S: "[~@4 a#3@2 ~@2 c4@2 ~ a3@2 ~@2 d4@13 a3@3 a3@2 ~@14 e4]/3", T: "~@3 e4@5 d4@2 ~@2 d4@2 ~@2",
  U: "a#3@7 a#3@2 ~@6 d#4", V: "e4@3 a3@5 e4@3 a3@5", W: "[d4@3 a3@5 d4@3 a3@2 ~@2 d4@5 g3@3 f#3 g3@2 ~ g3@2 ~ g3@2]/2",
  X: "~@8 a3 ~@3 a3 ~@3", Y: "d4@7 d4@2 [c4,c#4] [a#3,b3] [g#3,a3] e3@2 ~@2", Z: "~@4 a3@2 ~ g#3 a3@3 c4 e4@3 d#4",
  AA: "[~@3 d#4@8 g#3 a3@3 c4@5 c4@2 ~ c4 c4@2 ~ c4@2 ~@2 c4@2 ~@3 c4@5 [a#3,b3] [g#3,a3] [f#3,g3] f3@3 e3]/3", // Bmaj7 Amaj7 Gmaj7
// … 349 more lines

More by Basie