Strudelify

Hay Burner

Basie

KeyF majorTempo132 bpm
0:00/0:00
// Hay Burner — Basie
// 132 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 124 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(132/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 C G H I J K H L M N H I J K H L M O P Q P Q P R S T U I J K H L G V W X Y Z AA AB AC AD AE AF AG AH AI
  AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF@2 BG BH@2 BI ~ BJ BK BL BM BN BO BP BQ BR BS BT
  BU BV BW BX BY BZ P CA P Q P CB S T U I J K H L G V W CC S CD CE CF@3
>`.pickRestart({
  A: "f2@3 ~@2 a2@3 a2 a1@3", B: "bb1@3 ~@2 b2@3 b2 b1@3", C: "c2 ~ d2 ~", D: "g2@3 ~@2 g2 c2@2 c2 e2@3",
  E: "f2 ~ eb2 ~", F: "d2 ~ db2 ~", G: "g2@3 ~@2 g2 c2@3 ~@2 c3", H: "f2@3 ~@3 a2@3 ~@2 a2",
  I: "bb2@3 ~@2 c3@3 c3 c2@3", J: "d2 ~ a2 ~", K: "eb2@3 ~@2 c2@3 c2 e2@3", L: "g2 bb2 a2 d2",
  M: "g2@3 ~@2 g2 c2@3 ~@2 c2", N: "f2@2 f2 bb2@3 a2@3 g2@3", O: "f2@5 ~ f2@4 gb2@2 g2@4 g2@2 a2@6", P: "bb2 bb1 b1 b2",
  Q: "c3 f2 g2 a2", R: "c3 c2 d2 gb2", S: "g2 g1 g2 g1", T: "c3 c2 c3 c2", U: "f2!2 a2!2", V: "f2@3 ~@2 f2 d2@3 ab2@3",
  W: "g2@3 ~@2 g2 c2@3 ~@3", X: "f2@2 f2 g2@3 g2@3 c2@3", Y: "f2@6 f2@6 a1@4 a0 ~ a1@6", Z: "bb1 b1 g2 c2",
  AA: "d2@3 ~@2 d2 ab1@6 a1@6 c2@5 ~", AB: "eb2@4 eb1 ~ db2@6 c3@6 g2@6", AC: "f2!2 a1!2", AD: "bb1 a1 g2 ab2",
  AE: "g2@4 g1 ~ g2@4 g1 ~ g2@6 c2@6", AF: "f2 g2 bb1 g2", AG: "f2 gb2 f2 a1", AH: "bb1@4 ~ bb0 bb1@6 b1@6 b1@6",
  AI: "f2@4 f1@2 f2@6 d2@3 ~ d2@2 a2@6", AJ: "g2@5 d2 d3@4 d2 ~ c2@6 g2@6",
  AK: "f2@4 ~@2 f2@6 f2@4 f1 ~ f2@6, ~@5 f1@2 ~@17", AL: "bb1@2 bb0 bb1@3 bb2@3 f2@3",
  AM: "f2@6 db2@6 d2@5 a1 a2@4 ~ a1", AN: "g2@4 ~ g1 c2@6 f2@4 f1 ~ f2@6",
  AO: "~@4 f1 ~ f2@4 ~ f1 b1@3 ~ b1 ~ e2@6, bb1 ~@3", AP: "f2@3 ~@2 f2 e2@6 f2@3 ~ f2@2 c3@6",
  AQ: "bb1@4 bb0@2 bb1@6 b1@3 ~@3 f2@6, ~@17 b1@2 ~@5", AR: "f2@4 f1 ~ gb2@6 f2@3 ~ f2 ~ a1@6", AS: "bb2 f2 b1 f2",
  AT: "f2@3 ~ f2 ~ db2@6 d2@4 d1 ~ d2@6", AU: "g2 d3 b2 g2", AV: "c2@6 e2@5 ~ f2@3 ~@3 c3@6, ~@17 f2@2 ~@5",
  AW: "bb1@6 f2@6 b1@6 d2@5 ~", AX: "f2@3 ~@2 f2 e2@6 f2@4 f1 ~ f2@6", AY: "bb1@3 ~ bb1@2 f2@6 b1@6 b1@6",
  AZ: "f2 g2 gb2 f2", BA: "bb1@2 bb1@2 b1 ~ f2@2, ~@17 b1@2 ~@5", BB: "f2@4 f1 ~ f2@6 eb2@6 d2@4 d1 ~",
  BC: "g2 d3 ab2 g2", BD: "c2 c3 db3 c3", BE: "c3@4 c3@2 c2@5 ~@5 c3@2 c2@5 ~", BF: "~@4 c3@2 c2@5 ~@5 c3@2 c2@5 ~",
  BG: "~@4 c3@2 c2@5 ~@5 c3@2 c2@6", BH: "c3@6 c2@6 c3@4 c3@2 c2@5 ~", BI: "c3@3 c2@3 c3@3 c2@2 f2", BJ: "~ c2 c3 c2",
  BK: "f2@3 ~ f2@2 c3@6 f2@6 a1@6", BL: "bb1@4 ~ bb0 b1@4 b0 ~ g2@3 ~ g2 ~ db2@6", BM: "d3 a2 a1 d2",
  BN: "eb2@3 ~ eb2@2 bb2@6 c2@6 g2@6", BO: "f2 c3 a1!2", BP: "bb1@6 a1@6 g2@4 ~ g1 g2@6",
  BQ: "g2@6 g2@4 g1 ~ g2@4 ~ g1 c2@4 c1 ~", BR: "f2@4 ~ f1 db2@3 ~@3 ab2@6 c2@4 ~ c1, ~@11 db2@2 ~@11",
  BS: "f2@3 ~ f2@2 c3@6 f2@4 f1@2 b1@6", BT: "bb1@4 bb0@2 c2@6 b1@4 b0 ~ c2@4 ~ c1", BU: "f2@6 db2@6 d2@3 ~ d2@2 a2@6",
  BV: "g2@3 ~ g2 ~ b1@6 c2@6 c2@4 c1 ~", BW: "~@4 c2 ~ c3@4 c2 ~ f2@4 f1@2 f2@6, f2 ~@3",
  BX: "bb1@3 ~ bb1@2 f2@6 bb1@4 bb0 ~ bb1@6", BY: "f2@3 ~ f2 ~ db2@6 d2@3 ~ d2 ~ gb2@6", BZ: "g2@4 g1 ~ c2@6 f2@6 a2@6",
  CA: "c3@4 ~ f2 g2@6 a2@6 f2@6", CB: "c3 a2 d3 d2", CC: "f2@2 f2 eb2@3 d2@3 gb2@3", CD: "c2 c3 c2 c3",
  CE: "~@4 f2@7 ~ eb2@2 ~@4 d2@2 ~@4", CF: "[db2 ~@2 c2@2 f2@25 ~@6]/3",
})).s("gm_acoustic_bass").gain(0.33).pan(0.3)

// chords · piano
const piano = note(`<
  ~ A B C D E F G H I J K L M N O P I J K L M N O Q R S R S R T@2 U V W V X V Y Z AA AB AC AD AE AF AG AH AI@2 AJ AK
  AL@2 AM AN AO AP AQ AR AS@2 AT AU AV AW AX AY@2 AZ BA@2 BB BC BD BE BF@2 BG BH BI@2 ~ BJ@2 BK@2 BL BM@2 BN BO@4 BP BQ
  BR BS BT BU ~ BU ~ BU ~ BV U V W V X V Y Z AA AB ~ BW ~ BX BY@3
>`.pickRestart({
  A: "~@4 [ab4,d5]@2 [a4,c5] ~@5 [ab4,d5]@4 [a4,c5] ~@7, f2@5 a2@7", // Abdim Am Abdim Am
  B: "~@4 [db5,g5]@2 d5@2 ~@4 [db5,g5]@4 [d5,f5] ~@7, bb2@5 b2@7, ~@6 f5 ~@17", C: "d5 ~@2 d3@3, c3 ~, ~@4 c5@19 ~",
  D: "~@6 b4@2 ~@4 bb4@10 ab4!2, g2 c3", E: "a4@2 f4 ~@3 eb2@6, f2 ~", F: "~@6 f5@2 ~@4 bb5@6 db6@4 b5!2, d2 db2",
  G: "c6@4 c5@2 ~@6 d2@11 ~, c2@11 ~@13", H: "~ [b4,ab5]@2 ~ [bb4,g5]@2, g2@11 ~ c2@11 ~", I: "f2@11 ~ a2@9 ~ a2@2",
  J: "bb2@10 c3@13 ~", K: "d2@11 ~ a2@11 ~", L: "eb2@10 c2@13 ~",
  M: "[g5,a5,c6,f6]@3 ~ [g5,a5,c6,f6] ~@7 a2@6 ~@4 a2@2, f2 ~", N: "[g2,bb3] [bb2,d4] a2 d2, ~@12 c4@11 ~",
  O: "~ [b3,ab4]@2 ~ [bb3,g4]@2, g2@11 ~ c2@11 ~", P: "~@6 [bb2,f3,d4]@5 ~ [a2,e3,c4]@5 ~ [g2,d3,bb3]@5 ~",
  Q: "~@5 gb2 g2@3 a2@3, f2@5 ~@7, ~@4 [a3,f4]@19 ~", R: "[bb2,g3,bb3,d4,f4]@2 ~@8 [b2,ab3,b3,d4,f4]@13 ~",
  S: "[c3,a3,c4,d4,f4]@2 ~@8 [f2,a3,c4,eb4,f4]@13 ~", // Dm7 F7
  T: "[[c3,a3,c4,d4,f4]@2 ~@8 [d3,gb3,a3,c4,e4]@12 [g2,f3,b3,db4,e4]@25 ~]/2", // Dm7 D7 Dbm7b5
  U: "~@4 [g3,bb3,d4,f4]@19 ~, [c2,c3]@23 ~", V: "[a5,f6] [g5,e6]", W: "[f5,d6]@3 [g5,e6]", X: "[bb5,g6]",
  Y: "[f5,d6] [e5,c6]", Z: "~ [b4,ab5]@2 ~ [bb4,g5]@2", AA: "~ [a4,f5]@2 ~ [gb4,eb5]@2", AB: "~ [f4,d5]@2 ~ [f4,d5]@2",
  AC: "~@5 [a4,d5,c6] ~@6 [g2,bb3,f4] g3 ~@4 [c2,e3,g3,bb3,e4] ~@5", // D7 Gm7 C7
  AD: "~@5 f2 a4 d5@2 ~ d4 ~ a2@2 ~@2 g4 [c5,a5] ~@6, ~@9 a4@2 ~@13", // F
  AE: "[bb1,d3,f3,g3,d4] ~@5 [b1,d3,gb3,a3,d4] ~@4 [g2,f3,g3,bb3,f4]@3 ~@4 [c2,g3,bb3,e4] ~@5", // Gm7 Bm7 Gm7 C7
  AF: "[d5,d6] [a4,f5] ~@9 a2@3 ~@3 [g4,c5,a5] ~@6", AG: "bb4@3 ~@2 bb3@5 ~ c2@3 ~@2 bb4 [e5,c6] ~@6",
  AH: "[c5,d5,c6] f4 ~@11 [e4,a4,a5] ~@10", // Csus2 A5
  AI: "[[bb1,d3,f3,g3,d4] ~@5 [a2,g3,a3,c4,g4] ~@5 d6 [g4,d5,f5] ~@9 [g2,f3,a3,b3,f4]@3 ~@3 [g2,f3,a3,b3,f4]@3 ~@3 [g2,f3,g3,bb3,f4]@3 ~@4 [c2,e3,bb3,e4] g3 ~@4]/2", // Gm7 Am7 G7 Gm7 C7
  AJ: "[f2,d3,f3,a3,d4] ~@5 [g2,f3,g3,bb3,f4] ~@5 [bb1,d3,f3,g3] ~@4 [g2,f3,g3,bb3,f4]@3 ~@4, ~@6 d4 ~@5", // Dm Gm7
  AK: "~@5 f2 a4 ~@3 e4 ~ [f4,c5] [d5,c6] ~@10, ~@8 e5@3 ~@13, ~@9 a4@2 ~@13", // F5 D7
  AL: "[[d5,f5,d6] f4 ~@9 f5@2 ~@5 [f4,b4,d5] ~@4 ab5@2 [f2,f3,c6]@11 a5 ~@5 [c5,gb5,a5,d6] ~@5]/2", // Dm Bdim F5 D7
  AM: "[d5,f5,d6] g4 ~@10 [c5,e5,c6] ab4 ~@10", // Dm C
  AN: "db6 d3@3 ~ [d3,a3,f5,db6] ~@5 [c3,eb5,f5]@4 ~@2 [c3,eb5,f5] ~@6, [a3,f5,f6]@3 ~@2 f6@2 ~@17", // Dm F7 Dm
  AO: "~@4 c5@2 f5 ~@5 bb5@5 ~ db6@4 b5@2, ~@4 bb2 ~@6 bb1@3 ~@10",
  AP: "c6@4 c5@2 ~@7 eb6 ~@3 [gb3,c4,eb6] ~@6, [f2,d3]@11 ~ [gb3,c4,a6]@3 ~@2 a6@2 ~@5", // Cdim Dm Gbdim
  AQ: "[g2,f3,g3,b3,f4] ~@4 [c2,g3,bb3,e4]@3 ~@4 [f2,d3,f3,a3,d4] ~@4 [f2,eb3,f3,a3,eb4]@3 ~@4", // G7 C7 Dm F7
  AR: "f5 ~@5 [f4,d5] ~@4 f5@2 ~ f5@10, ~@13 [b1,d3,ab5]@11", // Dm Abdim
  AS: "[f5 ~@5 [f4,c5] ~@5 [f3,a3] eb4 ~@12 f5@10 b1@2 ~@3 [ab4,d5,b5] ~@6, ~@23 e5@2 bb1@11 ~@12, ~@24 [d3,ab5]@11 ~@13]/2", // F5 F Abdim Ddim
  AT: "[f2,f3,a3,d4] ~@5 [gb2,e3,gb3,bb3,e4] ~@6 [f2,eb3,a5]@11, ~@6 e5 ~@5", // Dm Gb7 F7
  AU: "[d3,f5,f6]@3 ~@2 [d3,g3,f5,b5] ~@11 b2 ~ ab4 ~@2 d4 ~, b5 ~@4 f6@2 ~@13 d5@3 ~, ~@21 ab4@2 ~", // Dm G7
  AV: "[d3,a3,f6]@3 ~@2 [d3,a3,f5,db6] ~@6 [d2,bb3,c4,gb4] ~@5 [d2,gb3,a3,c4,gb4] ~@5, db6 ~@4 f6@2 ~@17", // Dm Daug D7
  AW: "[a3,b3,f4] ~@23", AX: "[d5,d6] [g4,e5] ~@10 [f2,f3,a3,eb4] ~@11",
  AY: "[~ d5@3 ~ bb2 [c5,c6]@3 ~@3 f5 ~@5 [f4,d5] ~@4 [f3,a3,d4]@2 ~@11 eb5@3 ~ f2 ~ [c5,c6]@3 ~@3]/2", // C Dm C
  AZ: "[bb4,d5] [f4,bb5] ~@10 b1@2 ~@2 ab4 [d5,b5] ~@6", // Bb Bb5 G
  BA: "[d5 [f4,c5,c6] ~@9 [gb2,e3,gb3,bb3,e4]@3 ~@4 [f2,eb3,a3,eb4] f3 ~@3 [f3,g3,d4]@2 ~@11 [f2,d5,f5]@3 ~@2 [f2,d5,f5] ~@6]/2", // F5 Gb7 F7 G7 Dm
  BB: "f2@2 ~@2 a4 [d5,c6] ~@6 [eb2,g3,bb3,db4,g4] ~@5 [d2,gb3,a3,c4,gb4] ~@5", // D7 Eb7 D7
  BC: "g2@2 ~@2 b4 [f5,d6] ~@6 [ab2,bb3,c4,gb4] ~@5 [g2,a3,b3,f4] ~@5", // Dm Ab7 G7
  BD: "~@5 g2 bb4 f5@2 bb4@2 f4 [db2,ab3,b3,f4] ~@5 [c2,e3,bb3,e4] g3 ~@4", BE: "[g3,bb3,f4] ~@23",
  BF: "[[f3,ab5,ab6]@2 e6@2 ~ [f3,b3,ab5,e6] ~@17 e5@2 ~ f5@20 ~@2, ~@5 ab6@2 ~@18 [g2,bb5]@22 ~]/2", // Fm E Gm
  BG: "[ab2,f4,ab4] ~@11 ab5 [f3,d4,d5,d6]@9 ~@2, d5 ~@11", BH: "~ f5@10 ~, e5 ~@11, ~ [g2,bb5]@22 ~",
  BI: "[[ab2,f3,b3,f4] ab3 ~@4 g5 ~@5 f5 ~@5 [ab2,ab3,b3,f4] ~@4 [f3,g6]@4 ~@2 [f3,bb3,g5,eb6] ~@6 [g2,f3,g3,bb3,f4] ~@5 [f2,f3,a3,d4] ~@5, ~@23 eb6@2 ~@4 g6@2 ~@17]/2", // Fdim Fsus2 Eb Gm7 Dm
  BJ: "[[f2,d3,f3,a3,d4] ~@5 [f2,d3,f3,a3,d4] ~@4 [ab2,f3,ab3,c4,f4]@3 ~@4 [bb1,f3,g3,d4] ~@4 [d3,f6]@4 ~@2 [d3,a3,f5,db6] ~@6 [f2,a3,d4] f3 ~@3 [a2,g3,a3,c4,g4]@3 ~@4, ~@23 db6@2 ~@4 f6@2 ~@17]/2", // Dm Fm Gm7 Dm Am7
  BK: "[[bb1,d3,g3,d4] f3 ~@3 [b1,d3,gb3,a3,d4]@3 ~@4 [d2,bb4,d5]@3 ~@2 [d2,bb4,d5] ~@5 ab5@2 ~ a5@8 ~ a2@3 ~@3 [g4,c5,a5] ~@6, ~@25 [d2,f3,c6]@10 ~@13]/2", // Gm Bm7 Gm Am7 Dm7
  BL: "[eb3,g3,c4] ~@10 [ab3,bb3,e4]@2 ~@11", // Cm Bbm7b5
  BM: "[[c3,e5,g5]@3 ~@2 [c3,g5] ~@6 e5 ~@5 [e4,e5] ~@4 [bb1,d3,f3,bb3,d4]@3 ~@4 [a2,g3,a3,c4,g4] ~@4 [g3,bb3,f4]@2 ~@11]/2", // C C5 E Bb Am7 Gm7
  BN: "[g2,a3,b3,f4] ~@4 [g2,a3,b3,f4]@3 ~@4 [g2,f3,g3,bb3,f4] ~@5 [c2,e3,g3,bb3,e4] ~@5", // G7 Gm7 C7
  BO: "[[f2,f3,a3,d4] ~@4 [ab2,b4,eb5]@4 ~@2 [ab2,b4,eb5] ~@6 [c2,e3,g3,bb3,e4] ~@4 [c3,e5,g5]@4 ~@2 [e5,g5] ~@6 d5@3 ~ f2 ~ [c5,c6]@3 ~@2 bb1@3 ~@3 [g4,d5,bb5] ~@6 [b1,d3,f3,ab3,d4] ~@5 [c2,e3,g3,bb3,e4] ~@4 [g5,c6]@2 ~@5 [e5,c6] g5 ~@4 [a3,c4,gb4] ~@11]/4", // Dm Abm C7 C Em C Gm Bdim …
  BP: "~@11 [c2,ab3,bb3,e4]@3 ~@4 a5 ~@5, ~@6 ab5@11 [c2,e3,g3,bb3,e4]@3 ~@4", // Caug C7
  BQ: "c5@3 ~ c5 ~@7 e5 ~ f5@10, ~@12 eb3@11 ~, ~@13 [eb2,a5]@11", BR: "~@4 d5@2 f5 ~@5 g5@5 ~ f5 ~@5, d2 db2",
  BS: "[ab5,d6]@4 [a5,c6]@2 ~@4 [ab5,d6]@2 [a5,c6]@2 ~@4 c5 ~@5, c2 d2", // Abdim Am Abdim Am
  BT: "[g2,b4,ab5]@5 ~ [c2,bb4,g5]@3 ~ [f2,a4,f5] ~@13", BU: "[g3,bb3,d4,f4]@9 ~ [ab3,b3,d4,f4]@11 ~ [a3,c4,d4,f4] ~",
  BV: "~@6 [g2,f3,b3,db4,e4,a4]@3 ~ [g2,f3,b3,db4,e4,a4] ~ [g2,f3,b3,db4,e4,a4]@3 ~ [g2,f3,b3,db4,e4,a4] ~@7", // A7
  BW: "~@4 [g2,f3,b3] [db4,e4,a4] ~@6 [g2,f3,b3,db4,e4,a4] ~@11", BX: "~@4 [f2,a3]@7 ~ [eb2,g3]@2 ~@4 [d2,gb3]@2 ~@4",
  BY: "[[db2,f3] ~@2 [c3,c4]@2 [f2,a3,eb4,ab4]@25 ~@6]/3", // Db C F7
})).s("gm_piano").gain(0.19).pan(0.3)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@42 A ~ B ~@2 C ~@4 D E ~ F ~ G H I J ~ K L M N ~ O@2 ~ P@2 ~ Q A N R S T S U@2 ~ V@2 ~@2 W X Y Z AA AB ~ AC AD ~@28
>`.pickRestart({
  A: "~@12 f3 ~@11", B: "~@18 e3 ~@5", C: "~@12 c5 ~@11", D: "~@11 b5@2 ~@5 [ab4,f5,b5] ~@5",
  E: "~@2 a5@10 d6 ~@5 [a4,d5] ~@5", F: "~ d6 ~@10", G: "~@7 e6 ~@4", H: "~@5 e3@3 ~@16",
  I: "c6 ~@5 [ab4,c5,f5,c6] ~@17", J: "c6 ~@5 [a4,d5,c6] f5 ~@4 f2 ~@11", K: "d3 ~@13 g5@10", L: "g3 c6 ~@10",
  M: "f5@2 d6@2 ~@8 gb3 ~@11", N: "g2 ~@23", O: "[~@12 b5 ~@5 [ab4,b4,f5,b5] ~@4 f2@2 ~@23]/2",
  P: "[~@23 bb1@2 ~@23]/2", Q: "~@12 gb3 ~@5 f3 ~@5", R: "b3 ~@7, e6 ~@23", S: "~ f4@23", T: "~@23 f3",
  U: "[~@6 d6 ~@5 [g4,bb4,d5,g5,d6] ~@5 f3 ~@4 [bb3,g5]@3 e6@2 ~@14 d3 ~@5]/2", // Gm Eb
  V: "[~@18 d3 ~@4 [a3,f5]@3 d6@2 ~@8 d3 ~@11]/2", W: "eb2 ~@10 c2@2 ~@11", X: "~@5 e5 ~@6 a5 ~@5 [g4,a4,c5,a5] ~@5",
  Y: "~@11 g2@2 ~@11", Z: "f3@2 ~@3 f3@3 ~@16", AA: "d3 ~@11", AB: "~@5 c3 ~@18", AC: "~@6 [g4,a4,c5] ~@5 d2 ~@11",
  AD: "~@5 g2 ~@5 e3@3 ~@10",
})).s("gm_piano").gain(0.14).pan(0.3)

// other · alto sax
const alto_sax = note(`<
  ~@25 A@2 B@2 C@4 D@2 ~ E F ~@4 G H@3 I J K@4 L M@2 N ~@2 O P Q R S T U@2 V W X Y@3 Z AA@2 ~@2 AB@3 ~ AC ~ AD@2 AE@3 AF
  AG@2 AH AI AJ AK ~@5 AL@2 AM@2 AN@3 ~ D@2 ~ E F ~@5 AO AP AQ AR@3
>`.pickRestart({
  A: "[~@6 d5@4 ab4@17 ~ d5@4 ~ d5@2 ~ d5@4 c5@2 ab4@4 f4@2, ~@32 e5@2 ~ c5@2 ~@11]/2",
  B: "[~@6 d5@4 ab4@17 ~ d5@4 ~@2 c5@2 d5@4 c5@2 ab4@4 f4@2, ~@16 e5 ~@7, ~@33 d5@2 ~@13]/2",
  C: "[~@6 d5@4 ab4@17 ~ a4@2 f4@4 c4@2 e4@4 d4@2 ~@4 e4@6 eb4 ~ db4@4 d4@2 ~@4 g4@2 a4@4 c5@25 ~]/4",
  D: "[f4@10 c4@37 ~]/2", E: "~@4 g4 ~@7 g4@2 ~@10", F: "~@4 a4 ~@19", G: "~@2 d4 ab3@3 a3@2 c4 d4@2 f4",
  H: "[~@10 c4@2 ~@10 bb4@7 ~ a4@4 f4@2 ~@12 f4!2 ~@2 c4@2 f4@4 e4@6 g4@2 e4@4 c4@2, ~@47 c4@2 ~@23]/3",
  I: "eb4@4 eb4@2 ~@10 db4@7 ~", J: "c4@2 c4!2 ~@2 e4@2 e4 ~@2 e4",
  K: "[d4@2 ~@4 e4@2 ~@4 f4@3 ~ g4@2 ~@4 ab4@7 ~ a4@4 d4@2 f4@3 ~ g4@2 ~@4 f4@7 ~ bb4@4 a4@2 f4@3 ~ d4@2 ~@4 c4@13 ~@13]/4",
  L: "~@4 d4@2 f4@4 ab4@7 bb4 g4@4 f4@2, ~@18 a4 ~@5", M: "[d5@4 ab4@37 ~ g4@4 e4@2]/2", N: "f4@2 c4 ~@9",
  O: "~@8 c4 eb4@2 g4", P: "f4@2 c4 d4@2 f4 d4@2 b3 ~@2 b3", Q: "e4@2 f4@2 c5@12 a4@2 ~ a4@2 g4@2 ~, ~@9 g4 ~@2",
  R: "d4@4 f4 ~@11 d4@2 d4@4 d4@2", S: "a4@2 f4 db4@2 d4@7", T: "~@2 gb3 g3@2 ~ b3@2 bb3 b3@2 db4",
  U: "[d4@4 a4@2 f4@4 eb4@8 eb4@4 db5@5 ~@2 bb4 a4@4 e4@2 db4@4 a3 ~@7]/2", V: "~@2 d4 e4@2 g4 g4@2 ~ eb4@2 g4",
  W: "f4@2 c4 ~@2 c4 d4@2 b3 ~@2 b3", X: "a4@5 ~ a4@5 ~ g4@4 c4 ~@7, ab4 ~@5 ab4 ~@17",
  Y: "[~@4 gb3@2 g3@4 bb3@2 b3@4 ab3@2 ab4@4 f4@13 ~ ab4@4 g4@2 ~@4 bb4@6 ~ d4 bb3@4 db4@2 d4@4 b3@2 ab4@4 b3@2]/3",
  Z: "e4@2 f4@2 c5@2 f4@4 gb4@2 f4@4 e4 ~@7",
  AA: "[~@2 a4@2 ab4@2 a4@2 ab4@2 a4@2 ~@2 e4@2 f4@2 e4@4 bb3@8 d4@4 bb3@2 f4@3 ~ e4@2 ~@6]/2",
  AB: "[~@4 d4@2 f4@2 ~@2 f4@2 bb4@2 f4@2 bb4@2 c5@4 e5@6 ~@2 db5@4 b4@2 db5@3 ~ e5@2 ~@4 c5@25 ~]/3",
  AC: "d4@4 bb3@2 d4@4 g4@6 f4@2 d4@4 d4 ~", AD: "[~@6 d4@2 ~@4 f4@3 ~ g4@2 ~@4 a4@19 ~ a3@2 ~@4]/2",
  AE: "[f4@6 f4@4 d4@2 ~@10 f4@5 ~ [d4,eb4] db4 c4@2 ~@2 c4@2 c4@3 ~ c4@2 ~@4 c4@13 ~@5 c4@7 ~]/3", // Ebmaj7
  AF: "a3@3 ~ a3@2 ~@4 a3@2 a3@2 ~@4 a3@2 ~@4",
  AG: "[bb3@6 c4@4 bb3@2 ~@4 d4@2 ~@4 e4@7 ~ f4@4 b3@2 d4@4 d4@2 ~@4 c4@2]/2", AH: "~@6 eb4@11 ~ d4@2 ~@4",
  AI: "a3@2 a3 ~@9", AJ: "~@6 ab4@11 ~ a4@2 ~@4", AK: "a3@4 a3 ~@19",
  AL: "[~@6 d5@9 ~@2 [g4,a4] f4@4 d5@4 e5 d5 ~ c5 d5@4 c5@2 ab4@4 f4@2 ~@6, ~@18 gb4 ~@29]/2", // Gsus2
  AM: "[~@6 d5@9 ~@2 g4 f4@4 d5@3 e5 ~ d5 ~ c5 d5@4 c5@2 ab4@4 f4@2 ~@6, ~@18 gb4 ~@29]/2",
  AN: "[~@6 d5@9 ~@2 [gb4,g4] f4@4 d5@4 e5 d5 c5 ~ d5@4 eb5@6 d5@2 eb5@4 e5@6 ~ d5 db5@4 a4@2 e4@3 ~ db4@2 ~@4 c4@2]/3", // Gmaj7
  AO: "~@4 e5@6 ~ d5 db5@4 d5@2 a4@4 f4@2", AP: "d5@2 ab4@4 f4@2 g4 f4@2 f4", AQ: "~@12 c4 ~ c4 ~@3 c4!2 ~@4",
  AR: "[b3!2 ~@4 c4@4 f4@49 ~@13]/3",
})).s("gm_alto_sax").gain(0.47).pan(0.7)

// other · alto sax · soft notes
const alto_sax_soft = note(`<
  ~@31 A ~@28 B ~@2 C ~ D E ~@4 F ~ G ~@3 H I ~@7 J ~@13 K ~ L ~ L ~ M ~@11 N ~@5
>`.pickRestart({
  A: "~@5 d4 ~@6 e4@4 ~@8", B: "~@22 c4 ~", C: "~@5 bb3 ~@6", D: "~@3 c5 b4 ~@19", E: "~@8 c4 ~@3",
  F: "~@4 [f4,g4] ~@19", G: "~@6 f4 ~@5", H: "~@4 d4 ~@7", I: "~@4 eb5 d5 ~@18", J: "~@3 e4 ~@20",
  K: "~@16 [b4,db5] ~@7", L: "~@16 [b4,db5] a4 ~@6", M: "~@4 eb5 ~@19", N: "~@10 eb5 ~@13",
})).s("gm_alto_sax").gain(0.31).pan(0.7)

// other · tenor sax
const tenor_sax = note(`<
  ~@20 A B ~@3 C@2 D@2 E@4 F@2 ~ G H ~@4 I J@2 K L M N@4 O P@2 Q ~@2 R S T U V W X@2 Y Z AA AB@3 AC AD@3 AE AF@3 AG AH ~
  AI@2 AJ@3 AK AL@2 AM AN AO AP ~@5 AQ@2 AR@2 AS@4 F@2 ~ G H ~@5 AT AU AV AW@3
>`.pickRestart({
  A: "~@4 g3 ~@7 e3@2 ~@10", B: "~@2 f3 ~@9",
  C: "[~@6 ab4@4 d4@17 ~ d4@4 ~@2 c4@2 d4@4 c4@2 ab3@4 f3@2, ~@16 e4 ~@7, ~@33 d4@2 ~@13]/2",
  D: "[~@6 ab4@4 d4@17 ~ d4@3 e4@2 d4@2 ~ d4@4 c4@2 ab3@4 f3@2, ~@35 c4@2 ~@11]/2",
  E: "[~@6 ab4@4 d4@17 ~ a4@2 f4@4 c4@2 e4@4 d4@2 ~@4 e4@6 eb4 ~ db4@4 d4@2 e4@4 g4@2 a4@4 c5@25 ~]/4",
  F: "[d4@10 g3@37 ~]/2", G: "~@4 eb4 ~@7 e4@2 ~@10", H: "~@4 f4 ~@19", I: "~@2 d4 ab3@3 a3@2 c4 d4@2 f4",
  J: "[~@10 g3@2 ~@10 g3@7 ~ a3@4 g3@2 ~@10 e3@2]/2", K: "a3 ~ a3 ~@3 a3@4 a3@6 c4@2 a3@4 g3@2, ~@5 f3@2 ~@17",
  L: "eb3@2 eb3 ~@5 gb3@4", M: "f3@2 f3!2 ~@2 g3@2 g3 ~@2 g3",
  N: "[g3@2 ~@4 g3@2 ~@4 bb3@3 ~ bb3@2 ~@4 b3@7 ~ b3@4 f3@2 bb3@3 ~ bb3@2 ~@4 a3@7 ~ bb3@4 c4@2 bb3@3 ~ f3@2 ~@4 e3@13 ~@13]/4",
  O: "~@4 d4@2 f4@4 ab4@7 ~ g4@4 f4@2, ~@18 a4 ~@5", P: "[d5@4 ab4@37 ~ g4@4 e4@2]/2", Q: "f4@2 c4 ~@9",
  R: "~@8 a3 c4@2 eb4", S: "d4@2 ab3 c4@2 d4 b3@2 ab3 ~@2 ab3",
  T: "db4@2 d4@2 a4@12 f4@2 eb4@2 ~@2 a3 ~, ~@10 f4 ~, ~@21 eb4@2 ~", U: "c4@2 d4 ~@5 ab3 ab3@2 ab3",
  V: "f4@2 d4 bb3@2 a3@7", W: "~@2 e3 f3@2 g3 ab3@2 g3 ab3@2 bb3",
  X: "[c4@4 f4@2 d4@4 c4@8 c4@4 a4@5 ~@2 f4 e4@4 db4@2 a3@4 b3 ~@7]/2", Y: "~@2 bb3 d4@2 e4 eb4@2 a3 c4@2 e4",
  Z: "d4@4 ab3 ~@5 ab3@2 b3@4 ab3 ~@5 ab3@2", AA: "f4@5 ~ f4@5 ~ eb4@4 a3 ~@7, e4 ~@5 e4 ~@17",
  AB: "[~@4 e3@2 f3@4 g3@2 ab3@4 f3@2 f4@4 d4@13 ~ e4@4 eb4@2 ~@4 g4@6 ~ bb3 g3@4 bb3@2 b3@4 ab3@2 f4@4 ab3@2]/3",
  AC: "db4@2 ~@2 a4@2 d4@4 d4@2 db4@4 c4 ~@7",
  AD: "[~@2 e4@2 eb4@2 e4@2 eb4@2 e4@2 c4@2 b3@2 c4@2 b3@4 g3@8 bb3@4 g3@2 eb4@3 ~ d4@2 ~@4 c4@25 ~]/3",
  AE: "~@4 c3@19 ~", AF: "[~@4 bb3@2 c4@2 ~@2 c4@2 f4@2 c4@2 f4@2 g4@4 b4@6 ~ a4 ab4@4 f4@2 ab4@4 b4@2 ~@4 c5@25 ~]/3",
  AG: "~@6 c3@5 ~@7 c3@5 ~", AH: "bb3@2 g3 bb3@2 f4@3 d4 bb3@2 c4",
  AI: "[~@6 bb3@2 ~@4 eb4@4 f4@2 ~@4 f4@19 ~ g3@2 ~@4]/2",
  AJ: "[d4@6 d4@4 bb3@2 ~@10 c4@6 b3 bb3 a3@2 ~@2 a3@2 g3@3 ~ g3@2 ~@4 bb3@13 ~@5 bb3@8]/3",
  AK: "f3@3 ~ f3@2 ~@4 f3@2 g3@2 ~@4 g3@2 ~@4",
  AL: "[g3@6 g3@4 f3@2 ~@4 bb3@2 ~@4 b3@7 ~ b3@4 f3@2 bb3@3 ~ bb3@2 ~@4 a3@2]/2", AM: "~@6 b3@11 ~ bb3@2 ~@4",
  AN: "f3@2 f3 ~@9", AO: "~@6 ab3@11 ~ a3@2 ~@4", AP: "e3@2 e3 ~@9",
  AQ: "[~@6 d4@9 ~@2 [g3,a3] f3@4 d4@3 e4 ~ d4 c4 ~ d4@4 c4@2 ab3@4 f3@2 ~@6, ~@18 gb3 ~@29]/2", // Gsus2
  AR: "[~@6 d4@9 ~@2 [gb3,g3] f3@4 d4@3 e4 ~ d4 c4 ~ d4@4 c4@2 ab3@4 f3@2 ~@6]/2", // Gmaj7
  AS: "[~@6 d4@9 ~@2 g3 f3@4 d4@3 e4 ~ d4 ~ c4 d4@4 eb4@6 d4@2 eb4@4 e4@6 eb4 d4 db4@4 a3@2 e3@3 ~ db3@2 ~@4 c3@25 ~, ~@18 gb3 ~@77]/4",
  AT: "~@4 e4@6 ~ d4 db4@4 d4@2 a3@4 f3@2", AU: "d4@2 ab3@4 f3@2 g3 f3@2 f3", AV: "~@12 a3 ~ a3 ~@3 a3!2 ~@4",
  AW: "[ab3!2 ~@4 c4@4 a3@49 ~@13]/3",
})).s("gm_tenor_sax").gain(0.47).pan(0.4)

// other · tenor sax · soft notes
// … 360 more lines

More by Basie