Strudelify
Salt Peanuts cover art

Salt Peanuts

Salt Peanuts

Gillespie Dizzy

KeyF majorTempo120 bpm
0:00/0:00
// Salt Peanuts — Gillespie Dizzy
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 195 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, A@4 for four bars: edit a riff to change every repeat.

// bass · acoustic bass · "Jazz Bass"
const bass = note(`<
  A B C ~ A B C D E@2 F@2 G H I ~ J K@2 L J K@2 L J K@2 L J K@2 L M N O P@2 Q R S J K@2 L J K@2 L T U V W X Y Z ~ AA AB
  ~@2 AC AD ~@2 AE@2 AF@3 AG ~@4 T AH AI AJ AK AL AI AM AN AO AP AQ AR AS AP@2 AT AU P AV AW AX AY S AI AZ T BA BB BC AI
  BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU ~@7 BL BV BW BX BY BQ BZ ~@2 J K@2 L J K@2 L J K@2 L J K@2 L M N
  O P@2 Q R S J K@2 L J K@2 L T U V W X Y Z ~ AA AB ~@2 AC AD ~@2 AE@2 AF@3 AG ~ CA
>`.pickRestart({
  A: "c2 ~@8 gb1 ~@2", B: "~@6 c2 ~@5", C: "~@3 gb1 ~@8", D: "~@9 c2 ~@2", E: "gb1 ~@8 c2 ~@2",
  F: "gb1 ~@5 gb1 ~@2 c2 ~@2", G: "gb1 ~@8 bb1 ~@2", H: "a1 ~@2 ab1 ~@2 g1 ~@2 gb1 ~@2", I: "f1 ~@11", J: "f1 c2 a1 c2",
  K: "[bb1@9 ~ b1 ~@7 c2@11 ~ d2@6 e2@6 g2@6]/2", L: "f2 e2 d2 c2", M: "e2@4 e1 ~ gb2@6 g2@6 b2@4 e2@2",
  N: "eb2@4 bb1 ~ f2@6 g2@4 bb1 ~@5 bb1 ~, ~@3 bb2", O: "d2@4 a1@2 a2@5 ~ f2@6 d2@4 a1 ~", P: "d2 e2 f2 a2",
  Q: "db2 ab2 f2 db2", R: "c2@2 c1 c2@3 g2@3 b1@3", S: "c2@4 g1 ~ d2@6 e2@4 ~ g1 g2@4 g1 ~",
  T: "f2@4 c2 ~ g2@6 a2@4 c2 ~@5 c2 ~, ~@3 c3", U: "g2@5 d2 a2@6 bb2@4 d2 ~ d3@4 d2 ~",
  V: "~@4 e1 ~ e2@4 e1 ~ ab2@6 ab2@6, a1 ~@3", W: "g2@2 g1 g2@3 gb2@3 db3@3", X: "f2!2 b1 gb2", Y: "bb1 f2 eb2 bb2",
  Z: "a2@3 e2@3 ab2@2 g2 gb2@2 f2", AA: "~@2 f2 ~@3 e2 ~@5", AB: "eb2 ~@4 d2 ~@3 db2@2 c2", AC: "~@2 eb2 ~@3 d2 ~@5",
  AD: "db2 ~@4 c2 ~@3 gb2@2 f2", AE: "[~@2 c2@4 c2@4 c2@4 c2 ~]/2", AF: "c2@2 c2@4 c2 ~", AG: "c2@6 c2@11 ~ gb1@4 f1@2",
  AH: "g2 ~ d3@2 c2@2 c2@2, ~@5 g2@2 ~@17", AI: "f2 g2 a2 c3", AJ: "g2@3 ~ g2@2 d3@6 c2@3 ~@3 g2@6, ~@17 c2@2 ~@5",
  AK: "a1@3 a1@3 d2@2 d1 d2@3", AL: "~@4 d2 ~ d3@4 d2 ~ c2@6 c2@6, g2 ~@3", AM: "g2!2 gb2!2",
  AN: "f2@4 c2 ~ c3@5 ~ a2@6 f2@5 c2", AO: "g2@6 g2@6 ~@4 g1 ~ g2@4 g1 ~, ~@2 c2 ~", AP: "f2 c3 a2 f2",
  AQ: "g2@5 ~ db2@6 c2@6 g2@6, ~@5 g1@2 ~@17", AR: "a2@6 e2@6 d2@3 ~ d2 ~ gb2@6", AS: "g2@3 ~ g2 ~ b1@6 c2@6 e2@6",
  AT: "e2@4 b1 ~ gb2@6 g2@4 b1 ~@5 b1 ~, ~@3 b2", AU: "eb2 f2 g2 bb2", AV: "eb2@2 eb1 eb2@3 d2@2 d1 d2@3",
  AW: "d2 a2 f2 d2", AX: "g2@6 ab2@6 g2@5 ~ g2@6, ~@17 g1@2 ~@5", AY: "g2@3 ~ g2 ~ c2@6 db2@6 db2@6", AZ: "g2!2 c2 g2",
  BA: "g2 d3 c2!2", BB: "a1@4 a0 ~ a1@6 ~@4 a1 ~ a2@4 a1 ~, ~@2 d2 ~", BC: "g2@4 g1@2 g2@6 c2@6 e2@5 ~",
  BD: "g2 d3 c3 g2", BE: "f2@6 c3@6 ~@4 eb2 ~ eb3@4 eb2 ~, ~@2 ab2 ~", BF: "g2@3 ~ g2 ~ b1@6 c2@6 c2@6",
  BG: "f2@3 db2@3 d2@2 d1 d2@3", BH: "g2@6 db2@6 ~@4 g1 ~ g2@4 g1 ~, ~@2 c2 ~", BI: "a1@2 a0 a1@3 d2@2 d1 d2@3",
  BJ: "g2!2 c2 ab1", BK: "a1@3 a2@3 ab2@2 ~ ab2@2 g2", BL: "~@6 c2@11 ~ gb2@3 ~@3", BM: "f2@6 f2@6 ab2@3 ~ ab2 ~ gb2@6",
  BN: "~@4 d2 ~ d3@4 d2 ~ c2@6 g2@6, g2 ~@3", BO: "f2!2 d3 a2", BP: "g2@4 g1@2 g2@6 ~@4 g1 ~ g2@4 g1 ~, ~@2 c2 ~",
  BQ: "~@4 e1 ~ e2@4 e1 ~ d2@6 a2@6, a1 ~@3", BR: "g2 d3 c2 g2", BS: "g2@6 g2@6 c2@3 ~ c2 ~ e2@6",
  BT: "f2@3 ~ f2@2 c3@6 c2@4 c1@2 c2@6", BU: "db3@3 ab2@3 d2@2 ~ eb2@2 e2", BV: "f2 g2 ab2 gb2", BW: "g2 db2 c3 g2",
  BX: "f2@3 c3@3 d2@2 d1 d2@3", BY: "g2@3 ~ g2 ~ b1@6 c2@3 ~ c2 ~ ab1@6", BZ: "g2@3 d3@3 c2@2 f2@3 ~", CA: "~@9 f2 ~@2",
})).s("gm_acoustic_bass").gain(0.32).pan(0.3)

// chords · piano
const piano = note(`<
  A B C ~ A B C D E@2 F G H I J K L M@3 L M@3 L M@3 L M@3 N@3 O ~ P Q R L M@3 L M@3 S T U V@2 W@2 ~ X Y Z AA AB AC ~@2
  AD@6 ~@4 AE AF AG AH AI AJ AK AL AM AN AE AO AP AQ@2 AR AS AT@2 AU AV AW AX AY AZ BA AR BB BC BD BE BF ~@3 BG@2 BH BI
  BJ ~@3 BG@2 BH BK BL BM ~@7 BN ~@3 BG@2 BO BP BQ L M@3 L M@3 L M@3 L M@3 N@3 O ~ P Q R L M@3 L M@3 S T U V@2 W@2 ~ X Y
  Z AA AB AC ~@2 AD@6 BP BR
>`.pickRestart({
  A: "[c3,bb3,e4] ~@8 [gb2,e4,c5] ~@2", B: "~@6 [c3,bb3,e4] ~@5", C: "~@3 [gb2,e4,c5] ~@8", D: "~@9 [c3,bb3,e4] ~@2",
  E: "[gb2,e4,c5] ~@8 [c3,bb3,e4] ~@2", F: "[gb2,e4,c5] ~@5 [gb2,bb3,e4] ~@2 [c3,e4,c5] ~@2",
  G: "[gb2,bb3,e4] ~@5 [gb2,bb3,e4] ~@2 [c3,e4,c5] ~@2", H: "[gb2,a3,d4,g4] ~@8 [bb2,d4,g4] ~@2",
  I: "[a2,db4,ab4] ~@2 [ab2,c4,f4] ~@2 [g2,b3,gb4] ~@2 [gb2,bb3,eb4] ~@2", J: "[f2,a3,e4]@2 ~@5 f4@3 ~@2 f5@3 f4@2 ~@7",
  K: "f4@2 ~@3 f5@3 f4@3 ~@13", L: "[f2,a3,c4,d4,f4]@11 ~ [a2,c4,d4,f4,a4]@11 ~",
  M: "[[bb2,d4,f4,g4,bb4]@9 ~ [b2,d4,f4,ab4,b4] ~@7 [d4,f4,a4,c5]@11 ~@2 f4@2 ~@3 f5@3 f4@2 ~@7 f4@2 ~@3 f5@3 f4@3 ~@13, ~@6 c3@13 ~@5]/3", // Gm7 Bdim Dm7
  N: "[~ [a3,b3,d4,gb4]@21 b4@4 c5@6 ~@14 [f3,c4,e4,a4]@26, ~@22 [db4,g4,eb5]@9 ~@41]/3", O: "[f3,c4,e4,a4]@11 ~",
  P: "~ [f3,b3,eb4,bb4]@23", Q: "~ [e3,bb3,d4,g4]@11 ~ [f3,a3,bb3,d4]@11", R: "~ [gb3,g3,bb3,db4]",
  S: "[f2,f3,a3,d4,g4]", T: "[g2,f3,bb3,d4,g4]",
  U: "[a2,g3,c4,e4,a4]@11 ~ [gb3,b3,eb4,gb4,bb4] ~@9 [f3,bb3,d4,f4,a4]@2", // Am7 Bmaj7 Bbmaj7
  V: "[~@11 [f3,a3,c4,e4,a4]@7 [db3,a3,db4,f4]@6]/2", // Fmaj7 Dbaug
  W: "[[db3,ab3,c4,f4]@9 [eb3,g3,db4,f4,a4]@12 [a2,g3,c4,e4,g4]@15 [ab2,gb3,c4,f4,bb4] ~@9 [f2,f3,a3,d4,f4]@2]/2", // Dbmaj7 Am7 Fm Dm
  X: "~@2 [f3,eb4,g4,c5] ~@3 [e3,ab3,d4,gb4,b4] ~@5, ~@4 a3 ~@19", // Cm E7
  Y: "[eb3,g3,db4,f4,bb4] ~@4 [d3,c4,e4,a4] ~@3 [db3,f3,b3,eb4,ab4]@2 [c3,e3,bb3,d4,g4], ~@10 gb3 ~@13", // Eb7 Am Db7 C7
  Z: "~@12 [c4,gb4] ~@5 [c4,gb4] ~@5", AA: "~@6 [gb4,c5] ~@5 [gb4,c5] ~@11",
  AB: "~@2 [eb3,g3,db4,f4,b4] ~@3 [d3,gb3,c4,e4,bb4] ~@5", // Ebaug Daug
  AC: "[db3,f3,b3,eb4,a4] ~@4 [c3,e3,bb3,d4,ab4] ~@3 [e3,bb3,db4,eb4,a4]@2 [f3,a3,g4], ~@22 d4 ~", // Dbaug Caug A F
  AD: "[~@6 [c2,c3]@12 [c2,c3]@12 [c2,c3]@12 [c2,c3]@12 [c2,c3]@12 [c2,c3]@12 [c2,c3]@12 [c2,c3]@12 [c2,c3]@12 [c2,c3]@12 [c2,c3]@11 ~ gb2@4 f2@2]/6", // C
  AE: "~ [d3,a3,c4,g4]", AF: "~ [f3,a3,bb3,d4]@11 ~ [e3,bb3,d4,a4]@11", AG: "~@4 [d3,a3,c4,g4]@3 ~",
  AH: "~ [f3,bb3,d4,g4]@11 ~ [e3,g3,bb3,d4]@11", AI: "~ [g3,c4,e4,b4]@9 ~@3 [gb3,bb3,c4,eb4]@9 ~@2",
  AJ: "~ [f3,bb3,d4,g4]@11 ~ [e3,bb3,db4,ab4]@11", AK: "~@4 [d3,a3,c4,f4]@3 ~",
  AL: "~ [f3,bb3,d4,a4]@11 ~ [f3,ab3,bb3,db4]@11", AM: "~ [d3,a3,c4,g4]@23",
  AN: "~ [f3,bb3,d4,g4]@9 ~@3 [e3,a3,bb3,d4]@9 ~@2", AO: "~ [f3,bb3,d4,a4]@9 ~@3 [e3,a3,bb3,d4]@3 ~@8",
  AP: "~ [g3,a3,c4,e4]@2 ~@10 [gb3,a3,c4,eb4]@11", // Am7 Gbdim
  AQ: "[~ [f3,bb3,d4,g4]@9 ~@3 [e3,bb3,db4,ab4]@9 [d3,a3,c4,f4]@24 ~@2]/2", AR: "~ [d3,a3,c4,f4]",
  AS: "~ [g3,d4,e4,b4]@21 ~@2", AT: "[~@12 [g3,c4,db4,f4]@9 ~ [f3,c4,e4,a4]@4 ~@8 [f3,c4,e4,a4]@2 ~@12]/2",
  AU: "~ [g3,bb3,db4,f4]@9 ~@3 [f3,c4,d4,a4]@11", AV: "[f3,c4,d4,a4] ~@4 [f3,c4,d4,a4] ~@6",
  AW: "~ [f3,c4,e4,a4]@9 ~@3 [f3,b3,d4,a4]@11", AX: "~ [f3,bb3,d4,a4]@11 ~ [f3,b3,eb4,bb4]@9 ~@2",
  AY: "~ [gb3,bb3,db4,g4]@3 ~@20", AZ: "~ [e3,g3,a3,c4]", BA: "~ [f3,bb3,d4,g4]@9 ~@3 [e3,bb3,d4,g4]@9 ~@2",
  BB: "~ [f3,g3,bb3,d4]@11 ~ [e3,bb3,d4,g4]@3 ~@8", BC: "~@13 [gb3,bb3,c4,eb4]@11",
  BD: "~ [f3,bb3,d4,a4]@9 ~@3 [e3,bb3,db4,ab4]@3 ~@8", BE: "~ [e3,a3,c4,g4]@21 ~@2",
  BF: "~ [f3,bb3,d4,a4]@9 ~@3 [e3,bb3,db4,g4]@11", BG: "[~@7 [a2,g3,c4,e4]@5 [d3,gb3,c4,e4]@4]/2",
  BH: "[g2,f3,bb3,d4] [c3,e3,bb3,d4]", // Gm7 C7
  BI: "~@3 [a2,db4,gb4,a4]@9 [ab2,gb3,c4,f4,ab4]@8 ~ [f3,b3,e4] ~@2, ~@21 [g2,g4]@2 ~", // Gbm Fm E G
  BJ: "~@6 [c3,e3,bb3,d4,gb4,a4]@11 ~ [gb2,e3]@2 ~@4, ~@18 [bb3,d4] ~@5", // D7 Gb7 Bb
  BK: "[g2,f3,bb3,d4]@12 [c3,e3,d4]@8 ~ [f2,f3,d4]@2 ~, ~@21 a3 ~@2", BL: "~@6 [c3,e3,bb3,d4,g4] ~@5",
  BM: "[db3,f3,b3,eb4,ab4] ~@4 [d3,gb3,c4,e4,a4] ~@3 [eb3,g3,db4,f4,bb4]@2 [e3,g3,d4,gb4,a4]", // Db7 D7 Eb7 D
  BN: "~@7 [c3,e3,bb3,d4,gb4,a4]@11 ~ [gb2,e3,bb3,d4]@2 ~@3", // D7 Gbaug
  BO: "[g2,f3,bb3,d4]@12 [c3,e3,bb3,d4]@8 ~ [f2,f3,a3,d4] ~@2", BP: "~@7 f4@2 ~@3 f5@3 f4@2 ~@7",
  BQ: "f4@2 ~@3 f5@3 f4@2 ~@14", BR: "f4 ~@4 f5@3 f4 ~@9 [eb3,a3,d4,f4,ab4,b4]@2 ~@4",
})).s("gm_piano").gain(0.24).pan(0.3)

// other · alto sax
const alto_sax = note(`<
  A B C ~ A B C D E@2 F G H I J K L M N O L M N O L M N O L M N P Q R S T U V W@2 L M N O L M N X Y Z AA AB@2 AC@2 ~ AD
  AE AF AG AH AI AJ AK AL ~ AM AN AM AO ~@4 AP ~@31 AQ@2 AR AS AJ AT@2 AU AQ@2 AR AS AJ AV AW AX AY ~@7 AU AQ@2 AR AS AJ
  AZ ~ K L M N O L M N O L M N O L M N P Q R S T U V W@2 L M N O L M N X Y Z AA AB@2 AC@2 ~ AD AE AF AG AH AI AJ AK AL ~
  AM AN AM AO ~ BA
>`.pickRestart({
  A: "e4 ~@8 c5 ~@2", B: "~@6 e4 ~@5", C: "~@3 c5 ~@8", D: "~@9 e4 ~@2", E: "c5 ~@8 e4 ~@2", F: "c5 ~@5 e4 ~@2 c5 ~@2",
  G: "e4 ~@5 e4 ~@2 c5 ~@2", H: "g4 ~@8 g4 ~@2", I: "ab4 ~@2 f4 ~@2 gb4 ~@2 eb4 ~@2", J: "e4 ~@11", K: "~@11 c5",
  L: "f5@2 f5 e5 ~@2 f5@2 c5 ~@2 c5", M: "f5@3 ~@3 e5@4 f5@2 ~@12", N: "~@3 f5 ~@4 f5 ~@3", O: "f5 ~@4 f5 ~@5 c5",
  P: "f5 ~@4 f5 ~@6", Q: "~@9 a3 db4 e4", R: "bb4 ~@2 a4@2 eb4@4 db4@2 d4", S: "~@8 db5 d5@2 a4", T: "db5@2 d5 ~@9",
  U: "~@9 g3 b3 d4", V: "ab4 ~@2 g4@2 db4@4 b3@2 c4", W: "[~@6 a4 ~@4 gb4@9 ~@3 c5]/2", X: "f5 ~@4 f5 ~@5 a3",
  Y: "f3@2 ab3 a3@2 c4 f4@2 eb4 d4@2 c4", Z: "bb3@2 ab3 a3@2 c4@2 d4 c4 bb3@2 ab3", AA: "a3 ~@11",
  AB: "[~@5 a4 ~@2 a4 ~@2 a4@4 g5@2 f5 eb5@2 d5 c5@2 a4]/2", AC: "[bb4@3 eb5@2 db5@6 c5@4 f5@2 c5 bb4@2 ab4 a4@2 f4]/2",
  AD: "c5@2 f5 c5@2 b4 eb5@3 b4@2 bb4", AE: "eb5@2 bb4 a4@2 d5 a4@2 ab4 db5@2 c5", AF: "~@6 gb4 ~@2 gb4 ~@2",
  AG: "~@3 c5 ~@2 c5 ~@5", AH: "bb4@2 eb5 bb4@2 a4 d5@3 a4@2 ab4", AI: "db5@2 ab4 g4@2 c5 g4@2 ab4 db5@2 d5",
  AJ: "~@2 ab4 a4 c5 e5 g5@2 f5 e5@2 d5", AK: "c5@2 bb4 a4@2 g4 f4@2 e4 d4@2 db4", AL: "c4 ~@11",
  AM: "~@3 ab4@2 a4 bb4@2 ab4 a4@2 f4", AN: "ab4@5 a4@3 f4 ab4 ~@2", AO: "ab4@9 ~ a4@6 f4@2 ab4@4 g4@2",
  AP: "c5@15 ~@5 gb4@2 ~@2, ~@15 b4@2 a4@2 g4@2 ~@3, ~@8 bb4 ab4 ~@2",
  AQ: "[f4@6 f4@5 f4@4 d5@2 ab4 a4@2 g4 gb4 ~@2]/2", AR: "~ f4@2 ab4@3", AS: "f4@5 d4 ~@6",
  AT: "[c5@2 bb4 a4@2 bb4 d5@2 bb4 g4@2 c5@10 ~@3]/2", AU: "~@6 a4@10 ~ g4 gb4@2 ~@4, ~@8 ab4 ~@3",
  AV: "c5@2 bb4 a4@2 bb4 d5@2 bb4 g4@2 c5", AW: "~@2 bb4 a4@2 c5 bb4@2 ab4 a4@2 f4", AX: "~@6 g4 ~@5",
  AY: "ab4 ~@4 a4 ~@3 bb4@2 a4", AZ: "c5@2 bb4 a4@2 c5 bb4@2 ab4 a4@2 f4", BA: "~@9 b4 ~@2",
})).s("gm_alto_sax").gain(0.54).pan(0.6)

// other · alto sax
const alto_sax_2 = note(`<
  A B C ~ A B C D E@2 F G H I J K L M ~ K L M ~ K L M ~ K L M ~@8 N@2 L M ~ K L M ~@5 O@2 P@2 ~@6 Q R S T ~@4 U ~@12 V
  ~@7 W X Y Z AA AB AC AD AE AF ~@6 AG@2 AH AI ~@3 AJ AG@2 AH AI ~@3 AK AL ~@7 AJ AG@2 AH AI ~@3 K L M ~ K L M ~ K L M ~
  K L M ~@8 N@2 L M ~ K L M ~@5 O@2 P@2 ~@6 Q R S T ~@4 U ~ AM
>`.pickRestart({
  A: "c4 ~@8 a4 ~@2", B: "~@6 c4 ~@5", C: "~@3 a4 ~@8", D: "~@9 c4 ~@2", E: "a4 ~@8 c4 ~@2", F: "a4 ~@5 c4 ~@2 a4 ~@2",
  G: "c4 ~@5 c4 ~@2 a4 ~@2", H: "e4 ~@8 e4 ~@2", I: "e4 ~@2 c4 ~@2 d4 ~@2 bb3 ~@2", J: "c4 ~@11", K: "~@11 a4",
  L: "c5@2 c5 b4 ~@2 c5@2 g4 ~@2 g4", M: "bb4@3 ~@3 db5@4 d5@2 ~@12", N: "[~@6 f4 ~@4 db4@9 ~@3 a4]/2",
  O: "[~@5 e4 ~@2 e4 ~@2 e4@7 f4@6]/2", P: "[f4@6 bb4@4 a4@11 g4@15 f4@4 e4@2 eb4@4 d4@2]/2", Q: "~@9 bb4@2 a4",
  R: "~@2 e4 f4 a4 c5 e5@2 d5 c5@2 bb4", S: "a4@2 g4 f4@2 e4 d4@2 db4 c4@2 b3", T: "bb3 ~@11", U: "~@9 eb4@2 d4",
  V: "~@2 c5 ~@3 c5 ~@4 bb4", W: "~@12 e4@10 [f4,gb4,g4] [ab4,a4]", X: "bb4 a4", Y: "f4@23 ~", Z: "f4@9 ~ f4@2 ~@12",
  AA: "~ d4", AB: "f4 a4", AC: "a4 bb4", AD: "a4@23 ~", AE: "f4@2 f4 e4 ~@2 f4@2 c4 ~@3", AF: "a4 ~@4 a4 ~@3 a4 ~@2",
  AG: "[d4@6 c4@5 d4@7 d4@2 eb4 d4 ~@2]/2", AH: "~ d4@2 f4@3", AI: "d4@5 bb3 ~@6",
  AJ: "~@6 gb4@9 ~@2 eb4 d4@2 ~@4, ~@15 f4@2 ~@7, ~@8 e4 ~@3", AK: "~@6 d4 ~@5", AL: "eb4 ~@4 e4 ~@3 f4@2 gb4",
  AM: "~@9 ab4 ~@2",
})).s("gm_alto_sax").gain(0.44).pan(0.7)

// other · tenor sax
const tenor_sax = note(`<
  A B C ~ A B C D E@2 F G H I J K L M ~ K L M ~ K L M ~ K L M ~ N@3 ~ O@3 P@2 L M ~ K L M ~@5 Q@2 R@2 ~@6 S T U V ~@4 W
  ~@4 X ~@7 Y ~@7 Z AA AB AC AD AE@2 AF AG AH ~@6 AI@2 AJ AK ~@2 AL AM AI@2 AJ AK ~@2 W B AN ~@7 AM AI@2 AJ AK ~ W ~ K L
  M ~ K L M ~ K L M ~ K L M ~ AO@3 ~ O@3 P@2 L M ~ K L M ~@5 Q@2 R@2 ~@6 S T AP V ~@4 W ~ AQ
>`.pickRestart({
  A: "e3 ~@8 b3 ~@2", B: "~@6 e3 ~@5", C: "~@3 b3 ~@8", D: "~@9 e3 ~@2", E: "b3 ~@8 e3 ~@2", F: "b3 ~@5 e3 ~@2 b3 ~@2",
  G: "e3 ~@5 e3 ~@2 b3 ~@2", H: "a3 ~@8 ab3 ~@2", I: "b3 ~@2 gb3 ~@2 a3 ~@2 e3 ~@2", J: "c3 ~@11", K: "~@11 db4",
  L: "g4@2 g4 gb4 ~@2 g4@2 d4 ~@2 d4", M: "f4@3 ~@3 g4@4 ab4@2 ~@12",
  N: "[~@22 gb4@23 ~@3 db4@18 ~@4 c4@2, ~@47 d4@2 ~@23]/3", O: "[~@22 e4@23 ~@3 b3@18 ~@4 bb3@2, ~@47 c4@2 ~@23]/3",
  P: "[~@6 a3 ~@4 e3@9 ~@3 db4]/2", Q: "[~@5 bb3 ~@2 bb3 ~@2 a3@13]/2", R: "[ab3@9 g3@12 c4@15 gb3@4 f3@2 e3@4 f3@2]/2",
  S: "~@9 bb3@2 a3", T: "~@2 b3 c4 e4 g4 a4@2 g4 f4@2 e4", U: "d4@2 db4 c4@2 ~ a3@2 g3 ~@2 f3", V: "e3 ~@11",
  W: "~@9 e3@2 f3", X: "d4@2 ~", Y: "~@2 d4 ~@3 d4 ~@4 d4", Z: "~ b3", AA: "db4", AB: "c4@23 ~", AC: "g3@5 f3 ~@6",
  AD: "~ f3", AE: "[f3@3 bb3]/2", AF: "a3@23 ~", AG: "f3@2 f3 e3 ~@2 f3@2 c3 ~@3", AH: "a3 ~@4 a3 ~@3 c4 ~@2",
  AI: "[a3@6 gb3@5 f3@7 e3@2 f3 e3 ~@2]/2", AJ: "~ a3@2 gb3@3", AK: "f3@5 e3 ~@6", AL: "~@2 b3@4 bb3@5 a3",
  AM: "~@6 a3@10 ~ f3 e3@2 ~@4", AN: "f3 ~@4 gb3 ~@3 g3@2 g3",
  AO: "[~@22 gb4@23 ~@3 db4@18 ~@4 c4@2, ~@23 eb4 ~@12, ~@47 d4@2 ~@23]/3", AP: "d4@2 db4 c4@2 ~ a3@2 g3 gb3@2 f3",
  AQ: "~@9 eb4 ~@2",
})).s("gm_tenor_sax").gain(0.44).pan(0.4)

// other · tenor sax · soft notes
const tenor_sax_soft = note("<~@32 A ~@3 B ~@26 C ~@10 D ~@38 E ~@16 E ~@24 F ~@3 B ~@26 G ~@8>".pickRestart({
  A: "~@11 eb4, ~@10 f4 ~, ~@21 e4@2 ~", B: "~@11 db4, ~@10 eb4 ~, ~@21 d4@2 ~", C: "~@5 bb3 ~@3 gb3@2 ~",
  D: "~@10 ab3 ~, ~@15 db4@2 b3@2 a3@2 ~@3, ~@8 c4 bb3 ~@2", E: "~@8 g3 ~@3, ~@15 ab3@2 ~@7",
  F: "~@21 e4@2 ~, ~@10 f4 ~", G: "~@5 bb3 ~@6",
})).s("gm_tenor_sax").gain(0.22).pan(0.4)

// other · baritone sax · "Bari Sax"
const baritone_sax = note(`<
  A B C ~ A B C D E@2 F@2 G H I J K L M N K L M N K L M N K L M O@2 P ~ Q@2 R S@2 K L M N K L M T ~@2 U V@2 W@2 ~@6 X Y
  Z AA@6 ~@4 AB ~ AC ~@5 AD ~ AC ~@5 AE AF AG AH AI AJ AK AL ~ AM ~@6 AN@2 AO AP ~@2 AQ AR AN@2 AO AP ~@2 AS AT AU ~@7
  AR AN@2 AO AP ~ AS ~ J K L M N K L M N K L M N K L M O@2 P ~ Q@2 R S@2 K L M N K L M T ~@2 U V@2 W@2 ~@6 X Y Z AA@6 ~
  AV
>`.pickRestart({
  A: "c3 ~@8 gb2 ~@2", B: "~@6 c3 ~@5", C: "~@3 gb2 ~@8", D: "~@9 c3 ~@2", E: "gb2 ~@8 c3 ~@2",
  F: "gb2 ~@5 gb2 ~@2 c3 ~@2", G: "f2 ~@8 bb2 ~@2", H: "a2 ~@2 ab2 ~@2 g2 ~@2 gb2 ~@2", I: "f2 ~@11", J: "~@11 bb3",
  K: "d4@2 d4 db4 ~@2 d4@2 a3 ~@2 a3", L: "d4@3 ~@3 e4@4 f4@2 ~@12", M: "~@3 f3 ~@4 f3 ~@3", N: "f3 ~@4 f3 ~@5 bb3",
  O: "[f3 ~@4 f3 ~@5 e3@13]/2", P: "eb3@9 ~@2 d3", Q: "[~@11 d3@13]/2", R: "db3@9 ~@2 c3",
  S: "[~@6 g2 ~@4 c2@9 ~@3 bb3]/2", T: "f3 ~@4 f3 ~@6", U: "~@6 ab2 ~@4 g2", V: "[~@5 gb2 ~@2 gb2 ~@2 f2@7 b2@6]/2",
  W: "[bb2@9 eb2@12 a2@15 ab2@4 g2@2 gb2@4 f2@2]/2", X: "~@9 gb2@2 f2", Y: "~@2 ab3 a3 c4 e4 g4@2 f4 e4@2 d4",
  Z: "db4@2 bb3 a3@2 ab3 f3@2 e3 d3@2 db3",
  AA: "[c3@2 ~@4 c2@11 ~ c2@12 c2@12 c2@12 c2@12 c2@12 c2@12 c2@12 c2@12 c2@12 c2@11 ~ gb2@4 f2@2]/6",
  AB: "f2@15 ~@5 b1@2 ~@2, ~@15 e2@2 d2@2 c2@2 ~@3, ~@8 eb2 db2 ~@2", AC: "f2 ~@4 f2 ~@6", AD: "~@2 f2 ~@3 f2 ~@4 g2",
  AE: "~ e2", AF: "eb2", AG: "d2@23 ~", AH: "eb2@5 d2 ~@6", AI: "~ d2", AJ: "g2", AK: "g2 db2", AL: "c2@23 ~",
  AM: "g2 ~@4 c2 ~@3 f2 ~@2", AN: "[f2@6 ab2@5 g2@7 c2@2 db2 c2 ~@2]/2", AO: "~ f2@2 d2@3", AP: "g2@5 c2 ~@6",
  AQ: "~@2 a2@4 ab2@5 g2", AR: "~@6 c2@11 ~ gb2@2 ~@4", AS: "~@9 c2@2 f2", AT: "~@6 c2 ~@5",
  AU: "db2 ~@4 d2 ~@3 eb2@2 e2", AV: "~@9 f2 ~@2",
})).s("gm_baritone_sax").gain(0.44).pan(0.8)

// other · trumpet · "Trumpet 1"
const trumpet = note(`<
  ~@11 A B C D ~@3 E F ~@2 E F ~@2 E F ~@2 E F G H I J K L M@2 ~@2 E F ~@2 E N O P Q R@2 S@2 ~ T U V W X Y ~@2 Z AA ~@3
  AB ~@4 AC ~@7 AD ~@10 AE AF AG AH AI AJ AK ~@6 AL@2 AM AN AO AP@2 AQ AL@2 AM AN AO AR AS AT AU ~@7 AV AL@2 AM AN AO AW
  ~@4 E F ~@2 E F ~@2 E F ~@2 E F G H I J K L M@2 ~@2 E F ~@2 E N O P Q R@2 S@2 ~ T U V W X Y ~@2 Z AA ~@3 AB ~ AX
>`.pickRestart({
  A: "~@6 e4 ~@2 c5 ~@2", B: "g5 ~@8 g5 ~@2", C: "ab5 ~@2 f5 ~@2 gb5 ~@2 eb5 ~@2", D: "e5 ~@11", E: "~@6 d5 ~@5",
  F: "~@3 d5 ~@8", G: "~@9 a4 db5 e5", H: "bb5 ~@2 a5@2 eb5@4 db5@2 d5", I: "~@8 db6 d6@2 a5", J: "db6@2 d6 ~@9",
  K: "~@9 g4 b4 d5", L: "ab5 ~@2 g5@2 db5@4 b4@2 c5", M: "[~@6 a5 ~@4 gb5@9 ~@4]/2", N: "~@3 d5 ~@7 c5",
  O: "f4@2 ab4 a4@2 c5 f5@2 ~ d5@2 c5", P: "bb4@2 ~ a4@2 c5@2 d5 c5 bb4@2 ab4", Q: "a4 ~@11",
  R: "[~@5 a5 ~@2 a5 ~@2 a5@4 g5@2 f5 eb5@2 d5 c5@2 a4]/2",
  S: "[bb4@6 eb5@4 db5@11 ~ c5@8 f5@4 c5@2 bb4@4 ab4@2 a4@4 f4@2]/2", T: "~@2 f5 ~@3 e5 ~@5",
  U: "eb5@2 ~@8 d5 ~@7 db5@4 c5@2", V: "~@6 c5 ~@2 c5 ~@2", W: "~@3 gb5 ~@2 gb5 ~@5", X: "~@2 eb5 ~@3 d5 ~@5",
  Y: "db5@2 ~@8 c5 ~@7 db5@4 d5@2", Z: "~@3 ab4@2 a4 bb4@2 ab4 a4@2 f4", AA: "ab4@9 ~ a4@6 f4@2 ab4@2 ~@4",
  AB: "~@9 c5@2 f5", AC: "f5@2 ~", AD: "~@2 f5 ~@3 f5 ~@4 f5", AE: "db5@9 ~ d5@2 ~@12", AF: "~ f4", AG: "a4 d5",
  AH: "f5 g5", AI: "a5@23 ~", AJ: "f5@2 f5 e5 ~@2 f5@2 c5 ~@3", AK: "f5 ~@4 gb5 ~@3 g5 ~@2",
  AL: "[f5@11 ~ f5@10 f5@8 d5@4 ab4@2 ~@4 c5@2 d5@2 ~@4]/2", AM: "~ f5@2 ab5@3", AN: "f5@5 d5 ~@6",
  AO: "~@2 ab4 a4 c5 e5 g5@2 f5 e5@2 d5", AP: "[c5@2 bb4 a4@2 ~ d5@2 bb4 g4@2 c5@10 ~@3]/2",
// … 278 more lines

More by Gillespie Dizzy