Strudelify

Brotherhood of Man

Herman

KeyE♭ majorTempo216 bpm
0:00/0:00
// Brotherhood of Man — Herman
// 216 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 4 "Lead Teno" tenor sax (copy of ch 3 "Lead Alto" alto sax)
// note: Full arrangement: all 134 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(216/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 ~ A ~ E ~ F G@2 ~ A ~ B ~ A ~ H ~ I ~ J ~ K L@2 ~ M N O P Q R S T U V W X Y Z AA Z AB AC AD AE AF AG
  AH AI O P AJ AK AL Z AM Z M N AN AO AF AP AH T P@2 W AQ Y AR AS ~@2 O AN AO Q AT AU AV AN AO AW AK AX@4 AY@4 AZ AL BA
  BB P@2 AJ AK BC BD BE ~ A ~ BF ~ C ~ BG ~ I ~ E BH BI BJ ~@3 BK@4
>`.pickRestart({
  A: "~@12 bb1@2 ~ eb2", B: "~@7 bb1@7 ~ eb2", C: "~@11 bb2 e2@2 ~ eb2", D: "~@7 f1@7 ~ bb1", E: "~@11 eb2 ab1@2 ~ a1",
  F: "bb1 b1", G: "[c2@8 gb1@6 ~ f1@8 b1@5 gb1@2 ~ bb1]/2", H: "~@7 f1@5 b1@2 ~ bb1", I: "~@11 bb1 c2@2 ~ eb2",
  J: "~@11 eb2 ab1@3 a1", K: "eb2@2 ~ eb2@5 c2@2 ~ c2@5",
  L: "[f1@2 ~ f1@5 b1@2 ~ b1@2 ~@2 eb2@9 f1@2 ~@2 e2@2 ~ eb2]/2", M: "g3@3 eb1 gb3@4 f3@3 ~ e3@3 ~",
  N: "eb3 ~ bb2 g2 f2@4 eb2@3 ~ eb2@2 ~@2", O: "eb2@3 eb1 g2@4 ab2@4 eb2@2 ~@2",
  P: "~@4 g2@3 eb1 bb2@4 eb3@3 ~, eb2@7 ~@9", Q: "eb2@4 f2@4 g2@3 ~ db2@3 ~", R: "c2@4 bb1@4 a1@4 gb2@3 ~",
  S: "f2@4 eb2@4 d2@4 b1@3 ~", T: "bb1@3 bb0 d2@4 eb2@4 bb1@2 ~@2", U: "eb2@4 eb2@4 c2@4 e2@3 ~",
  V: "eb2@4 f2@4 g2@3 ~ a2@3 ~", W: "~@4 c3@3 ab1 eb3@4 ab3@3 ~, ab2@7 ~@9", X: "a1@4 g1@4 f1@4 e2@3 ~",
  Y: "eb2@4 eb2@3 ~ c2@4 c2@3 ~", Z: "f2@4 f2@3 ~ bb1@4 f2@2 ~ bb1", AA: "eb2@4 eb2@3 ~ gb2 ~ ab3 a3 [bb3,e4]@3 ~",
  AB: "eb2@4 g2@3 eb2 ab2@4 a2@4", AC: "bb2@3 eb2 d3@3 eb2 eb3@2 ~ bb2 eb2@2 ~@2", AD: "eb2@3 eb1 g2@4 ab2@3 ~ a2@3 ~",
  AE: "bb2@2 ~ f2 d2@4 eb2@3 ~ e2@3 ~", AF: "eb2@4 eb2@4 c2@4 db2@3 ~", AG: "~@4 eb2@3 c1 g2@4 c3@3 ~, c2@7 ~@9",
  AH: "~@4 a2@3 f1 c3@4 f3@3 ~, f2@7 ~@9", AI: "bb1@4 ab1@4 g1@4 e2@3 ~", AJ: "ab2@4 bb2@4 c3@3 ~ bb1@3 ~",
  AK: "~@4 c2@3 a0 eb2@4 a2@3 ~, a1@7 ~@9", AL: "eb2@4 eb2@3 ~ c2@4 g2@2 ~ c2",
  AM: "eb2@4 bb2@2 ~ eb2 gb2 ~ ab3 a3 [bb3,e4]@3 ~", AN: "eb2@3 eb1 f2@4 g2@3 ~ ab2@3 eb1",
  AO: "bb2@4 c3@3 eb1 d3@3 eb1 eb3@2 ~@2", AP: "c2@4 d2@4 eb2@3 ~ gb2@3 ~", AQ: "a1@4 b1@4 c2@3 ~ e2@3 ~",
  AR: "f2@4 c2@2 ~ f2 bb1@4 f2@2 ~ bb1", AS: "~@3 c2 ~@3 e2@5 e2@2 ~ eb2", AT: "~@4 e2@3 c1 g2@4 c3@3 ~, c2@7 ~@9",
  AU: "c2@4 bb1@4 a1@4 b1@3 ~", AV: "bb1@4 c2@4 d2@3 ~ e2@3 ~", AW: "ab2@4 gb2@4 f2@4 bb1@3 ~", AX: "~@3 eb2@13",
  AY: "[eb2@14 ~ db2@11 ~ c2@11 ~ b1@11 ~ bb1@11 ~ eb2]/4", AZ: "~@4 g2@3 eb1 bb2@4 eb3@3 ~",
  BA: "f2@3 f1 a2@4 bb2@4 f2@2 ~@2", BB: "~@4 d2@3 bb0 f2@4 bb2@3 ~, bb1@7 ~@9",
  BC: "eb2@4 eb2@3 ~ c2 d3 ~ eb3 [e3,bb3]@3 ~", BD: "f2@4 f2@3 ~ bb1@4 f2@2 ~@2", BE: "~@7 bb1@5 e2@2 ~ eb2",
  BF: "~@7 bb1@8 eb2", BG: "~@8 f1@6 ~ bb1", BH: "~@3 gb1@5 g1@2 ~@2 a1@2 ~@2", BI: "a1@2 ~ bb1@5 b1@2 ~ c2@5",
  BJ: "f1@2 ~ gb1@2 ~@2 bb1@5 e2@2 ~ eb2", BK: "[~ eb2@55 ~@8]/4",
})).s("gm_acoustic_bass").gain(0.3).pan(0.4)

// chords · piano
const piano = note(`<
  ~@13 A B C ~@13 D E F ~ G H I@2 J K L M N O P Q R S T U ~ V W X Y Z AA AB AC AD AE AF AG AH AI AJ W X AK@2 AC AL AM AN
  I AO AP AQ AR AS AT ~@21 I AU AM AV N AW AX AQ AY AZ BA ~@22
>`.pickRestart({
  A: "[bb2,eb4,g4,bb4] [b2,f4,ab4,b4]", B: "[c3,eb4,g4,bb4] [gb2,c4,e4,gb4,a4]",
  C: "~@7 [b2,d4,gb4,a4]@5 ~@3 [bb2,d4,f4,ab4]", // Bm7 Bb7
  D: "[eb3,g4,db5,gb5]@2 ~ [eb3,g4,db5,gb5]@5 [c3,e4,bb4,db5]@2 ~ [c3,e4,bb4,db5]@5", // Eb7 Bbdim
  E: "[f2,eb4,ab4,c5]@2 ~ [f2,eb4,ab4,c5]@5 [b2,ab3,d4,gb4,bb4]@2 ~ [b2,ab3,d4,gb4,bb4]@5", // Fm7 Abm7b5
  F: "[bb2,g3,c4,f4,bb4]@8 [f3,eb4,a4,c5]@2 ~@2 [e3,ab3,db4,gb4,b4]@2 ~ [eb3,g3,c4,f4,bb4]", // Bbsus2 F7 Dbm7 Cm7
  G: "~@3 [g3,bb3,eb4] ~@3 eb3 [g3,bb3,eb4]@7 eb3, ~@3 c-1@4 ~ c-1@4 ~@4", // Eb
  H: "[c-1,g3,bb3,eb4]@3 [g3,bb3,eb4] ~@3 [c-1,g3,bb3,eb4]@4 eb3 [g3,bb3,eb4] ~@3, ~@3 c-1@4 ~@5 c-1@4", // Cm7 Eb Cm7 Eb
  I: "~@12 bb3@3 g4, [g4,eb5]@13 ~@3, ~@11 eb3@4 ~", J: "~@8 [c-1,g3,eb4,bb4]@3 [g3,eb4,bb4] ~@4, ~@11 c-1@4 ~",
  K: "~@3 [bb3,c4,eb4,g4] ~@4 [bb3,c4,eb4,g4]@7 ~", L: "~@3 [a3,eb4,f4,c5] ~@4 [a3,eb4,f4,c5]@7 ~",
  M: "ab3@10 ~@3 d4@2 gb4, [d4,gb4,c5]@12 ab3@3 ~, d3@8 ~@3 d3@5", // D7
  N: "~@3 [g3,bb3,eb4] ~@4 [g3,bb3,eb4]@7 ~, ~@3 c-1@4 ~ c-1@4 ~@4", O: "~@3 [g3,bb3,db4,eb4] ~@4 [g3,bb3,db4,eb4]@7 ~",
  P: "~@12 c4@3 ab4, [ab4,eb5]@13 ~@3, ~@11 gb3@4 ~", Q: "~@3 [gb3,a3,c4,eb4] ~@4 [gb3,a3,c4,eb4]@7 ~",
  R: "~@3 [g3,bb3,eb4] ~@5 bb3@3 ~@4, ~@3 c-1@4 ~ [e4,g4,e5,g5,db6]@3 ~@5", // Eb Dbdim
  S: "[ab3,g4,c5]@3 ab3 eb4 ~ g4 c5 bb2@2 ~ [ab3,c4,d4,g4]@2 ~@3", // Abmaj7
  T: "eb3@2 ~ [g3,eb4,bb4]@2 ~@3 [bb3,gb4,db5]@3 bb3 e4 ~ gb4 db5, ~@3 c-1@4 ~@9", // Eb Gb
  U: "~ a3@3 ~@4 [d3,d4,gb4,c5]@7 ~, [eb4,g4,eb5,g5,d6]@3 ~@13", // D7 Ebmaj7
  V: "~@3 [g3,eb4,bb4] ~@5 [c-1,g3,eb4,bb4]@2 eb3 [g3,eb4,bb4]@2 ~@2, ~@3 c-1@4 ~@5 c-1@4", W: "[g3,eb4,bb4], c-1 ~@3",
  X: "~@3 [c-1,g3,eb4,bb4]@4 ~ [g3,eb4,bb4]@6 ~@2, ~@2 c-1 ~", // Cm7 Eb
  Y: "~@3 [g3,eb4,bb4] ~@4 [g3,eb4,bb4]@7 ~, ~@3 c-1@4 ~ c-1@4 ~@4", Z: "~@8 [bb3,d4,eb4,g4]@2 ~ [bb3,d4,eb4,g4] ~@4",
  AA: "a3@10 ~@3 eb4@2 f4, [eb4,f4,d5]@12 a3@3 ~, eb3@8 ~@3 eb3@5", // Dm
  AB: "~@3 d4 gb4@3 bb4@4 ~ [ab3,d4,gb4,bb4]@2 ~@2, ab3@5 ~@3", // Daug
  AC: "bb3@10 ~@3 eb4@2 g4, [eb4,g4,eb5]@12 bb3@3 ~, eb3@8 ~@3 eb3@5", // Eb
  AD: "~@12 g3@3 eb4, [eb4,c5]@13 ~@3, ~@11 db3@4 ~", // Cm
  AE: "c4@10 ~@3 gb4@2 ab4, [gb4,ab4,f5]@12 c4@3 ~, gb3@8 ~@3 gb3@5", AF: "~@8 [gb3,c4,eb4,a4]@2 ~ [gb3,c4,eb4,a4] ~@4",
  AG: "[eb3,eb4,g4,eb5]@7 ~ c3@2 ~ [bb3,e4,ab4,db5]@2 ~@3", AH: "~@3 [ab3,eb4,f4,c5] ~@7 [ab3,d4,f4,bb4] ~@4",
  AI: "[g3,eb4,g4,eb5,g5,bb5]@3 ~@8 [e3,bb3,db4,ab4] ~@4", // Eb Bbm7b5
  AJ: "[a3,eb4,f4,eb5,f5,d6]@3 ~@5 [ab3,gb4,bb4]@3 ab3 d4 ~ gb4 bb4", // Dm Ebm
  AK: "[[g3,eb4,bb4]@2 ~@2 [g3,eb4,bb4]@9 ~@2 [ab3,e4,b4] ~ [c-1,g3,eb4,bb4]@2 [g3,eb4,bb4] ~@3 [g3,eb4,bb4]@6 ~@3, c-1@4 c-1@4 ~@7 c-1@2 ~@2 c-1@4 c-1@4 ~@5]/2", // Eb E Cm7 Eb
  AL: "~@3 eb4 g4@3 d5@4 ~ [bb3,eb4,g4,d5]@2 ~@2, bb3@5 ~@3", AM: "~@12 a3@3 g4, [g4,d5]@13 ~@3, ~@11 eb3@4 ~",
  AN: "~@12 ab3@3 f4, [f4,bb4]@13 ~@3, ~@11 d3@4 ~", AO: "~@12 g3@3 f4, [f4,c5]@13 ~@3, ~@11 db3@4 ~",
  AP: "~@12 c4@3 bb4, [bb4,f5]@13 ~@3, ~@11 gb3@4 ~", AQ: "~@12 gb3@3 eb4, [eb4,a4]@13 ~@3, ~@11 c3@4 ~",
  AR: "~@3 [g3,bb3,eb4] ~@4 [bb3,ab4,db5]@3 bb3 e4 ~ ab4 db5, ~@3 c-1@4 ~@9", // Eb Bbm7
  AS: "~@3 [ab3,eb4,g4,c5] ~@4 [ab3,d4,g4,d5,g5,bb5]@3 ~@5", // Abmaj7 Gm
  AT: "[f2,c4,eb4,ab4]@2 ~@5 [e2,b3,d4,ab4]@7 ~ [eb2,bb3,d4,g4]", AU: "[g3,eb4,g4,eb5,g5,bb5]@3 ~@5 [e3,e4,g4,db5]@7 ~",
  AV: "~@3 [ab3,d4,g4,c5] ~@4 [ab3,d4,g4,c5]@7 ~", AW: "~@3 [g3,db4,eb4,bb4] ~@4 [g3,db4,eb4,bb4]@7 ~",
  AX: "~@12 c4@3 ab4, [ab4,f5]@13 ~@3, ~@11 gb3@4 ~", // Db
  AY: "eb3@2 ~ [g3,eb4,bb4]@2 ~@3 [e3,e4,g4,db5]@7 ~, ~@3 c-1@4 ~@9", // Eb Dbdim
  AZ: "f3@2 ~ [eb3,a3,d4,g4,b4]@2 ~@3 [ab3,d4,f4,d5,f5,bb5]@3 ~@5", // G Bb7
  BA: "[eb3,g3,c4,f4,bb4]@6 ~ [bb2,ab3,d4,gb4,db5]@5 [e3,ab3,db4,gb4,b4]@2 ~ [eb3,g3,c4,f4,bb4], c-1 ~@3", // Cm7 Gb Dbm7 Cm7
})).s("gm_piano").gain(0.42).pan(0.6)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@35 A@2 ~@6 B ~@2 C D E ~@7 F ~ G ~@2 H ~@2 I ~@5 J K L A G B M D ~@23 A N K ~@3 B M N ~@24
>`.pickRestart({
  A: "[eb3,bb3]@5 ~@2 eb4, eb4@3 ~", B: "[gb3,c4]@5 ~@2 gb4, gb4@3 ~", C: "eb4@3 ~@13", D: "~@8 e4@3 ~@5",
  E: "~@8 ab3@7 ~", F: "~@11 bb2 ~@4", G: "[db3,g3]@5 ~@2 db4, db4@3 ~", H: "bb3@7 ~@9", I: "~@8 d4@3 ~@5",
  J: "~@11 c3 ~@4", K: "[eb3,a3]@5 ~@2 eb4, eb4@3 ~", L: "[d3,ab3]@5 ~@2 d4, d4@3 ~", M: "[c3,gb3]@5 ~@2 c4, c4@3 ~",
  N: "~@8 bb3@7 ~",
})).s("gm_piano").gain(0.24).pan(0.6)

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

// other · tenor sax
const tenor_sax_2 = note(`<
  ~ A ~ B ~ C ~ D ~ A ~ E ~ F G H ~ I ~ J ~ K ~ L ~ M ~ N ~ O P@2 ~@18 Q R S ~ T U V@6 W@3 ~@7 X@2 Y Z@4 AA ~ AB AC AD ~
  AE@5 AF@6 AG AH@4 AI AJ@3 AK AL@2 AM@3 AN ~ A ~ AO ~ C ~ AP ~ M ~ AQ AR AS AT ~@3 AU@4
>`.pickRestart({
  A: "~@12 ab3@2 ~ g3", B: "~@7 db4@7 ~ bb3", C: "~@11 g3 ab3@2 ~ g3", D: "~@7 g3@7 ~ c4", E: "~@11 c4 d4@2 ~ c4",
  F: "f3!2", G: "eb3@8 gb3@7 ~", H: "~@7 a3@5 gb3@2 ~ f3", I: "~@12 f3@2 ~ g3", J: "~@7 g3@7 ~ eb3",
  K: "~@12 f3@2 ~ eb3", L: "~@7 g3@5 gb3@2 ~ f3", M: "~@11 bb3 a3@2 ~ bb3", N: "~@11 gb3 f3@3 eb3",
  O: "db4@7 [b3,c4] bb3@8", P: "[a3@7 [g3,ab3] gb3@6 ~ g3@9 eb3@2 ~@2 e3@2 ~ f3]/2", Q: "a3@2 ~ a3 ~@12",
  R: "~@8 bb3@2 ~ f3 ~@4", S: "~@12 g3@2 ~ bb3", T: "g3@2 ~ f3 ~@12", U: "~@7 a3@9",
  V: "[~@7 bb3@4 [bb3,b3] ab3@3 bb3@9 g3 ~@3 bb3@3 g3@4 c4@8 gb4 db4@3 c4@9 c4@3 bb3 ab3@3 eb3@13 a3@3 f3@8 e3@9]/6", // Bmaj7
  W: "[~@3 ab3@2 ~@2 e3@5 ab3@3 g3@8 gb3@8 f3@8 gb3@5 bb3@2 ~ g3]/3", X: "[~@3 b2 c3@3 eb3@5 f3 eb3 c3 eb3@17]/2",
  Y: "~@3 b2 c3@3 eb3@4 gb3@3 eb3 c3", Z: "[eb3@11 f3 a3@3 bb3@7 ~ bb3@7 ~ ab3@7 ~ ab3@8 bb3@8 gb3@9]/4",
  AA: "~@3 f3@2 ~@2 gb3@4 [gb3,g3] gb3@2 ~ g3", AB: "~@7 g3@9", AC: "g3 ~@3 a3 ~@3 bb3@2 ~ g3 ~@4",
  AD: "~@8 eb3@3 db3 c3@2 ~ bb2",
  AE: "[~@3 g3@5 a3@3 bb3 a3@3 g3@5 g3@2 ~@2 bb3@3 g3 f3@3 eb3@8 a3 ~@7 f3@7 ~ d3@8 g3@12 ~ f3@3 g3]/5",
  AF: "[~@4 g3@2 ~@2 g3@3 gb3 f3@3 eb3@9 c4@3 gb3 ab3@3 eb3@12 ~ eb3@2 ~ eb3@13 eb3@2 ~ eb3@13 eb3@2 ~ eb3@13 eb3 e3 eb3 e3]/6",
  AG: "eb3 e3 eb3 e3 eb3 e3 eb3 e3 eb3 e3 eb3 e3 eb3 e3 eb3 e3", AH: "[g3@14 ~ g3@11 ~ g3@11 ~ g3@11 ~ g3@11 ~ bb2]/4",
  AI: "~@8 d4 ~@3 bb3 ~@3", AJ: "[bb3@3 ab3 g3@3 ab3@5 g3@3 c4@13 a3@3 f3@9 a3 bb3 ~ b3 c4@2 ~@2]/3",
  AK: "~@4 d4@7 ~ bb3@2 ~@2", AL: "[g3@3 bb3 db4@2 ~ bb3 ~@3 c4@2 ~@2 bb3@11 a3 [g3,ab3] gb3@2 ~@2]/2",
  AM: "[gb3@10 ~ a3 c4@2 ~ bb3@9 b3@2 ~ bb3 ~@3 db4@3 ~ d4 ~@3 db4@5 ab3@2 ~ g3]/3", AN: "~@7 gb3@5 gb3@2 ~ g3",
  AO: "~@7 db4@8 bb3", AP: "~@8 g3@6 ~ d4", AQ: "~@11 gb3 f3@2 ~ eb3", AR: "~@3 c3@5 gb3@2 ~@2 eb3@2 ~@2",
  AS: "g3@2 ~ a3@5 a3@2 ~ bb3@5", AT: "bb3@2 ~ b3@2 ~@2 bb3@5 ab3@2 ~ g3", AU: "[~ g3@55 ~@8]/4",
})).s("gm_tenor_sax").gain(0.56).pan(0.4)

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

// other · trumpet · "Trumpet 1"
const trumpet = note(`<
  A B@2 C ~@4 A D ~@2 E F G@2 H D ~@2 H D I J K D L M E N O ~@81 A P ~@2 H P I J Q P L R ~@3 S T U V@4
>`.pickRestart({
  A: "~@3 c5@5 bb4 ~@3 ab4 ~@3", B: "[g4@2 ~@2 f4@3 eb4@17 c5@8]/2", C: "c5@3 bb4@13", D: "g4@2 ~@2 f4@3 eb4@9",
  E: "~@3 eb5@5 d5 ~@3 c5 ~@3", F: "bb4 ab4", G: "[g4@8 eb4@6 ~ bb4@17]/2", H: "~@3 bb3 eb4@3 c5 bb4 ~@3 ab4 ~@3",
  I: "~@8 bb4@6 c5 bb4", J: "f4", K: "~@3 bb3 eb4 g4 ~ c5 bb4@3 eb4 ab4@2 ~@2", L: "~@3 f5@5 eb5 ~@3 db5 ~@3",
  M: "c5@2 ~@2 bb4@3 ab4@9", N: "eb5@4 gb5@3 g5 ab5@3 a5@5", O: "ab5 gb5 ~ eb5 db5 bb4 ~ a4 ab4@3 eb4 gb4@2 ~ g4",
  P: "g4@2 ~@2 f4@2 ~ eb4@9", Q: "~@3 bb3 eb4 g4 ~ c5 bb4@2 ~ eb4 ab4@2 ~@2", R: "c5@2 ~@2 bb4@2 ~ ab4@9",
  S: "~@6 c6@3 bb5@2 eb5@2 ~ ab5@2", T: "~ g5@3 bb4@2 ~ f5@3 eb5@3 g4@2 ~", U: "c5@2 bb4@2 ~@7 bb5@3 b5 [c6,db6]",
  V: "[d6 eb6@55 ~@8]/4",
})).s("gm_trumpet").gain(0.72).pan(0.6)

// other · trumpet · "Trumpet 2"
const trumpet_2 = note(`<
  ~@4 A B@2 C ~@2 D E F G H@2 I J K@2 I J ~@2 L J M N O P Q ~@81 R S K@2 I S ~@2 T S M U ~@3 V W X Y@4
>`.pickRestart({
  A: "~@3 c5@5 bb4 ~@3 ab4 ~@3", B: "[g4@2 ~@2 f4@3 eb4@17 bb4@6 c5 bb4]/2", C: "f4", D: "~@3 f5@5 eb5 ~@3 db5 ~@3",
  E: "c5@2 ~@2 bb4@3 ab4@9", F: "~@3 c5@5 bb4 ~@3 gb4 ~@3", G: "g4 f4", H: "[eb4@8 a3@6 ~ bb3@17]/2",
  I: "~@3 g3 bb3@3 ab4 g4 ~@3 f4 ~@3", J: "eb4@2 ~@2 bb3@3 g3@9", K: "[~@8 c5@6 ~ bb4@17]/2",
  L: "~@3 g3 bb3 eb4 ~ ab4 g4@3 bb3 f4@2 ~@2", M: "~@3 db5@5 c5 ~@3 bb4 ~@3", N: "ab4@2 ~@2 eb4@3 c4@9",
  O: "~@3 c5@5 bb4 ~@3 a4 ~@3", P: "g4@4 eb5@3 e5 f5@3 gb5@5", Q: "~@12 d4@2 ~ eb4", R: "~@3 ab4@5 g4 ~@3 f4 ~@3",
  S: "eb4@2 ~@2 bb3@2 ~ g3@9", T: "~@3 g3 bb3 eb4 ~ ab4 g4@2 ~ bb3 f4@2 ~@2", U: "ab4@2 ~@2 eb4@2 ~ c4@9",
  V: "~@6 ab5@3 g5@2 bb4@2 ~ f5@2", W: "~ eb5@3 g4@2 ~ c5@3 bb4@3 eb4@2 ~", X: "ab4@2 g4@2 ~@7 g5@5",
  Y: "[~ c6@55 ~@8]/4",
})).s("gm_trumpet").gain(0.64).pan(0.6)

// other · trumpet · "Trumpet 3"
const trumpet_3 = note(`<
// … 229 more lines

More by Herman