Strudelify

Straight Ahead

Count Basie

KeyF majorTempo220 bpm
0:00/0:00
// Straight Ahead — Count Basie
// 220 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 4 "Piano" named as a piano, played on piano (its trombone patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/4034836; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 134 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(220/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.

// other · trumpet · "Contrabass"
const trumpet = note(`<
  ~ A B C D E F G H I J K D L M N O P Q R S T U V W X Y Z AA AB@2 AC AD@3 AE AF L AG N AH AI Q AG AJ@3 AK AL AM AN AO
  AP@2 AQ AR AS AT AU AV AW AX AY AZ@2 BA BB AT AU AX BC BD BE AG BF BG BH BI@4 BJ BK@3 BL BM@3 BN BO BP BQ BR@2 BS BT I
  BU BV BW BX BY BZ@2 CA CB CC CD BV CE CC CF CG@2 CH CI CJ CE CK CF CL CM CN CO@2 CP CQ ~@2 CR CS@3
>`.pickRestart({
  A: "c2!2 a1 gb2", B: "f2@4 c2@3 f2 gb2@4 gb2@4", C: "c2@3 c1 e2@4 f2@4 c2@2 ~@2", D: "g2@4 d2@3 g2 c2@4 g2@3 c2",
  E: "f2 e2 d2 gb2", F: "f2 g2 ab2 f2", G: "~@4 g2@3 e1 b2@4 e3@4, e2 ~", H: "~@4 gb2@3 eb1 a2@4 eb3@4, eb2 ~",
  I: "d2 e2 f2 ab2", J: "g2@3 g1 b2@4 c3@4 g2@2 ~@2", K: "c2 d2 e2 ab2", L: "f2@3 f1 a2@4 bb2@4 f2@2 ~@2",
  M: "f2 eb2 d2 f2", N: "e2@3 e1 g2@4 a2@4 e2@2 ~@2", O: "eb2@3 eb1 gb2@4 ab2@4 eb2@2 ~@2", P: "d2 c2 b1 eb2",
  Q: "~@4 f2@3 d1 a2@4 d3@4, d2 ~", R: "c2@4 c2@4 f2@4 gb2 ~@2 gb1",
  S: "g2@3 ~ d2@3 g2 c2 d3 ~ eb3 [e3,bb3]@3 g4, ~@3 f4@5 a4@6 ~@2", T: "f2!4", U: "f2@4 f2 ~@2 f1 f2@4 f2@4",
  V: "e2 gb2 g2 e2", W: "eb2@3 eb1 eb2 ~@2 eb1 eb2@2 f3 gb3 [gb3,db4]@4", X: "d2@3 d1 f2@4 g2@4 d2@2 ~@2",
  Y: "d2 e2 f2 db2", Z: "c2@4 c2@4 d2@4 a1@3 d2", AA: "c2@4 gb2@3 c2 c2@4 c2@4",
  AB: "[g2@3 gb2@4 ~ gb2@4 g2 ~@2 a1@4 ~ e2@3 a1 d2 e3 ~ f3 [gb3,c4]@4, c4@6 ~ a4@5 c4@7 g4@5 a4@2 ~@6]/2", // Gbdim
  AC: "bb4@3 [g1,a4] a1 ~@2 [a0,g4] [g2,f4]@4 [f2,e4]@3 d4, g2 ~@15", // Gsus2 A7 G7 Fmaj7
  AD: "[f2@4 e2@4 eb2@4 bb1@3 a1@4 ~ a1@3 ~@5 ab2@3 ~ a1 ~@2 a0 d2 ~@2 d1 d2@3 c5 d2@3 b4, ~@19 d4@4 ab2@5 ~@20, ~@24 e4@7 a4@5 c5@6 ~@6]/3",
  AE: "d2@4 d2@3 gb4 db2@4 g2@3 [db2,b3], c5 ~@3 g4 ~@3", AF: "[d2,c4]@4 [ab2,c4]@3 b3 g2 ~@2 g1 gb2 ~@2 gb1",
  AG: "f2@3 f1 ab2@4 bb2@4 f2@2 ~@2", AH: "eb2@4 eb2@4 eb2@4 a1@3 eb2", AI: "d2 e2 f2 eb2",
  AJ: "[f2@4 c2@3 f2 [f2,ab4]@3 c5 d5@3 g1 ab2 ~@2 ab1 [ab2,c5]@3 c5 [eb2,bb4]@3 [ab2,ab4] ab2@3 ~ ab2@3 ab1 b2@4 db3@3 ~ ab2@2 ~@2, ~@12 g2 ~@2 eb5@5 ~@11 b4@9 ~@3 ab4@5]/3", // Fm Ab Eb5 Ab
  AK: "[g2,g4]@3 gb4 [g2,g4]@3 bb4 eb2 f3 ~ [gb3,ab4] [g3,eb4,g4]@3 f4, ~@8 g4@3 ~@5", // G Gbsus2 Cm
  AL: "[gb2,gb4]@4 [e2,eb4]@3 gb4 d2@4 gb2@4", AM: "f2@3 f1 ab2@4 [bb2,f4]@3 eb4 f2@2 ~ e4, ~@3 eb4@5 ~@8",
  AN: "bb1@3 ~ c2@4 d2@4 e2@4, ~@3 f4@5 g4@2 ~@2 f4@2 ~@2",
  AO: "g4@3 eb1 [f2,ab4]@3 bb4 g2 ~@2 g1 eb2 ~@2 eb1, eb2 ~@15", // Fm
  AP: "[bb1@4 bb1@4 [eb2,f4]@3 g4 bb2@3 eb2 ab2@4 eb2@3 ab2 ab2@4 [ab2,ab4]@3 b4, ~@4 db4@2 ~@9 ab4@13 ~@4]/2", // Ebsus2 Ab
  AQ: "ab2@3 ab1 b2@4 db3@4 ab2@2 ~@2", AR: "g2 a2 bb2 g2", AS: "gb2 ab2 a2 gb2", AT: "~@4 ab2@3 f1 c3@4 f3@4, f2 ~",
  AU: "bb1@3 bb0 d2@4 eb2@4 bb1@2 ~@2", AV: "~@4 db2@3 bb0 f2@4 bb2@4, bb1 ~", AW: "eb2 db2 c2 a2",
  AX: "ab2@3 ab1 c3@4 db3@4 ab2@2 ~@2", AY: "bb1@4 f2@3 bb1 eb2@4 bb2@3 eb2", AZ: "~@4 c3@3 ab1 eb3@4 ab3@4, ab2 ~",
  BA: "c2@3 c1 eb2@4 f2@4 c2@2 ~@2", BB: "f2 g2 a2 gb2", BC: "ab2 bb2 b2 ab2", BD: "g2@3 g1 bb2@4 c3@4 g2@2 ~@2",
  BE: "gb2@3 gb1 a2@4 b2@4 gb2@2 ~@2", BF: "~@4 d2@3 bb0 f2@4 bb2@4, bb1 ~",
  BG: "eb2@4 bb2@3 eb2 f2 g3 ~ ab3 [ab3,eb4]@4", BH: "gb2@4 gb2@4 eb2@4 bb2@3 eb2",
  BI: "[ab2@4 g2@4 [f2,f4]@3 f4 a2@3 ~ ab2@4 [gb2,ab4]@3 ab4 f2@4 ab2@3 ~@5 [bb2,d4]@3 g1 [d3,d4]@3 f4 g3@3 ~ gb2@3 gb1 [gb2,e4]@3 eb4 gb2@2 ab3 a3 [a3,e4]@4, eb4@2 ~@2 f4@2 ~@9 ab4@5 ~@11 bb3@5 ~@11 f4@5 ~@12, ~@4 g2 ~@3]/4", // F Gbsus2 Bb D Gb7 A5
  BJ: "f2@3 f1 ab2@4 [bb2,eb4]@3 f4 f2@2 ~ e4, ~@3 c4@5 ~@8", // Eb5
  BK: "[bb1@3 bb0 d2@4 [eb2,g4]@3 f4 bb1@2 ~@2 eb2@4 d2@4 c2@4 eb2@3 ~@3 [a3,bb3,b3] [gb3,g3,ab3] [e2,f3]@4 gb2@4 ab2@4, ~@3 f4@5 ~@7 d4@16 c4@3 ~@2 e3@2 ~@10, ~@32 d2@4 eb3 ~@11]/3", // Eb Fmaj7
  BL: "g2@3 ~ a2@4 bb2@4 b1@4, ~@3 d4@5 f4@2 ~@2 d4@2 ~@2",
  BM: "[[bb1,a4]@3 bb0 [db2,ab4]@3 g4 eb2@4 bb1@2 ~@2 a1@3 a0 [c2,e4]@3 c4 [d2,e4]@3 g4 a1@2 ~@2 ab2@4 gb4@3 [ab1,f4] ab2@4 d2@3 ab2, ~@15 c4@5 ~@11 g4@5 ab2 ~@11]/3", // Bbmaj7 Db5 C Dsus2 Db
  BN: "g2@3 ~ d2@3 g2 ab2@4 [d2,f4]@3 ab2, ~@3 f4@5 f4@2 ~@6", BO: "a1 ~@2 d2@4 ~ d2@4 d4@2 ~ d1, a4@7 a4@5 d2 ~@3",
  BP: "[g2,g4]@3 d4 [d2,f4]@3 [g2,g4] [db2,b4]@3 bb4 c2 ~@2 [c1,a4]", BQ: "f2@4 c2@3 f2 g2 ~@2 g1 gb2@3 g4",
  BR: "[f2@4 eb2@4 d2@4 gb2@4 f2@3 f1 [f4,gb4] [eb4,e4] [db4,d4] [b3,c4] [a3,bb3] [g3,ab3] [f3,gb3] [eb3,e3] f2@2 ~@2, ~@3 g4@3 ~@2, ~@5 a2 bb2 ~]/2", // Gbmaj7 Emaj7 Dmaj7 Cmaj7 Bbmaj7 Abmaj7 Gbmaj7 Emaj7
  BS: "bb1 ~@2 bb1@3 ~ bb0 bb1 c3 ~ db3 [d3,a3]@4", BT: "bb1 ~@2 bb1@3 ~ bb0 bb1@4 f2@3 bb1", BU: "g2 f2 e2 ab2",
  BV: "g2 a2 bb2 db2", BW: "c2@4 c2@4 c2@3 gb2@4 e4, ~@11 eb4 ~@4",
  BX: "[g2,f4]@3 [g1,e4] [bb2,f4]@3 gb4 c3@4 g2@2 ~@2, ~@4 g4 ~@3", BY: "eb2@4 f2@4 g2@4 [gb2,g4]@3 a4, ~ a4@2 ~",
  BZ: "[f2@3 c5 f2@3 a4 [g2,g4]@3 g4 a1 ~@2 a0 ab2@3 ab1 b2@4 db3@3 ab4 [ab2,f4]@3 f4, ~@15 g4@12 ~@5]/2", // G Db
  CA: "g2@3 g1 bb2@3 ~ c3@4 [g2,f4]@2 ~@2, ~@7 f4@5 ~@4", CB: "bb1 c2 db2 bb1", CC: "~@4 c2@3 a0 e2@4 a2@4, a1 ~",
  CD: "eb2!2 d2!2", CE: "c2 d2 e2 bb1", CF: "~@4 gb2@3 d1 a2@4 d3@4, d2 ~",
  CG: "[g2@3 gb2@4 ~ gb2@4 g2 ~@2 a1@4 ~ e2@3 a1 d2@4 d2@4, c4@7 a4@5 c4@7 g4@5 a4@2 ~@2 c4@2 ~@2]/2",
  CH: "bb4@3 [g1,a4] a1@3 g4 f4@3 g1 [gb2,e4]@3 a4, g2 ~@7 g2 ~@7", CI: "f2@4 c2@3 f2 d2 e3 ~ f3 [gb3,c4]@4",
  CJ: "~@4 bb2@3 g1 d3@4 g3@4, g2 ~", CK: "a1 b1 c2 eb2", CL: "g2 a2 bb2 a2", CM: "ab2 bb2 b2 bb1",
  CN: "a1@3 a0 c2@4 d2@4 a1@2 ~@2",
  CO: "[d2 ~@2 d1 d2@4 a2@3 d2 c5@2 ~ g2@4 ~ d2@3 g2 ab2@4 ab2@4, ~@4 c5@8 d2 ~@6 f4@5 f4@2 ~@2 f4@2 ~@2]/2",
  CP: "a1 ~@2 d2@4 ~ a2@3 d2 d4@2 ~ d1, a4@7 a4@5 d2 ~@3", CQ: "[bb3,g4]@3 [g1,d4] [bb3,f4]@3 g4 [a3,b4]@3 bb4 ~@4",
  CR: "[ab2,ab4] ~@3 [ab2,ab4] ~@3", CS: "[[ab2,ab4] ~@2 [g2,g4]@17 ~@4]/3",
})).s("gm_trumpet").gain(0.35)

// chords · piano
const piano = note(`<
  ~ A B ~ C ~ D E F@2 G H I J K L M N O P Q R S L T U V W X Y@2 Z ~ AA@2 AB AC AD AE AF AG AH AI@2 AJ AK@2 AL AM AN AO
  AP AQ@2 AR AS AT AU AV AW AX AY AZ AY BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO@3 BP BQ@3 BR BS@3 BT BU BV BW BX@2
  BY BZ CA CB CC CD CE CF CG@2 CH CI CJ CK CL CM CN CO CP@2 CQ CR CS CT CU CV CW CX CY CZ DA DB DC DD DE DF DG@3
>`.pickRestart({
  A: "[e4,g4,a4,d5,g5,c6] ~@5 a3@2", B: "[f2,f3,a3,c4]@8 [gb2,gb3,a3,c4]@6 ~ [g2,g3,a3,c4]",
  C: "[bb4,d5,f5,g5,c6]@8 [bb4,d5,e5,g5,c6]@6 ~ [a4,c5,e5,g5,c6]", D: "~ [f2,f3], [c4,d4,f4,ab4]@15 ~",
  E: "~ [e2,e3], [b3,d4,e4,g4]@15 ~", F: "[~@8 [eb2,eb3]@6 ~ [d2,d3,a3,c4,d4,f4]@16 ~, [a3,c4,eb4,gb4]@15 ~@17]/2",
  G: "[g2,g3]@15 ~", H: "[c3,e3,a3,d4,g4,c5] ~@3 [c3,e3,a3,d4,g4,c5] ~@3",
  I: "[g3,bb3,d4,f4,a4,c5]@2 ~@5 [c3,bb3,d4,e4,a4,c5]@9", J: "[e3,a3]@11 ~@2 e4 ~ g4, ~@11 e3@4 ~, ~@3 a3",
  K: "~@3 [d3,ab3,c4,f4] ~@4 [d3,ab3,c4,f4]@8", L: "[d4,b4]@11 ~@2 d4 ~ e4, e4@15 ~, [d3,g3]@10 ~ d3@4 ~, ~@3 g3",
  M: "~@3 gb3@8 ~@2 c4@2 eb4, [eb4,a4]@15 ~, c4@3 gb3, c3@11 c3@5", N: "~@8 [f3,a3,c4,e4] ~@2 [f3,a3,c4,e4] ~@4",
  O: "~@3 [f3,c4,e4,a4] ~@4 [f3,c4,e4,a4]@8", P: "c3@3 [e3,a3,c4,g4]@2 ~@5 [d3,a3,c4,f4] ~@3 [eb3,a3,c4,gb4] ~",
  Q: "g2@3 [bb3,d4,g4]@2 ~@3 [c3,bb3]@3 [e3,bb3,d4,g4]@2 ~@2 a3, ~@3 f3@5 ~@8", // Gm C7 Em7b5
  R: "~@3 [e3,a3,c4,g4] ~@7 [d3,f3,a3,c4] ~@4", // Am7 Dm7
  S: "[ab3,c4,f4]@4 f4 ~ c4 ab3 ~ ab3@3 ~@4, ~@5 eb4@2 ~ [d4,f4,d5,f5,c6]@4 ~@4", // Fm Dm7
  T: "eb4 ~ a3 gb3 [gb3,db4,eb4,bb4]@4 [c3,gb3,c4,eb4,a4]@8, ~ c4@2 ~@13", // Ebm7 Cdim
  U: "f3@7 f3@4 f3 ~ f4 ~ a4, a4@15 ~, [f4,e5]@6 f3 ~, c4@5 ~ c4@2", // Fmaj7
  V: "~@3 [c4,d4,a4] ~@4 f3@4 f3@3 g3, ~@3 f3@5 [c4,d4,a4]@8", W: "c3@3 [e3,a3,c4,g4]@2 ~@3 [f3,c4,f4,a4,e5]@8",
  X: "c3@3 [eb3,a3,c4,gb4]@2 ~@2 g3 [e4,g4,e5,g5,c6]@4 ~@4, gb3@7 ~ a3@2 ~@6", // Ebdim C
  Y: "[[g2,f3,bb3,c4]@6 ~ [gb2,eb3,a3,c4]@5 [g2,f3,bb3,c4]@7 [a2,g3,c4,e4]@5 gb3@4 gb3@2 ~@2, ~@3 [d3,c4,eb4]]/2", // Gm7 Gbdim Gm7 Am7 Cm
  Z: "[g2,f3,bb3,d4]@3 g3 ~@3 g3 [c3,g3,bb3,d4,f4]@4 [db3,gb3,bb3,db4,e4]@3 [c3,f3,a3,c4,d4]", // Gm7 Gb7 Dm7
  AA: "[~@3 e3@5 f3@7 g3@5 c4@6 ~ c4 ~@3 b3]/2", AB: "c4@2 ~ ab4 a4@2 ~ a3 bb3@2 ~ ab4 a4@2 ~ e3",
  AC: "f3@4 gb3@3 f3 ~@8", AD: "~@8 [e3,a3,c4,g4] ~@2 [e3,a3,c4,g4] ~@4", AE: "c5@11 ~ ab3@3 f4, f4@15 ~, ~@11 d3@4 ~",
  AF: "~@3 [g3,d4,e4,b4] ~@4 [g3,d4,e4,b4]@8", // Em7
  AG: "[gb3,c4,eb4,a4]@4 ~@2 [gb3,db4,eb4,bb4] ~@4 [gb3,a3,c4,eb4,a4] gb3@3 eb3", // Gbdim Ebm7 Gbdim
  AH: "~@7 f3@4 f3 ~ f4@2 a4, [a4,e5]@15 ~, f4@13 ~@3, f3@7 ~@5 [f3,c4]@4, ~@3 c4@8 ~@5", // A5 F5
  AI: "[~@3 f3@5 f3@3 f3 c4@3 ab3@9 [ab3,c4,eb4,g4] ~@2 [ab3,c4,eb4,g4] ~@4, a4@15 a4 ~@16, d5@6 f3 ~@9]/2", // Abmaj7
  AJ: "[eb3,eb4,g4,c5]@8 [c3,ab3,eb4,f4,c5]@3 eb3 [f3,g3,bb3,d4]@3 f3", // Cm Fm7 Gm7
  AK: "[[f3,c4,eb4,ab4]@4 eb3@3 [eb3,g3,c4,eb4,bb4] c3@3 c3 ab4 f4@2 eb3@9 [f3,b3,eb4,ab4] ~@2 [f3,b3,eb4,ab4] ~@4, ~@15 c4 ~@11 b2@5]/2", // Fm7 Cm7 Fm7b5
  AL: "bb2@3 [a2,f3,g3,bb3,d4] bb2@3 c3 bb2@3 [b2,g3,bb3,eb4] bb2@3 g2", // Gm7 Eb
  AM: "a2@3 [eb3,gb3,a3,c4] gb2@3 a2 [eb3,gb3,a3,c4]@8", // Ebdim
  AN: "~@3 [eb3,ab3,c4,f4] ~@4 ab2@3 f2 ~@3 ab2, ~@3 f2@5 [eb3,ab3,c4,f4]@8", // Fm7
  AO: "~@3 ab2@5 ab2@2 ~@3 d4@2 g4, [g4,c5]@15 ~, d4@6 ab2 ~, d3@11 d3@5, ~@3 ab3@8 ~ ab3@4", // C5
  AP: "~@2 [g3,bb3,c4,eb4] ~ [c3,ab3,eb4,f4,c5]@3 d3 [bb3,f4,a4,d5]@4 ~@2 [g3,c4,eb4,bb4] ~, bb2 ~@3", // Cm7 Fm7 Bbmaj7 Cm7
  AQ: "[[db4,f4,db5,f5,bb5]@4 f2@2 ~@2 [g2,db4,f4,db5,f5,c6]@3 bb2 ~@4 ab2@3 [g3,c4,eb4,bb4]@2 ~@7 c3@3 eb3, ab3@2 ~@6 g3@2 ~@5 c3@13 ~@4, ~@3 [f3,f4,ab4,eb5]]/2", // Bbm Csus4 Cm7 Fm7
  AR: "~@3 [f3,b3,eb4,ab4] ~@4 [f3,b3,eb4,ab4]@8", AS: "~@3 [f3,bb3,d4,a4] ~@4 [f3,bb3,d4,a4]@8",
  AT: "c5@11 ~ a3@3 gb4, gb4@15 ~, ~@11 eb3@4 ~", AU: "~@8 [eb3,g3,ab3,c4] ~@2 [eb3,g3,ab3,c4] ~@4",
  AV: "~@3 [ab3,d4,g4,c5] ~@4 [ab3,d4,g4,c5]@8", AW: "~@3 [ab3,db4,f4,c5] ~@4 [ab3,db4,f4,c5]@8",
  AX: "~@3 [g3,db4,f4,c5] ~@4 [g3,db4,f4,c5]@8", AY: "~@3 c4@8 ~@2 f4@2 ab4, [ab4,eb5]@15 ~, f4@3 c4, f3@11 f3@5",
  AZ: "~@3 [ab3,bb3,db4,f4] ~@7 [g3,c4,db4,f4] ~@4", BA: "~@3 [f3,c4,eb4,ab4] ~@4 [f3,c4,eb4,ab4]@8",
  BB: "~@3 bb3@8 ~@2 eb4@2 g4, [g4,d5]@15 ~, eb4@3 bb3, eb3@11 eb3@5", BC: "c5@11 ~ a3@3 g4, g4@15 ~, ~@11 eb3@4 ~",
  BD: "c5@11 ~ ab3@3 g4, g4@15 ~, ~@11 eb3@4 ~", BE: "~@8 [ab3,d4,f4,c5] ~@2 [ab3,d4,f4,c5] ~@4",
  BF: "g3@3 [ab3,c4,f4,ab4,eb5] ~@8 g3@3 ab3, ~ [c4,f4,ab4,eb5]", BG: "eb5@11 ~ b3@3 ab4, ab4@15 ~, ~@11 f3@4 ~",
  BH: "~@7 bb3 [bb3,f4,a4,d5] ~@2 [f3,bb3,f4,a4,d5] ~@3 a3, ~@8 g3@3 ~@5", // Bbmaj7
  BI: "~@4 gb3@3 eb3 ~@4 a3@3 gb4, gb4@15 ~, c5@11 eb3@4 ~",
  BJ: "~@3 ab3@8 ~@2 eb4@2 g4, [g4,c5]@15 ~, eb4@3 ab3, eb3@11 eb3@5", BK: "~@3 [ab3,d4,f4,c5] ~@4 [ab3,d4,f4,c5]@8",
  BL: "~@3 [g3,bb3,eb4] ~@4 f3@3 [ab3,eb4,f4,c5]@2 ~@3", BM: "[eb3,eb4,gb4,c5] [c3,c4,eb4,bb4]",
  BN: "f3@2 ~@2 ab3@2 ~@2 [f3,c4,eb4] ~@2 [f3,ab3,c4,eb4] ~@3 b3, ~@8 ab3@3 ~@5", // F7 Fm7
  BO: "[~@4 b3@3 b3 ~@4 b3@3 d3@5 f3@2 ~@2 [bb3,d4,g4] ~@2 [f3,bb3,d4,g4] ~@6 [eb3,a3,c4,gb4] ~ [e3,a3,db4,ab4]@3 eb3 ~@3 [eb3,gb3,a3,c4] ~@4, ab4@15 ab4 ~@32, eb5@11 f3@4 ~@9 f3@3 ~@4 f3@5 ~@12]/3", // Gm Gm7 Ebdim Amaj7 Ebdim
  BP: "~@3 eb3@5 f3@3 ab3 ab3@3 [ab3,g4], g4@15 ~, c5@11 eb3@4 ~", // Abmaj7
  BQ: "[~@3 ab3@5 [d4,g4,c5] ~@2 [ab3,d4,g4,c5] ~@4 bb4@11 ~ g3@3 gb3@3 [eb3,e3,f3] [c3,db3,d3] b2@4 [gb3,c4,e4,b4] ~@2 [gb3,c4,e4,b4] ~@4, ~@8 ab3@3 ~@4 eb3@16 ~@17, ~@16 f4@15 f4 ~@16, ~@27 d3@4 ~@17]/3", // Csus2 Abmaj7 Esus2
  BR: "~@3 d3@5 [f3,bb3,d4,g4] ~@2 [f3,bb3,d4,g4] d3@2 ~@2, ~@4 d3 ~@3", // Gm7
  BS: "[a3@3 [g3,db4,f4,bb4] ab3@3 g3 [g3,db4,f4,bb4]@7 e3@4 [g3,a3,c4,e4] g3@3 e3 g3@3 g3 ~@6 [f3,ab3,b3,d4] ~ [gb3,bb3,b3,eb4]@3 f3 ~@3 [f3,ab3,b3,d4] ~@4, ~@24 [a3,c4,e4]@7 g3@5 ~@12]/3", // Gm7b5 Am7 Fdim Bmaj7 Fdim Am
  BT: "[f4,g4,f5,g5,d6]@3 g3@5 ab3@2 ~@2 ab3@2 ~@2, bb3 ~@3 [f3,f4,ab4,d5]@4", // G7 Ddim
  BU: "c4@7 [gb3,e4,a4] ~@4 [gb3,c4,e4,a4]@4, ~@7 c4@5 a3@2 ~@2", // Gbm7 Gbm7b5
  BV: "bb3@3 [f3,bb3,d4,g4] g3@3 bb3 [f3,b3,eb4,ab4]@3 d4 [e3,bb3,d4,a4]@3 c4", // Gm7 Fm7b5 Dsus2
  BW: "[d4,f4,d5,f5,c6]@4 ~@4 [f3,a3,b3,e4]@4 [e3,bb3,db4,ab4]@3 eb3, a3 ~@7", // Dm7 Fmaj7 Bbm7b5
  BX: "[~@3 [eb3,a3,d4,g4] ~@4 eb3@4 ~@7 eb4 [db3,d3] [b2,c3] [a2,bb2] [g2,ab2] gb2 ~@3 [a3,eb4,g4,c5]@2 ~@2, ~@4 [a3,d4,g4]@4 a3@5 ~@3, ~@3 eb3@3 ~@2, ~@20 g4@3 c5@4 ~@5]/2", // Ebmaj7 Dmaj7 Cmaj7 Bbmaj7 Abmaj7 Am7b5 Dsus4
  BY: "[c5,d5,f5,a5,c6]@2 ~@5 [bb4,d5,f5,g5,bb5] ~@8", BZ: "[a4,c5,d5,f5,a5]@2 ~@5 [g4,bb4,d5,f5,g5] ~@8",
  CA: "~@7 ab5 a5@2 ~@5 db6", CB: "d6@2 ~@5 ab6 a6@2 ~@5 b6", CC: "c7@15 ~",
  CD: "[c3,e3,bb3,d4,a4,c5]@2 ~@5 [c3,e3,bb3,d4,a4,c5] ~@3 gb3 ~@3 gb3", // Am
  CE: "g3@3 [gb3,f4] [g3,a4]@3 a3 bb3@2 ~@2 [bb3,f4,a4,d5]@2 ~@2, bb3@7 d5@3 ~@6", // Gbmaj7 Gsus2 Bbmaj7
  CF: "~@3 [db4,g4,c5,f5] db4@4 db4@4 db4@3 d4, ~ [g4,c5,f5]", // Dbmaj7 Csus4
  CG: "[~ c5@2 [a3,d4] ~ d4 f4 [c4,c5] [f3,bb3,d4,a4]@3 a3 [g3,c4,e4,a4]@3 ~@4 [f3,b3,d4,ab4] ~@4 b3@3 b3 ab3@3 g3, [a3,f4]@3 ~@12 ab3@12 ~@5, ~@3 [f3,d4,ab4]]/2", // D5 C Bbmaj7 Am7 Fdim Dm Ddim
  CH: "~@3 [f3,bb3,d4,g4] ~@8 g3@2 ~@2, ~@7 g3@5 ~@4, ~ [f3,bb3,d4,g4]", // Gm7
  CI: "~@3 [g3,db4,f4,bb4] ~@4 g3@3 bb3 g3@3 g3, ~ [db4,f4,bb4]", CJ: "~@7 g3 [g3,a3,c4,e4] ~@2 [g3,a3,c4,e4] g3@2 ~@2",
  CK: "eb3@3 [g3,db4,f4,bb4]@2 ~@3 [gb4,b4,gb5,b5,e6]@4 ~@4, ~@4 c4 ~@3", CL: "d5@11 ~ bb3@3 a4, a4@15 ~, ~@11 f3@4 ~",
  CM: "~@3 [e3,a3,bb3,d4] ~@4 [e3,a3,bb3,d4]@8", CN: "~@3 [g3,c4,e4,b4] ~@4 [g3,c4,e4,b4]@8",
  CO: "~@3 c4@8 ~@2 gb4@2 b4, [b4,d5]@15 ~, gb4@3 c4, gb3@11 gb3@5", // Bm
  CP: "[~@4 [eb4,gb4,eb5,gb5,c6]@3 eb3@5 [bb3,d4,a4]@4 [c4,e4,c5,e5,a5]@3 g3@5 [d3,gb3]@3 gb3 gb3@2 ~@2, f3@7 ~@5 f3@7 ~@13, ~@4 a3@2 ~@10 g3@2 ~@9 [ab3,c4,e4,b4]@2 ~@3]/2", // Cdim Bbmaj7 Am D E
  CQ: "[f3,bb3,d4,g4]@3 g3 e4 c4@2 g3 [g3,bb3,d4,f4,g4]@4 [bb3,e4,ab4,eb5]@3 d4", // Gm7 Ebsus4
  CR: "[f3,f4,a4,f5]@8 ~@3 [c4,gb4,b4,e5] ~@4, ~@11 eb4@5", // F Cmaj7
  CS: "d4@2 ~ bb3@4 bb3 ~@5 f4@2 a4, [a4,d5]@15 ~, f4@3 bb3, f3@11 f3@5, ~@6 g3 ~", // D5
  CT: "~@4 e3@3 g3 [bb3,e4,a4,d5] ~@2 [bb3,d4,e4,a4,d5] ~@3 b3", // Bbmaj7
  CU: "c4@2 ~@5 a3 [c4,e4,g4,b4] ~@2 [c4,e4,g4,b4] g3@2 ~@2", CV: "~@3 [c4,e4,gb4,a4] a3@4 [c4,e4,gb4,a4]@8",
  CW: "~@8 [bb3,f4,a4,d5] ~@2 [bb3,f4,a4,d5] ~@4", CX: "d5@11 ~ b3@3 ab4, ab4@15 ~, ~@11 f3@4 ~",
  CY: "~@3 [c4,g4,b4,e5] ~@4 [c4,g4,b4,e5]@8", // Cmaj7
  CZ: "[c4,d4,gb4,a4] [gb4,bb4,gb5,bb5,d6] ~ [c4,gb4,b4,e5,ab5], ~@2 eb4@4 eb4 ~, ~@2 c4 ~@5", // D7 Gbaug E
  DA: "g2@3 [bb3,f4,a4,d5]@2 ~@3 [ab2,ab3]@3 ~ ab3@2 ~@2, ~@3 g3@5 ~@3 [b3,d4,f4,ab4]@2 ~@3", // Bbmaj7 Ab Bdim
  DB: "[g4,b4,e5]@4 d3@3 [gb4,b4,e5]@2 ~@3 [c4,d4,gb4,a4]@4, c4@7 c4@5 a3@2 ~@2", DC: "bb3@3 f3 g3@3 bb3 eb4@3 d4 ~@4",
  DD: "~@3 c5 ~@4 f5@2 ~@5 g5", DE: "~@4 c6@2 ~@5 g5 ~@4", DF: "db3 ~@3 db3 ~@3, [c5,c6]@15 ~",
  DG: "[db3@2 ~@4 c3 [f2,c3,a3,c4,e4,g4,c5]@32 ~@9]/3", // Fmaj7
})).s("gm_piano").gain(0.35)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@38 A ~@3 B ~ C D ~@7 E ~@2 F ~@9 G H ~@2 I ~ J ~@3 K ~ L ~@2 M ~ N O ~@4 P ~@4 Q ~@6 R ~ S ~@5 T ~@5 U V ~@5 I ~@11
>`.pickRestart({
  A: "[ab3,d4]@11 ~@2 d4 ~@2, d3@9 ~@7", B: "[c4,f4]@11 ~@2 f4 ~@2, f3@3 ~@13", C: "ab3 ~", D: "~@14 eb4 ~", E: "~ c4",
  F: "[a3,eb4]@11 ~@2 eb4 ~@2, eb3@9 ~@7", G: "[eb3,a3,eb4]@11 ~@2 eb4 ~@2", H: "[eb3,ab3,eb4]@11 ~@2 eb4 ~@2",
  I: "[b3,f4]@11 ~@2 f4 ~@2, f3@9 ~@7", J: "[a3,eb4]@11 ~@2 eb4 ~@2, eb3@7 ~@9", K: "a3 g3",
  L: "f4@11 ~@2 f4 ~@2, f3@9 ~@7, b3 ~@3", M: "[ab3,eb4]@11 ~@2 eb4 ~@2, eb3@3 ~@13",
  N: "[g3,d4]@11 ~@2 d4 ~@2, d3@9 ~@7", O: "~@2 bb2 ~@5, ~@4 a2 ~@11", P: "~ b3",
  Q: "~@8 f2 [eb2,e2] [db2,d2] [b1,c2,f2] ~@4", R: "~@11 g2 ~@4", S: "d4 ~@7", T: "[bb3,f4]@11 ~@2 f4 ~@2, f3@9 ~@7",
  U: "~@6 b3 ~@9", V: "c4 ~",
})).s("gm_piano").gain(0.2)

// chords · trombone · "Alto Saxophone"
const trombone = note(`<
  ~@13 A B C ~ D E@2 F G H I J K L@2 M N@2 O ~ P@2 Q R@3 S T U V@5 W X Y Z AA AB@2 ~@15 AC ~ AD@2 ~@4 AE@4 AF AG@3 AH
  AI@3 AJ AK AL AM AN@2 ~@5 AO AP AQ AR@2 AS AT AU AV AW AX AY AZ BA@2 BB BC BD@3 BE@2 BF BG BH AJ AK BI ~@2 BJ BK@3
>`.pickRestart({
  A: "e4@3 a4@9 e4@3 d4", B: "~@14 d4 [c4,db4]", C: "b3@3 g4@7 [e4,gb4] [c4,d4] b3@3 a3", D: "~@7 e4@5 c4@3 a3",
  E: "[c4@3 e4 c4@3 a3 c4@3 e4 c4@3 e4@5 g4@3 e4 f4@3 g4 a4@3 g4]/2", F: "~@3 g3@5 c3@6 ~ f3",
  G: "~@3 c5@4 [bb4,b4] a4@3 c4 d4@3 c4", H: "g4@4 gb4@3 f4 ~@8", I: "~@3 b3 e4@3 b4 g4@3 e4 b3@3 a3",
  J: "d4@4 db4@3 c4 ~@8", K: "d3@2 ~@5 [d3,e4]@5 [d3,c4]@3 a3",
  L: "[c4@3 e4 c4@3 a3 [d3,c4]@3 e4 [d3,c4]@3 e4@5 g4@3 e4 f4@4 a4@3 f4, ~@3 d3@5 ~@7 e3 ~@8 d3@8]/2", // D7
  M: "gb4@3 g4 a4@3 [e3,g4] ~@8, eb3@7 ~@9", // Em
  N: "[[g2,d4]@6 ~ [gb2,c4]@5 [g2,d4]@7 [a2,e4]@5 [d3,eb4]@2 ~@2 [d3,eb4]@2 ~@2]/2", // G5 Gbdim G5 A5 Ebmaj7
  O: "[g2,bb4]@3 [a2,a4] ~@3 [bb2,g4] [a2,f4]@4 [gb2,e4]@3 [f2,d4]", // Gm A Eb Dm Gb7 Dm
  P: "[~@3 [a2,d4]@5 [ab2,e4]@7 [a2,g4]@5 [d3,a4]@6 ~ [d3,a4] ~@3 [db3,ab4]]/2", // D5 Dbm A7 D5 Db5
  Q: "[d3,a4]@2 ~@5 [gb3,eb4] [g3,e4]@2 ~@5 [db3,e4]", // D5 Ebm C Dbm
  R: "[[d3,f4]@4 [ab2,eb4]@3 [g2,e4] ~@3 e4 a4@3 c5@11 [a4,b4] [f4,g4] e4@3 d4@17]/3", S: "~@3 b3@5 g4@2 ~@2 b3@2 ~@2",
  T: "d4@4 db4@3 ~@4 gb3 eb3@3 c3, ~@7 c4@9", U: "d3@3 ~@4 [d3,e4]@5 [d3,c4]@3 a3",
  V: "[c4@3 e4 c4@3 a3 [d3,c4]@3 e4 [d3,c4]@3 g4@5 eb4@3 c4 eb4@3 g4 eb4@3 c4 eb4@3 g4 eb4@3 c4 [ab2,g4]@3 [c3,ab4] [d3,bb4]@3 [eb3,c5]@5 [c3,bb4]@3 [c3,ab4] [bb2,g4]@3 [ab2,f4] ~@3 [b2,ab4]@9 ~@3 [ab3,g4]@5, ~@3 d3@5 ~@7 f2@25 ~@40]/5", // D7 Abmaj7 Fm Gm Cm C7 Fm Eb …
  W: "[g3,f4]@3 [gb3,e4] [g3,f4]@3 [bb3,g4] [g3,f4]@3 [bb3,e4] [g3,eb4]@3 [f3,d4]", // G7 Gb7 G7 Eb G7 Bbdim Cm Dm
  X: "[gb3,f4]@4 [eb3,d4]@3 [gb3,eb4] ~@8", Y: "~@3 [eb3,c4]@5 [f3,eb4]@3 [eb3,c4] ~@3 [bb2,e4]",
  Z: "~@3 [bb2,f4]@5 [bb2,g4]@2 ~@2 [bb2,f4]@2 ~@2", AA: "[g3,g4]@4 [ab3,ab4]@3 [bb3,bb4] ~@8",
  AB: "[~@4 [bb2,bb3]@2 ~@2 [f3,db4]@3 [g3,f4] ~@3 [g3,g4]@13 [f3,f4]@3 [ab3,ab4]]/2", AC: "e3@3 f3 ~@8 e3@3 f3",
  AD: "[~@7 g3 f3@3 d3 ~@3 gb3@5 eb3@3 c3 ~@8]/2",
  AE: "[[eb3,c4]@2 ~@2 [f3,eb4]@2 ~@2 [f3,f4]@3 [f3,eb4] ~@3 [ab3,g4]@5 [ab3,gb4]@3 [ab3,f4] ~@7 [g2,bb3]@5 [g2,bb3]@2 ~@2 [g2,c4]@3 [g2,d4] ~@3 [gb2,f4]@5 [gb2,e4]@3 [gb2,eb4] ~@8]/4", // Cm F7 F F7 Abmaj7 Ab7 Db Gm …
  AF: "~@3 [c3,c4]@5 [eb3,eb4]@3 [f3,c4] ~@3 [bb2,e4]", // C Eb F5 Bbdim
  AG: "[~@3 [bb2,f4]@5 [bb2,g4]@3 [bb2,f4] ~@3 [bb2,f4]@16 [d3,eb4]@3 [b2,c3,db3,c4,db4,d4] [ab2,a2,bb2,a3,bb3,b3] [g2,ab3]@4 ~@8, ~@18 [gb2,g3] ~@5, ~@36 [f2,gb3] ~@11]/3", // Bb5 Eb Bb5 Ebmaj7 Abmaj7 Gmaj7 Gbmaj7
  AH: "~@3 [g2,a4]@5 [g2,f4]@2 ~@2 [g2,d4]@2 ~@2", // Gsus2 G7 G5
  AI: "[[bb2,a4]@4 [bb2,ab4]@3 [bb2,g4] ~@7 [a2,c4]@5 [a2,e4]@3 [a2,c4] [a2,d4]@3 [a2,e4] ~@3 [ab2,g4]@5 [ab2,gb4]@3 [ab2,f4] ~@8]/3", // Bbmaj7 Bb7 Eb Am A5 Am D5 A5 …
  AJ: "~@3 [f3,d4]@5 [f3,e4]@2 ~@2 [f3,d4]@2 ~@2", AK: "[a3,c5]@7 [d3,a4]@5 [gb3,d4]@2 ~@2",
  AL: "[g3,f4]@3 [d3,bb3] [f3,d4]@3 [g3,f4] [b3,ab4]@3 [bb3,a4] ~@3 [a3,f4]", // G7 Gm Dm G7 E Bbmaj7 Dm
  AM: "~@7 [ab2,f4] [g2,e4]@3 [gb2,eb4] ~@3 [f2,d4]", // Db C Ebm Dm
  AN: "[~@20 [eb2,e2,c4,db4] [db2,d2,bb3,b3] [b1,c2,ab3,a3] [bb1,gb3,g3] [e3,f3] [d3,eb3] [c3,db3] [bb2,b2] ~@4, ~@3 [f2,d4]@3 ~@2]/2", // Eb Fmaj7 Ebmaj7 Dbmaj7 Bmaj7 Dm
  AO: "~@11 [eb3,c4] ~@3 [e3,db4]", AP: "[f3,d4]@3 [e3,db4] [f3,d4]@3 [gb3,e4] [g3,f4]@2 ~@6",
  AQ: "~@4 [g3,a4]@8 [g3,g4]@3 [c4,a4]", AR: "[~@3 [c4,a4] ~@3 [a3,g4] [g3,f4]@3 [g3,e4] ~@3 [f3,g4]@12 ab3 f3@3 f3]/2",
  AS: "~@3 bb3 d4@3 f4 d4@3 bb3 [f3,d4]@3 f4, ~@7 f3@5 ~@4", AT: "c5@4 b4@3 bb4 ~@3 g3 f3@3 e3",
  AU: "~@3 c5@4 [bb4,b4] a4@3 c4 [e3,d4]@3 c4, ~@7 e3@5 ~@4", AV: "bb4@3 c5@4 a4@4 d5 a4@3 ab4",
// … 353 more lines

More by Count Basie