Strudelify
Woodchopper's Ball cover art

Blue Flame

Woodchopper's Ball

Herman

KeyB♭ minorTempo184 bpm
0:00/0:00
// Woodchopper's Ball — Herman
// 184 bpm, 4/4, key A# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 15 "Trombone" muted trumpet (copy of ch 13 "Trumpet 5" muted trumpet)
// note: Full arrangement: all 173 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(184/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 A C D E C F G H A I A I A I J K A C L M A B C@2 A N O P Q R S M I@2 B I C I O P C T U H A@2 B A I C D V C W U X
  C@3 I A I O V C@2 G H I B@2 A I N D Y B F S H C I@3 C N O V I@2 L Z I A AA D I N J D A I X AB A I AA Y C AC D@2 C AD X
  AB I AE B I A N O AF I C L M B C A C I C AG AH B F G M I AI AJ AK AJ AL AM AN AO AJ AP AQ AO AR AS AT AS@2 AU AV AW AS
  AX AY AZ BA ~ BB@3
>`.pickRestart({
  A: "db2@4 c2@4 bb1@4 d2@3 ~", B: "db2@4 eb2@4 f2@3 ~ d2@3 ~", C: "db2@3 db1 f2@4 gb2@4 db2@2 ~@2",
  D: "~@4 bb2@3 gb1 db3@4 gb3@3 ~, gb2@7 ~@9", E: "gb2@4 gb2@3 ~ g2 ~ a3 bb3 [bb3,f4]@3 ~",
  F: "db2@4 c2@4 bb1@4 e2@3 ~", G: "eb2@4 f2@4 gb2@3 ~ a2@3 ~", H: "~@4 c3@3 ab1 eb3@4 ab3@3 ~, ab2@7 ~@9",
  I: "~@4 f2@3 db1 ab2@4 db3@3 ~, db2@7 ~@9", J: "gb2@4 e2@4 eb2@4 g2@3 ~", K: "gb2@4 db2@2 ~ gb2 g2@4 g2@3 ~",
  L: "eb2@4 db2@4 c2@4 a2@3 ~", M: "ab2@4 bb2@4 c3@3 ~ d2@3 ~", N: "db2@4 eb2@4 f2@3 ~ g2@3 ~",
  O: "gb2@3 gb1 bb2@4 b2@4 gb2@2 ~@2", P: "gb2@4 db2@2 ~ gb2 g2 ~ a3 bb3 [bb3,f4]@3 ~", Q: "db2@4 c2@4 bb1@4 gb2@3 ~",
  R: "f2@4 c2@2 ~ f2 bb1 ~ c3 db3 [db3,ab3]@3 ~", S: "~@4 gb2@3 eb1 bb2@4 eb3@3 ~, eb2@7 ~@9",
  T: "f2@4 c2@2 ~ f2 bb1@4 f2@2 ~ bb1", U: "eb2@3 eb1 gb2@4 ab2@4 eb2@2 ~@2", V: "gb2@4 ab2@4 bb2@3 ~ d2@3 ~",
  W: "db2@4 eb2@4 f2@3 ~ e2@3 ~", X: "ab2@3 ab1 c3@4 db3@4 ab2@2 ~@2", Y: "gb2@4 e2@4 eb2@4 d2@3 ~",
  Z: "ab2@4 gb2@4 f2@4 d2@3 ~", AA: "db2@4 c2@4 bb1@4 g2@3 ~", AB: "eb2@4 bb2@2 ~ eb2 eb2@3 ~ ab2@3 ~",
  AC: "db2@4 b1@4 bb1@4 g2@3 ~", AD: "db2@4 eb2@4 f2@3 ~ a2@3 ~", AE: "db2@2 ~ c2@5 gb2@2 ~ c2 db2@2 ~ db1",
  AF: "gb2@4 gb2@3 ~ g2@4 db2@2 ~ g2", AG: "gb2@4 ab2@4 bb2@3 ~ g2@3 ~", AH: "gb2@4 gb2@3 ~ g2@4 g2@3 ~",
  AI: "db2@4 ab2@2 ~ db2 db2@3 ~ d2@3 ~", AJ: "d2@3 d1 gb2@4 g2@4 d2@2 ~@2", AK: "~@4 gb2@3 d1 a2@4 d3@3 ~, d2@7 ~@9",
  AL: "d2@4 e2@4 gb2@3 ~ ab2@3 ~", AM: "g2@4 f2@4 e2@4 ab2@3 ~", AN: "g2@4 g2@3 ~ ab2@4 d2@2 ~ ab2",
  AO: "d2@4 db2@4 b1@4 eb2@3 ~", AP: "e2@4 d2@4 c2@4 bb1@3 ~", AQ: "a1@4 b1@4 db2@3 ~ eb2@3 ~",
  AR: "d2@4 d2@3 ~ d2@2 ~ d1 eb2@2 ~ eb1", AS: "~@4 g2@3 eb1 bb2@4 eb3@3 ~, eb2@7 ~@9", AT: "eb2@4 f2@4 g2@3 ~ e2@3 ~",
  AU: "ab2@4 bb2@4 c3@3 ~ a2@3 ~", AV: "ab2@4 eb2@2 ~ ab2 a1@4 a1@3 ~", AW: "eb2@4 d2@4 c2@4 e2@3 ~",
  AX: "~@4 ab2@3 f1 c3@4 f3@3 ~, f2@7 ~@9", AY: "bb1@3 bb0 d2@4 eb2@4 ~@4", AZ: "~@3 eb2 ~@3 c2 eb2 ~@3 c2 ~@3",
  BA: "eb2@6 ~ eb2 ~@8", BB: "[~@7 eb2@33 ~@8]/3",
})).s("gm_acoustic_bass").gain(0.18).pan(0.4)

// chords · piano
const piano = note(`<
  ~ A@2 B C D E A F G H B A I@2 A J K L M A G N B O M A B P Q R O S T U O I B F B V W X Y Z N AA B O I@2 A V AB AC Y I
  N@2 Y B Y I F V W AB A@2 N AD A@2 M O@2 AE AC@2 A@2 AF AG O A B I O J AH W B@2 AI U O A O AJ B AK D AL B I AM AN Y B Y
  D O AE AO K Y F AP AQ I AR A Y A AS AC AT O Y N AU I@4 B AS AC AV O B AI AW Y AX AY AZ BA BB BC BD BE BF BG BH BI BJ
  BK BL BM BN BO BP BM BQ BR BS ~ BT ~ BU@3
>`.pickRestart({
  A: "~@8 [f3,bb3,db4,ab4]@2 ~ [f3,bb3,db4,ab4] ~@4", // Bbm7
  B: "[f3,bb3]@10 ~@2 bb3@2 ~ ab4, [f4,ab4,db5]@13 ~ f4@2, ~@11 f3@4 ~", // Bb5 Db
  C: "~@3 [f3,ab3,b3,db4] ~@4 [f3,ab3,b3,db4]@7 ~", D: "~@8 [e3,bb3,eb4,ab4]@2 ~ [e3,bb3,eb4,ab4] ~@4",
  E: "~ bb3@3 ~@5 bb3@3 ~@4, [e4,gb4,e5,gb5,db6]@3 ~@5 [e4,g4,e5,g5,db6]@3 ~@5", // Gb7 Dbdim
  F: "~@3 f4 ab4@3 db5@4 db3 [bb3,f4,ab4,db5]@2 ~@2, bb3@5 ~@3", // Bbm7
  G: "[db3,gb3]@10 ~@2 gb3@2 ~ f4, [db4,f4,bb4]@13 ~ db4@2, ~@11 db3@4 ~", // Gb5 Bbm
  H: "~@8 [gb3,bb3,db4,f4]@2 ~ [gb3,bb3,db4,f4] ~@4", I: "~@3 [f3,ab3,bb3,db4] ~@4 [f3,ab3,bb3,db4]@7 ~",
  J: "[f3,b3]@10 ~@2 b3@2 ~ bb4, [f4,bb4,db5]@13 ~ f4@2, ~@11 f3@4 ~", // Fdim Bbm
  K: "~@8 [e3,ab3,bb3,eb4]@2 ~ [e3,ab3,bb3,eb4] ~@4", L: "~@3 [e3,bb3,eb4,ab4] ~@4 [e3,bb3,e4,g4,db5]@7 ~",
  M: "~@8 [f3,ab3,bb3,db4]@2 ~ [f3,ab3,bb3,db4] ~@4", N: "~@3 [gb3,db4,f4,bb4] ~@4 [gb3,db4,f4,bb4]@7 ~",
  O: "~@3 [f3,bb3,db4,ab4] ~@4 [f3,bb3,db4,ab4]@7 ~", // Bbm7
  P: "[f3,b3]@10 ~@2 b3@2 ~ ab4, [f4,ab4,db5]@13 ~ f4@2, ~@11 f3@4 ~", // Fdim Db
  Q: "bb3@10 ~@3 e4@2 ab4, [e4,ab4,db5]@12 bb3@3 ~, e3@8 ~@3 e3@5", // Dbm
  R: "gb2@2 ~ [e3,bb3,db4,ab4]@2 ~@6 [e3,bb3,db4,g4] ~@4", // Bbm7b5 Edim
  S: "~@3 [eb3,ab3,c4,f4] ~@5 ab3@3 ~@4, ~@8 [db4,f4,db5,f5,bb5]@3 ~@5", // Fm7 Bbm
  T: "~@3 db4 f4@3 bb4@4 eb2 [gb3,db4,f4,bb4]@2 ~@2, gb3@5 ~@3", U: "~@8 [gb3,a3,c4,e4]@2 ~ [gb3,a3,c4,e4] ~@4",
  V: "[f3,b3]@10 ~@2 b3@2 ~ ab4, [f4,ab4,eb5]@13 ~ f4@2, ~@11 f3@4 ~", // Fdim Fm7
  W: "~@3 [e3,bb3,db4,gb4] ~@4 [e3,bb3,db4,gb4]@7 ~", // Gb7
  X: "~ bb3@3 ~@4 [e3,bb3,e4,g4,db5]@7 ~, [e4,gb4,e5,gb5,eb6]@3 ~@13", // Edim Ebm
  Y: "bb3@10 ~@3 f4@2 ab4, [f4,ab4,db5]@12 bb3@3 ~, f3@8 ~@3 f3@5", // Db
  Z: "f3@2 ~ [eb3,ab3,c4,g4]@2 ~@6 [ab3,db4,f4,bb4] ~@4", AA: "~@3 [gb3,c4,eb4,bb4] ~@4 [gb3,c4,eb4,bb4]@7 ~",
  AB: "~@3 [e3,bb3,eb4,ab4] ~@4 [e3,bb3,eb4,ab4]@7 ~", // Emaj7
  AC: "[e3,bb3]@10 ~@2 bb3@2 ~ gb4, [e4,gb4,db5]@13 ~ e4@2, ~@11 e3@4 ~", // Edim Gb7
  AD: "[gb3,db4]@10 ~@2 db4@2 ~ bb4, [gb4,bb4,f5]@13 ~ gb4@2, ~@11 gb3@4 ~", // Gb5 Gbmaj7
  AE: "~@8 [f3,b3,eb4,bb4]@2 ~ [f3,b3,eb4,bb4] ~@4", AF: "~@3 [gb3,bb3,db4,eb4] ~@4 [gb3,bb3,db4,eb4]@7 ~",
  AG: "~@3 [gb3,c4,eb4,b4] ~@4 [gb3,c4,eb4,b4]@7 ~", // B
  AH: "[e3,bb3]@10 ~@2 bb3@2 ~ gb4, [e4,gb4,eb5]@13 ~ e4@2, ~@11 e3@4 ~", // Edim Ebm
  AI: "~@8 [gb3,db4,f4,bb4]@2 ~ [gb3,db4,f4,bb4] ~@4", AJ: "~@3 e4 gb4@3 eb5@4 gb2 [bb3,e4,gb4,eb5]@2 ~@2, bb3@5 ~@3",
  AK: "b3@10 ~@3 f4@2 ab4, [f4,ab4,db5]@12 b3@3 ~, f3@8 ~@3 f3@5", AL: "~@3 [e3,ab3,bb3,db4] ~@4 [e3,ab3,bb3,db4]@7 ~",
  AM: "[gb3,c4]@10 ~@2 c4@2 ~ ab4, [gb4,ab4,f5]@13 ~ gb4@2, ~@11 gb3@4 ~", // Gbdim Db
  AN: "[gb3,db4,f4,db5,f5,bb5]@3 ~@5 [gb3,bb3,db4,f4]@3 ~@3 [gb3,ab3,c4,eb4]@2", // Gbmaj7 Ab7
  AO: "bb3@10 ~@3 e4@2 gb4, [e4,gb4,eb5]@12 bb3@3 ~, e3@8 ~@3 e3@5", AP: "~@3 [gb3,c4,f4,bb4] ~@4 [gb3,c4,f4,bb4]@7 ~",
  AQ: "[gb3,db4,eb4,db5,eb5,bb5]@3 ~@5 [gb3,db4,f4,bb4]@3 ~ [gb3,c4,e4,a4]@3 ~", // Ebm7 Gbmaj7 Gbm7b5
  AR: "[e3,bb3,db4,g4]@2 ~@2 c3@2 ~ [eb3,gb3,a3,c4]@2 ~@3 [f3,bb3,db4,ab4]@3 ~", // Edim Ebdim Bbm7
  AS: "b3@10 ~@3 f4@2 ab4, [f4,ab4,eb5]@12 b3@3 ~, f3@8 ~@3 f3@5", // Fm7
  AT: "[bb3,e4,gb4,e5,gb5,eb6]@3 ~@5 g2@2 ~ [e3,bb3,db4,g4]@2 ~@3", // Ebm Edim
  AU: "~@8 [gb3,db4,eb4,bb4]@2 ~ [gb3,db4,eb4,bb4] ~@4", AV: "[e3,bb3,e4,ab4,eb5]@7 ~ g2@2 ~ [e3,g3,bb3,db4]@2 ~@3",
  AW: "[gb3,db4]@10 ~@2 db4@2 ~ bb4, [gb4,bb4,eb5]@13 ~ gb4@2, ~@11 gb3@4 ~", // Gb5 Ebm
  AX: "[f3,bb3,f4,ab4,db5]@7 ~ [f3,bb3,db4,ab4]@3 ~ [gb3,b3,d4,a4]@3 ~", // Bbm7 Bm7
  AY: "b3@10 ~@3 gb4@2 a4, [gb4,a4,d5]@12 b3@3 ~, gb3@8 ~@3 gb3@5", AZ: "~@3 [gb3,a3,b3,d4] ~@4 [gb3,a3,b3,d4]@7 ~",
  BA: "~@8 [gb3,a3,b3,d4]@2 ~ [gb3,a3,b3,d4] ~@4", // Bm7
  BB: "[gb3,c4]@10 ~@2 c4@2 ~ ab4, [gb4,ab4,e5]@13 ~ gb4@2, ~@11 gb3@4 ~", // Gbdim Dbm
  BC: "b3@10 ~@3 f4@2 g4, [f4,g4,e5]@12 b3@3 ~, f3@8 ~@3 f3@5", // C
  BD: "[b3,f4,g4,e5]@3 b3 f4 ~ g4 e5 ab2@2 ~ [f3,b3,d4,ab4]@2 ~@3", // Em Fdim
  BE: "~@3 gb4 a4@3 d5@4 d3 [b3,gb4,a4,d5]@2 ~@2, b3@5 ~@3", // Bm7
  BF: "[gb3,b3]@10 ~@2 b3@2 ~ a4, [gb4,a4,d5]@13 ~ gb4@2, ~@11 gb3@4 ~", BG: "~@3 [g3,b3,d4,e4] ~@4 [g3,b3,d4,e4]@7 ~",
  BH: "~@3 [g3,b3,d4,gb4] ~@4 [g3,b3,d4,gb4]@7 ~", BI: "~@8 [gb3,b3,d4,a4]@2 ~ [gb3,b3,d4,a4] ~@4",
  BJ: "[b3,gb4,a4,gb5,a5,d6]@3 ~@5 [gb3,a3,b3,d4]@3 ~ [g3,c4,eb4,bb4]@3 ~", // Bm7 Cm7
  BK: "~@8 [g3,bb3,c4,eb4]@2 ~ [g3,bb3,c4,eb4] ~@4", BL: "~@3 c4 eb4@3 bb4@4 eb2 [g3,c4,eb4,bb4]@2 ~@2, g3@5 ~@3",
  BM: "[c3,g3]@10 ~@2 g3@2 ~ eb4, [c4,eb4,bb4]@13 ~ c4@2, ~@11 c3@4 ~", BN: "~@8 [g3,db4,f4,c5]@2 ~ [g3,db4,f4,c5] ~@4",
  BO: "~@8 [gb3,bb3,c4,f4]@2 ~ [gb3,bb3,c4,f4] ~@4", BP: "[c4,gb4,bb4,gb5,bb5,eb6]@3 ~@5 a2@2 ~ [gb3,c4,eb4,a4]@2 ~@3",
  BQ: "g3@10 ~@3 c4@2 eb4, [c4,eb4,bb4]@12 g3@3 ~, c3@8 ~@3 c3@5", // Cm7
  BR: "[eb3,ab3]@10 ~@2 ab3@2 ~ f4, [eb4,f4,c5]@13 ~ eb4@2, ~@11 eb3@4 ~", // Ab5 F7
  BS: "ab3@10 ~@3 eb4@2 g4, [eb4,g4,c5]@12 ab3@3 ~, eb3@8 ~@3 eb3@5", // Cm
  BT: "[eb2,eb3,bb3,c4,eb4,g4]@6 ~ [eb2,eb3,bb3,c4,eb4,g4] ~@8", BU: "[~@7 [eb2,eb3,db4,f4,g4,c5]@33 ~@8]/3",
})).s("gm_piano").gain(0.18).pan(0.6)

// other · clarinet · "Lead Alto"
const clarinet = note(`<
  ~@24 A B C D A E F G H I@2 J@3 K L M@2 N O P Q@4 ~@72 R@8 S@2 T U V@8 W@2 ~@15 X@3 Y Z@2 P AA@2 AB AC ~@4
>`.pickRestart({
  A: "~@11 ab4@5", B: "db5 ~@10 eb5@5", C: "f5 ~@7 db5@7 ~", D: "ab4 ~@15", E: "db5 ~@7 eb5@7 ~",
  F: "f5 ~@7 c5@2 ~ f5 ~@3 db5", G: "ab4@2 ~ ab4 ~@12", H: "~@11 ab4 db5@2 ~ eb5", I: "f5@2 ~ f5 ~@7 ab4 db5@2 ~ eb5",
  J: "[f5@2 ~ f5 ~@3 ab4 db5@2 ~ eb5 f5@2 ~ f5@9 ~@4 c6@7 ~ db6 ~@3 ab5@2 ~ f5 db5@2 ~ ab4]/3",
  K: "c5@4 db5 ~@3 ab4@2 ~ f4 db4@2 ~ ab3", L: "e4@2 ~ f4@5 db4@2 ~ bb3 f3@2 ~ bb3",
  M: "[ab3 ~@11 c6@7 ~ db6 ~@3 ab5@2 ~ f5 db5@2 ~ ab4]/2", N: "c5@3 ~ db5 ~@3 ab4@2 ~ f4 db4@2 ~ ab3",
  O: "e4@2 ~ f4@5 c5@2 ~ f5 ~ b4 ~ e5", P: "bb4@7 ~@9", Q: "[~ f6@15]/4", R: "[~@12 db5@10 ~ db5 ~@8]/2",
  S: "[~@12 eb5@10 ~ eb5 ~@8]/2",
  T: "~@4 db5 [db5,eb5] eb5 [db5,eb5] db5 [db5,eb5] eb5 [db5,eb5] db5 [db5,eb5] eb5 [db5,eb5]", // Dbsus2
  U: "db5 [db5,eb5] eb5 [db5,eb5] db5 [db5,eb5] eb5 [db5,eb5] db5 [db5,eb5] eb5 [db5,eb5] ~@4", // Dbsus2
  V: "[~@6 db5@8 db6 ~]/2", W: "[~@6 eb5@8 eb6 ~]/2", X: "[~ eb6@10 ~]/3", Y: "~@8 c6@2 ~ c6@2 c6@2 ~",
  Z: "[c6@2 ~ c6@2 c6@18 ~ bb5@3 g5 eb5@3 c5]/2", AA: "[~ g6@7]/2", AB: "~@3 eb6 ~@3 c6 eb6 ~@3 c6 ~@3",
  AC: "eb6@6 ~ g6 ~@8",
})).s("gm_clarinet").gain(0.48).pan(0.4)

// other · alto sax · "Lead Alto"
const alto_sax = note("<~@80 A@3 B@2 ~@7 A@3 B@2 ~ C D E F C D E G C D H D H D I F H D J G H D ~@53>".pickRestart({
  A: "[~@15 gb4@12 f4 gb4@3 ab4@17]/3", B: "[~ db5@6 ~]/2", C: "~@7 gb4@2 ~@2 gb4@2 ~@2 eb4", D: "f4 ~@15",
  E: "~@7 f4@2 ~@2 f4@2 ~@2 db4", F: "gb4 ~@15", G: "ab4 ~@15", H: "~@4 ab4@2 ~ gb4 ~@3 gb4@2 g4 gb4 eb4, ~@4 g4 ~@11",
  I: "~@4 gb4@2 ~ f4 ~@3 f4@2 gb4 f4 eb4, ~@4 f4 ~@11", J: "~@4 gb4@2 ~ f4 ~@3 f4@2 gb4 f4 db4, ~@4 f4 ~@11",
})).s("gm_alto_sax").gain(0.32).pan(0.4)

// other · alto sax · "Lead Alto" · soft notes
const alto_sax_soft = note("<~@108 A ~ A ~ B ~ A ~ B ~ A ~@54>".pickRestart({
  A: "~@3 gb4 ~@12", B: "~@3 e4 ~@12",
})).s("gm_alto_sax").gain(0.24).pan(0.4)

// other · tenor sax · "3rd Tenor"
const tenor_sax = note(`<
  ~@10 A B@2 ~@9 A B@2 ~@10 C@2 ~@10 C@2 ~@26 D E@2 ~ D F@3 G@2 ~@2 D E@2 ~ D F@3 G@2 ~ H I J I H I H I K L M I M I N I
  O I M P M Q R@3 S@6 T@2 U V W@2 X@2 W@2 X@2 Y@2 Z@8 ~@16 AA@2 ~ AB@3
>`.pickRestart({
  A: "~@11 db4 eb4@3 db4, ~@12 d4 ~@3", B: "[~@4 f4@23 ~@5]/2", C: "[~ f4@7]/2",
  D: "db4@2 ~ db4 eb4@2 ~@2 f4@2 ~@2 eb4@2 ~@2", E: "[db4@6 ~ b3@8 bb3@17]/2",
  F: "[db4@6 ~ bb3@8 bb3@12 gb3 bb3@3 c4@17]/3", G: "[~ f4@6 ~]/2", H: "~@7 bb3@2 ~@2 bb3@2 ~@2 ab3", I: "bb3 ~@15",
  J: "~@7 b3@2 ~@2 b3@2 ~@2 ab3", K: "~@7 c4@2 ~@2 c4@2 ~@2 a3", L: "b3 ~@15",
  M: "~@3 bb3 c4@2 ~ bb3 ~@3 bb3@2 b3 bb3 ab3, ~@4 b3 ~@11", N: "~@3 bb3 c4@2 ~ b3 ~@3 c4@2 db4 c4 ab3, ~@4 b3 ~@11",
  O: "~@3 b3 db4@2 ~ bb3 ~@3 bb3@2 b3 bb3 ab3, ~@4 c4 ~@11", P: "c4 ~@15", Q: "bb3 ~@7 f4@8",
  R: "[e4@6 ~ eb4@5 db4@15 ~ eb4@10 ~ eb4 ~@8]/3", S: "[~@12 eb4@10 ~ eb4 ~@8]/2", T: "[~@12 f4@10 ~ f4 ~@8]/2",
  U: "~@4 eb4 [eb4,f4] f4 [eb4,f4] eb4 [eb4,f4] f4 [eb4,f4] eb4 [eb4,f4] f4 [eb4,f4]", // Ebsus2
  V: "eb4 [eb4,f4] f4 [eb4,f4] eb4 [eb4,f4] f4 [eb4,f4] eb4 [eb4,f4] f4 [eb4,f4] ~@4", W: "[~@6 eb4@8 f4 ~]/2",
  X: "[~@6 eb4@8 gb4 ~]/2", Y: "[~@6 f4@8 ab4 ~]/2", Z: "[~ eb4@31]/8",
  AA: "[~@3 eb4@4 c4 ~@4 c4 ~@10 g4 ~@8, ~@4 eb4@7 ~@5]/2", AB: "[~@7 db4@33 ~@8]/3",
})).s("gm_tenor_sax").gain(0.32).pan(0.4)

// other · alto sax · "3rd Tenor"
const alto_sax_2 = note("<~@144 A@2 B@2 C@2 D@2 E F@2 G H I J@2 K@2 L@2 M N@2 ~@6>".pickRestart({
  A: "[~@15 d4@2 ~@2 d4@12 b3]/2", B: "[a3@2 ~ d3 ~@11 d4@2 ~@2 d4@2 ~@2 b3 a3 ~@3 g3@3 f3]/2",
  C: "[gb3@2 ~ a3 b3@3 a3@5 ~@3 d4@2 ~@2 d4@12 b3]/2", D: "[a3@2 ~ d3 ~@11 d4@2 ~@2 d4@2 ~@2 b3 a3@2 ~@2 g3@3 f3]/2",
  E: "gb3@3 a3 b3@3 a3@5 ~@4", F: "[a3@3 c4@9 a3@3 c4@8 a3 c4@3 a3 db4@2 ~ d4]/2", G: "~@7 c4 ~@7 b3",
  H: "~@7 gb3 g3@3 bb3 c4@3 eb4", I: "~@3 eb4@12 c4",
  J: "[bb3@2 ~ eb3 ~@11 eb4@2 ~@2 eb4@2 ~@2 c4 bb3 ~@3 ab3@3 gb3]/2",
  K: "[g3@2 ~ bb3 c4@3 bb3@5 ~@3 eb4@2 ~@2 eb4@12 c4]/2",
  L: "[bb3@2 ~ eb3 ~@11 eb4@2 ~@2 eb4@2 ~@2 c4 bb3@2 ~@2 ab3@3 gb3]/2", M: "g3@3 bb3 c4@3 bb3@5 ~@4",
  N: "[bb3@3 db4@9 bb3@3 db4@8 bb3 db4@3 bb3 d4@2 ~ eb4]/2",
})).s("gm_alto_sax").gain(0.48).pan(0.4)

// other · tenor sax · "4th Tenor"
const tenor_sax_2 = note(`<
  ~@10 A B@2 ~@9 A B@2 ~@10 C@2 ~@10 C@2 ~@26 D E@2 ~ D F@3 G@2 ~@2 D E@2 ~ D F@3 G@2 ~ H I J K H I J I H I L I L I M K
  L I M I L N O@3 P@2 Q@4 R@2 S T U@2 V@2 U@4 W@2 X@2 ~@22 Y Z ~ AA@3
>`.pickRestart({
  A: "~@11 ab3 bb3@3 ab3, ~@12 a3 ~@3", B: "[~@4 db4@23 ~@5]/2", C: "[~ db4@7]/2",
  D: "bb3@2 ~ bb3 db4@2 ~@2 eb4@2 ~@2 db4@2 ~@2", E: "[bb3@6 ~ ab3@8 ab3@17]/2",
  F: "[bb3@6 ~ ab3@8 gb3@12 eb3 gb3@3 bb3@17]/3", G: "[~ db4@6 ~]/2", H: "~@7 ab3@2 ~@2 ab3@2 ~@2 gb3", I: "ab3 ~@15",
  J: "~@7 ab3@2 ~@2 ab3@2 ~@2 f3", K: "gb3 ~@15", L: "~@3 ab3 bb3@2 ~ ab3 ~@3 ab3@2 a3 ab3 gb3, ~@4 a3 ~@11",
  M: "~@3 ab3 bb3@2 ~ ab3 ~@3 ab3@2 a3 ab3 f3, ~@4 a3 ~@11", N: "ab3 ~@7 db4@8",
  O: "[db4@6 ~ c4@5 bb3@15 ~ bb3@10 ~ bb3 ~@8]/3", P: "[~@12 b3@10 ~ b3 ~@8]/2", Q: "[~@12 bb3@10 ~ bb3 ~@8]/2",
  R: "[~@12 c4@10 ~ c4 ~@8]/2", S: "~@4 bb3 [bb3,c4] c4 [bb3,c4] bb3 [bb3,c4] c4 [bb3,c4] bb3 [bb3,c4] c4 [bb3,c4]",
  T: "bb3 [bb3,c4] c4 [bb3,c4] bb3 [bb3,c4] c4 [bb3,c4] bb3 [bb3,c4] c4 [bb3,c4] ~@4", U: "[~@6 bb3@8 db4 ~]/2",
  V: "[~@6 b3@8 db4 ~]/2", W: "[~@6 c4@8 eb4 ~]/2", X: "[~@4 bb3@19 ~@9]/2", Y: "~@3 c4 ~@3 bb3 c4 ~@3 bb3 ~@3",
  Z: "c4@6 ~ eb4 ~@8", AA: "[~@7 bb3@33 ~@8]/3",
})).s("gm_tenor_sax").gain(0.32).pan(0.4)

// other · baritone sax · "Bari Sax"
const baritone_sax = note(`<
  ~@10 A B@2 ~@9 A B@2 ~@10 C@2 ~@10 C@2 ~@25 D E F@2 D E G@3 H@2 ~ D E F@2 D E G@3 H@2 ~ I J K L I J M N I J O J O J P
  J O J Q N O R S@3 T@2 U@2 T@2 U@2 V W X@4 Y@2 X@2 Z@2 AA@3 AB@2 AC@2 AD@2 AE AF@2 AG AH AI AJ@2 AK@2 AL@2 AM AN@2 AO
  AP ~ AQ@3
>`.pickRestart({
  A: "~@11 bb3 c4@3 bb3, ~@12 b3 ~@3", B: "[~@4 ab3@23 ~@5]/2", C: "[~ ab3@7]/2", D: "~@15 ab2",
  E: "ab3@2 ~ ab3 bb3@2 ~@2 b3@2 ~@2 bb3@2 ~@2", F: "[ab3@6 ~ f3@8 e3@17]/2", G: "[ab3@6 ~ f3@8 eb3@16 gb3@17]/3",
  H: "[~ ab3@6 ~]/2", I: "~@7 gb3@2 ~@2 gb3@2 ~@2 eb3", J: "f3 ~@15", K: "~@7 f3@2 ~@2 f3@2 ~@2 eb3", L: "e3 ~@15",
  M: "~@7 f3@2 ~@2 f3@2 ~@2 db3", N: "gb3 ~@15", O: "~@3 gb3 ab3@2 ~ gb3 ~@3 gb3@2 g3 gb3 eb3, ~@4 g3 ~@11",
  P: "~@3 e3 gb3@2 ~ f3 ~@3 f3@2 gb3 f3 eb3, ~@4 f3 ~@11", Q: "~@3 e3 gb3@2 ~ f3 ~@3 f3@2 gb3 f3 db3, ~@4 f3 ~@11",
  R: "f3 ~@7 bb3@8", S: "[bb3@6 ~ a3@5 ab3@15 ~ f3@10 ~ f3 ~@8]/3", T: "[~@12 f3@10 ~ f3 ~@8]/2",
  U: "[~@12 gb3@10 ~ gb3 ~@8]/2", V: "~@4 f3 [f3,g3] g3 [f3,g3] f3 [f3,g3] g3 [f3,g3] f3 [f3,g3] g3 [f3,g3]",
  W: "f3 [f3,g3] g3 [f3,g3] f3 [f3,g3] g3 [f3,g3] f3 [f3,g3] g3 [f3,g3] ~@4", X: "[~@6 f3@8 ab3 ~]/2",
  Y: "[~@6 gb3@8 ab3 ~]/2", Z: "[~@6 gb3@8 bb3 ~]/2", AA: "[~@4 f3@19 ~@8 d4@2 ~@2 d4@12 b3]/3",
  AB: "[a3@2 ~ d3 ~@11 d4@2 ~@2 d4@2 ~@2 b3 a3 ~@3 g3@3 f3]/2", AC: "[gb3@2 ~ a3 b3@3 a3@5 ~@3 d4@2 ~@2 d4@12 b3]/2",
  AD: "[a3@2 ~ d3 ~@11 d4@2 ~@2 d4@2 ~@2 b3 a3@2 ~@2 g3@3 f3]/2", AE: "gb3@3 a3 b3@3 a3@5 ~@4",
  AF: "[a3@3 c4@9 a3@3 c4@8 a3 c4@3 a3 db4@2 ~ d4]/2", AG: "~@7 c4 ~@7 b3", AH: "~@7 gb2 g2@3 bb2 c3@3 eb3",
  AI: "~@3 eb3@12 c3", AJ: "[bb2@2 ~ eb2 ~@11 eb3@2 ~@2 eb3@2 ~@2 c3 bb2 ~@3 ab2@3 gb2]/2",
  AK: "[g2@2 ~ bb2 c3@3 bb2@5 ~@3 eb3@2 ~@2 eb3@12 c3]/2",
// … 280 more lines

More by Herman