Strudelify
It's Raining Again cover art

"...Famous Last Words..."

It's Raining Again

Supertramp

KeyB♭ majorTempo124 bpm
0:00/0:00
// It's Raining Again — Supertramp
// 124 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 127 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(124/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 · "A.PIANO 1"
const piano = note(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B C D E D C D F D G H G H G H ~@3 A B A
  B A B A B A B A B A B A B I J K J I J L J M H G H G H ~@11 A B A B A B A B A B A B A B A B A B A B A B A B A B A N@2
>`.pickRestart({
  A: "[f5,bb5,d6]@2 ~@2 [f5,bb5,d6]@2 ~@2 [g5,bb5,eb6]@2 ~@2 [g5,bb5,eb6]@3 ~", // Bb Eb
  B: "[bb5,c6,eb6] ~ [bb5,c6,eb6] ~ [a5,c6,eb6] ~ [a5,c6,eb6] ~", // Cm7 Adim
  C: "[f4,bb4,d5]@3 ~ [f4,bb4,d5]@3 ~ [f4,bb4,d5]@3 ~ [f4,bb4,d5]@3 ~", // Bb
  D: "[g4,bb4,eb5]@3 ~ [g4,bb4,eb5]@3 ~ [g4,bb4,eb5]@3 ~ [g4,bb4,eb5]@3 ~", // Eb
  E: "[ab4,c5,eb5]@3 ~ [ab4,c5,eb5]@3 ~ [ab4,c5,eb5]@3 ~ [ab4,c5,eb5]@2 ~@2", // Ab
  F: "[ab4,c5,eb5]@2 ~@2 [ab4,c5,eb5]@3 ~ [ab4,c5,eb5]@3 ~ [ab4,c5,eb5]@3 ~", // Ab
  G: "[g4,bb4]@3 ~ [g4,bb4]@3 ~ [g4,bb4]@3 ~ [g4,bb4]@3 ~", H: "[f4,bb4]@3 ~ [f4,a4]@3 ~ [f4,bb4]@3 ~ [f4,a4]@3 ~",
  I: "[bb4,d5]@3 ~ [bb4,d5]@3 ~ [bb4,d5]@3 ~ [bb4,d5]@3 ~", // Bb
  J: "[bb4,eb5]@3 ~ [bb4,eb5]@3 ~ [bb4,eb5]@3 ~ [bb4,eb5]@3 ~", // Eb5
  K: "[c5,eb5]@3 ~ [c5,eb5]@3 ~ [c5,eb5]@3 ~ [c5,eb5]@2 ~@2", // Cm
  L: "[c5,eb5]@2 ~@2 [c5,eb5]@3 ~ [c5,eb5]@3 ~ [c5,eb5]@3 ~", M: "bb4@3 ~ [g4,bb4]@3 ~ [g4,bb4]@3 ~ [g4,bb4]@3 ~",
  N: "[[bb5,c6,eb6] ~ [bb5,c6,eb6] ~ [a5,c6,eb6] ~ [a5,c6,eb6] [f5,bb5,d6]@9]/2", // Cm7 Adim Bb
})).s("gm_piano").gain(0.32).pan(0.7)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A@8 B@8 C@7 D@8 E@2 F@6 G@8 H I J K J L M N O@2 P@8 C@7 Q R@8 S T U T V M W X@2 Y Z@2 Y AA AB Y AC AD@4 AE@4 AF@4 AG@2
  AH@8 AI@7
>`.pickRestart({
  A: "[bb1@3 ~ d2@2 eb2@5 ~ d2@2 c2@5 ~ g2@2 f2@5 ~ a2@2 bb2@6 d2@2 eb2@6 d2@2 c2@6 g2 ~ f2@6 a2@2 bb2@6 d2@2 eb2@5 ~ d2@2 c2@6 g2@2 f2@6 a2 ~ bb2@5 ~ d2@2 eb2@6 d2@2 c2@5 ~ g2 ~ f2@5 ~ a2@2 bb2@2]/8",
  B: "[~@4 d2@2 eb2@5 ~ d2@2 c2@5 ~ g2@2 f2@5 ~ a2@2 bb2@6 d2@2 eb2@6 d2@2 c2@6 g2 ~ f2@6 a2@2 bb2@6 d2@2 eb2@5 ~ d2@2 c2@6 g2@2 f2@6 a2 ~ bb2@5 ~ d2@2 eb2@6 d2@2 c2@5 ~ g2 ~ f2@5 ~ a2@2 bb2@2]/8",
  C: "[~@4 d2@2 eb2@5 ~ d2@2 c2@5 ~ g2@2 f2@5 ~ a2@2 bb2@6 d2@2 eb2@6 d2@2 c2@6 g2 ~ f2@6 a2@2 bb2@6 d2@2 eb2@5 ~ d2@2 c2@6 g2@2 f2@6 a2 ~ bb2@5 ~ d2@2 eb2@6 d2@2 c2@2]/7",
  D: "[~@4 g2 ~ f2@5 ~ a2@2 bb2@6 d2@2 eb2@5 ~ d2@2 c2@5 ~ g2@2 f2@5 ~ a2@2 bb2@6 d2@2 eb2@6 d2@2 c2@6 g2 ~ f2@6 a2@2 bb2@6 d2@2 eb2@5 ~ d2@2 c2@6 g2@2 f2@6 a2 ~ bb2@5 ~ d2@2 eb2@6 d2@2 c2@2]/8",
  E: "[~@4 g2 ~ f2@4 f2@2 a2@2 bb2@5 ~ d2@2 eb2@5 ~ d2@2 c2@2]/2",
  F: "[~@2 c2@2 g2@2 f2@2 g2@2 f2@2 a2@2 bb2@6 d2@2 eb2@6 d2@2 c2@6 g2 ~ f2@6 a2@2 bb2@6 d2@2 eb2@5 ~ d2@2 c2@6 g2@2 f2@6 a2 ~ bb2@5 ~ d2@2 eb2@6 d2@2 c2@2]/6",
  G: "[~@4 g2 ~ f2@5 ~ a2 ~ bb2@7 ~ bb2@6 a2@2 bb2@7 ~ bb2@5 ~ a2@2 bb2@7 ~ bb2@6 a2@2 bb2@7 ~ bb2@5 ~ a2 ~ bb2@7 ~ bb2@5 ~ a2@2 bb2@7 ~ bb2@6 a2@2 bb2@7 ~ bb2@5 ~ a2@2 bb2@2]/8",
  H: "~@6 bb2@7 ~ a2@2", I: "bb2@4 ~@2 bb2@2 ~@2 bb2@3 ~ g2 ~", J: "f2@4 ~@2 f2 ~ f2@5 ~ f2 ~",
  K: "bb2@4 ~@2 bb2@3 ~ bb2@3 ~ g2@2", L: "bb2@5 ~ bb2@3 ~ bb2@2 ~@2 g2 ~", M: "f2@4 ~@2 f2 ~ f2@3 ~ eb2@3 ~",
  N: "d2@7 ~", O: "[eb2@26 ~@2 f3@3 ~]/2",
  P: "[bb1@4 d2@2 eb2@5 ~ d2@2 c2@5 ~ g2@2 f2@5 ~ a2@2 bb2@6 d2@2 eb2@6 d2@2 c2@6 g2 ~ f2@6 a2@2 bb2@6 d2@2 eb2@5 ~ d2@2 c2@6 g2@2 f2@6 a2 ~ bb2@5 ~ d2@2 eb2@6 d2@2 c2@5 ~ g2 ~ f2@5 ~ a2@2 bb2@2]/8",
  Q: "~@4 g2 ~ f2@5 ~ a2@2 bb2@2",
  R: "[~@6 bb2@6 a2@2 bb2@7 ~ bb2@5 ~ a2@2 bb2@7 ~ bb2@6 a2@2 bb2@7 ~ bb2@5 ~ a2 ~ bb2@7 ~ bb2@5 ~ a2@2 bb2@7 ~ bb2@6 a2@2 bb2@7 ~ bb2@5 ~ a2 ~ bb2@7 ~ bb2@7 ~ a2@2]/8",
  S: "bb2@4 ~@2 bb2@2 ~@2 bb2@2 g2@2 f2 ~", T: "f2@4 ~@2 f2 ~ f2@5 ~ g2 ~", U: "bb2@4 ~@2 bb2@3 ~ bb2@2 g2@2 f2 ~",
  V: "bb2@5 ~ bb2@3 ~ bb2@2 g2@2 f2 ~", W: "d2@15 ~", X: "[eb2@23 ~ g2@2 bb2@6, ~@24 gb2 ~@7]/2", Y: "d3",
  Z: "[eb3@24 f3@7 ~]/2", AA: "bb2", AB: "c3", AC: "eb3",
  AD: "[bb2@4 d2@2 eb2@5 ~ d2@2 c2@5 ~ g2@2 f2@5 ~ a2@2 bb2@6 d2@2 eb2@6 d2@2 c2@6 g2 ~ f2@2 g2@2 f2@2 f1 ~ a1@2]/4",
  AE: "[bb1@4 d2@2 eb2@5 ~ d2@2 c2@6 g2@2 f2@6 a2 ~ bb2@5 ~ d2@2 eb2@6 d2@2 c2@5 ~ g2 ~ f2@2 g2@2 f1@2 a1@2 bb1 ~]/4",
  AF: "[bb1@4 d2@2 eb2@5 ~ d2@2 c2@5 ~ g2@2 f2@5 ~ a2@2 bb2@6 d2@2 eb2@6 d2@2 c2@6 g2 ~ f2@2 g2@2 f1 ~ a1 ~ bb1 ~]/4",
  AG: "[bb1@3 ~ d2@2 eb2@5 ~ d2@2 c2@6 g2@2 f2@2 g2@2 f1@2 a1 ~ bb1 ~]/2",
  AH: "[bb1@3 ~ d2@2 eb2@6 d2@2 c2@5 ~ g2 ~ f2@6 a2 ~ bb2@5 ~ d2@2 eb2@5 ~ d2@2 c2@5 ~ g2@2 f2@5 ~ a2@2 bb2@6 d2@2 eb2@6 d2@2 c2@6 g2 ~ f2@6 a2@2 bb2@6 d2@2 eb2@5 ~ d2@2 c2@6 g2@2 f2@6 a2 ~ bb2@2]/8",
  AI: "[~@4 d2@2 eb2@6 d2@2 c2@5 ~ g2 ~ f2@5 ~ a2@2 bb2@5 ~ d2@2 eb2@5 ~ d2@2 c2@5 ~ g2@2 f2@5 ~ a2@2 bb2@6 d2@2 eb2@6 d2@2 c2@6 g2 ~ f2@6 a2@2 bb2@18]/7",
})).s("gm_fretless_bass").gain(0.44)

// chords · piano · "A.PIANO 1"
const piano_2 = note(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B C D E F C D E D G H G H G I J K@2 A B
  A B A B A B A B A B A B A B C D E F C D E D G H G H G I J K@2 J L@2 J M N O N A B A B A B A B A B A B A B A B A B A B
  A B A B A P A Q@2
>`.pickRestart({
  A: "[f4,bb4,d5] ~ [f4,bb4,d5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~", // Bb Eb
  B: "[g4,bb4,c5,eb5] ~ [g4,bb4,c5,eb5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~", // Cm7 F7
  C: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@3 ~", // Bb
  D: "[bb3,eb4,g4]@3 ~ [bb3,eb4,g4]@3 ~ [bb3,eb4,g4]@3 ~ [bb3,eb4,g4]@3 ~", // Eb
  E: "[c4,eb4,ab4]@3 ~ [c4,eb4,ab4]@3 ~ [c4,eb4,ab4]@3 ~ [c4,eb4,ab4]@3 ~", // Ab
  F: "[bb3,eb4,g4]@3 ~ [bb3,eb4,g4]@3 ~ [bb3,eb4,g4]@2 ~@2 [bb3,eb4,g4]@3 ~", // Eb
  G: "[g3,bb3,c4,eb4]@3 ~ [g3,bb3,c4,eb4]@3 ~ [g3,bb3,c4,eb4]@3 ~ [g3,bb3,c4,eb4]@3 ~", // Cm7
  H: "[f3,bb3,c4,eb4]@3 ~ [f3,a3,c4,eb4]@3 ~ [f3,bb3,c4,eb4]@3 ~ [f3,a3,c4,eb4]@3 ~", // Fsus4 F7 Fsus4 F7
  I: "[f3,bb3,c4,eb4]@3 ~ [f3,a3,c4,eb4]@3 ~ [f3,a3,c4,eb4]@3 ~ [f3,a3,c4,eb4]@3 ~", // Fsus4 F7
  J: "~@3 c5, c5 d5, ~ a4@7, ~ gb4@3, ~@3 d4@5",
  K: "[~@8 g5@7 ~, bb4@5 bb4 c5 eb5@8 ~, ~@2 bb3@13 ~, ~@3 c4@12 ~, ~@4 eb4@11 ~]/2",
  L: "[~@5 g4@2 ~ g4@7 ~, bb4@15 ~@17, ~@2 bb3@13 ~, ~@3 c4@12 ~, ~@4 eb4@3 eb4@8 ~]/2", M: "[bb3,eb4,g4,bb4]!2",
  N: "[c4,eb4,g4,bb4]!2", O: "[d4,eb4,g4,bb4]!2",
  P: "[g4,bb4,c5,eb5] ~ [g4,bb4,c5,eb5] ~ [f4,a4,c5] ~ [f4,a4,c5,eb5] ~", // Cm7 F F7
  Q: "[[g4,bb4,c5,eb5] ~ [g4,bb4,c5,eb5] ~ [f4,a4,c5,eb5] ~ [a4,c5,eb5] [f4,bb4,d5]@9]/2", // Cm7 F7 Adim Bb
})).s("gm_piano").gain(0.29).pan(0.3)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@15 A B A B A B A B C@8 D B A B A B A B E@5 F@2 G@2 H I H I H J K L M B A B A B A B N ~@7 E@5 F@2 G@2 H I H I H O P Q
  R P Q R P S@4 T@2 U ~@12 V W X W Y Z AA AB AC ~@5
>`.pickRestart({
  A: "~@2 [eb4,bb4] [d4,a4]@3 [c4,g4]@2", B: "[bb3,f4]@5 [c4,g4] ~ [d4,bb4] [g3,eb4]@8",
  C: "[~@6 c4 d4@3 d4 eb4@3 eb4 eb4@3 eb4 f4@3 ~ f4@3 f4 eb4@3 eb4 eb4@3 eb4 f4@3 f4 f4@3 f4 eb4@3 eb4 g4@3 g4 f4@3 f4 f4@3 f4 eb4@3 eb4 g4]/8",
  D: "~@2 a4 a4@3 g4@2", E: "[~ g3 bb3 c4 d4 f4 g4 bb4@7 bb4 bb4@5 ~ f4!2 f4@2 eb4!2 eb4@2 d4!2 c4@2 bb3@4 ~@3]/5",
  F: "[~@2 d4!3 eb4 f4 ~ g4@8, ~@7 bb4@9]/2", G: "[[ab4,bb4]@5 c5 g4 [g4,bb4]@9]/2",
  H: "~@2 [eb4,bb4,d5]!2 ~ [eb4,bb4,d5]!3", I: "[eb4,bb4,d5] [eb4,a4,c5] ~@2", J: "[eb4,bb4,d5] [eb4,a4,c5] ~ f4",
  K: "gb4!4", L: "g4", M: "~@3 [c4,g4]", N: "~@2 [eb4,bb4] [d4,a4]@3 ~@2", O: "[eb4,bb4,d5] [eb4,a4,c5] ~ [f4,bb4]",
  P: "[gb4,a4]!4", Q: "[eb4,g4,bb4]", R: "~ [g4,bb4]", S: "[~@3 bb4, [eb4,g4]]/4", T: "[[bb4,d5]@7 [g4,c5]]/2",
  U: "[f4,bb4] [d4,f4]@3 ~@4", V: "~@3 f5", W: "f5@2 d5 g5", X: "f5@2 d5 f5", Y: "f5@2 d5 eb5", Z: "f5!2 d5 eb5",
  AA: "f5@2 f5@2 d5@2 d5 eb5", AB: "f5@2 f5@2 d5@2 g5!2", AC: "f5@8 d5@5 ~@3",
})).s("gm_electric_guitar_jazz").gain(0.25).pan(0.4)

// other · alto sax
const alto_sax = note(`<
  A B C D@2 E F G ~@80 H I ~ J K ~ L M N O P@2 Q@2 R S T@2 U V W X Y@3 Z@3 AA@4 AB AC AD@2 AE@3
>`.pickRestart({
  A: "f5, e5 ~@15", B: "~@2 g5 ~ db5@2 c5 ~ bb4@4 c5 ~@3, ~@4 c5 ~@11", C: "bb4@4 g4 ~ d5@10, ~@6 db5 ~@9",
  D: "[~@2 db5@2 c5@2 bb4@2 g4@2 f4@2 g4@2 bb4@5 [ab4,a4] g4 ~ bb4@7 ~ g4@2]/2", E: "bb4@3 g4 bb4@2 c5@8 g4@2",
  F: "c5@6 bb4@5 ~ g4@2 bb4@2", G: "~ [bb4,c5] g4@2 d4@2 c4@2 bb3@4 f3@2 ~@2, ~@4 db4 ~@11",
  H: "~@7 d3 c3@2 d3@2 eb3@2 g3@2", I: "d4@4 eb4@2 c4@9 ~, db4 ~@15", J: "~@4 bb3@2 c4@2 d4@3 eb4@3 ~ e4, ~@7 f4",
  K: "d4@5 c4 bb3 a3 g3@5 ~@3, eb4 ~@15", L: "bb3", M: "c4", N: "d4", O: "eb4@7 ~",
  P: "[d4@2 eb4 ~ f4 ~ d4@2 c4@3 ~ bb3 ~ d4@8 c4@8 f3 ~, ~@6 db4 ~@25]/2",
  Q: "[d4@2 eb4@2 f4 ~ d4@2 c4@4 bb3 ~ d4@4 eb4@2 f4@2 g4@4 a4@2 bb4@2 c5@2, ~@6 db4 ~@25]/2",
  R: "d5@6 c5@4 bb4 ~@3 g4@2, db5 ~@15", S: "d5@6 c5@7 ~ g4@2",
  T: "[d5@6 c5@4 bb4@2 g4 ~ g5@6 f5@2 d5@2 c5@4 bb4@2 f4 ~, ~@14 gb5 ~@7 db5 ~@9]/2", U: "bb4@3 bb4@5",
  V: "~ c5 a4@2 bb4@2 c5 ~ a4@2 g4@2 f4@2 eb4@2, ~@2 bb4 ~@13", W: "d4@2 eb4@2 f4@2 f4@9 ~",
  X: "~ g4 bb4 d5@5, ~@2 gb4 ~@13", Y: "[bb4@18 a4@2 bb4@9 c5 bb4 g4@2 f4@3 g4@2 d4@2 f4@4 g4@2 ~@2]/3",
  Z: "[~@2 a4@2 bb4@2 c5@2 a4@2 bb4@2 c5@2 d5@6 ~@2 f5@12 eb5@2 d5 ~ c5@4 f4@6, ~@14 db5 ~@7 e5 ~@15 b4 ~@9]/3",
  AA: "[~@4 f4@4 f5@10 eb5@2 d5@2 c5@4 d5@2 eb5 ~ f5@7 ~ g5@13 ~ f5@2 eb5@2 d5@2 c5@2 bb4@2 a4@2, ~@8 e5 ~@29 gb5 ~@25]/4",
  AB: "g4@3 a4 f4@3 ~ f4@3 [f4,g4] d4@2 ~@2, ~@4 g4 ~@11", AC: "~@2 eb4@2 f4 ~ g4 ~ a4@3 bb4 g4@2 ~@2, ~@12 a4 ~@3",
  AD: "[d5@4 c5@2 d5 ~ bb4@3 c5 [g4,bb4] ~ bb4@4 g4 ~ db4@2 c4 ~ bb3@3 ~ g3 ~@3, ~@20 c4 ~@11]/2", // Gm
  AE: "[d5@4 c5@2 d5 ~ bb4@3 c5 [g4,bb4] ~ bb4@4 g4 ~ bb4@2 g5@4 f5@2 d5@2 bb4@18]/3", // Gm
})).s("gm_alto_sax").gain(0.5).pan(0.4)

// chords · french horn · "FR.HORN"
const french_horn = note("<~@44 A B C B ~@25 D E F E D E F E ~@46>".pickRestart({
  A: "f4", B: "g4", C: "ab4", D: "[f4,bb4]@15 ~", E: "[g4,bb4]@15 ~", F: "[ab4,c5]@15 ~",
})).s("gm_french_horn").gain(0.4).pan(0.4)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@40 A@8 ~ B ~ B ~ C D E@2 ~@16 F@4 G@4 ~ B ~ B ~ C D H@2 I J@2 I J@4 K@26 L@3
>`.pickRestart({
  A: "[[f5,d6] g5 ab5 g5, bb5, ~ eb6@3]/4", B: "~@8 bb5@4 a5@3 ~, ~@8 [c5,f5]@7 ~", C: "~ [a3,c4,f4,a4,c5,f5]",
  D: "[a3,d4,gb4,a4,d5,gb5]", E: "[[bb3,eb4,g4,c5,eb5,g5]@31 ~]/2", F: "[d6 ~ bb5@2, bb5 ~, ~ eb6@3]/4",
  G: "[d6 eb6@3, bb5]/4", H: "[eb4,g4,c5,eb5,g5]/2", I: "[a4,c5,d5,gb5,a5]", J: "[bb4,c5,eb5,g5,bb5]/2",
  K: "[f5 g5@2 [f5,a5], bb5@3 ~]/2", L: "[f5@4 g5@8 [f5,a5]@3 [d5,f5,bb5]@9, bb5 ~]/3",
})).s("gm_string_ensemble_1").gain(0.27).pan(0.6)

// chords · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B C D E D C F D@2 ~ G ~ G ~@5 A B A B A
  B A B H I J K H I J K C F D@2 C F D@2 ~ G ~ G ~@42
>`.pickRestart({
  A: "[f4,bb4] ~ [f4,bb4] ~ [f4,bb4] ~ [f4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~", // Bb5 Gm
  B: "[g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~", // C5 Am
  C: "d6@2 bb5 ~ d6@2 bb5 ~ d6@2 bb5 ~ d6@2 bb5 ~", D: "eb6@2 bb5 ~ eb6@2 bb5 ~ eb6@2 bb5 ~ eb6@2 bb5 ~",
  E: "eb6@2 bb5 ~ eb6 ~ bb5 ~ eb6@2 bb5 ~ eb6@2 bb5 ~", F: "eb6 ~ bb5 ~ eb6@2 bb5 ~ eb6@2 bb5 ~ eb6@2 bb5 ~",
  G: "~@8 bb5@4 a5@3 ~, ~ f5", H: "d6 ~ f5 ~ c6@2 f5 ~ bb5@2 f5 ~ bb5@2 f5 ~",
  I: "d6@2 f5@2 c6 ~ f5@2 bb5 ~ g5 ~ f5@2 g5 ~", J: "d6@2 f5@2 c6@2 f5 ~ bb5 ~ f5 ~ bb5@2 g5 ~",
  K: "bb5 ~ bb5 ~ c6 ~ f5@2 bb5@2 f5@2 g5 ~ bb5 ~",
})).s("gm_synth_brass_1").gain(0.19)

// bass · baritone sax · "BARITONSAX"
const bass_2 = note("<~@64 A B@2 C@2 D E F@2 ~@54>".pickRestart({
  A: "~@10 f2@5 g2", B: "[bb2@3 ~ d2@2 eb2@5 ~ d2@2 c2@6 g2@2 f2@8 f2@2, a2 ~@31]/2",
  C: "[bb1@3 ~@3 d2@2 eb2@4 d2@2 c2@6 g2@2 f2@2 g2@2 f2@2 a2@2 ~@2]/2", D: "bb2@3 ~@3 d2@2 eb2@5 ~@3",
  E: "~@2 g3@2 f3 d3 c3 bb2", F: "[~@6 d2 ~ eb2@3 ~ d2@2 c2@6 ~@12]/2",
})).s("gm_baritone_sax").gain(0.29).pan(0.9)

// other · glockenspiel · "GLOCKENSPL"
const glockenspiel = note("<~@55 [~@2 bb4 ~ c5 ~ eb5 ~ g5 ~ bb5 ~ c6 ~ eb6 ~] [g6 ~@15] ~@70>")
  .s("gm_glockenspiel").gain(0.3).pan(0.4)

// other · harmonica
const harmonica = note("<~@64 A B C D E F G H I ~@54>".pickRestart({
  A: "~@10 f4@5 [d5,eb5]", B: "f5@9 e5 [d5,eb5] ~@3 [c5,db5] bb4, e5 ~@15", C: "g4@7 ~@3 [bb4,c5] g4 f4@2 g4@2",
  D: "~@2 bb4@2 c5@2 db5@2 d5@2 f5@2 ~@2 g5 d5", E: "f5@4 ~ f5 g5@2",
  F: "bb5 ~ bb5@2 c6@2 db6@2 d6@2 bb5 ~ bb5@2 g5@2, ~@12 c6 ~@3", G: "bb5 ~ c6@2 db6@2 d6 ~@3 f5@2 d5@2 eb5 ~",
  H: "f5@4 d5 ~ g5@2 f5@3 ~ d5 ~ eb5@2", I: "f5 ~ f5@2 d5 ~ g5@2 f5@3 ~ d5@2 ~@2",
})).s("gm_harmonica").gain(0.49).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  A@19 B A@19 C@5 D C@2 E F G F G F A E ~@2 A@15 D C@4 D C@2 E F G F G F A E ~@10 A@28 ~
>`.pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "x ~@2 x ~@3 x", C: "x ~@6 x", D: "~@7 x", E: "x", F: "x ~@2 x ~ x ~ x", G: "x ~@2 x!2 ~@3",
})).gain(0.44)

// drums · snare
const snare = s("sd").struct(`<
  A@5 B A@33 C B@8 A@5 B ~@2 D A@7 B A@7 C B@8 A@5 B ~@10 E A@3 B A@3 F A@7 B A@7 F A@3 F ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!2 ~", C: "x ~@2 x", D: "~@3 x", E: "~@14 x!2", F: "~ x!2 ~@2 x!2 ~",
})).gain(0.49)

// drums · low tom
const low_tom = s("lt").struct("<~@23 [~@5 x ~@2] ~@15 [~@2 x!4 ~@2] ~@32 [~@2 x!6] ~@54>").gain(0.27)

// drums · hihat
const hihat = s("hh").struct(`<
  A B@2 C D B D B D B D B D B D B D B D B D B D B E B D B D B D B D B D B D B D ~@9 A B@4 C ~@3 E B D B D B D F D B D B
  D B D ~@9 A B@4 C ~@11 E B D G D B D F D B D B D B D F D B D G D B D F D B D B ~
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "x ~ x ~ x ~ x!2", D: "x!3 ~ x ~ x ~", E: "~ x!2 ~ x ~ x ~", F: "x!3 ~", G: "x ~ x ~ x!3 ~",
})).gain(0.38)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  A B@2 C D B D E D B D E D B D E D B D B D B D B D B D B D B D B D B D B D B D ~@9 D B@4 E ~@3 D B D E D B D E D B D B
  D B D ~@9 D B@4 E ~@11 D B D F D B D E D B D E D B D E D B D F D B D E D B D E ~
>`.pickRestart({
  A: "~ x ~@3 x ~ x", B: "~ x ~ x ~ x ~ x", C: "~ x ~ x ~@4", D: "~@3 x ~ x ~ x", E: "~ x ~ x ~ x ~@2",
  F: "~ x ~ x ~@3 x",
})).gain(0.22)
// … 23 more lines

More by Supertramp