Strudelify
L'ultima Luna cover art

1987 · Lucio Dalla

L'ultima Luna

Dalla

KeyC majorTempo120 bpm
0:00/0:00
// L'ultima Luna — Dalla
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 175 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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, A@4 for four bars: edit a riff to change every repeat.

// bass · lead 2 sawtooth
const bass = note("<A@8 ~@167>".pickRestart({
  A: "[c1,c2]/8", // C
})).s("gm_lead_2_sawtooth").gain(0.35)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~ A@7 B@8 C@4 ~@68 D@4 E@8 ~ F@6 G@3 E@8 ~ H@6 I ~@7 J@8 ~ K@2 E@8 ~ L@2 M@4 N@8 O@7 ~
>`.pickRestart({
  A: "[~@2 [g3,e4]@23 [g#3,d#4]@38 ~ g3@160, ~ c4@111, ~@9 e4@23]/7", B: "[~@30 [g3,c4,e4]@225 ~]/8",
  C: "[g3@13 ~ a3@16 g3@15 ~ [f3,a3]@16 ~@2, [c4,e4]@123 ~@5, ~@14 f3@15 ~@35]/4", // F C
  D: "[g3@28 a3@32 g3@32 a3@35 ~, [c4,e4]@59 ~@5]/4", E: "[g3@28 a3@33 g3@31 a3@32 g3@32 a3@35 g3@63 a3@2, [c4,e4]]/8",
  F: "[~@31 g3@63 ~ a3@63 g3@32 a3@2]/6", G: "[~@28 g3@32 a3@35 ~]/3", H: "[~@31 g3@63 ~ a3@63 g3@33 ~]/6",
  I: "[a3,c4,e4] ~@7", J: "[~@31 a3@64 g3@63 ~ a3@64 g3@32 a3, ~@31 [c4,e4]@225]/8", K: "[g3@31 a3@31 ~@2]/2",
  L: "[~@31 g3@33]/2", M: "[~@31 a3@63 g3@34]/4", N: "[~@31 a3@64 g3@63 ~ a3@64 g3@29 a3@4, ~@31 [c4,e4]@225]/8",
  O: "[~@28 g3@32 a3@33 g3@31 a3@35 g3@29 a3@33 g3@3]/7",
})).s("gm_synth_strings_1").gain(0.17).pan(0.7)

// chords · piano
const piano = note(`<
  ~ A@8 B@4 C@3 D@6 E F@3 G@6 H@5 I@5 J@6 K@6 L@6 J@6 K@6 M@6 J@6 K@6 N@5 O@7 P@7 Q@4 O@7 R@5 S@4 O@7 P@7 Q@4 O@7 T@8
  U@5 V@7 ~
>`.pickRestart({
  A: "[[g3,c4,e4]@27 ~ [g#3,c4,d#4]@7 ~ [g3,c4,d4]@26 ~@2, [c2,c3]@61 ~@3]/2", // C G# Gsus4 C
  B: "[[g3,c4,e4]@27 ~@2 [f#3,a3,d4]@30 ~@2 [f3,g#3,d4]@31 ~ [g3,c4,e4]@23 ~ [g2,g3]@3 [a2,a3]@2 [c3,c4]@3 ~@3, c3@29 ~@3, c2@7 ~]/4", // C D Ddim C G A C
  C: "[[g3,c4,e4]@26 ~@3 [f#3,c4,d#4]@30 ~@2 [f3,g#3,d4]@19 [f3,g#3,d#4]@7 ~ [f3,g#3,d4]@6 ~@2, [c2,c3]@47 ~]/3", // C Cdim Ddim Fm7 Ddim C
  D: "[[g3,e4]@7 ~ [g3,e4]@6 ~@2 [g3,e4]@6 ~ [g3,c4,e4]@4 ~ [a3,e4]@9 ~@2 [a3,e4]@6 ~@2 [a3,c4,e4]@7 ~ [a3,c4,e4]@4 ~ [g3,c4,e4]@9 ~@2 [g3,c4,e4]@7 ~ [g3,c4,e4]@7 ~ [g3,c4,e4]@4 ~ [a3,e4]@9 ~@2 [a3,e4]@6 ~@2 [a3,c4,e4]@6 ~@2 [a3,e4]@5 [g3,e4]@9 ~@2 [g3,c4,e4]@7 ~ [g3,c4,e4]@7 ~ [g3,c4,e4]@4 ~ [a3,c4,e4]@10 ~ [a3,c4,e4]@7 ~ [a3,c4,e4]@7 ~ [a3,c4,e4]@4 ~ [g3,c4,e4]@4, [c2,c3]@125 ~@67, c4@22 ~@6 c4@18 ~@46 c4@18 ~@9 c4@15 ~@58]/6", // C A5 Am C A5 Am A5 C …
  E: "~@7 e4@7 ~ [g3,e4]@6 ~@2 [g3,c4,e4]@4 ~ [a3,c4,e4]@4, ~@7 c4@15 ~@10", // C Am
  F: "[~@7 [a3,e4]@6 ~@2 [a3,e4]@7 ~ [a3,c4,e4]@4 ~ [g3,e4]@9 ~@2 [g3,e4]@7 ~ [g3,e4]@6 ~@2 [g3,c4,e4]@4 ~ a3@8 ~@3 a3@6 ~@2 a3@6 ~@2 [a3,c4,e4]@4 ~ [g3,c4,e4]@4, ~@14 c4@13 ~@3 [c4,e4]@13 ~@5]/3", // A5 Am C Am C
  G: "[~@7 [g3,e4]@7 ~ [g3,e4]@6 ~@2 [g3,c4,e4]@4 ~ [g3,e4]@9 ~@2 [g3,e4]@6 ~@2 [g3,e4]@7 ~@2 [g3,e4]@3 ~ [f3,e4]@9 ~@2 [f3,e4]@6 ~@2 e4@6 ~@2 [f3,e4]@3 ~@2 [f3,e4]@9 ~@2 [f3,e4]@6 ~@2 [a3,c4,e4]@8 [f3,a3,e4]@3 ~@2 [g3,e4]@9 ~@2 [g3,e4]@6 ~@2 [g3,e4]@6 ~@2 [g3,e4]@3 ~@2 a#3@10 ~@9 g3@6 ~@2 [g3,a#3,c4,e4]@4 ~ [f3,a3,c4,e4]@4, ~@28 [a#3,c4]@18 ~ [a#3,c4]@12 ~ [a3,c4]@31 ~ [a3,c4]@18 ~ f3@5 ~@8 c4@31 ~ [c4,e4]@26 ~@10, ~@39 g3@4 ~@5, ~@167 a#3@15 ~@10]/6", // C Fmaj7 Am Fmaj7 C C7 Fmaj7 A#sus2 …
  H: "[~@7 [f3,e4]@6 ~@2 [f3,e4]@6 ~@2 [f3,e4]@3 ~@2 [f3,a3,e4]@10 ~ [f3,e4]@6 ~@2 [f3,e4]@6 ~@2 [f3,e4]@3 ~@2 [g3,e4]@10 ~ [g3,e4]@6 ~@2 [g3,e4]@6 ~@2 [g3,c4,e4]@4 ~ [a3,e4]@9 ~@2 [a3,e4]@6 ~@2 [a3,e4]@7 ~ [a3,c4,e4]@4 ~ [g3,e4]@9 ~@2 [g3,e4]@6 ~@2 [g3,e4]@6 ~@2 [g3,c4,e4]@4 ~ [a3,c4,e4]@4, ~@7 a3@20 ~ c4@31 ~ c4@26 ~@6 c4@26 ~@6 c4@26 ~@10, ~@39 a3@20 ~@101]/5", // Fmaj7 C A5 Am C Am
  I: "[~@7 [a3,c4,e4]@7 ~ [a3,c4,e4]@7 ~ [f3,a3,c4,e4]@2 ~@4 [g3,c4,e4]@25 ~ [g3,c4,e4]@4 ~@2 [f3,a3,c4,e4]@18 [f3,a3,c4,e4]@7 ~ [f3,a3,c4,e4]@3 ~@3 [g3,e4]@9 ~ [g3,e4]@14 ~@2 [g3,c4,e4]@4 ~@2 [f3,e4]@17 ~ e4@6 ~@2 [f3,e4]@3 ~@3 [g3,c4,e4]@3, ~@93 c4@26 ~@6 [a3,c4]@31 ~@4]/5", // Am Fmaj7 C Fmaj7 C Fmaj7 C Am
  J: "[~@7 [g3,e4]@14 ~@2 [g3,c4,e4]@4 ~@2 [f3,a3,c4,e4]@30 ~@2 g3@9 ~ g3@5 ~@3 [g3,e4]@6 ~@2 [g3,c4,e4]@4 ~@2 [g3,a#3,e4]@26 [g3,a#3,e4]@4 ~@2 [f3,e4]@26 [f3,e4]@4 ~@2 f3@9 ~ f3@6 ~@2 [f3,e4]@6 ~@2 [a3,c4,e4]@4 ~@2 [g3,c4,e4]@3, ~@61 c4@26 ~@6 c4@31 ~ [a3,c4]@31 ~ [a3,c4]@26 f3@2 ~@7, ~@61 e4@17 ~@79 e4@17 ~@18]/6", // C Fmaj7 C Edim Fmaj7 Am C Am
  K: "[~@7 [g3,e4]@14 ~@2 [g3,c4,e4]@4 ~@2 g3@8 ~@2 g3@5 ~@3 g3@6 ~@2 [g3,e4]@3 ~@3 f3@9 ~ f3@14 ~@2 [f3,e4]@3 ~@3 [f3,e4]@9 ~ [f3,e4]@6 ~@2 [f3,e4]@6 ~@2 [f3,a3,c4,e4]@4 ~@2 e4@9 ~ e4@14 ~@2 [g3,e4]@3 ~@3 [f3,e4]@9 ~ [f3,e4]@6 ~@2 [f3,e4]@6 ~@2 [f3,a3,c4,e4]@4 ~@2 [g3,c4,e4]@3, ~@29 [a#3,c4]@30 ~@2 [a3,c4]@31 ~ [a3,c4]@25 ~@7 c4@31 ~@36, ~@29 e4@24 ~@8 e4@25 ~@39 g3@25 ~@7 [a3,c4]@26 ~@9]/6", // C Fmaj7 C Fmaj7 C A#sus2 Am
  L: "[~@7 [g3,c4]@7 ~ [g3,c4,e4]@7 ~ [g3,c4,e4]@4 ~@2 [f3,e4]@9 ~ [f3,e4]@7 ~ [f3,e4]@6 ~@2 [f3,e4]@4 ~ g3@10 ~@2 g3@7 [g3,c4,e4]@7 ~ [g3,c4,e4]@4 ~@2 [f3,a3,c4,e4]@18 [f3,a3,c4,e4]@7 ~ [f3,a3,c4,e4]@3 ~@3 [g3,e4]@9 ~ [g3,e4]@14 ~@2 [g3,c4,e4]@4 ~@2 [f3,e4]@17 ~ e4@6 ~@2 [f3,e4]@3 ~@3 [g3,c4,e4]@3, ~@29 a3@31 ~@97 [a3,c4]@31 ~@4, ~@29 c4@18 c4@12 ~ [c4,e4]@19 ~@46 c4@26 ~@41]/6", // C5 C Fmaj7 C Fmaj7 C Fmaj7 C …
  M: "[~@7 [g3,c4]@7 ~ [g3,c4,e4]@7 ~ [g3,c4,e4]@4 ~@2 [f3,e4]@9 ~ [f3,e4]@7 ~ [f3,e4]@6 ~@2 [f3,e4]@4 ~ [g3,c4,e4]@23 ~@4 [g3,c4,e4]@4 ~@2 [f3,a3,c4,e4]@18 [f3,a3,c4,e4]@7 ~ [f3,a3,c4,e4]@3 ~@3 [g3,e4]@9 ~ [g3,e4]@14 ~@2 [g3,c4,e4]@4 ~@2 [f3,e4]@17 ~ e4@6 ~@2 [f3,e4]@3 ~@3 [g3,c4,e4]@3, ~@29 a3@31 ~@97 [a3,c4]@31 ~@4, ~@29 c4@18 c4@12 ~@66 c4@26 ~@41]/6", // C5 C Fmaj7 C Fmaj7 C Fmaj7 C …
  N: "[~@7 [g3,c4]@7 ~ [g3,c4,e4]@7 ~ [g3,c4,e4]@4 ~@2 [f3,e4]@9 ~ [f3,e4]@7 ~ [f3,e4]@6 ~@2 [f3,e4]@4 ~@4 [g3,c4,e4]@24 ~ [g3,c4,e4]@3 ~@2 [a3,c4,e4]@27 [a3,c4,e4]@4 ~ c4@26 [g3,c4,e4]@4 ~@2 [a3,c4,e4]@3, ~@29 a3@31 ~@65 g3@8 ~@27, ~@29 c4@18 c4@12 ~@66 e4@18 ~@17]/5", // C5 C Fmaj7 C Am C Am
  O: "[~@7 e4@8 ~@8 [a3,c4,e4]@4 ~@2 [g3,e4]@10 e4@8 ~@8 [g3,c4,e4]@4 ~@2 c4@26 [a3,c4,e4]@4 ~ [g3,c4]@11 ~@16 [g3,c4,e4]@4 ~@2 [a#3,e4]@26 ~@6 e4@26 e4@5 ~ a3@10 a3@8 [c4,e4]@8 [a3,c4,e4]@4 ~ [g3,c4,e4]@4, ~@29 c4@19 ~@13 e4@19 ~@12 e4@27 ~@6 g3@10 ~@22 a3@9 ~@41 a3@5 ~@12, ~@61 a3@10 ~@54 c4@32 c4@31 ~ [c4,e4]@18 ~@17]/7", // Am C Am C5 C A#dim C Am …
  P: "[~@7 [g3,e4]@8 [g3,c4,e4]@8 ~ [g3,c4,e4]@4 ~ [g3,a#3,e4]@26 ~@6 [a3,e4]@19 ~@7 [a3,c4,e4]@5 ~ a3@10 a3@8 [a3,c4,e4]@8 [a3,c4,e4]@3 ~@3 [g3,e4]@10 [g3,e4]@8 ~@8 [g3,c4,e4]@4 ~ [a3,e4]@11 [a3,e4]@8 [a3,c4,e4]@8 [a3,c4,e4]@4 ~@2 [g3,e4]@10 e4@8 [c4,e4]@8 [g3,c4,e4]@4 ~@2 [a3,c4,e4]@3, ~@29 c4@31 ~ c4@26 ~@6 [c4,e4]@18 ~@14 c4@26 ~@5 c4@19 ~@14 c4@18 ~@17]/7", // C Edim A5 Am C A5 Am C …
  Q: "[~@7 [a3,c4,e4]@8 [c4,e4]@8 [a3,c4,e4]@4 ~@4 [g3,c4,e4]@24 ~ [g3,c4,e4]@3 ~@2 [a3,c4,e4]@27 [a3,c4,e4]@4 ~ c4@26 [g3,c4,e4]@4 ~@2 [a3,c4,e4]@3, ~@93 e4@18 ~@17, ~@93 g3@8 ~@27]/4", // Am C Am C Am C Am
  R: "[~@7 [g3,e4]@8 [g3,c4,e4]@8 ~ [g3,c4,e4]@4 ~ [g3,a#3,e4]@26 ~@6 [a3,e4]@19 ~@7 [a3,c4,e4]@5 ~ a3@10 a3@8 [a3,c4,e4]@8 [a3,c4,e4]@3 ~@3 [g3,e4]@10 [g3,e4]@8 ~@8 [g3,c4,e4]@8 [a3,c4,e4], ~@29 c4@31 ~ c4@26 ~@6 [c4,e4]@18 ~@14 c4@26 ~@9]/5", // C Edim A5 Am C Am C
  S: "[~@31 [g3,c4,e4]@24 ~ [g3,c4,e4]@3 ~@2 [a3,c4,e4]@27 [a3,c4,e4]@4 ~ c4@26 [g3,c4,e4]@4 ~@2 [a3,c4,e4]@3, ~@93 e4@18 ~@17, ~@93 g3@10 ~@25]/4", // C Am C Am
  T: "[~@7 [g3,e4]@8 [g3,c4,e4]@8 ~ [g3,c4,e4]@4 ~ [g3,a#3,e4]@26 ~@6 [a3,e4]@19 ~@7 [a3,c4,e4]@5 ~ a3@10 a3@8 [a3,c4,e4]@8 [a3,c4,e4]@3 ~@2 [g3,c4,e4]@11 [g3,c4,e4]@8 [g3,c4,e4]@8 [g3,c4,e4]@4 ~ [a#3,c4,e4]@11 [a#3,c4,e4]@8 [g3,a#3,c4,e4]@8 [g3,a#3,c4,e4]@4 ~ [a3,c4,e4]@11 [a3,c4,e4]@8 [a3,c4,e4]@8 [a3,c4,e4]@4 ~ [a3,c4,e4]@10 ~ [a3,c4,e4]@5 ~@3 [a3,c4,e4]@6 ~@2 [c4,e4]@4 ~@2 [g3,c4,e4]@3, ~@29 c4@31 ~ c4@26 ~@6 [c4,e4]@18 ~@45 g3@19 ~@72 a3@2 ~@7]/8", // C Edim A5 Am C C7 Am C
  U: "[~@7 [g3,c4,e4]@6 ~@2 [g3,c4,e4]@6 ~@2 [g3,c4,e4]@4 ~@2 [g3,a#3,c4,e4]@9 ~ [g3,a#3,c4,e4]@6 ~@2 [g3,a#3,c4,e4]@6 ~@2 [g3,a#3,c4,e4]@4 ~@2 [a3,c4,e4]@9 ~ [a3,c4,e4]@7 ~ [a3,c4,e4]@7 ~ [c4,e4]@3 ~@3 [a3,c4,e4]@9 ~ [a3,c4,e4]@5 ~@3 [a3,c4,e4]@6 ~@2 [c4,e4]@4 ~@2 [g3,c4,e4]@9 ~ [g3,c4,e4]@6 ~@2 [g3,c4,e4]@6 ~@2 [c4,e4]@3 ~@2 [a3,c4,e4]@4, ~@119 a3@2 ~@39]/5", // C C7 Am C Am C Am
  V: "[~@7 [a3,e4]@7 ~@9 [a3,c4,e4]@4 ~ [g3,e4]@10 ~ e4@7 ~@9 [g3,c4,e4]@4 ~@2 [a3,e4]@9 ~ e4@14 ~@2 [a3,e4]@4 ~@2 [g3,e4]@9 ~ e4@14 ~@2 [c4,e4]@4 ~ [a3,c4,e4]@10 ~ [a3,e4]@6 ~@10 [a3,c4,e4]@4 ~@2 [g3,e4]@9 ~@2 [g3,e4]@7 ~@8 [g3,e4]@3 ~@2 [c4,e4]@9 ~@2 [a3,e4]@7 ~ [a3,e4]@6 ~@2 [a3,c4,g4]@4 ~@2 [g3,c4,e4]@3, ~@7 c4@15 ~@6 c4@26 ~@7 c4@31 ~ c4@25 ~@39 c4@30 ~@12 c4@15 ~@10, ~@103 g3@6 ~@79 a3@5 ~@31]/7", // A5 Am C A5 C Am A5 Am …
})).s("gm_piano").gain(0.48).pan(0.4)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@22 A ~@5 B C ~@2 D ~@8 B ~@17 B ~@17 B ~@16 E F G H I J K L M N O ~ P ~ Q R ~@2 E F G H I J K L M N O ~ P ~@3 E F G
  H I J K L M N O ~ P ~ Q R ~@2 E F G H I J K L M N O ~@7 S ~ T U V W X Y Z ~@2
>`.pickRestart({
  A: "~@7 g3@5 ~@20", B: "~@15 f3@5 ~@12", C: "~@23 c4@3 ~@6", D: "~@7 c4@20 ~@5", E: "~@7 g3@8 [g3,e4]@8 ~@9",
  F: "~@7 a3@8 [a3,c4,e4]@8 ~@9", G: "~@7 g3@8 ~ [g3,c4,e4]@7 ~@9", H: "~@7 a3@8 ~ [a3,e4]@7 ~@9",
  I: "~@7 g3@8 g3@3 g3@5 ~@9, ~@7 c4@16 ~@9", J: "~@7 g3@8 g3@8 [g3,a#3,e4]@6 ~@3", K: "~@7 a3@8 a3@8 a3@5 ~@4",
  L: "~@20 a3@3 ~@9", M: "~@7 c4@8 ~@17", N: "~@23 [g3,a#3,e4]@4 ~@5", O: "~@16 [a3,e4]@7 ~@9", P: "~@15 [g3,e4]@8 ~@9",
  Q: "~@7 g3@8 g3@8 ~@9", R: "~@15 a3@8 ~@9", S: "~@23 a3@3 ~@6", T: "~@23 g3@2 ~@7", U: "~@15 [a3,e4]@6 ~@11",
  V: "~@7 g3@5 ~@3 [g3,e4]@6 ~@11", W: "~@7 a3@5 ~@3 a3@5 ~@12", X: "~@15 g3@4 ~@2 g3@5 ~@6",
  Y: "~@15 [a3,e4]@7 ~@10, ~@7 c4@16 ~@9", Z: "~@15 [g3,e4]@7 ~@10",
})).s("gm_piano").gain(0.24).pan(0.4)

// bass · electric bass finger
const bass_2 = note(`<
  ~@9 A B@2 C B D E B@2 E@2 B@8 F G A B F G B@12 F G A B F G B@12 F G A B F G B@12 F G A B F G B@12 F G A B F G B@12 F G
  A B F G B H B@8 F G B@2 F G B@12 F G A B F G D A I J E D I J A B D E@3 A K ~
>`.pickRestart({
  A: "c2@2 ~@3 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@2 ~@3 c2 ~@2",
  B: "c2@2 ~@3 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@3 ~@2 c2 ~@2",
  C: "c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@3 ~@2 g1@2 ~ a1@3 c2@2 a1@2 ~",
  D: "c2@2 ~@3 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2",
  E: "c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2",
  F: "f1@3 ~@2 f1 ~@2 f1@3 ~@2 f1 ~@2 e1@3 ~@2 e1 ~@2 e1@3 ~@2 e1 ~@2",
  G: "d1@2 ~@3 d1 ~@2 d1@3 ~@2 d1 ~@2 d1@3 ~@2 d1 ~@2 d1@3 ~@2 d1@2 ~", H: "c2 ~@7",
  I: "f1@2 ~@3 f1 ~@2 f1@2 ~@3 f1 ~@2 e1@2 ~@3 e1 ~@2 e1@2 ~@3 e1@2 ~",
  J: "d1@2 ~@3 d1 ~@2 d1@2 ~@3 d1 ~@2 d1@2 ~@3 d1 ~@2 d1@2 ~@3 d1 ~@2",
  K: "c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@4 ~ a1@2 ~ g1@4 ~ c2@3",
})).s("gm_electric_bass_finger").gain(0.59)

// other · overdriven guitar
const overdriven_guitar = note("<~@9 A@4 B@2 C ~@90 D@3 E@8 F@2 G@3 H@3 I ~@49>".pickRestart({
  A: "[~@29 f#5@31 ~ g#5@30 ~@2 g5@34 ~]/4", B: "[[c5,e5]@27 ~@2 [d#5,f#5]@30 ~@5]/2",
  C: "~@16 d#5@6 ~@2 d5@5 ~@3, ~@8 d5 ~@7", D: "c5/3",
  E: "[~@4 c3@5 ~@3 d3@3 ~@3 g4@2 a4@3 b4@2 c5@3 d5@2 ~ e5@7 ~ e5@8 d5@8 c5@5 f5@30 ~@2 a4@2 c5 e5@5 ~@3 e5@6 ~@2 e5@5 ~ c5 ~ a4@5 f4@19 a3@3 c4 ~ c4 ~ c4@6 ~ a3@2 e4@6 ~@2 e4@6 ~@2 e4@5 d4 c4@2 a3@5 a4@29 ~@4 c4@2 e4@5 ~@3 e4@6 ~@2 e4@4 d4@2 c4 a3@5 ~@5, ~@91 g4@2 ~@23 d5@2 ~@101 g3@2 ~@35, ~@110 a3 ~@17]/8",
  F: "[~@5 a#4 ~ a#4@3 a4@2 g4@3 f4@4 ~@2 e4@10 g4@5 f4@3 e4@5 c4@3 a3@5 d4@3 f4@5 a4@2 ~@2, ~@19 e4@2 ~@43, ~@10 f4 ~@21]/2",
  G: "[~@3 d5@9 c5@3 d5@5 c5@3 d5@3 ~ d5@10 a4@2 g4@3 e4@3 d#4@2 d4@3 c4@2 a3@3 c4@3 d4@20 c4@5 ~ a3@2 ~ c4@5 d4 ~@3]/3",
  H: "[~@4 d5@6 c5@6 a4@2 ~@2 d5@6 c5@2 a4@8 ~@3 d5@2 ~ c5@2 ~@7 d#5 d5@2 c5@2 ~@3 e5@10 ~ d5@5 c5@2 a4@2 c5@2 d5@2 ~@3 g5@3 e5@2 ~ g5@2 ~@2, ~@4 d#5@2 ~@13 d#5@2 ~@17 d#5@2 ~@43 d#5@2 ~@11, ~@21 e5 ~@2]/3",
  I: "c6@3 ~@29",
})).s("gm_overdriven_guitar").gain(0.42)

// other · overdriven guitar · soft notes
const overdriven_guitar_soft = note("<~@9 A@4 B@3 ~@159>".pickRestart({
  A: "[~@29 a5@31 ~ f5@30 ~@2 e5@34 ~]/4", B: "[g5@27 ~@2 c5@30 ~@2 [c5,d5,f5]@18 ~ g5@5 ~@3 f5@5 ~@3]/3",
})).s("gm_overdriven_guitar").gain(0.28)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@37 A@5 B@4 C@5 D@4 E@5 B@4 C@5 D@4 E@5 B@4 C@5 D@4 E@5 B@4 C@5 D@4 E@5 B@4 F@7 A@5 B@4 C@5 D@4 E@5 B@4 C@5 G@8 H@2
  I@7 ~
>`.pickRestart({
  A: "[~@31 [c4,e4]@6 g3@2 [c4,e4]@5 ~ [c4,e4]@2 [c4,e4]@5 ~ [c4,e4]@2 [g3,c4,e4]@4 ~@2 [a3,c4,e4]@8 [a3,c4]@2 [a3,c4]@6 e4@2 [c4,e4]@5 ~ [c4,e4]@2 [a3,c4,e4]@4 ~@2 [g3,c4,e4]@8 c4@2 [c4,e4]@5 ~ [c4,e4]@2 [c4,e4]@5 ~ [c4,e4]@2 [g3,c4,e4]@3 ~@3 [a3,c4,e4]@8 [c4,e4]@2 [a3,c4,e4]@6 [c4,e4]@2 [a3,c4]@5 ~ [a3,c4]@2 [a3,c4,e4]@4 ~@2 [g3,c4,e4]@3, ~@31 g3@5 ~@3 g3@6 ~@2 g3@6 ~@18 e4@5 ~@3 a3@6 ~@18 g3@6 ~@2 g3@6 ~@26 e4@6 ~@11]/5", // C Am C Am C Am C Am …
  B: "[~@4 [g3,c4]@3 [g3,c4,e4]@6 ~@2 c4@5 c4@3 [g3,c4,e4]@3 ~@3 [a3,c4,e4]@8 c4@2 [a3,c4]@5 ~ [a3,c4]@2 [a3,c4]@5 ~ [a3,c4]@2 [a3,c4,e4]@4 ~@2 [g3,c4,e4]@8 [g3,c4]@2 [g3,e4]@6 c4@2 [c4,e4]@5 ~ [c4,e4]@2 [g3,c4,e4]@4 ~@2 [g3,a#3,e4]@8 [g3,a#3]@2 [a#3,e4]@5 ~ [a#3,e4]@2 [g3,a#3,e4]@5 ~ [g3,a#3,e4]@2 [g3,a#3,e4]@4 ~@2 [a3,c4,e4]@3, ~@13 e4@10 ~@16 e4@6 ~@2 e4@6 ~@18 c4@5 ~@52, ~@15 g4@11 ~@102, ~@15 g3@8 ~@56 g3@6 ~@18 g3@6 ~@19]/4", // C5 C Am C C5 C Edim Gm …
  C: "[~@4 [a3,c4]@3 [a3,c4,e4]@5 ~ [a3,e4] ~ [c4,e4]@6 g3@2 [g3,c4,e4]@3 ~@3 a3@7 a3@3 [a3,c4,g4]@3 a3 ~ c4@2 ~ [a3,c4]@5 ~ [a3,c4,g4]@6 ~ [c4,e4]@9 g3@2 [g3,c4]@5 ~ [g3,c4]@2 [g3,c4,e4]@8 [g3,c4,e4]@4 ~@2 [g3,a#3,e4]@8 [g3,a#3]@2 [g3,a#3]@5 ~ [g3,a#3]@2 [g3,a#3]@5 ~ [g3,a#3]@2 [g3,a#3,e4]@5 ~ [a3,c4,e4]@8 a3@2 [a3,c4,e4]@6 [a3,c4]@2 [g3,c4,e4]@6 g3@3 [g3,c4,e4]@4 ~ [a3,c4,e4]@3, ~@12 c4@2 ~ g3@5 ~@9 e4@13 ~@29 e4@6 ~@26 e4@6 ~@2 e4@6 ~@43, ~@29 c4@10 ~@21 g3@8 ~@92]/5", // Am A5 C Am7 Am Am7 C C5 …
  D: "[~@5 [a3,c4,e4]@2 [c4,e4]@6 a3@2 [c4,e4]@6 a3@2 [a3,c4,e4]@4 ~@2 g3@7 g3@3 g3@5 g3@3 g3@5 g3@3 [c4,e4]@5 a3@8 a3@3 [a3,c4,e4]@8 [a3,c4,e4]@8 [a3,c4,e4]@3 ~@2 g3@8 g3@3 [g3,c4,e4]@8 [c4,e4]@6 g3@2 [g3,c4,e4]@4 ~ [a3,c4,e4]@4, ~@7 a3@5 ~@3 a3@5 ~@9 [c4,e4]@10 [c4,e4]@8 [c4,e4]@8 g3@35 ~@21 g3@5 ~@12, ~@60 [c4,e4]@11 ~@21 [c4,e4]@11 ~@25]/4", // Am C Am C Am C Am C
  E: "[~@2 a3@5 [a3,c4,e4]@6 a3@2 c4@6 a3@2 [c4,e4]@5 [c4,e4]@3 [c4,e4]@6 g3@2 [c4,e4]@5 ~ [c4,e4]@2 [c4,e4]@5 ~ [c4,e4]@2 [g3,c4,e4]@4 ~@2 [a3,c4,e4]@8 [a3,c4]@2 [a3,c4]@6 e4@2 [c4,e4]@5 ~ [c4,e4]@2 [a3,c4,e4]@4 ~@2 [g3,c4,e4]@8 c4@2 [c4,e4]@5 ~ [c4,e4]@2 [c4,e4]@5 ~ [c4,e4]@2 [g3,c4,e4]@3 ~@3 [a3,c4,e4]@8 [c4,e4]@2 [a3,c4,e4]@6 [c4,e4]@2 [a3,c4]@5 ~ [a3,c4]@2 [a3,c4,e4]@4 ~@2 [g3,c4,e4]@3, ~@13 e4@10 ~@48 e4@5 ~@67 e4@6 ~@11, ~@15 g4@16 ~@129, ~@15 a3@5 ~@3 a3@8 g3@5 ~@3 g3@6 ~@2 g3@6 ~@26 a3@6 ~@18 g3@6 ~@2 g3@6 ~@43]/5", // Am C Am C Am C Am C …
  F: "[~@4 [a3,c4]@3 [a3,c4,e4]@5 ~ [a3,e4] ~ g3@5 ~ g3@6 ~@2 a3@7 a3@3 [a3,c4,g4]@3 a3 ~ c4@2 ~ [a3,c4]@5 ~ [a3,c4,g4]@6 ~ [c4,e4]@9 g3@2 [g3,c4]@5 ~ [g3,c4]@2 [g3,c4,e4]@8 [g3,c4,e4]@4 ~@2 [g3,a#3,e4]@8 [g3,a#3]@2 [g3,a#3]@5 ~ [g3,a#3]@2 [g3,a#3]@5 ~ [g3,a#3]@2 [g3,a#3,e4]@5 ~ [a3,c4,e4]@8 a3@2 [a3,c4,e4]@6 [a3,c4]@2 [g3,c4,e4]@6 g3@3 [g3,c4,e4]@4 ~ [a3,c4,e4]@8 [a3,c4,e4]@2 [c4,e4]@6 a3@2 [c4,e4]@6 a3@2 [a3,c4,e4]@4 ~@2 g3@7 g3@3 g3@5 g3@3 g3@5 g3@3 [g3,c4,e4]@8 [a3,c4,e4], ~@12 c4@2 ~ [c4,e4]@11 ~@3 e4@13 ~@29 e4@6 ~@26 e4@6 ~@2 e4@6 ~@107, ~@29 c4@10 ~@21 g3@8 ~@99 a3@5 ~@3 a3@5 ~@9 [c4,e4]@10 [c4,e4]@8 [c4,e4]@8 ~@9]/7", // Am A5 Am7 Am Am7 C C5 C …
  G: "[~@5 [a3,c4,e4]@2 [c4,e4]@6 a3@2 a3@5 ~ a3@5 ~@2 [g3,c4,e4]@12 [g3,c4,e4]@7 [g3,c4,e4]@8 ~ e4@3 ~ [a#3,c4,e4]@11 ~ [a#3,e4]@7 [a#3,c4,e4]@8 [a#3,c4,e4]@3 ~@2 a3@7 ~ a3@3 [a3,c4,e4]@8 [a3,c4,e4]@8 [a3,c4,e4]@4 ~@2 e4@8 a3 ~ [a3,c4,e4]@5 ~@3 [a3,c4,e4]@6 ~@2 [a3,c4,e4]@4 ~@2 [g3,c4,e4]@8 g3@2 [g3,c4,e4]@8 [g3,c4,e4]@8 [g3,c4,e4]@3 ~@3 [a#3,e4]@10 [a#3,c4,e4]@8 [a#3,c4,e4]@8 [a#3,c4,e4]@3 ~@3 [a3,c4,e4]@7 [a3,c4,e4]@3 [a3,c4,e4]@6 a3@2 a3@3 a3@5 [a3,c4,e4]@4 ~@2 [a3,c4,e4]@3, ~@7 a3@5 ~@3 [c4,e4]@11 ~@29 [g3,c4]@4 ~@12 c4@8 ~@13 [c4,e4]@11 ~@21 [a3,c4]@9 ~@55 c4@11 ~@40 [c4,e4]@8 ~@9]/8", // Am C C7 A#dim C7 Am C A#dim …
  H: "[~@2 c4@3 [a3,c4,e4]@2 [a3,c4,e4]@8 [a3,c4,e4]@8 [a3,c4,e4]@3 ~@2 g3@8 g3@3 [g3,c4,e4]@8 g3@5 g3@3 [g3,c4,e4]@4 ~ [a3,c4,e4]@4, ~@28 [c4,e4]@11 ~@8 [c4,e4]@8 ~@9]/2", // Am C Am C
  I: "[~@4 [a3,c4,e4]@3 [a3,c4,e4]@6 a3@2 [a3,c4,e4]@8 [a3,c4,e4]@4 ~@2 g3@7 g3@3 [c4,e4]@6 g3@2 [g3,c4,e4]@8 [g3,c4,e4]@5 ~ a3@7 a3@3 [a3,c4,e4]@6 a3@2 a3@5 a3@3 [a3,c4,e4]@4 ~@9 g3@3 [g3,c4,e4]@8 [c4,e4]@6 g3@2 [g3,c4,e4]@4 ~ a3@6 a3@5 [a3,c4,e4]@8 [a3,c4,e4]@8 [a3,c4,e4]@4 ~ g3@8 g3@3 [g3,c4,e4]@8 [g3,c4,e4]@8 [g3,c4,e4]@4 ~@2 [a3,c4,e4]@8 e4@2 [a3,c4]@5 ~ [a3,c4]@8 [a3,c4,e4]@2 [a3,c4,e4]@5 ~ [g3,c4,e4]@3, ~@29 [c4,e4]@10 g3@5 ~@17 [c4,e4]@10 ~@8 [c4,e4]@8 ~@6 [g3,c4,e4]@10 ~@8 g3@5 ~@8 [c4,e4]@11 ~@21 [c4,e4]@11 ~@32 e4@13 ~@12, ~@205 g4@17 ~@2]/7", // Am C Am C Am C Am C
})).s("gm_acoustic_guitar_steel").gain(0.48).pan(0.7)

// chords · alto sax
const alto_sax = note(`<
  ~@70 A@5 ~ B@5 C B@5 D B@4 C B@11 D B@3 C@3 B@14 ~@15 E@5 ~ B@5 C B@5 D B@4 ~@4 F@3 G@6
>`.pickRestart({
  A: "[~@18 [g3,c4,e4]@2 ~ d4@2 [c4,e4,g4]@3 [d4,g4,a4]@2 [e4,c5]@3 [g4,c5,e5]@5 [e4,g4,c5]@3 [d4,f4,a4]@5 [c4,e4,g4]@3 ~ g3@4 ~@3 [a3,d4,f4]@5 [g3,c4,e4]@8 ~@14 [g3,c4,e4]@2 [a3,d4,f4]@2 ~ [c4,e4]@3 [d4,g4,a4]@2 [e4,c5]@3 [g4,c5,e5]@5 [g4,c5] ~@2 [d4,f4,a4]@5 [c4,e4,g4]@3 [c4,e4] g3@4 ~@2 e4 [a3,d4,f4]@5 [g3,c4,e4]@10 ~@26, ~@20 [a3,f4]@3 ~@5 a4 ~@18 [c4,e4]@4 ~@4 g3@2 ~@62 g3 ~@40, ~@55 [c4,e4] ~@30 g4@3 ~@3 a4 ~@7 e4@3 ~@16 c4@2 ~@39]/5", // C Dsus4 C Dm C Dm C Dm …
  B: "~@7 e6@3 ~@22", C: "~@8 e6@3 ~@21", D: "~@7 e6@4 ~@21",
  E: "[~@18 [g3,c4,e4]@2 ~ d4@2 [c4,e4,g4]@3 [d4,g4,a4]@2 [e4,c5]@3 [g4,e5]@5 [e4,g4]@3 [d4,f4,a4]@5 [c4,e4,g4]@3 [c4,e4] ~@7 [a3,d4,f4]@5 [g3,c4,e4]@8 ~@14 [g3,c4,e4]@2 [a3,d4,f4]@2 ~ [c4,e4]@2 [d4,g4,a4]@3 [e4,c5]@3 [g4,e5]@5 [e4,c5]@3 [d4,f4,a4]@5 [c4,e4,g4]@3 [c4,e4] g3@4 ~@2 e4 [a3,d4,f4]@5 [g3,c4,e4]@10 ~@26, ~@20 [a3,f4]@3 ~@5 a4 ~@2 c5 ~@4 c5 ~@10 g3@4 ~@4 g3@2 ~@62 c4@2 ~@39, ~@55 [c4,e4] ~@30 g4@3 ~@3 a4 ~@2 c5 ~@4 g4@2 ~@17 g3 ~@40]/5", // C Dsus4 C Em Dm C Dm C …
  F: "[~@18 [g3,c4,e4]@2 ~ d4@2 [c4,e4,g4]@3 [d4,g4,a4]@2 ~ e4@2 [g4,c5,e5]@5 [e4,g4]@3 [d4,f4,a4]@5 [c4,e4,g4]@3 [c4,e4] ~@7 [a3,d4,f4]@5 [g3,c4,e4]@8 ~@14 [g3,c4,e4]@2 [a3,d4,f4]@2 ~ [c4,e4]@2 [d4,g4,a4]@3 [e4,c5]@3 [g4,c5,e5], ~@20 [a3,f4]@3 ~@5 c5@3 ~@5 c5 ~@18 [c4,e4] ~@30 g4@3 ~@3 a4 ~@3, ~@29 a4 ~@17 g3@4 ~@4 g3@2 ~@39]/3", // C Dsus4 C Em Dm C Dm C …
  G: "[~@4 [e4,c5]@3 [d4,f4,a4]@5 [c4,e4,g4]@3 [c4,e4] g3@4 ~@2 e4 g3 d4@4 [g3,c4,e4]@10 ~@12 [g3,c4,e4]@2 ~ d4@2 [c4,e4,g4]@3 [d4,g4,a4]@2 ~@3 [g4,e5]@5 [e4,g4]@3 [d4,f4,a4]@5 [c4,e4,g4]@3 [g3,c4,e4]@4 ~@4 [a3,d4,f4]@5 [g3,c4,e4]@8 ~@14 [g3,c4,e4]@2 [a3,d4,f4]@2 ~ [c4,e4]@2 ~ [d4,g4]@2 [e4,a4,c5]@3 [g4,c5,e5]@5 [e4,g4]@3 [d4,f4,a4]@5 [c4,e4,g4]@3 [g3,c4]@4 ~@3 e4 g3 d4@4 [g3,c4,e4]@10 ~@26, ~@4 g4@2 ~@17 [a3,f4]@5 ~@24 [a3,f4]@3 ~@6 [e4,a4]@4 ~@22 [g3,c4,e4] ~@63 [a3,f4]@5 ~@36, ~@23 c4@2 ~@35 c5@3 c5 ~@4 c5 ~@49 g4@3 a4@3 ~@8 c5 ~@10 e4 ~@7 c4@2 ~@39]/6", // C Dm C Dsus4 C Em Dm C …
})).s("gm_alto_sax").gain(0.4).pan(0.4)

// other · string ensemble 2
const string_ensemble_2 = note("<~@99 A@6 B@3 ~@16 C@8 ~@43>".pickRestart({
  A: "[[a#2,a#5]@30 [a2,a5]@33 [f2,f5]@16 ~ g5@15 [c2,c5]@32 ~ a#2@30 [a2,a5]@33 [f2,f5], ~@79 g2@15 ~@33 a#5@31 ~@34]/6", // A# A F C A F
  B: "[~@15 [g2,g5]@16 ~ c5@64, ~@31 c2@64 ~]/3", C: "[~@31 c6@225]/8",
})).s("gm_string_ensemble_2").gain(0.19).pan(0.4)

// other · lead 3 calliope
const lead_3_calliope = note("<~@105 A@5 ~@65>".pickRestart({
  A: "[~@31 [c1,c2]@116 ~@13]/5", // C
})).s("gm_lead_3_calliope").gain(0.8)

// other · alto sax
const alto_sax_2 = note("<~@132 A@3 B A C A@6 ~@18 A@12 ~>".pickRestart({
  A: "~@7 e6@4 ~@21", B: "~@2 e6 ~@5", C: "~@7 e6@3 ~@22",
})).s("gm_alto_sax").gain(0.41).pan(0.7)

// other · synth bass 1
const synth_bass_1 = note("<~@144 A@8 B@6 C@8 D@8 ~>".pickRestart({
  A: "[e5@2 g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 c5@3 e5@2 g4@3 d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 ~@2 c5@2 ~ g4@2 ~ c5@2 e5@2 ~ g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@2 ~ d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 d5@2 c5@3 g4@2 ~ c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 d5@2 c5@3 g4@2 ~ c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 d5@2 c5@3 g4@2 ~ c5@2 e5@3 g4@2 ~ c5@2 e5@3 g4@2 ~ c5@2 ~@3 g4@2 ~ d5@2 c5, ~@61 d5@4 ~@182 e5@5 ~@4]/8",
  B: "[~@2 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 d5@2 c5@3 g4@2 ~ c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 d5@2 c5@3 g4@2 ~ c5@2 e5@2 ~ g4@2 ~ c5@2 e5@3 g4@3 c5@2 e5@2 ~ g4@3 d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@2 ~ d5@2 e5]/6",
  C: "[~@2 g4@2 ~ c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 d5@2 c5@3 g4@2 ~ c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 d5@2 c5@3 g4@2 ~ c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 d5@2 c5@3 g4@2 ~ c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 d5@2 e5]/8",
  D: "[~@2 g4@2 ~ c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 d5@2 c5@3 g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 d5@2 c5@3 g4@2 ~ c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 d5@2 c5@3 g4@2 ~ c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@3 d5@2 c5@3 a4@3 c5@2 e5@3 d5@3 c5@2 d5@2 ~ g5@3 c5@2 d5@2 ~ g4@2 ~ c5@3]/8",
})).s("gm_lead_8_bass_lead").gain(0.47).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~@16 A B@2 C B@89 D A B@14 E B@7 E B@9 D A B@28 F ~>".pickRestart({
  A: "x ~@7 x ~@7 x ~@6 x ~@7 x", B: "~@7 x ~@7 x ~@7 x ~@7 x", C: "~@7 x ~@7 x ~@15 x", D: "~@7 x ~@7 x ~@7 x ~@8",
  E: "~@31 x", F: "~@13 x ~@15 x ~@2",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct("<~@19 A B@35 C B@17 C B@17 C B@17 C B@14 D ~@8 E B@39 F ~>".pickRestart({
  A: "~@21 x ~ x ~@8", B: "~@7 x ~@15 x ~@8", C: "~@7 x ~@7 x ~@2 x ~@2 x ~ x ~@8", D: "~@7 x ~@15 x ~@7 x",
  E: "~@7 x ~@7 x ~@2 x ~@2 x ~@10", F: "~@7 x ~@7 x ~@5 x ~ x ~@8",
})).gain(0.72)

// drums · hihat
const hihat = s("hh").struct("<~@19 A B@35 C B@17 C B@17 C B@17 D E B@14 ~@9 B@9 F E B@28 ~@2>".pickRestart({
  A: "~@31 x", B: "~@7 x ~@7 x ~@7 x ~@7 x", C: "~@15 x ~@7 x ~@7 x", D: "~@15 x ~@7 x ~@8",
  E: "x ~@6 x ~@7 x ~@7 x ~@7 x", F: "~@15 x ~@16",
})).gain(0.56)

// drums · low tom
const low_tom = s("lt").struct("<~@133 [~@29 x ~@2] ~@41>").gain(0.64)

// drums · mid tom
const mid_tom = s("mt").struct("<~@133 [~@23 x ~@2 x ~@5] ~@41>").gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<~@143 [~@23 x ~@8] ~@29 [~@15 x ~@16] ~>").gain(0.72)

// drums · crash
const crash = s("cr").struct("<~@55 A ~@17 A ~@17 A ~@17 A ~@23 B ~@39 C ~>".pickRestart({
  A: "~@7 x ~@24", B: "~@7 x ~@23 x", C: "~@29 x ~@2",
})).gain(0.4)

stack(
  bass, synth_strings_1, piano, piano_soft, bass_2, overdriven_guitar, overdriven_guitar_soft, acoustic_guitar_steel,
  alto_sax, string_ensemble_2, lead_3_calliope, alto_sax_2, synth_bass_1, kick, snare, hihat, low_tom, mid_tom,
  open_hat, crash
)

More by Dalla