Strudelify

Then the Morning Comes

Smash Mouth

KeyC minorTempo118 bpm
0:00/0:00
// Then the Morning Comes — Smash Mouth
// 118 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 89 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 30.
setcpm(118/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.

// other · muted trumpet · "Then The"
const muted_trumpet = note("<A@2 ~@87>".pickRestart({
  A: "[~@11 bb4 f4 bb4 f4@4 ~@14]/2",
})).s("gm_muted_trumpet").gain(0.25)

// bass · fretless bass · "Morning Comes"
const bass = note(`<
  ~@2 A@2 B@8 C@8 D@5 E F G H I J K L@2 M N O@2 P Q P@2 R S R T U V W X Y Z@2 AA@2 AB AC AD AE AD AF AG AH AI@8 AJ AK AL
  AM AN AO@2 AP@4 AQ@5 AR ~
>`.pickRestart({
  A: "c2@5 ~@2 c2 g1 ~ bb1 ~@3 bb1@2",
  B: "[c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@5 bb1@4 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@2 g1@4 bb1@4 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@10 ~@4 c2@2 g1@2 ~ bb1@2 ~@6 bb1@4 c2@14 eb2@4 ~@2 f2@2 ~@2 g2@2 f2@2 eb2@2 c2@2 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@2]/8",
  C: "[~@11 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@2 g1@4 bb1@4 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@3 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@2 g1@4 bb1@4 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@5 bb1@4 c2@5]/8",
  D: "[~@9 c2@2 g1@2 ~@2 bb1@2 ~@2 g1@4 bb1@2 ~@2 g1@10 ~@2 g1@2 g1@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 bb1@2 ~@2 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@10 ~@3 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@4 ~@2]/5",
  E: "~@11 d2@2 eb2@3", F: "~@3 g1@2 ab1@2 c2@2 ~@2 bb1@5", G: "~@9 bb1@2 ~@2 bb1@4 c2@4 d2@4 eb2@4 d2@3",
  H: "~ eb2@4 g1@4 ab1@4 c2@4 ~@4 bb1@11", I: "~@9 bb1@2 ~@2 bb1@4 c2@4 eb2@11",
  J: "~ eb2@4 ~@4 ab1@2 ~@2 c2@4 ~@3 bb1@12", K: "~@2 c2!2 eb2 bb1 c2@2", L: "~@3 c2 g1 ~ bb1 ~@3 bb1@2 c2@4",
  M: "~@6 c2@2 g1@2 ~ bb1@2 ~@6 bb1@4 c2@9", N: "~@5 c2@2 g1@2 ~@2 bb1@2 ~@10 c2@9",
  O: "~@5 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@9", P: "~@2 c2 g1 ~ bb1 ~@3 bb1@2 c2@5",
  Q: "~@2 c2 g1 ~ bb1 ~ g1@2 bb1@2 c2@5", R: "~@3 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@10 ~",
  S: "~@3 c2@2 g1@2 ~@2 bb1@2 ~@2 g1@4 bb1@4 c2@10 ~", T: "~@3 c2@2 g1@2 ~@2 bb1@2 ~@5 bb1@4 c2@10 ~@2",
  U: "~ c2 g1 ~ bb1 ~ g1@2 bb1 ~ g1@5 ~", V: "g1!3 ~ g1 ~ g1 ~ bb1 ~ c2@5 ~", W: "~ c2 g1 ~ bb1 ~@3 bb1@2 c2@5 ~",
  X: "~@3 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@10 ~@3, ~ c2 ~@14", Y: "~ c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@4 ~@9",
  Z: "[~@15 d2@4 eb2@8 ~@4 g1@4 ab1@4 c2@4 ~@4 bb1@12 ~@5]/2",
  AA: "[~ bb1 ~ bb1@2 c2@2 d2@2 eb2@2 d2@2 eb2@2 g1@2 ab1@2 c2@2 ~@2 bb1@6 ~@3]/2",
  AB: "~ bb1 ~ bb1@2 c2@2 eb2@6 eb2@2 ~", AC: "~@2 ab1@2 ~@2 c2@4 ~@4 bb1@12 ~@3 c2@3",
  AD: "~ c2@4 db2@4 c2@4 d2@4 c2@12 c2@3", AE: "~ c2@4 c2@10 ~@2 f1@14 ~", AF: "~ c2@3 c2@10 ~@2 f1@14 ~@2",
  AG: "c2 db2 c2 d2 c2@3 c2", AH: "c2@2 c2@4 c2@2 f1@7 ~",
  AI: "[c2@12 c3@4 a2@6 ~@5 a2@2 ~@2 d3@4 d3@2 ~@6 c3@4 a2@6 ~@6 a2@2 ~@2 d3@4 d3@2 ~@6 c3@4 a2@6 ~@6 a2@2 ~@2 d3@4 d3@2 ~@6 c3@4 a2@6 ~@6 a2@2 ~@2 d3@4 d3@2 ~@6 d3@4 c2@6 ~@5 ab2@2 ~@2 f2@4 f2@2 ~@6 eb2@4 c2@6 ~@6 ab2@2 ~@2 f2@4 f2@2 ~@6 c2@4 c2@6 ~@6 ab2@2 ~@2 f2@4 f2@2 ~@6 eb2@4 c2@6 ~@6 ab2@2 ~@2 f2@2]/8",
  AJ: "~@2 f2@2 ~@5 c2@4 c2@6 ~@6 ab2@2 ~@2 f2@3", AK: "~ f2@2 ~@6 eb2@4 c2@6 ~@6 ab2@2 ~@2 f2@3",
  AL: "~ f2@2 ~@6 c2@4 c2@6 ~@6 ab2@2 ~@2 f2@3", AM: "~ f2@2 ~@6 eb2@4 c2@6 ~@6 ab2@2 ~ f2@4",
  AN: "f2 ~@3 c2@2 c2@5 ~@2 c2 g1 ~", AO: "bb1 ~@3 bb1@2 c2@5 ~@2 c2 g1 ~",
  AP: "[bb1@2 ~@2 g1@4 bb1@2 ~@2 g1@10 ~ g1@2 g1@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 bb1@2 ~@2 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@10 ~@4 c2@2 g1@2 ~@2 bb1@2 ~@6 bb1@4 c2@10 ~@4 c2@2 g1@2 ~@2 bb1]/4",
  AQ: "[~@7 bb1@3 eb2@8 ~@4 g1@4 ab1@4 c2@4 ~@4 bb1@12 ~@8 bb1@2 ~@2 bb1@4 c2@4 d2@4 eb2@4 d2@4 eb2@4 g1@4 ab1@4 c2@4 ~@4 bb1@12 ~@8 bb1@2 ~@2 bb1@3 c2@4 eb2@12 eb2@4 ~@4 ab1@2 ~@2 c2@3]/5",
  AR: "~@5 bb1@20 ~@7",
})).s("gm_fretless_bass").gain(0.4)

// chords · distortion guitar
const distortion_guitar = note("<~@2 A@8 ~@15 B@7 C@2 D@2 ~@15 E@3 F@2 G ~@10 H@3 ~ I@2 J ~@8 K@6 ~>".pickRestart({
  A: "[~@8 c4@4 c4@4 eb4@4 f4@4 ~@4 gb4@18 f4@6 eb4@4 c4@4 bb3@12 c4@4 c4@4 eb4@4 f4@4 ~@3 gb4@18 f4@6 eb4@4 c4@4 bb3@12 c4@4 c4@4 eb4@4 f4@4 ~@4 gb4@18 f4@6 eb4@4 c4@4 bb3@12 c4@4 c4@4 eb4@3 bb4@8 a4@36 ~@2]/8",
  B: "[~@26 [eb4,g4,bb4]@16 [eb4,ab4,c5]@12 [d4,f4,bb4]@15 [eb4,ab4,c5]@20 [eb4,g4,bb4]@16 [eb4,ab4,c5]@12 [d4,f4,bb4]@16 [eb4,ab4,c5]@20 [eb4,g4,bb4]@16 [eb4,ab4,c5]@11 [d4,f4,bb4]@16 [eb4,ab4,c5]@18 ~@10]/7", // Eb Ab Bb Ab Eb Ab Bb Ab …
  C: "[c4@2 c4@2 eb4@2 f4@2 ~@2 gb4@9 f4@3 eb4@2 c4@2 bb3@6]/2", D: "[c4@4 c4@4 eb4@3 bb4@8 a4@28 ~@17]/2",
  E: "[~@19 [eb4,g4,bb4]@16 [eb4,ab4,c5]@12 [d4,f4,bb4]@15 [eb4,ab4,c5]@20 [eb4,g4,bb4]@14]/3", // Eb Ab Bb Ab Eb
  F: "[~ [eb4,ab4,c5]@6 [d4,f4,bb4]@8 [eb4,ab4,c5]@10 [eb4,g4,bb4]@7]/2", G: "~ [eb4,ab4,c5]@6 [d4,f4,bb4]@8 ~",
  H: "[~@11 bb4@2 bb4 ~ bb4@4 a4@2 a4 ~ a4@4 g4@4 g4@2 g4@2 f4@2 g4 ~@10]/3",
  I: "[~@21 bb4@4 bb4@2 ~@2 bb4@8 a4@4 a4@2 ~@2 a4@8 g4@8 g4@3]/2", J: "~ g4@4 f4@4 g4@2 ~@21",
  K: "[~@10 [eb4,g4,bb4]@16 [eb4,ab4,c5]@12 [d4,f4,bb4]@16 [eb4,ab4,c5]@20 [eb4,g4,bb4]@16 [eb4,ab4,c5]@12 [d4,f4,bb4]@16 [eb4,ab4,c5]@19 [eb4,g4,bb4]@16 [eb4,ab4,c5]@12 [d4,f4,bb4]@16 ~@11]/6", // Eb Ab Bb Ab Eb Ab Bb Ab …
})).s("gm_distortion_guitar").gain(0.2).pan(0.2)

// chords · distortion guitar
const distortion_guitar_2 = note("<~@84 [~@9 gb0@4 ~@3] ~@4>").s("gm_distortion_guitar").gain(0.2).pan(0.8)

// other · vibraphone
const vibraphone = note("<~@2 A@8 ~@8 B@2 C@2 ~@10 D@2 E@2 ~@6 F G H I J ~@20 K@3 ~ L@2 M ~ N O N P ~@10>".pickRestart({
  A: "[~@8 c5@4 c5@4 eb5@4 f5@4 ~@4 gb5@18 f5@6 eb5@4 c5@4 bb4@12 c5@4 c5@4 eb5@4 f5@4 ~@3 gb5@18 f5@6 eb5@4 c5@4 bb4@12 c5@4 c5@4 eb5@4 f5@4 ~@4 gb5@18 f5@6 eb5@4 c5@4 bb4@12 c5@4 c5@4 eb5@3 bb5@8 a5@36 ~@2]/8",
  B: "[~@2 c4@2 c4@2 eb4@2 f4@2 ~@2 g4@7 ~@13]/2", C: "[~@3 c4@4 c4@4 eb4@4 f4@4 ~@4 d4@16 ~@25]/2",
  D: "[c5@2 c5@2 eb5@2 f5@2 ~@2 gb5@9 f5@3 eb5@2 c5@2 bb4@6]/2", E: "[c5@4 c5@4 eb5@3 bb5@8 a5@36 ~@9]/2",
  F: "~@13 g4@2 ~@17", G: "~@13 bb3@2 ~@14 c4@3", H: "~ c4@4 eb4@4 f4@4 ~@4 g4@14 ~", I: "~@7 c4",
  J: "c4 eb4 f4 ~ d4@4",
  K: "[~@11 [bb4,bb5]@2 [bb4,bb5] ~ [bb4,bb5]@4 [a4,a5]@2 [a4,a5] ~ [a4,a5]@4 [g4,g5]@4 [g4,g5]@2 [g4,g5]@2 [f4,f5]@2 [g4,g5] ~@10]/3", // Bb A G F G
  L: "[~@21 [bb4,bb5]@4 [bb4,bb5]@2 ~@2 [bb4,bb5]@8 [a4,a5]@4 [a4,a5]@2 ~@2 [a4,a5]@8 [g4,g5]@8 [g4,g5]@3]/2", // Bb A G
  M: "~ [g4,g5]@4 [f4,f5]@4 [g4,g5]@2 ~@21", N: "~@5 c4!2 eb4", O: "f4@2 ~@2 g4@7 ~@5", P: "f4 ~ d4@4 ~@2",
})).s("gm_vibraphone").gain(0.8).pan(0.6)

// other · vibraphone · soft notes
const vibraphone_soft = note("<~@39 A B C D E ~@3 F G H@2 ~@28 I J@2 K ~@6>".pickRestart({
  A: "~@11 c4 ~@4", B: "~ eb4 ~@5 g4 ~@5 bb4 ~ bb4",
  C: "~@2 bb4@2 ~@2 c5@2 ~@2 eb5@2 ~@2 g5@2 ~@2 eb5@2 ~@2 [c4,c5]@2 ~ g4@2 ~@5", D: "~ eb4@2 ~@22 g4@2 ~@5",
  E: "~ f4@2 ~@6 eb4@2 ~@21", F: "~@10 c4 ~@5", G: "eb4 ~@5 g4 ~@5 bb4 ~ bb4 ~",
  H: "[bb4@2 ~ c5@2 ~@2 eb5@2 ~@2 g5@2 ~@2 eb5@2 ~@2 [c4,c5]@2 ~@10 eb4@2 ~@10 c4@2 ~@19]/2", // C
  I: "~@11 c4@2 ~@10 eb4@2 ~@7",
  J: "[~@3 g4@2 ~@10 bb4@2 ~@2 bb4@2 ~@2 bb4@2 ~@2 c5@2 ~@2 eb5@2 ~@2 g5@2 ~@2 eb5@2 ~@2 [c4,c5]@2 ~@10 eb4@2 ~@7]/2", // C
  K: "~@3 c4@2 ~@27",
})).s("gm_vibraphone").gain(0.4).pan(0.6)

// chords · reed organ · "Alan Tyrrell"
const reed_organ = note("<~@20 A@2 ~@3 B C@2 D@2 E@2 ~@14 F G ~@3 H@6 ~@21 I@2 ~@2 J@6 ~>".pickRestart({
  A: "[~@31 [d5,g5,d6]@2 ~@2 [d5,g5,d6]@2 ~@6 [d5,g5,d6]@2 ~@2 [d5,g5,d6]@2 ~@15]/2", B: "~@13 [eb3,g3,bb3,eb4]@3",
  C: "[~@2 g4@4 eb4@4 ab4@4 c5@8 ~@8 [ab4,c5]@3 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 ~@4 [eb3,g3,bb3,eb4]@7, ~@5 [ab3,c4,eb4]@4 ~@2 bb4@4 ~@17, ~@13 [bb3,d4,f4]@14 ~@5]/2", // Ab Eb Ab Bb
  D: "[~ g4@4 eb4@4 ab4@4 c5@8 ~@8 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 ~@4 [eb3,g3,bb3,eb4]@7, ~@9 [ab3,c4,eb4]@8 ~@4 bb4@8 ~@35, ~@25 [bb3,d4,f4]@28 ~@11]/2", // Ab Eb Ab Bb
  E: "[~ g4@4 eb4@4 ab4@4 c5@7 ~@4 [bb3,d4,f4]@16 [c4,eb4,g4]@16 ~@8, ~@9 [ab3,c4,eb4]@8 ~@3 bb4@20 ~@24]/2", // Bb Cm Ab
  F: "~@12 [d5,g5,d6] ~ [d5,g5,d6] ~", G: "~@2 [d5,g5,d6] ~ [d5,g5,d6] ~@11",
  H: "[~@19 [eb3,g3,bb3,eb4]@8 g4@4 eb4@4 ab4@4 c5@8 ~@8 [ab4,c5]@3 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 ~@4 [eb3,g3,bb3,eb4]@8 g4@4 eb4@4 ab4@4 c5@8 ~@8 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 ~@4 [eb3,g3,bb3,eb4]@8 g4@4 eb4@4 ab4@4 c5@8 bb4@18, ~@35 [ab3,c4,eb4]@8 ~@4 bb4@8 ~@55 bb4@8 ~@74, ~@51 [bb3,d4,f4]@28 ~@19 [ab3,c4,eb4]@8 ~@8 [bb3,d4,f4]@28 ~@20 [ab3,c4,eb4]@8 ~@22]/6", // Eb Ab Eb Ab Eb Ab Bb Ab …
  I: "[~@16 [d5,g5,d6]@2 ~ [d5,g5,d6]@2 ~@6 [d5,g5,d6]@2 ~@2 [d5,g5,d6]@2 ~@31]/2", // G5
  J: "[~@10 [eb3,g3,bb3,eb4]@8 g4@4 eb4@4 ab4@4 c5@8 ~@8 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 ~@4 [eb3,g3,bb3,eb4]@8 g4@4 eb4@4 ab4@4 c5@8 ~@8 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@4 [ab4,c5]@3 [ab4,c5]@4 ~@4 [eb3,g3,bb3,eb4]@8 g4@4 eb4@4 ab4@4 c5@8 bb4@20 ~@7, ~@13 [ab3,c4,eb4]@4 ~@2 bb4@4 ~@28 bb4@4 ~@41, ~@42 [bb3,d4,f4]@28 ~@20 [ab3,c4,eb4]@8 ~@8 [bb3,d4,f4]@28 ~@19 [ab3,c4,eb4]@8 ~@31]/6", // Eb Ab Eb Ab Eb Ab Bb Ab …
})).s("gm_reed_organ").gain(0.28)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@2 A@3 B@3 C D ~@16 E F G F G H I@2 J@8 K@3 L M N L O P Q R S T S U V W X Y Z AA AB ~@11 AC AD@2 AE AF AG@2 AH AI AJ
  AI AK AL ~
>`.pickRestart({
  A: "~@4 [c3,g3,eb4] ~@7 [c3,g3,eb4] ~@3, ~@2 [c4,g4] ~@3 [c4,g4] ~", // Cm C5
  B: "~@7 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@7, ~@7 [c4,g4]@4 ~@12 [c4,g4]@4 ~@5", // Cm C5
  C: "~@7 [c3,g3,eb4]@2 ~@13 [c3,g3,eb4]@2 ~@8, ~@7 [c4,g4]@4 ~@11 [c4,g4]@4 ~@6", // Cm C5
  D: "~@3 [c3,g3,eb4] ~@7 [c3,g3,eb4] ~@4, ~@3 [c4,g4]@2 ~@6 [c4,g4]@2 ~@3", // Cm C5
  E: "~ [g3,bb3,g4] ~@7 [ab3,c4,ab4] ~@6, ~ [eb4,bb4]@2 ~@6 [eb4,c5]@2 ~@5", // Gm Ab Eb5 Cm
  F: "~ [f3,bb3,f4]@2 ~@14 [ab3,c4,ab4]@2 ~@13, ~ [d4,bb4]@4 ~@12 [eb4,c5]@4 ~@11", // Bb5 Ab Gm Cm
  G: "~ [g3,bb3,g4]@2 ~@14 [ab3,c4,ab4]@2 ~@13, ~ [eb4,bb4]@4 ~@12 [eb4,c5]@4 ~@11", // Gm Ab Eb5 Cm
  H: "[f3,bb3,f4] ~@7 [c3,g3,eb4] ~@7, [d4,bb4] ~@3 [c4,g4] ~@3", // Bb5 Cm Gm C5
  I: "[c3,g3,eb4] ~@7 [c3,g3,eb4] ~@7, [c4,g4] ~@3 [c4,g4] ~@3", // Cm C5
  J: "[[c3,g3,eb4]@2 ~@13 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@14 [c3,g3,c4,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@13 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@13 [c3,g3,c4,eb4,g4]@3, [c4,g4]@4 ~@11 [c4,g4]@4 ~@12 [c4,g4]@4 ~@12 g4@4 ~@12 [c4,g4]@4 ~@12 [c4,g4]@4 ~@12 [c4,g4]@4 ~@12 [c4,g4]@4 ~@12 [c4,g4]@4 ~@11 [c4,g4]@4 ~@12 [c4,g4]@4 ~@12 [c4,g4]@4 ~@12 [c4,g4]@4 ~@12 [c4,g4]@4 ~@12 [c4,g4]@4 ~@12 [c4,g4]@4 ~@14]/8", // Cm C5
  K: "~@13 [c3,g3,eb4]@2 ~@14 [c3,g3,c4,eb4,g4]@3, ~@13 [c4,g4]@4 ~@15", // Cm C5
  L: "~@6 [c3,g3,eb4] ~@7 [c3,g3,eb4] ~, ~@3 [c4,g4] ~@3 [c4,g4]", // Cm C5
  M: "~@6 [c3,g3,eb4] ~@7 [d3,g3,d4] ~, ~@3 [c4,g4] ~@3 [b3,g4]", // Cm G5 C5 Em
  N: "~@6 [d3,g3,d4] ~@7 [c3,g3,eb4] ~, ~@3 [b3,g4] ~@3 [c4,g4]", // G5 Cm Em C5
  O: "~@11 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@3, ~@11 [c4,g4]@4 ~@12 [c4,g4]@4 ~", // Cm C5
  P: "~@11 [c3,g3,eb4]@2 ~@19, ~@11 [c4,g4]@4 ~@17", Q: "~@27 [g3,bb3,g4]@2 ~@3, ~@27 [eb4,bb4]@4 ~",
  R: "~@11 [ab3,c4,ab4]@2 ~@13 [f3,bb3,f4]@2 ~@4, ~@11 [eb4,c5]@4 ~@11 [d4,bb4]@4 ~@2", // Ab Bb5 Cm Gm
  S: "~@5 [ab3,c4,ab4] ~@7 [g3,bb3,g4] ~@2, ~@5 [eb4,c5]@2 ~@6 [eb4,bb4]@2 ~", // Ab Gm Cm Eb5
  T: "~@5 [ab3,c4,ab4] ~@7 [f3,bb3,f4] ~@2, ~@5 [eb4,c5]@2 ~@6 [d4,bb4]@2 ~", // Ab Bb5 Cm Gm
  U: "~@10 [ab3,c4,ab4]@2 ~@13 [f3,bb3,f4]@2 ~@5, ~@10 [eb4,c5]@4 ~@11 [d4,bb4]@4 ~@3", // Ab Bb5 Cm Gm
  V: "~@9 [f3,bb3,d4,f4,bb4]@2 ~@14 [g3,c4,g4]@2 ~@5, ~@25 [e4,c5]@4 ~@3", // Bb C5 C
  W: "~@9 [g3,c4,g4]@2 ~@14 [c4,f4,c5]@2 ~@5, ~@9 [e4,c5]@4 ~@12 [a4,f5]@4 ~@3", // C5 F5 C Dm
  X: "~@9 [c4,f4,c5]@2 ~@14 [g3,c4,g4]@2 ~@5, ~@9 [a4,f5]@4 ~@12 [e4,c5]@4 ~@3", // F5 C5 Dm C
  Y: "~@4 [g3,c4,g4] ~@7 [c4,f4,c5] ~@3, ~@2 [e4,c5] ~@3 [a4,f5] ~", // C5 F5 C Dm
  Z: "~@4 [c4,f4,c5] ~@7 [g3,c4,g4] ~@3, ~@2 [a4,f5] ~@3 [e4,c5] ~", // F5 C5 Dm C
  AA: "~@4 [g3,c4,g4] ~@7 [f4,a4,f5]@2 ~@2, ~@4 [e4,c5]@2 ~@6 [c4,c5] ~@3", AB: "~@2 [f4,a4,f5] ~@5, ~@4 [c4,c5] ~@11",
  AC: "~@10 [c3,g3,eb4] ~@5, ~@5 [c4,g4] ~@2", AD: "~@2 [c3,g3,eb4] ~@7 [c3,g3,eb4] ~@5, ~ [c4,g4] ~@3 [c4,g4] ~@2",
  AE: "~@4 [c3,g3,eb4]@2 ~@13 [d3,g3,d4]@2 ~@11, ~@4 [c4,g4]@4 ~@11 [b3,g4]@4 ~@9", // Cm G5 C5 Em
  AF: "~@3 [d3,g3,d4]@2 ~@14 [c3,g3,eb4]@2 ~@11, ~@3 [b3,g4]@4 ~@12 [c4,g4]@4 ~@9", // G5 Cm Em C5
  AG: "~@3 [c3,g3,eb4]@2 ~@14 [c3,g3,eb4]@2 ~@11, ~@3 [c4,g4]@4 ~@12 [c4,g4]@4 ~@9", // Cm C5
  AH: "~@3 [c3,g3,eb4]@2 ~@13 [g3,bb3,g4]@2 ~@12, ~@3 [c4,g4]@4 ~@11 [eb4,bb4]@4 ~@10", // Cm Gm C5 Eb5
  AI: "~ [ab3,c4,ab4] ~@7 [f3,bb3,f4] ~@6, ~ [eb4,c5]@2 ~@6 [d4,bb4]@2 ~@5", // Ab Bb5 Cm Gm
  AJ: "~ [ab3,c4,ab4] ~@7 [g3,bb3,g4] ~@6, ~ [eb4,c5]@2 ~@6 [eb4,bb4]@2 ~@5", // Ab Gm Cm Eb5
  AK: "~ [ab3,c4,ab4]@2 ~@14 [g3,bb3,g4]@2 ~@13, ~ [eb4,c5]@4 ~@12 [eb4,bb4]@4 ~@11", // Ab Gm Cm Eb5
  AL: "~ [ab3,c4,ab4]@2 ~@14 [f3,bb3,f4]@2 ~@13, ~ [eb4,c5]@4 ~@12 [d4,bb4]@4 ~@11", // Ab Bb5 Cm Gm
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.4)

// other · tenor sax
const tenor_sax = note("<~@25 A B@2 C@2 D@2 ~@19 E@6 ~@12 F@2 G ~ H I@2 ~@6 J@4 K@2 ~>".pickRestart({
  A: "~@11 d3@2 g3@3", B: "[~@2 g3@4 g3@4 eb3@4 eb3@8 f3@15 ab3@4 ab3@4 ab3@4 ab3@4 ab3@4 g3@7]/2",
  C: "[~ g3@4 g3@4 eb3@4 eb3@8 f3@16 ab3@4 ab3@4 ab3@4 ab3@4 ab3@4 g3@7]/2",
  D: "[~ g3@4 g3@4 eb3@4 eb3@7 f3@20 c3@16 ~@8]/2",
  E: "[~@19 g3@8 g3@4 g3@4 eb3@4 eb3@8 f3@15 ab3@4 ab3@4 ab3@4 ab3@4 ab3@4 g3@8 g3@4 g3@4 eb3@4 eb3@8 f3@16 ab3@4 ab3@4 ab3@4 ab3@4 ab3@4 g3@8 g3@4 g3@4 eb3@4 eb3@8 f3@18]/6",
  F: "[~@11 c3@2 c3@2 eb3@2 f3@10 gb3@2 eb3@2 f3]/2", G: "~@2 f3@2 ~@2 f3@3 eb3@4 c3@10 ~@9", H: "~@21 c3@4 c3@4 eb3@3",
  I: "[~ bb3@8 a3@46 ~@9]/2",
  J: "[~@5 g3@4 g3@2 g3@2 eb3@2 eb3@4 f3@8 ab3@2 ab3@2 ab3@2 ab3@2 ab3@2 g3@4 g3@2 g3@2 eb3@2 eb3@4 f3@8 ab3@2 ab3@2 ab3]/4",
  K: "[~ ab3@4 ab3@4 g3@8 g3@4 g3@4 eb3@4 eb3@8 f3@20 ~@7]/2",
})).s("gm_tenor_sax").gain(0.48).pan(0.6)

// chords · piano
const piano = note("<~@57 A B C D E F G ~@25>".pickRestart({
  A: "~@17 [e3,g3,c4,e4,g4]@2 ~@2 [e3,g3,c4,e4,g4]@2 ~@2 [e3,g3,c4,e4,g4]@2 ~@2 [e3,g3,c4,e4,g4]@2 ~", // C
  B: "~ [e3,g3,c4,e4,g4]@2 ~@2 [e3,g3,c4,e4,g4]@2 ~@2 [e3,g3,c4,e4,g4]@2 ~@2 [e3,g3,c4,e4,g4]@2 ~@2 [f3,a3,c4,f4,a4]@2 ~@2 [f3,a3,c4,f4,a4]@2 ~@2 [f3,a3,c4,f4,a4]@2 ~@2 [f3,a3,c4,f4,a4]@2 ~", // C F
  C: "~ [f3,a3,c4,f4,a4]@2 ~@2 [f3,a3,c4,f4,a4]@2 ~@2 [f3,a3,c4,f4,a4]@2 ~@2 [f3,a3,c4,f4,a4]@2 ~@2 [e3,g3,c4,e4,g4]@2 ~@2 [e3,g3,c4,e4,g4]@2 ~@2 [e3,g3,c4,e4,g4]@2 ~@2 [e3,g3,c4,e4,g4]@2 ~", // F C
  D: "~ [e3,g3,c4,e4,g4]@2 ~ [e3,g3,c4,e4,g4]@2 ~@2 [e3,g3,c4,e4,g4]@2 ~@2 [e3,g3,c4,e4,g4]@2 ~@2 [f3,a3,c4,f4,a4]@2 ~@2 [f3,a3,c4,f4,a4]@2 ~@2 [f3,a3,c4,f4,a4]@2 ~@2 [f3,a3,c4,f4,a4]@2 ~@2", // C F
  E: "[f3,a3,c4,f4,a4] ~ [f3,a3,c4,f4,a4] ~ [f3,a3,c4,f4,a4] ~ [f3,a3,c4,f4,a4] ~ [e3,g3,c4,e4,g4] ~ [e3,g3,c4,e4,g4] ~ [e3,g3,c4,e4,g4] ~ [e3,g3,c4,e4,g4] ~", // F C
  F: "[e3,g3,c4,e4,g4] ~ [e3,g3,c4,e4,g4] ~ [e3,g3,c4,e4,g4] ~ [e3,g3,c4,e4,g4] ~ [f3,a3,c4,f4,a4] ~ [f3,a3,c4,f4,a4] ~ [f3,a3,c4,f4,a4] ~ [f3,a3,c4,f4,a4] ~", // C F
  G: "[f3,a3,c4,f4,a4] ~ [f3,a3,c4,f4,a4] ~ [f3,a3,c4,f4,a4] ~ [f3,a3,c4,f4,a4] ~@9", // F
})).s("gm_piano").gain(0.4)

// other · orchestra hit
const orchestra_hit = note("<~@63 A@8 B@5 ~@13>".pickRestart({
  A: "[~@16 a2@8 e3@3 c3@4 d3@8 ~@8 a2@8 e3@4 c3@4 d3@8 ~@8 a2@8 e3@4 c3@4 d3@8 ~@8 a2@8 e3@4 c3@4 d3@8 ~@8 c3@7 g3@4 eb3@4 f3@8 ~@8 c3@8 g3@4 eb3@4 f3@8 ~@8 c3@8 g3@4 eb3@4 f3@8 ~@8 c3@8 g3@4 eb3@4 f3@2]/8",
  B: "[~@13 c3@8 g3@4 eb3@4 f3@8 ~@8 c3@8 g3@4 eb3@4 f3@8 ~@8 c3@8 g3@4 eb3@4 f3@8 ~@8 c3@8 g3@4 eb3@3 f3@8 ~@8 [c3,c4]@8 ~@12]/5", // C
})).s("gm_orchestra_hit").gain(0.5).pan(0.4)

// other · string ensemble 1
const string_ensemble_1 = note("<~@63 A@8 B@3 C D ~@13>".pickRestart({
  A: "[~@16 a3@4 ~@4 e4@3 c4@4 d4@4 ~@12 a3@4 ~@4 e4@4 c4@4 d4@4 ~@12 a3@4 ~@4 e4@4 c4@4 d4@4 ~@12 a3@4 ~@4 e4@4 c4@4 d4@4 ~@12 c4@4 ~@3 g4@4 eb4@4 f4@4 ~@12 c4@4 ~@4 g4@4 eb4@4 f4@4 ~@12 c4@4 ~@4 g4@4 eb4@4 f4@4 ~@12 c4@4 ~@4 g4@4 eb4@4 f4@2]/8",
  B: "~@13 c4@4 ~@4 g4@4 eb4@4 f4@3", C: "~@13 c4@4 ~@4 g4@4 eb4@3 f4@4", D: "~@3 [c4,c5] ~@4",
})).s("gm_string_ensemble_1").gain(0.5).pan(0.7)

// other · pan flute
const pan_flute = note(`<
  ~@19 A@2 ~@4 B C D E F G ~@13 H I ~@4 J@2 K@4 L M N@2 O P Q R ~@12 S T ~@3 U@2 V@3 W@2 ~
>`.pickRestart({
  A: "[~@4 c4@2 ~@2 c4@4 eb4@4 f4@6 ~ c4@12 ~@29]/2", B: "~@3 g4@2 ab4@2 g4@2 ab4@7", C: "~@15 c5",
  D: "~ c5@4 c5@4 c5@4 c5@4 c5@4 bb4@10 ~", E: "~ g4@4 g4@4 g4@4 eb4@6 ~@2 eb4@10 ~",
  F: "~@5 c5@4 c5@4 c5@4 c5@4 c5@4 bb4@7", G: "~ g4@8 g4@4 g4@6 ~ f4@12", H: "~@29 c4@2 ~",
  I: "~ c4@4 eb4@4 f4@6 ~ c4@12 ~@4", J: "[~@31 g4@4 ab4@4 g4@4 ab4@16 ~@5]/2",
  K: "[~@23 c5@3 c5@4 c5@4 c5@4 c5@4 c5@4 bb4@10 ~@2 g4@4 g4@4 g4@4 eb4@6 ~@2 eb4@10 ~@6 c5@4 c5@4 c5@4 c5@4 c5@4 bb4@8 g4@6]/4",
  L: "~ g4@2 g4@3 ~ f4@7 ~@2", M: "~@17 [e4,g4]@15",
  N: "[~ [e4,g4]@16 [f4,a4]@10 ~@2 [f4,a4]@8 [f4,a4]@4 [f4,a4]@4 [f4,a4]@4 [e4,g4]@8 [e4,g4]@6 ~]/2", // Em F Em
  O: "~ [e4,g4]@3 [e4,g4]@4 ~@4 [f4,a4]@8 ~@12", P: "~@4 [f4,a4]@2 [f4,a4]@2 [e4,g4]@3 ~ [e4,g4]@4",
  Q: "[e4,g4]@2 [e4,g4]@3 ~ [f4,a4]@5 ~@3 b3@2", R: "c4@2 d4@2 c4@2 b3@2 c4@4 a3@3 ~", S: "~@10 c4 ~ c4@2 eb4@2",
  T: "f4@3 ~ c4@6 ~@6", U: "[~@23 g4@4 ab4@4 g4@4 ab4@16 ~@13]/2",
  V: "[~@7 c5@2 c5@2 c5@2 c5@2 c5@2 c5@2 bb4@5 ~ g4@2 g4@2 g4@2 eb4@3 ~ eb4@5 ~@3 c5@2 c5@2 c5]/3",
  W: "[~ c5@4 c5@4 bb4@8 g4@8 g4@4 g4@6 ~@2 f4@14 ~@13]/2",
})).s("gm_pan_flute").gain(0.22).pan(0.4)

// bass · synth bass 1 · Cm
const bass_2 = note("<~@35 [~@19 [c-1,g-1,c0,eb0]@8 ~@5] ~@53>").s("gm_synth_bass_1").gain(0.8)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A@2 B C@3 D E@3 F@3 G H@3 I J@3 K@2 L K M@3 N O@3 P Q@3 R@4 S@3 T U@3 V W X W Y@3 Z AA@3 AB AC@2 AD AE@3 AF AG@3
  AH AI@2 AJ AK AL@2 AM AN@3 AO@4 AP AQ ~
// … 102 more lines

More by Smash Mouth