Strudelify

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: 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 M@2 L J K@2 L J M@2 L N O P Q@2 R S T J K@2 L J K@2 L U V W X Y Z AA ~ AB AC
  ~@2 AD AE ~@2 AF@2 AG AH AG AI ~@4 AJ AK AL AM AN AO AL AP AQ AR AS AT AU AV AS@2 AW AX Q AY AZ BA BB T AL BC BD BE BF
  BG AL BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY ~@7 BZ CA CB CC CD BU CE ~@2 J K@2 L J K@2 L J K@2 L J K@2
  L N CF CG Q@2 R CH CI J M@2 L J M@2 L CJ CK CL X Y Z AA ~ AB AC ~@2 AD AE ~@2 AF@2 CM AG@2 CN ~ CO
>`.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: "[bb1@9 ~ b1 ~@7 c2@12 d2@6 e2@6 g2@6]/2",
  N: "e2@4 e1 ~ gb2@6 g2@6 b2@4 e2@2", O: "eb2@4 bb1 ~ f2@6 g2@4 bb1 ~@5 bb1 ~, ~@3 bb2",
  P: "d2@4 a1@2 a2@5 ~ f2@6 d2@4 a1 ~", Q: "d2 e2 f2 a2", R: "db2 ab2 f2 db2", S: "c2@2 c1 c2@3 g2@3 b1@3",
  T: "c2@4 g1 ~ d2@6 e2@4 ~ g1 g2@4 g1 ~", U: "f2@4 c2 ~ g2@6 a2@4 c2 ~@5 c2 ~, ~@3 c3",
  V: "g2@5 d2 a2@6 bb2@4 d2 ~ d3@4 d2 ~", W: "~@4 e1 ~ e2@4 e1 ~ ab2@6 ab2@6, a1 ~@3", X: "g2@2 g1 g2@3 gb2@3 db3@3",
  Y: "f2!2 b1 gb2", Z: "bb1 f2 eb2 bb2", AA: "a2@3 e2@3 ab2@2 g2 gb2@2 f2", AB: "~@2 f2 ~@3 e2 ~@5",
  AC: "eb2 ~@4 d2 ~@3 db2@2 c2", AD: "~@2 eb2 ~@3 d2 ~@5", AE: "db2 ~@4 c2 ~@3 gb2@2 f2",
  AF: "[~@2 c2@4 c2@4 c2@4 c2 ~]/2", AG: "c2@2 c2@4 c2 ~", AH: "c2@3 c2@6 c2 ~@2", AI: "c2@6 c2@11 ~ gb1@4 f1@2",
  AJ: "f2@5 c2 g2@6 a2@4 c2 ~ c3@5 c2", AK: "g2 ~ d3@2 c2@2 c2@2, ~@5 g2@2 ~@17", AL: "f2 g2 a2 c3",
  AM: "g2@3 ~ g2@2 d3@6 c2@3 ~@3 g2@6, ~@17 c2@2 ~@5", AN: "a1@3 a1@3 d2@2 d1 d2@3",
  AO: "~@4 d2 ~ d3@4 d2 ~ c2@6 c2@6, g2 ~@3", AP: "g2!2 gb2!2", AQ: "f2@4 c2 ~ c3@5 ~ a2@6 f2@5 c2",
  AR: "g2@6 g2@6 ~@4 g1 ~ g2@4 g1 ~, ~@2 c2 ~", AS: "f2 c3 a2 f2", AT: "g2@5 ~ db2@6 c2@6 g2@6, ~@5 g1@2 ~@17",
  AU: "a2@6 e2@6 d2@3 ~ d2 ~ gb2@6", AV: "g2@3 ~ g2 ~ b1@6 c2@6 e2@6", AW: "e2@4 b1 ~ gb2@6 g2@4 b1 ~@5 b1 ~, ~@3 b2",
  AX: "eb2 f2 g2 bb2", AY: "eb2@2 eb1 eb2@3 d2@2 d1 d2@3", AZ: "d2 a2 f2 d2",
  BA: "g2@6 ab2@6 g2@5 ~ g2@6, ~@17 g1@2 ~@5", BB: "g2@3 ~ g2 ~ c2@6 db2@6 db2@6", BC: "g2!2 c2 g2",
  BD: "f2@5 c2 g2@6 a2@4 ~ c2 c3@4 c2 ~", BE: "g2 d3 c2!2", BF: "a1@4 a0 ~ a1@6 ~@4 a1 ~ a2@4 a1 ~, ~@2 d2 ~",
  BG: "g2@4 g1@2 g2@6 c2@6 e2@5 ~", BH: "g2 d3 c3 g2", BI: "f2@6 c3@6 ~@4 eb2 ~ eb3@4 eb2 ~, ~@2 ab2 ~",
  BJ: "g2@3 ~ g2 ~ b1@6 c2@6 c2@6", BK: "f2@3 db2@3 d2@2 d1 d2@3", BL: "g2@6 db2@6 ~@4 g1 ~ g2@4 g1 ~, ~@2 c2 ~",
  BM: "a1@2 a0 a1@3 d2@2 d1 d2@3", BN: "g2!2 c2 ab1", BO: "a1@3 a2@3 ab2@2 ~ ab2@2 g2", BP: "~@6 c2@11 ~ gb2@3 ~@3",
  BQ: "f2@6 f2@6 ab2@3 ~ ab2 ~ gb2@6", BR: "~@4 d2 ~ d3@4 d2 ~ c2@6 g2@6, g2 ~@3", BS: "f2!2 d3 a2",
  BT: "g2@4 g1@2 g2@6 ~@4 g1 ~ g2@4 g1 ~, ~@2 c2 ~", BU: "~@4 e1 ~ e2@4 e1 ~ d2@6 a2@6, a1 ~@3", BV: "g2 d3 c2 g2",
  BW: "g2@6 g2@6 c2@3 ~ c2 ~ e2@6", BX: "f2@3 ~ f2@2 c3@6 c2@4 c1@2 c2@6", BY: "db3@3 ab2@3 d2@2 ~ eb2@2 e2",
  BZ: "~@6 c2@11 ~ gb2@2 ~@4", CA: "f2 g2 ab2 gb2", CB: "g2 db2 c3 g2", CC: "f2@3 c3@3 d2@2 d1 d2@3",
  CD: "g2@3 ~ g2 ~ b1@6 c2@3 ~ c2 ~ ab1@6", CE: "g2@3 d3@3 c2@2 f2@3 ~", CF: "eb2@4 bb1 ~ f2@6 g2@4 bb1 ~ bb2@4 bb1 ~",
  CG: "d2@4 a1@2 a2@5 ~ f2@6 d2@4 ~ a1", CH: "c2@5 ~ c2@6 g2@6 b1@6, ~@5 c1@2 ~@17",
  CI: "c2@4 g1 ~ d2@6 e2@4 g1 ~@5 g1 ~, ~@3 g2", CJ: "f2@5 c2 g2@6 a2@4 c2 ~ c3@4 c2 ~",
  CK: "g2@4 d2 ~ a2@6 bb2@4 d2 ~ d3@5 d2", CL: "a1@5 e1 e2@4 e1 ~ ab2@6 ab2@6", CM: "c2@6 c2@11 ~ c2@3 ~@3",
  CN: "c2@5 ~ c2@11 ~ gb1@4 f1@2", CO: "~@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 N@3 L N@3 L N@3 O@3 P ~ Q R S L N@3 L N@3 T U V W@2 X@2 ~ Y Z AA AB AC AD ~@2
  AE@6 ~@4 AF AG AH AI AJ AK AL AM AN AO AF AP AQ AR@2 AS AT AU@2 AV AW AX AY AZ BA BB AS BC BD BE BF BG ~@3 BH@2 BI BJ
  BK ~@3 BH@2 BI BL BM BN ~@7 BO ~@3 BH@2 BP BQ BR L M@3 L N@3 L N@3 L N@3 BS@3 P ~ Q R S L N@3 L M@3 T U V W@2 X@2 ~ BT
  BU AA AB AC BV ~@2 AE@6 BQ BW
>`.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@3 ~@2 f5@3 f4@2 ~@14", 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@2 ~@14, ~@6 c3@13 ~@5]/3", // Gm7 Bdim Dm7
  N: "[[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
  O: "[~ [a3,b3,d4,gb4]@21 b4@4 c5@6 ~@14 [f3,c4,e4,a4]@26, ~@22 [db4,g4,eb5]@9 ~@41]/3", P: "[f3,c4,e4,a4]@11 ~",
  Q: "~ [f3,b3,eb4,bb4]@23", R: "~ [e3,bb3,d4,g4]@11 ~ [f3,a3,bb3,d4]@11", S: "~ [gb3,g3,bb3,db4]",
  T: "[f2,f3,a3,d4,g4]", U: "[g2,f3,bb3,d4,g4]",
  V: "[a2,g3,c4,e4,a4]@11 ~ [gb3,b3,eb4,gb4,bb4] ~@9 [f3,bb3,d4,f4,a4]@2", // Am7 Bmaj7 Bbmaj7
  W: "[~@11 [f3,a3,c4,e4,a4]@7 [db3,a3,db4,f4]@6]/2", // Fmaj7 Dbaug
  X: "[[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
  Y: "~@2 [f3,eb4,g4,c5] ~@3 [e3,ab3,d4,gb4,b4] ~@5, ~@4 a3 ~@19", // Cm E7
  Z: "[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
  AA: "~@12 [c4,gb4] ~@5 [c4,gb4] ~@5", AB: "~@6 [gb4,c5] ~@5 [gb4,c5] ~@11",
  AC: "~@2 [eb3,g3,db4,f4,b4] ~@3 [d3,gb3,c4,e4,bb4] ~@5", // Ebaug Daug
  AD: "[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
  AE: "[~@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
  AF: "~ [d3,a3,c4,g4]", AG: "~ [f3,a3,bb3,d4]@11 ~ [e3,bb3,d4,a4]@11", AH: "~@4 [d3,a3,c4,g4]@3 ~",
  AI: "~ [f3,bb3,d4,g4]@11 ~ [e3,g3,bb3,d4]@11", AJ: "~ [g3,c4,e4,b4]@9 ~@3 [gb3,bb3,c4,eb4]@9 ~@2",
  AK: "~ [f3,bb3,d4,g4]@11 ~ [e3,bb3,db4,ab4]@11", AL: "~@4 [d3,a3,c4,f4]@3 ~",
  AM: "~ [f3,bb3,d4,a4]@11 ~ [f3,ab3,bb3,db4]@11", AN: "~ [d3,a3,c4,g4]@23",
  AO: "~ [f3,bb3,d4,g4]@9 ~@3 [e3,a3,bb3,d4]@9 ~@2", AP: "~ [f3,bb3,d4,a4]@9 ~@3 [e3,a3,bb3,d4]@3 ~@8",
  AQ: "~ [g3,a3,c4,e4]@2 ~@10 [gb3,a3,c4,eb4]@11", // Am7 Gbdim
  AR: "[~ [f3,bb3,d4,g4]@9 ~@3 [e3,bb3,db4,ab4]@9 [d3,a3,c4,f4]@24 ~@2]/2", AS: "~ [d3,a3,c4,f4]",
  AT: "~ [g3,d4,e4,b4]@21 ~@2", AU: "[~@12 [g3,c4,db4,f4]@9 ~ [f3,c4,e4,a4]@4 ~@8 [f3,c4,e4,a4]@2 ~@12]/2",
  AV: "~ [g3,bb3,db4,f4]@9 ~@3 [f3,c4,d4,a4]@11", AW: "[f3,c4,d4,a4] ~@4 [f3,c4,d4,a4] ~@6",
  AX: "~ [f3,c4,e4,a4]@9 ~@3 [f3,b3,d4,a4]@11", AY: "~ [f3,bb3,d4,a4]@11 ~ [f3,b3,eb4,bb4]@9 ~@2",
  AZ: "~ [gb3,bb3,db4,g4]@3 ~@20", BA: "~ [e3,g3,a3,c4]", BB: "~ [f3,bb3,d4,g4]@9 ~@3 [e3,bb3,d4,g4]@9 ~@2",
  BC: "~ [f3,g3,bb3,d4]@11 ~ [e3,bb3,d4,g4]@3 ~@8", BD: "~@13 [gb3,bb3,c4,eb4]@11",
  BE: "~ [f3,bb3,d4,a4]@9 ~@3 [e3,bb3,db4,ab4]@3 ~@8", BF: "~ [e3,a3,c4,g4]@21 ~@2",
  BG: "~ [f3,bb3,d4,a4]@9 ~@3 [e3,bb3,db4,g4]@11", BH: "[~@7 [a2,g3,c4,e4]@5 [d3,gb3,c4,e4]@4]/2",
  BI: "[g2,f3,bb3,d4] [c3,e3,bb3,d4]", // Gm7 C7
  BJ: "~@3 [a2,db4,gb4,a4]@9 [ab2,gb3,c4,f4,ab4]@8 ~ [f3,b3,e4] ~@2, ~@21 [g2,g4]@2 ~", // Gbm Fm E G
  BK: "~@6 [c3,e3,bb3,d4,gb4,a4]@11 ~ [gb2,e3]@2 ~@4, ~@18 [bb3,d4] ~@5", // D7 Gb7 Bb
  BL: "[g2,f3,bb3,d4]@12 [c3,e3,d4]@8 ~ [f2,f3,d4]@2 ~, ~@21 a3 ~@2", BM: "~@6 [c3,e3,bb3,d4,g4] ~@5",
  BN: "[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
  BO: "~@7 [c3,e3,bb3,d4,gb4,a4]@11 ~ [gb2,e3,bb3,d4]@2 ~@3", // D7 Gbaug
  BP: "[g2,f3,bb3,d4]@12 [c3,e3,bb3,d4]@8 ~ [f2,f3,a3,d4] ~@2", BQ: "~@7 f4 ~@4 f5@3 f4 ~@8",
  BR: "f4@2 ~@3 f5@3 f4 ~@15",
  BS: "[~ [a3,b3,d4,gb4]@21 ~@5 c5@6 ~@13 [f3,c4,e4,a4]@26, ~@22 [db4,g4]@9 ~@41, ~@11 b4@2 ~@23, ~@23 eb5@9 ~@40]/3", // Bm7 Fmaj7 Dbdim
  BT: "~@2 [f3,a3,eb4,g4,c5] ~@3 [e3,ab3,d4,gb4,b4] ~@5", // F7 E7
  BU: "[eb3,g3,db4,f4,bb4] ~@4 [d3,gb3,c4,e4,a4] ~@3 [db3,f3,b3,eb4,ab4]@2 [c3,e3,bb3,d4,g4]", // Eb7 D7 Db7 C7
  BV: "[db3,f3,b3,eb4,a4] ~@4 [c3,e3,bb3,d4,ab4] ~@3 [e3,bb3,db4,eb4,a4]@2 [f3,a3,d4,g4]", // Dbaug Caug A Dm
  BW: "f4 ~@4 f5@3 f4 ~@9 [eb3,a3,d4,f4,ab4,b4]@2 ~@4", // Fm7b5
})).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 BA AM BB ~ BC
>`.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: "ab4@9 ~ a4@6 f4@2 ab4@2 ~@4",
  BB: "ab4@5 a4@3 f4 ab4@2 g4", BC: "~@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 AM 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 ~ AN
>`.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: "~@6 gb4@9 ~@3 d4@2 ~@4, ~@15 f4@2 eb4@2 ~@5, ~@8 e4 ~@3", AN: "~@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 AV@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 AW@6 ~
  AX
>`.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@11 ~ c2@11 ~ 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: "[f2@12 ab2@10 g2@13 ~ c2@4 db2@2 c2@2 ~@4]/2",
  AW: "[c3@2 ~@4 c2@11 ~ c2@11 ~ c2@12 c2@11 ~ c2@12 c2@12 c2@12 c2@12 c2@12 c2@12 c2@11 ~ gb2@4 f2@2]/6",
  AX: "~@9 f2 ~@2",
})).s("gm_baritone_sax").gain(0.44).pan(0.8)

// other · trumpet · "Trumpet 1"
const trumpet = note(`<
// … 302 more lines

More by Gillespie Dizzy