Strudelify

Come Rain or Come Shine

Herman

KeyD minorTempo72 bpm
0:00/0:00
// Come Rain or Come Shine — Herman
// 72 bpm, 4/4, key D minor. 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: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 72 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(72/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.

// chords · piano · "Piano - T"
const piano = note(`<
  A@2 B@2 C@2 D@4 E F@2 G@2 H@2 I J K@2 L M N O P Q R@2 S@2 T@2 U V@7 W@8 X@8 Y@5 Z@2 AA AB AC AD AE@4
>`.pickRestart({
  A: "[~@32 [c3,g3,bb3]@15 ~@20 g4@4 ~ f4@8 f4@16, ~@31 [db4,e4]@16 [f3,a3]@24 ~ [bb2,a3,c4,d4]@24, ~@47 g4@20 ~@29, ~@2 [c4,e4] ~]/2", // C7 Dbm F Bbmaj7 C
  B: "[~@7 [d4,g4]@16 ~ db4@8 ~@4 e4@11 ~@13 f4@8 ~@4 [d3,a3]@23 ~, [e3,bb3]@24 [a2,g3]@23 ~ [d3,a3]@23 ~@25, ~@24 e4@12 ~@11 f4@13 ~@36, ~@32 db4@15 db4@21 [c4,f4]@28]/2", // G5 D5 Edim A7 D5 F5
  C: "[f4@12 f4@7 ~@24 f4@4 ~@45 a4@3 ~, [ab3,c4] [g3,b3] [g2,g3,bb3,d4,f4]@2, eb4@19 db4@28 ~@49, ~@19 f4@24 ~@4 a4@45 ~@4]/2", // Ab G Gm7
  D: "[~ [d4,e4]@11 ~ b3@6 ~ [g3,d4,e4]@3 ~@13 [c3,g3,bb3,d4,e4]@11 ~ e4@12 e4@7 ~@12 f4@5 ~@23 eb4@7 ~@6 [b2,gb3]@23 ~ [f3,db4]@23 ~ [bb3,c4,gb4]@21 eb4@3, [c3,g3,bb3]@12 [db3,a3,eb4,f4]@7 [c3,bb3]@3 ~@25 a3@24 [db3,ab3]@20 eb4@16 ~@85, ~@47 c4@20 c4@28 ~ [c3,g3]@24 ~@23 [bb2,ab3]@23 ~ [gb2,e3]@24 ~, ~@48 f3@24 ~@19 bb3@23 ~ [bb3,eb4]@27 ~@50, ~@67 f4@12 ~@5 f4@11 ~@97]/4", // Dsus2 Em7 C7 B5 Db Cm7b5 C7 Dbaug …
  E: "~ eb4@11 eb4@7 ~@5 f3@23 ~, [f3,ab3]@19 [a3,db4]@28 ~, ~ c4@19 ~@3 b2@23 ~@2", // Fm A
  F: "[db4@19 db4@4 ~@9 eb4@8 eb4@7 ~ [g2,f3]@23 ~ [bb3,d4,e4]@23 ~, [bb2,f3,ab3]@23 eb4@8 ~@16 [bb3,d4]@24 ~@25, ~@24 [ab2,gb3,b3]@24 ~@23 [c3,g3]@24 ~]/2", // G7 Em7b5 Bb7 Bb Abm7 C5
  G: "[d4@16 d4@4 d4@4 d4@19 d4@3 ~ eb4@12 ~ eb4@8 ~@3 [d3,a3]@24 ~, [b2,f3,a3]@24 [e3,ab3,b3]@23 [a2,g3]@24 ~@25, ~@47 c4@20 ~ [c4,gb4]@27 ~]/2", // D5 Bm7b5 E A7 Cdim
  H: "[[db3,ab3,c4,f4]@11 ~ [e3,bb3,c4]@11 ~ gb3@11 ~ e3@11 ~ [c4,e4]@11 ~ [d3,a3,c4,gb4]@11 ~ [g3,d4,gb4]@7 [gb3,bb3,db4,gb4]@16 ~, ~@11 gb2@12 [b2,a3,eb4]@12 [ab3,bb3,d4]@12 [a2,g3]@12 ~@12 bb3@7 ~@18]/2", // Dbmaj7 C7 C D7 Gmaj7 Gb B7 Bb7 …
  I: "[f3,a3,c4,e4]@24 ~ [d4,f4]@23, ~@24 [bb2,a3]@23 ~", J: "~ e3@23 [a2,g3,db4,e4]@22 ~@2, [bb3,d4,g4]@23 ~@25",
  K: "[[d3,a3,db4,f4]@23 ~@2 f4@22 [ab3,c4,eb4,f4]@23 ~@3 db4@19 [db4,f4]@4, ~@24 [d3,a3,c4]@22 ~@26 [g3,b3,f4]@23 ~]/2", // Dm Fm7 Db D7 G7
  L: "[ab2,gb3,bb3,b3,eb4]@23 ~ [db3,ab3,b3]@24, ~@23 f4@24 ~", M: "~ e3@22 ~ a3@24, [gb2,a3,db4]@23 [bb2,gb3,eb4]@25",
  N: "[e3,g3,b3,db4]@24 [a2,g3,b3,e4]@23 ~", // Dbm7b5 Em
  O: "~ [c4,e4]@22 ~ [bb2,a3]@11 ~ [bb2,a3]@6 ~@6, [f3,bb3]@23 [d4,f4]@12 [d4,f4]@5 ~@8", // C Bbmaj7 Bb5 Dm
  P: "[a2,d3,a3,c4,e4,gb4]@24 ~ c4@23, ~ [e3,e4,g4]", Q: "~ [f3,c4,d4,ab4]@23 ~ [d3,c4]@23, ~@24 [eb4,gb4,a4]@23 ~",
  R: "[[g3,d4,f4,a4,b4]@23 [ab3,eb4,g4,bb4,c5]@24 [a3,e4,g4,c5]@24 [ab3,eb4,g4,bb4,c5]@24 ~]/2", // G7 Abmaj7 Am7 Abmaj7
  S: "[[d3,a3,c4,f4]@24 [g2,f3,b3,d4,g4]@23 ~ [d4,f4]@22 ~ [e3,b3,d4,ab4]@7 ~ [e4,g4]@17, ~@47 [bb2,a3]@23 ~@8 [a2,a3,db4]@17 ~]/2", // Dm7 G7 Dm E7 Em Bbmaj7 A
  T: "[[d3,a3,c4,f4]@47 ~ [d4,f4]@23 [g3,bb3,d4,f4]@7 ~ [gb3,bb3]@16 ~, ~@47 [g3,bb3]@24 ~@7 [db4,f4]@16 ~@2]/2", // Dm7 Dm Gm7 Gb Gm Db
  U: "[f3,a3,c4,e4]@25 [bb2,a3,d4,f4]@23", // Fmaj7 Bbmaj7
  V: "[~@3 g4@19 g4@6 ~ [a2,g3,db4,e4]@25 f4@19 f4@6 ~ f4@19 f4@6 ~ [c4,eb4,f4]@25 [db4,f4]@17 [db4,f4]@8 ~ [d4,f4,a4]@23 f4@2 [g3,bb3,d4,f4,a4]@25 ~ d4@16 ~@5 e4@3 ~ [c3,gb3,bb3,d4,e4]@25 ~ [f3,a3,c4,e4]@25 ~ [c4,f4]@25 ~ eb4@17 eb4@4 eb4@4, ~@3 [e3,bb3,d4]@25 bb3@25 ~ [d3,a3,db4]@25 ~ [d3,a3,c4]@25 ab3@24 ~@2 [g3,b3]@25 [g3,bb3]@25 ~@27 [c3,g3,bb3,e4]@24 ~@52 [db3,ab3]@26 [c3,g3,bb3]@25 ~, ~@225 d4@7 ~@79 d4@25]/7", // A7 F7 Db Dm Gm7 Fmaj7 F5 Em7b5 …
  W: "[[b2,gb3,bb3,eb4]@25 ~ db4@19 db4@6 [bb3,gb4]@19 db4@3 ~@4 [f3,ab3,b3,eb4]@25 [b2,f3,a3,eb4]@26 f4@17 f4@8 [ab2,gb3,b3,eb4]@26 ~ [bb3,d4]@25 [c3,g3,c4,d4,e4]@25 ~@17 d4@9 f4@16 f4@5 f4@4 ~ [a2,g3]@23 ~@2 eb4@17 eb4@8 ~ c4@12 [bb2,e3,bb3,c4]@12 ~ [b2,gb3,eb4]@13 [e3,ab3,bb3,d4]@12 a2, ~@25 bb2@26 [gb2,e3]@26 ~@51 [bb2,ab3,db4]@26 ~@25 [g2,f3]@26 ~@25 [b2,a3]@26 ~@51 [d3,a3,c4]@25 [db3,ab3,f4]@12 ~@40, ~@26 [ab3,f4]@26 ~@178 d4@17 ~@34 [c4,e4]@25 ~@51 a3@14 ~@13, ~@231 f3@25 [e3,ab3,b3,d4]@26 ~@23 gb4@28 ~@51]/8", // Bmaj7 Ebm Fm7b5 B7 Abm7 Bb C A7 …
  X: "[[g3,c4,e4]@6 ~ [d3,g3,c4,gb4]@7 ~ [d4,f4]@5 ~ [db4,f4]@13 ~ [f3,a3,c4,e4]@24 ~ [d4,f4]@23 ~ e3@23 ~ [a2,g3,db4,e4]@22 ~ [d3,a3,db4,f4]@23 ~@2 [c4,f4]@22 ~ [ab3,c4,eb4,f4]@23 ~@2 [db4,f4]@19 [db4,f4]@4 ~ [gb3,bb3]@23 ~ db3@23 ~ [gb2,e3]@22 ~ [gb3,a3]@24 [e3,g3,b3,db4]@24 ~ g3@22 ~ [a3,c4,f4]@13, ~@14 [g3,bb3]@6 [gb3,bb3]@13 ~@26 [bb2,a3]@23 ~ [bb3,d4,g4]@23 ~@49 [d3,a3]@22 ~@27 [g3,b3]@23 [ab2,b3,eb4]@24 [ab3,b3,f4]@24 [a3,db4]@23 [bb2,eb4]@25 ~@24 [a2,b3,e4]@23 e3@14]/8", // C D7 Dm Db Fmaj7 Dm A7 Dm …
  Y: "[~@11 [bb2,a3,d4,f4]@12 ~ [a3,f4]@10 ~@2 [a2,a3]@23 ~ [e4,g4]@22 ~ [c4,d4,ab4]@24 [d3,gb3,c4,eb4,gb4,a4]@24 ~ [d4,f4,a4,b4]@23 ~ [ab3,eb4,g4,bb4,c5]@22 ~@2 e4@22 [ab3,eb4,g4,bb4,c5]@23 ~@15, ~@23 [bb2,d4]@11 ~ [d3,c4,e4,gb4]@23 ~ [e3,c4]@23 f3@24 ~@25 g3@23 ~@25 [a3,g4,c5]@22 ~@39]/5", // Bbmaj7 Dm A Em Dm7b5 D7 Bm7b5 Abmaj7 …
  Z: "[~@31 a3@52 ~@13, ~@15 a2@26 ~@7]/2", AA: "~@6 [d3,gb3,a3,c4,f4]@29 ~@13",
  AB: "~@7 [g2,g3,bb3]@28 ~@13, ~@6 [d4,f4,bb4]@29 ~@13", AC: "~@3 [ab2,g3,c4,eb4,bb4]@14 ~@7",
  AD: "~@6 [a2,g3,c4,e4,a4]@29 ~@13", AE: "[~@6 [d3,a3,d4,gb4]@24 ~ [eb3,bb3]@149 ~@12, ~@10 [d4,g4]@49 ~@5]/4",
})).s("gm_piano").gain(0.26).pan(0.6)

// bass · acoustic bass · "Jazz Bass"
const bass = note(`<
  A B C D E F G@4 H I@2 J K L M N O P Q R S@2 T U@4 V W X Y Z@4 AA AB@3 AC AD AE@2 AF AG@3 AH@4 AI@7 AJ@4 AK AL AM AN@5
>`.pickRestart({
  A: "~@43 c2@4 ~, ~@40 c3@5 ~@3", B: "f1 a1 bb1 f2", C: "e2@11 bb1@12 ~ a1@12 db2@12", D: "d2@12 f2@13 a2@11 a1@12",
  E: "ab2 d2 g2 db2", F: "g2 f2 d2 db2",
  G: "[~ c3@11 db3@8 c3@3 ~@8 eb3@4 ~ d3@3 g2@4 c3@4 f2@8 ~ eb2@4 d2@7 db2@15 ~ db2@7 ~ c2@12 g2@5 c2@7 b1@12 gb2@4 b1@7 ~ b1@4 bb1@12 f2@12 gb2@13 c2@12]/4",
  H: "f2@11 ab2@13 b1@12 b2@8 b1@4", I: "[bb1@12 bb2@12 ab2@11 ab1@12 g1@13 g2@12 c2@12 ~ c3@3 g2@4 c2@4]/2",
  J: "b1@12 d2@12 e2@11 ab2@13", K: "a2@12 eb2@12 d2@11 ~ a2@8 d2@4", L: "db2@11 gb2@12 b1@12 ~ e2@12",
  M: "a1@12 d2@11 g2@7 ~ gb2@17", N: "f2 a1 bb1 f2", O: "e2 bb1 a1 db2", P: "d2 f2 a2 a1",
  Q: "ab2@12 ab1@7 g2@11 f2@3 db2@4 g1@11", R: "ab2 eb2 db2 ab2",
  S: "[gb2@11 a1@13 b1@12 f2@11 e2@12 g1@13 a1@13 e2@11]/2", T: "f2@11 a1@12 ~ bb1@11 ~ bb1@10 ~@2",
  U: "[a1@12 a2@8 e2@15 ~@2 e2@8 f2@14 ~ f2@8 ~ gb2@15 ~ gb2@7 g2@10 ~ g2@4 g2@8 ab2@10 ~@2 ab2@4 ab2@7 ~ a2@11 ~ a2@4 a2@8 ~ ab2@11 ~ ab2@3 ~ ab2@11 ~]/4",
  V: "d2@12 f2@12 g2@12 b1@7 ~ b1@4", W: "bb1@11 ~ bb2@3 f2@4 bb1@4 e2@8 a1@12 ~ db2@4",
  X: "d2@12 f2@12 g2@11 ~ d2@8 f2@4", Y: "g2@12 ~@3 f2@4 gb2@4 g2@8 gb2@16 ~, ~@12 d2@5 ~@31",
  Z: "[f2@13 a1@12 bb1@13 bb2@7 bb1@6 e2@13 bb1@13 a1@12 db2@13 d2@11 e2@2 f2@10 ~ g2@2 a2@10 ~ a2@2 d2@6 a2@4 a2@2 ab2@10 ~ ab2@2 eb2@10 ~ eb2@2 g2@10 g2@3]/4",
  AA: "db2@6 g2@4 db2@2 ~ g2@13 f2@9 ~ f2@2 d2@10",
  AB: "[~@3 d2@7 db2@6 c2@10 gb2@2 ~ g2@10 b2@2 ~ c3@10 ab2@2 c2@6 ~ gb2@6 f2@13 c2@13 db2@12 ab2@6 ~ db2@6 c2@10 ~ g2@2 c3@6 ~ c2@6]/3",
  AC: "b1@6 gb2@6 ~ b1@6 b1@6 ~ bb1@12 f2@10", AD: "~ f2@2 g2@13 c2@6 g2@6 ~ f2@10 f2@2 ~ c2@6",
  AE: "[~@4 c2@2 b1@9 ~@2 b1@2 f2@6 b1@6 ~ bb1@13 bb2@12 ab2@13 ab1@6 ~ ab2@6 g2@10 d2@2 ~]/2",
  AF: "g1@6 d2@6 ~ c2@4 gb2@2 g2@7 c3@4 g2@2 c2@6 b1@10",
  AG: "[~@3 d2@7 f2@6 e2@4 bb1@2 e1@7 f1@6 ab1@6 a1@13 c2@7 db2@6 d2@6 eb2@7 gb2@6 g2@7 db2@13 gb2@13 b1@12 e2@12 ~]/3",
  AH: "[a1@4 e2@3 a2@2 a2@2 ab2@3 g2@6 ~ gb2@14 f2@12 a1@12 bb1@12 f2@12 e2@12 bb1@12 a1@12 db2@12 d2@12 f2@12 ~ a2@11 a1@12 ab2@12 ab1]/4",
  AI: "[~@7 g2@10 f2@3 db2@4 g1@11 ab2@12 eb2@12 db2@12 ab2@12 gb2@11 a1@13 b1@12 f2@12 e2@11 g1@13 a1@13 e2@11 f2@12 a2@12 bb2@12 bb1@12 d2@12 gb2@12 g2@11 b1@7 ~@2 b1@4 bb1@12 bb2@3 ~ f2@4 bb1@4 gb2@8 ~ a1@13 db2@4 d2@11]/7",
  AJ: "[f2@12 g2@12 d2@7 f2@4 g2@12 d2@3 f2@3 ~ gb2@4 g2@8 gb2@17 f2@12 d2@12 bb1@7 ~ a1@4 ~ a1@7 ~ a1@14 ~ a1@11 ~ a1@11 ~@2 a1@10 ~@14]/4",
  AK: "~@3 d2@14 ~@7", AL: "~@2 g1@9 ~@5", AM: "~@7 ab1@28 ~@13", AN: "[~@6 a1@25 ~@16 d2@32 eb2@125 ~@36]/5",
})).s("gm_acoustic_bass").gain(0.31).pan(0.4)

// other · alto sax · "Lead Alto"
const alto_sax = note(`<
  ~@8 A@3 B C D@2 ~@5 E@3 F@2 ~@5 G H I@2 ~@3 J@4 K L@4 ~@3 M ~@6 N@4 O@3 ~ P Q R S T@4
>`.pickRestart({
  A: "[~@43 f4@4 bb4@16 ~ bb4@6 bb4@20 ~ ab4@2 bb4@2 c5@24 f4@24 ~]/3", B: "~@6 bb4@8 bb4@8 ~ bb4@20 ab4@2 bb4@3",
  C: "c5", D: "[d5@15 ~ d5@7 d5@19 c5@3 ~ d5@3 eb5@6 ~ db5@2 ~ c5@24 ~@13, ~@55 d5@2 ~@39]/2",
  E: "[~@43 b4@24 ~ b4@3 ~ b4@7 ~ b4@51 ~ b4@7 c5@5]/3", F: "[db5@24 a4@59 ~@13]/2",
  G: "~@7 e5@4 c5@3 ~ a4@4 f4@4 e4@8 g4@11 ~@6", H: "~@35 d5@2 db5@2 ~ c5@4 d5@4",
  I: "[a4@4 c4@4 db4@4 d4@3 f4@4 ab4@4 a4@7 c5@37 ~@29]/2", J: "[~@38 d4@25 ~ d4@24 ~ d4@26 e4@25 f4@25 ~ f4@25 ~]/4",
  K: "db4@25 ~ db4@22", L: "[~@3 e4@26 eb4@25 f4@52 eb4@25 d4@51 ~@10]/4",
  M: "~@4 db4@2 d4@2 ~ f4@2 ab4@3 a4@6 c5@15 ~@13",
  N: "[~@35 c4@19 d4@15 ~@2 d4@4 ~@7 a4@19 ~ g4@23 ~ ab4@24 a4@24 f4@17 ~]/4",
  O: "[f4@7 f4@4 ~ g4@7 ~ g4@4 ~@7 g4@22 ~ g4@8 f4@4 ab4@4 a4@4 c5@3 d5@4 ~ f5@6 d5 db5 ~ c5@4 d5@4 ab4@4 f4@3 a4@8 ~ c5@16 ~@13]/3",
  P: "~@3 c4@14 ~@7", Q: "~@6 f4@29 ~@13", R: "~@6 eb4@29 ~@13", S: "~@3 e4@14 ~@7", T: "[~@6 a3@24 bb3@149 ~@13]/4",
})).s("gm_alto_sax").gain(0.35)

// other · alto sax · "Lead Alto" · soft notes
const alto_sax_soft = note("<A B C@3 D E@3 ~@63>".pickRestart({
  A: "~@30 c5@17 ~", B: "a4@12 a4@7 a4@4 ~ a4@7 a4@3 ~@9 a4@4 ~",
  C: "[a4@11 ~ a4@7 a4@4 ~ a4@7 a4@4 ~ a4@7 a4@11 ~ f4@4 f4@7 ~ f4@71 ~ f4@4 ~]/3",
  D: "a4@11 a4@8 a4@4 ~ a4@7 ~ a4@3 ~@9 a4@4",
  E: "[c5@11 ~ a4@7 a4@3 ~@9 a4@3 a4@3 ~ a4@3 ~ a4@4 ~ a4@8 f4@4 f4@7 ~ f4@51 ~@26]/3",
})).s("gm_alto_sax").gain(0.2)

// other · tenor sax · "Lead Teno"
const tenor_sax = note(`<
  A@2 B@4 C@3 D@2 E@2 F@2 G@3 H@3 I@4 ~@5 J K L M ~@3 N@5 O@4 ~@3 P@2 Q@8 R S@4 T U V W X@4
>`.pickRestart({
  A: "[~@30 c5@17 a4@11 ~ a4@8 a4@4 ~ a4@7 a4@3 ~@9 a4@4 ~]/2",
  B: "[a4@11 ~ a4@7 a4@3 ~@2 a4@6 ~ a4@4 ~ a4@7 a4@11 ~ f4@4 ~ f4@7 f4@70 ~@2 f4@4 a4@11 ~ a4@8 ~ a4@4 a4@7 ~ a4@3 ~@9 a4@4]/4",
  C: "[c5@11 ~ a4@7 a4@3 ~@9 a4@3 ~ a4@3 ~ a4@4 a4@3 ~ a4@8 f4@4 ~ f4@7 f4@63 ~@14]/3",
  D: "[~@6 db4@17 c4@23 ~ c4@20 f4@29]/2", E: "[~@6 f4@17 e4@24 d4@37 ~@12]/2",
  F: "[~@7 d4@15 ~ d4@23 ~ eb4@18 ~ eb4@9 g4@4 ab4@4 a4@3 ~ a4@3 ~ a4@5]/2",
  G: "[ab4@10 ~ ab4@12 gb4@12 e4@12 db4@6 ~@2 a3@4 bb3@4 c4@4 eb4@4 d4@8 f4@16 a4@12 ~ a4@9 a4@3 ~ a4@7 a4@3 ~@9 a4@4]/3",
  H: "[a4@11 ~ a4@8 ~ a4@3 a4@7 ~ a4@3 ~ a4@7 ~@2 a4@11 f4@4 f4@7 ~ f4@63 ~@13]/3",
  I: "[~@7 b3@36 db4@24 db4@23 ~ db4@23 ~ db4@23 ~ c4@23 ~ d4@15 ~@2 d4@4 ~@8]/4",
  J: "~@7 c5@4 f4@3 ~ d4@4 d4@4 d4@8 e4@11 ~@6", K: "~@11 f4@2 e4@2 d4@20 a4@2 ab4@2 g4@5 a4@4",
  L: "f4@4 ab3@4 a3@4 bb3@4 c4@3 eb4@4 f4@7 ab4@18", M: "g4@13 ~@11",
  N: "[~@38 d4@25 ~ d4@24 ~ d4@26 e4@25 f4@25 ~ f4@25 db4@49]/5", O: "[~@2 e4@26 eb4@26 f4@51 eb4@26 d4@51 ~@10]/4",
  P: "[~@4 db4@2 d4@3 f4@2 ab4@3 ~ a4@5 c5@15 a4@12 a4@9 a4@3 ~ a4@7 ~ a4@3 ~@8 a4@4 a4@11 ~@2]/2",
  Q: "[a4@8 a4@3 ~ a4@7 ~ a4@3 ~ a4@7 ~ a4@11 f4@4 f4@7 ~ f4@63 ~@20 b3@36 db4@24 ~ db4@23 db4@23 ~ db4@23 ~ c4@23 ~ d4@16 ~ d4@4 ~@8 a4@19 ~ g4@22 ab4@19]/8",
  R: "~@6 a4@24 f4@17 ~",
  S: "[f4@7 f4@4 ~ g4@7 ~ g4@3 ~@7 g4@22 ~@2 g4@8 c4@4 eb4@4 e4@4 g4@3 a4@4 ~ c5@6 a4 ab4 ~ g4@4 a4@4 eb4@4 c4@3 d4@8 ~ eb4@16 ~@5 g4@2 f4@5 g4@4 d4@3 ab4@5 g4@23 ~@14, ~@135 ab4@2 ~@55]/4",
  T: "~@3 c4@14 ~@7", U: "~@6 f4@29 ~@13", V: "~ eb4@5 ~@2", W: "~@3 e4@14 ~@7", X: "[~@6 a3@23 ~ bb3@148 ~@14]/4",
})).s("gm_tenor_sax").gain(0.25).pan(0.4)

// other · tenor sax · "3rd Tenor"
const tenor_sax_2 = note(`<
  A B C@3 D E@3 F@2 G@2 H@4 I J@3 K@4 ~@5 L M N@2 ~@3 O@5 P@4 ~@3 Q@2 R@6 S@6 ~ T U V W X@4
>`.pickRestart({
  A: "~@31 f4@17", B: "e4@11 e4@8 e4@4 ~ d4@7 d4@3 ~@10 d4@4",
  C: "[d4@11 ~ d4@7 d4@4 ~ db4@7 ~ db4@4 db4@7 ~ db4@11 ~ db4@4 db4@7 c4@23 ~ c4@24 db4@23 ~ db4@4 ~]/3",
  D: "d4@12 d4@7 d4@4 ~ d4@7 ~ d4@3 ~@8 d4@5",
  E: "[e4@12 f4@7 e4@3 ~@9 f4@4 f4@3 ~ f4@3 ~ e4@4 e4@7 ~ d4@4 c4@31 ~ d4@23 db4@17 ~@13]/3",
  F: "[~@6 ab3@16 ~ a3@23 ~ ab3@20 db4@29]/2", G: "[~@6 db4@17 b3@24 bb3@37 ~@12]/2",
  H: "[~@7 a3@15 ab3@23 ~ c4@19 ~ c4@9 ~@12 e4@3 ~ f4@4 f4@12 e4@12 eb4@12 d4@11 ~ b3@5 ~@3 gb3@4 g3@4 a3@3 b3@5 bb3@7 ~ bb3@17]/4",
  I: "e4@11 ~ e4@7 ~@2 e4@3 ~ e4@7 ~ e4@3 ~@8 d4@4",
  J: "[~ d4@11 ~ d4@7 ~ d4@4 db4@7 db4@3 ~@2 db4@7 db4@11 ~ db4@3 ~ db4@8 c4@22 ~ c4@23 ~ c4@17 ~@12]/3",
  K: "[~@8 gb3@16 f3@19 a3@24 ~ b3@23 ~ b3@22 ~ b3@24 a3@23 ~ a3@15 ~ a3@4 ~@9]/4",
  L: "~@7 a4@4 f4@3 ~ e4@4 c4@4 b3@8 db4@11 ~@6", M: "~@36 e4@2 ~ d4@4 ~ e4@4, ~@19 eb4 ~@4",
  N: "[d4@4 f3@4 gb3@4 g3@4 a3@3 b3@4 d4@7 f4@17 e4@26 ~@23]/2",
  O: "[~@38 bb3@25 ~ bb3@25 bb3@26 c4@51 d4@25 bb3@26 ~ ab3@22]/5", P: "[~@3 c4@51 db4@50 ~ b3@26 bb3@51 ~@10]/4",
  Q: "[~@4 a3@3 bb3@2 c4@2 b3@3 bb3@6 f4@15 e4@11 ~ e4@7 ~@2 e4@3 ~ e4@7 ~ e4@3 ~@8 d4@4 ~ d4@11 ~]/2",
  R: "[d4@7 ~ d4@4 db4@7 ~ db4@3 ~ db4@7 ~ db4@11 db4@3 ~ db4@8 ~ c4@22 c4@23 ~ c4@17 ~@20 gb3@16 f3@19 a3@24 ~ b3@23 ~ b3@22 ~ b3@24 a3@18]/6",
  S: "[~@6 a3@16 ~ a3@4 ~@8 d4@20 c4@23 d4@24 eb4@23 ~ b3@16 ~ b3@8 ~ b3@4 c4@7 ~ c4@3 ~@8 c4@22 ~ c4@8 g3@4 bb3@4 b3@4 d4@3 e4@4 ~ g4@6 e4 eb4 ~ d4@4 e4@4 bb3@4 g3@3 a3@8 ~ db4@16 ~@13]/6",
  T: "~@6 gb3@29 ~@13", U: "~@6 b3@29 ~@13", V: "~@6 c4@29 ~@13", W: "~@3 c4@14 ~@7", X: "[~@6 gb3@24 g3@149 ~@13]/4",
})).s("gm_tenor_sax").gain(0.2).pan(0.4)

// other · tenor sax · "4th Tenor"
const tenor_sax_3 = note(`<
  A@2 B@4 C@3 D@2 E@2 F@4 G H@3 I@8 ~ J K L@2 ~@3 M@4 N O@4 ~@3 P@2 Q R@8 S@4 T U V W X@4
>`.pickRestart({
  A: "[~@31 db3@16 c3@11 ~ c3@8 c3@4 ~ f3@7 ~ f3@3 ~@8 f3@4 ~]/2",
  B: "[g3@11 ~ g3@7 ~ g3@3 ~ g3@7 ~ g3@4 g3@7 ~ f3@11 f3@4 ~ f3@7 f3@24 g3@24 a3@23 ~ a3@4 f3@12 f3@7 ~ f3@4 ~ f3@7 ~ f3@2 ~@10 f3@4]/4",
  C: "[bb3@12 b3@6 ~ bb3@3 ~@9 d4@4 c4@4 bb3@3 ~ bb3@4 c4@8 g3@4 a3@7 ~ ab3@23 bb3@23 ~ bb3@18 ~@12]/3",
  D: "[~@6 f3@17 e3@23 eb3@20 a3@29 ~]/2", E: "[~@6 ab3@17 gb3@23 ~ f3@24 e3@12 ~@13]/2",
  F: "[~@7 f3@16 d3@24 g3@18 ~ gb3@9 g3@4 ab3@4 a3@4 c4@3 ~ c4@4 c4@11 ~ c4@12 a3@12 ab3@12 g3@5 ~@3 d3@4 eb3@4 f3@3 gb3@4 ~ f3@8 db3@16 ~]/4",
  G: "c3@11 ~ c3@7 ~ c3@4 ~ f3@7 ~ f3@2 ~@9 f3@3 ~",
  H: "[g3@11 ~@2 g3@7 g3@4 ~ g3@6 ~ g3@3 ~@2 g3@7 f3@10 ~ f3@4 ~ f3@7 ~ f3@23 g3@24 a3@17 ~@12]/3",
  I: "[~@7 eb3@16 ~ f3@20 eb3@23 ~ a3@23 g3@23 ~ g3@24 ~ f3@23 f3@15 ~@2 f3@4 ~@7 gb3@19 ~ e3@25 f3@23 eb3@23 ~ f3@23 c4@23 ~@2 c4@24 c4@17 ~@12]/8",
  J: "~@7 f4@4 e4@3 ~ c4@4 a3@4 ab3@8 bb3@11 ~@6", K: "~@25 e3@2 d3@9 b3@2 ~ a3@4 ~ b3@4, ~@12 f3 ~@6 bb3 ~@4",
  L: "[bb3@4 db3@3 ~ d3@4 eb3@4 f3@3 gb3@4 bb3@8 bb3@16 a3@26 ~@23]/2",
  M: "[~@38 f3@25 ~ g3@25 ab3@26 a3@25 ab3@26 bb3@25 ~]/4", N: "gb3@25 f3@23",
  O: "[~@3 a3@25 ab3@26 a3@25 ~ ab3@25 gb3@25 ~ f3@25 g3@26 ~@10]/4",
  P: "[~@5 gb3@2 g3@2 a3@2 ~ gb3@2 f3@6 db3@15 c3@11 ~ c3@7 ~@2 c3@4 f3@7 ~ f3@2 ~@9 f3@3 ~ g3@11 ~@2]/2",
  Q: "g3@7 ~ g3@4 g3@6 ~ g3@3 ~@2 g3@7 f3@10 ~ f3@4 ~@2",
  R: "[f3@7 ~ f3@23 g3@23 a3@17 ~@19 eb3@16 ~ f3@20 eb3@23 ~ a3@23 ~ g3@23 g3@24 ~ f3@23 f3@16 ~ f3@4 ~@8 gb3@20 g3@22 ab3@25 ~ a3@23 f3@17 ~]/8",
  S: "[f3@7 ~ f3@4 g3@7 ~ g3@3 ~@7 g3@22 ~@2 g3@8 d3@4 f3@4 gb3@4 a3@3 b3@4 ~ d4@6 b3 bb3 ~ a3@4 b3@4 f3@4 d3@3 f3@8 ~ g3@16 ~@6 d4@2 c4@4 d4@4 a3@3 eb4@4 ~ d4@24 ~@13, ~@68 eb4 ~@27]/4",
  T: "~@6 a2@29 ~@13", U: "~@6 d3@29 ~@13", V: "~ g3@5 ~@2", W: "~@3 g3@14 ~@7", X: "[~@3 d3@12 d3@74 ~@7]/4",
})).s("gm_tenor_sax").gain(0.25).pan(0.4)

// other · baritone sax · "Bari Sax"
const baritone_sax = note(`<
  A B C@3 D E@3 F G H@2 I@4 J K@3 L@8 ~ M N@2 O ~@3 P@5 Q@4 ~@3 R@2 S@6 T@7 U V W X Y@4
>`.pickRestart({
  A: "~@30 gb3@17 ~", B: "f3@11 f3@7 ~ f3@4 ~ bb3@7 bb3@3 ~@10 bb3@4",
  C: "[e3@10 ~ e3@7 ~ e3@5 a3@6 ~ a3@4 ~ a3@8 d3@10 ~@2 d3@11 d3@24 ab3@24 g3@23 ~@2 g3@4]/3",
  D: "g3@12 g3@6 ~@2 g3@3 ~ g3@7 g3@2 ~@11 g3@4",
  E: "[c4@11 ~ db4@7 c4@2 ~@10 eb4@3 ~ d4@3 ~ g3@3 c4@4 f3@8 eb3@5 d3@7 ~ db3@23 c4@23 ~ b3@17 ~@13]/3",
  F: "~@6 bb3@17 ~ gb3@24", G: "f3@18 ~ f4@28 ~", H: "[~@6 bb3@16 ab3@25 g3@23 ~ c3@13 ~@12]/2",
  I: "[~@7 b3@16 e3@23 ~ a3@19 d3@9 ~ g4@3 ab4@4 a4@4 f4@3 ~ d4@4 db4@12 ~ gb3@11 b3@13 e3@11 a3@5 ~@3 db4@4 d4@4 bb3@4 ab3@4 g3@7 ~ gb3@17]/4",
  J: "f3@11 ~ f3@7 ~ f3@4 ~ bb3@7 ~ bb3@3 ~@8 bb3@4",
  K: "[e3@11 ~ e3@6 ~@2 e3@4 ~ a3@6 ~ a3@4 ~ a3@7 d3@10 ~@2 d3@3 ~ d3@7 ~ d3@23 ab3@23 ~ g3@17 ~@12]/3",
  L: "[~@7 ab3@16 ~ db3@20 gb3@22 b3@24 ~ e3@24 a3@24 ~ f3@22 ~ bb3@16 ~ bb3@4 ~@7 a3@19 ~ e3@25 f3@23 gb3@24 g3@23 ~ ab3@23 a3@25 ab3@17 ~@12]/8",
  M: "~@7 e5@4 c5@3 ~ a4@4 f4@4 e4@8 a3@11 ~@6",
  N: "[~@23 f4@2 e4@2 d4@8 ~ gb4@2 ~ e4@4 gb4@4 g4@4 ~ c4@4 db4@4 d4@3 bb3@3 ~ ab3@4 g3@7 gb3@18, ~@19 f4 ~@28]/2",
  O: "f3@13 ~@11",
  P: "[~@39 g3@25 c4@24 ~ c4@23 bb3 ~ f3@26 db4@26 c4@25 b3@26 bb3@23, ~@113 ab3@2 ~@125, ~@114 g3 ~@125]/5",
  Q: "[~@3 gb3@26 f3@25 b3@25 ~ bb3@25 ab3@26 g3@26 c4@25 ~@10]/4",
  R: "[~@4 d4@2 eb4@2 ~ bb3@2 ab3@3 g3@6 gb3@15 f3@11 ~ f3@7 ~ f3@4 ~ bb3@7 ~ bb3@3 ~@8 bb3@5 e3@11 ~]/2",
  S: "[e3@6 ~ e3@4 ~ a3@6 ~ a3@4 ~ a3@7 ~ d3@10 ~ d3@3 ~ d3@7 ~ d3@23 ab3@23 ~ g3@17 ~@20 ab3@16 db3@20 gb3@22 ~ b3@24 e3@24 ~ a3@24 f3@17]/6",
  T: "[~@6 bb3@17 bb3@3 ~@9 a3@20 e3@23 f3@24 gb3@24 ~ g3@16 g3@7 ~ g3@4 ~ a3@7 ~ a3@3 ~@8 a3@22 ~ a3@8 a3@4 c4@4 db4@4 e4@3 gb4@4 ~ ab4@6 gb4 f4 ~ e4@4 gb4@4 c4@4 a3@3 bb3@8 ~ a3@16 ~@6 d4@2 c4@4 d4@4 a3@3 eb4@4 d4@24 ~@14, ~@140 eb4 ~@27]/7",
  U: "~@6 d3@29 ~@13", V: "~@6 g3@29 ~@13", W: "~@6 ab3@29 ~@13", X: "~@3 a3@14 ~@7", Y: "[~@6 d3@24 eb3@149 ~@13]/4",
})).s("gm_baritone_sax").gain(0.25).pan(0.4)

// other · trumpet · "Trumpet 1"
const trumpet = note(`<
  A B C@3 D E@3 ~@7 A F G@3 ~@6 H@2 ~ I ~@12 J@3 ~@3 K@2 L M@2 ~@3 N O@2 P@2 ~@3 Q@3 ~@4
>`.pickRestart({
  A: "~@31 c5@17", B: "a4@11 a4@7 ~@2 a4@3 a4@7 ~ a4@3 ~@10 a4@4",
  C: "[a4@11 ~ a4@7 a4@4 a4@8 ~ a4@4 a4@7 ~ a4@11 f4@4 ~ f4@7 f4@65 ~@7 f4@4 ~]/3",
  D: "a4@11 a4@7 ~ a4@4 ~ a4@7 ~ a4@3 ~@9 a4@4",
  E: "[c5@11 ~ a4@7 a4@3 ~@9 a4@4 a4@3 ~ a4@3 ~ a4@4 a4@7 ~ f4@4 f4@7 ~ f4@64 ~@13]/3",
  F: "a4@11 ~ a4@8 ~ a4@3 ~ a4@7 ~ a4@3 ~@8 a4@4",
  G: "[~ a4@11 a4@7 ~ a4@4 a4@7 ~ a4@4 ~ a4@8 a4@11 f4@4 ~ f4@7 ~ f4@63 ~@12]/3", H: "[~@19 d6@64 ~@13]/2",
  I: "~@7 e5@4 c5@3 ~ a4@4 f4@4 e4@8 g4@11 ~@6", J: "[~@31 bb4@25 ~@2 bb4@25 c5@25 ~ c5@25 ~@10]/3",
  K: "[~@20 c5@15 a4@11 ~ a4@8 ~ a4@3 ~ a4@7 ~ a4@3 ~@8 a4@4 ~ a4@11 ~]/2",
  L: "a4@7 a4@4 a4@7 ~@2 a4@4 a4@8 a4@11 f4@4 ~", M: "[f4@7 ~ f4@63 ~@25]/2", N: "~@24 a5@4 ~@7 d6@12 ~",
  O: "[d6@6 ~ d6@4 d6@7 ~@2 d6@4 ~@7 d6@4 ~@7 d5@16 ~ d5@8 ~ d5@5 ~@6 d6@16 ~]/2",
// … 197 more lines

More by Herman