Strudelify
Hay Burner cover art

Straight Ahead

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, A@4 for four bars: 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@3 BG@2 BH ~ BI BJ BK BL BM BN BO BP BQ BR BS BT
  BU BV BW BX BY P BZ P Q P CA S T U I J K H L G V W CB S CC CD CE@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: "c3@6 c2@6 c3@4 c3@2 c2@5 ~", BH: "c3@3 c2@3 c3@3 c2@2 f2", BI: "~ c2 c3 c2", BJ: "f2@3 ~ f2@2 c3@6 f2@6 a1@6",
  BK: "bb1@4 ~ bb0 b1@4 b0 ~ g2@3 ~ g2 ~ db2@6", BL: "d3 a2 a1 d2", BM: "eb2@3 ~ eb2@2 bb2@6 c2@6 g2@6",
  BN: "f2 c3 a1!2", BO: "bb1@6 a1@6 g2@4 ~ g1 g2@6", BP: "g2@6 g2@4 g1 ~ g2@4 ~ g1 c2@4 c1 ~",
  BQ: "f2@4 ~ f1 db2@3 ~@3 ab2@6 c2@4 ~ c1, ~@11 db2@2 ~@11", BR: "f2@3 ~ f2@2 c3@6 f2@4 f1@2 b1@6",
  BS: "bb1@4 bb0@2 c2@6 b1@4 b0 ~ c2@4 ~ c1", BT: "f2@6 db2@6 d2@3 ~ d2@2 a2@6", BU: "g2@3 ~ g2 ~ b1@6 c2@6 c2@4 c1 ~",
  BV: "~@4 c2 ~ c3@4 c2 ~ f2@4 f1@2 f2@6, f2 ~@3", BW: "bb1@3 ~ bb1@2 f2@6 bb1@4 bb0 ~ bb1@6",
  BX: "f2@3 ~ f2 ~ db2@6 d2@3 ~ d2 ~ gb2@6", BY: "g2@4 g1 ~ c2@6 f2@6 a2@6", BZ: "c3@4 ~ f2 g2@6 a2@6 f2@6",
  CA: "c3 a2 d3 d2", CB: "f2@2 f2 eb2@3 d2@3 gb2@3", CC: "c2 c3 c2 c3", CD: "~@4 f2@7 ~ eb2@2 ~@4 d2@2 ~@4",
  CE: "[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 [e5,c6] [ab4,c5] ~@10", // Dm C Ab
  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@4 B@4 C@2 ~ D E ~@4 F G@3 H I J@4 K L@2 M ~@2 N O P Q R S T@2 U V W X@3 Y Z@2 ~@2 AA@3 ~ AB ~ AC@2 AD@3 AE AF@2
  AG AH AI AH ~@5 AJ@2 AK@2 AL@3 ~ C@2 ~ D E ~@5 AM AN AO AP@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 ~ 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",
  C: "[f4@10 c4@37 ~]/2", D: "~@4 g4 ~@7 g4@2 ~@10", E: "~@4 a4 ~@19", F: "~@2 d4 ab3@3 a3@2 c4 d4@2 f4",
  G: "[~@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",
  H: "eb4@4 eb4@2 ~@10 db4@7 ~", I: "c4@2 c4!2 ~@2 e4@2 e4 ~@2 e4",
  J: "[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",
  K: "~@4 d4@2 f4@4 ab4@7 bb4 g4@4 f4@2, ~@18 a4 ~@5", L: "[d5@4 ab4@37 ~ g4@4 e4@2]/2", M: "f4@2 c4 ~@9",
  N: "~@8 c4 eb4@2 g4", O: "f4@2 c4 d4@2 f4 d4@2 b3 ~@2 b3", P: "e4@2 f4@2 c5@12 a4@2 ~ a4@2 g4@2 ~, ~@9 g4 ~@2",
  Q: "d4@4 f4 ~@11 d4@2 d4@4 d4@2", R: "a4@2 f4 db4@2 d4@7", S: "~@2 gb3 g3@2 ~ b3@2 bb3 b3@2 db4",
  T: "[d4@4 a4@2 f4@4 eb4@8 eb4@4 db5@5 ~@2 bb4 a4@4 e4@2 db4@4 a3 ~@7]/2", U: "~@2 d4 e4@2 g4 g4@2 ~ eb4@2 g4",
  V: "f4@2 c4 ~@2 c4 d4@2 b3 ~@2 b3", W: "a4@5 ~ a4@5 ~ g4@4 c4 ~@7, ab4 ~@5 ab4 ~@17",
  X: "[~@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",
  Y: "e4@2 f4@2 c5@2 f4@4 gb4@2 f4@4 e4 ~@7",
  Z: "[~@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",
  AA: "[~@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",
  AB: "d4@4 bb3@2 d4@4 g4@6 f4@2 d4@4 d4 ~", AC: "[~@6 d4@2 ~@4 f4@3 ~ g4@2 ~@4 a4@19 ~ a3@2 ~@4]/2",
  AD: "[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
  AE: "a3@3 ~ a3@2 ~@4 a3@2 a3@2 ~@4 a3@2 ~@4",
  AF: "[bb3@6 c4@4 bb3@2 ~@4 d4@2 ~@4 e4@7 ~ f4@4 b3@2 d4@4 d4@2 ~@4 c4@2]/2", AG: "~@6 eb4@11 ~ d4@2 ~@4",
  AH: "a3@2 a3 ~@9", AI: "~@6 ab4@11 ~ a4@2 ~@4",
  AJ: "[~@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
  AK: "[~@6 d5@9 ~@2 g4 f4@4 d5@4 e5 d5 ~ c5 d5@4 c5@2 ab4@4 f4@2 ~@6, ~@18 gb4 ~@29]/2",
  AL: "[~@6 d5@9 ~@2 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, ~@18 gb4 ~@53]/3",
  AM: "~@4 e5@6 ~ d5 db5@4 d5@2 a4@4 f4@2", AN: "d5@2 ab4@4 f4@2 g4 f4@2 f4", AO: "~@12 c4 ~ c4 ~@3 c4!2 ~@4",
  AP: "[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@4 D@4 E@2 ~ F G ~@4 H I@2 J K L M@4 N O@2 P ~@2 Q R S T U V W@2 X Y Z AA@3 AB AC@3 AD AE@3 AF AG ~ AH@2
  AI@3 AJ AK@2 AL AM AN AO ~@5 AP@2 AQ@2 AR@4 E@2 ~ F G ~@5 AS AT AU AV@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 ~ 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",
  E: "[d4@10 g3@37 ~]/2", F: "~@4 eb4 ~@7 e4@2 ~@10", G: "~@4 f4 ~@19", H: "~@2 d4 ab3@3 a3@2 c4 d4@2 f4",
  I: "[~@10 g3@2 ~@10 g3@7 ~ a3@4 g3@2 ~@10 e3@2]/2", J: "a3 ~ a3 ~@3 a3@4 a3@6 c4@2 a3@4 g3@2, ~@5 f3@2 ~@17",
  K: "eb3@2 eb3 ~@5 gb3@4", L: "f3@2 f3!2 ~@2 g3@2 g3 ~@2 g3",
  M: "[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",
  N: "~@4 d4@2 f4@4 ab4@7 ~ g4@4 f4@2, ~@18 a4 ~@5", O: "[d5@4 ab4@37 ~ g4@4 e4@2]/2", P: "f4@2 c4 ~@9",
  Q: "~@8 a3 c4@2 eb4", R: "d4@2 ab3 c4@2 d4 b3@2 ab3 ~@2 ab3",
  S: "db4@2 d4@2 a4@12 f4@2 eb4@2 ~@2 a3 ~, ~@10 f4 ~, ~@21 eb4@2 ~", T: "c4@2 d4 ~@5 ab3 ab3@2 ab3",
  U: "f4@2 d4 bb3@2 a3@7", V: "~@2 e3 f3@2 g3 ab3@2 g3 ab3@2 bb3",
  W: "[c4@4 f4@2 d4@4 c4@8 c4@4 a4@5 ~@2 f4 e4@4 db4@2 a3@4 b3 ~@7]/2", X: "~@2 bb3 d4@2 e4 eb4@2 a3 c4@2 e4",
  Y: "d4@4 ab3 ~@5 ab3@2 b3@4 ab3 ~@5 ab3@2", Z: "f4@5 ~ f4@5 ~ eb4@4 a3 ~@7, e4 ~@5 e4 ~@17",
  AA: "[~@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",
  AB: "db4@2 ~@2 a4@2 d4@4 d4@2 db4@4 c4 ~@7",
  AC: "[~@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",
  AD: "~@4 c3@19 ~", AE: "[~@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",
  AF: "~@6 c3@5 ~@7 c3@5 ~", AG: "bb3@2 g3 bb3@2 f4@3 d4 bb3@2 c4",
  AH: "[~@6 bb3@2 ~@4 eb4@4 f4@2 ~@4 f4@19 ~ g3@2 ~@4]/2",
  AI: "[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",
  AJ: "f3@3 ~ f3@2 ~@4 f3@2 g3@2 ~@4 g3@2 ~@4",
  AK: "[g3@6 g3@4 f3@2 ~@4 bb3@2 ~@4 b3@7 ~ b3@4 f3@2 bb3@3 ~ bb3@2 ~@4 a3@2]/2", AL: "~@6 b3@11 ~ bb3@2 ~@4",
  AM: "f3@2 f3 ~@9", AN: "~@6 ab3@11 ~ a3@2 ~@4", AO: "e3@2 e3 ~@9",
  AP: "[~@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
  AQ: "[~@6 d4@9 ~@2 [gb3,g3] f3@4 d4@3 e4 ~ d4 c4 ~ d4@4 c4@2 ab3@4 f3@2 ~@6]/2", // Gmaj7
  AR: "[~@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",
  AS: "~@4 e4@6 ~ d4 db4@4 d4@2 a3@4 f3@2", AT: "d4@2 ab3@4 f3@2 g3 f3@2 f3", AU: "~@12 a3 ~ a3 ~@3 a3!2 ~@4",
  AV: "[ab3!2 ~@4 c4@4 a3@49 ~@13]/3",
})).s("gm_tenor_sax").gain(0.47).pan(0.4)

// other · tenor sax · soft notes
const tenor_sax_soft = note("<~@31 A ~@20 B ~@12 C ~@5 D E ~@4 F G ~@21 H ~ I ~ J ~@13 K ~@5>".pickRestart({
  A: "~@5 d4 ~@18", B: "~@17 bb4 ~@6", C: "~@3 ab4 g4 gb4 ~@18", D: "~@4 [d4,f4] ~@19", E: "~ d4 ~@10",
// … 356 more lines

More by Basie