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: 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@7 G@2 E@8 ~ H@6 I ~@7 J@8 ~ K@2 E@8 ~ L@6 M@8 N@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: "[~@30 g3@65 a3@63 g3@32 a3@29 g3@5]/7", G: "[~@14 a3@17 ~]/2", H: "[~@30 g3@65 a3@63 g3@31 ~@3]/6",
  I: "[a3,c4,e4] ~@7", J: "[~@31 a3@64 g3@64 a3@64 g3@32 a3, ~@31 [c4,e4]@225]/8", K: "[g3@31 a3@31 ~@2]/2",
  L: "[~@30 g3@65 a3@63 g3@34]/6", M: "[~@31 a3@64 g3@64 a3@64 g3@29 a3@4, ~@31 [c4,e4]@225]/8",
  N: "[~@29 g3@32 a3@32 g3@32 a3@34 g3@29 a3@33 g3@3]/7",
})).s("gm_synth_strings_1").gain(0.17).pan(0.7)

// chords · piano
const piano = note(`<
  ~ A@2 B@2 C@4 D@4 E@3 F@6 G H@3 I@6 J@5 K@5 L@6 M@6 N@6 O@6 P@6 Q@6 O@6 R@6 S@5 T@7 U@7 V@4 W@7 X@5 Y@4 Z@7 U@7 AA@4
  Z@7 AB@8 AC@5 AD@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 ~ [g#3,c4,d#4]@6 ~@2 [g3,c4,d4]@27 ~, [c2,c3]@31 ~]/2", // C G# Gsus4 C
  C: "[[g3,c4,e4]@27 ~ [g#3,c4,d#4]@7 ~ [g3,c4,d4]@26 ~@2, [c2,c3]@31 ~]/2", // C G# Gsus4 C
  D: "[[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
  E: "[[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
  F: "[[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 …
  G: "~@7 e4@7 ~ [g3,e4]@6 ~@2 [g3,c4,e4]@4 ~ [a3,c4,e4]@4, ~@7 c4@15 ~@10", // C Am
  H: "[~@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
  I: "[~@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 …
  J: "[~@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]@7 ~ [a3,e4]@6 ~@2 [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
  K: "[~@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
  L: "[~@7 [g3,e4]@14 ~@2 [g3,c4,e4]@4 ~@2 [f3,a3,c4,e4]@30 ~@2 g3@10 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
  M: "[~@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]@4 ~@2 [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
  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 ~ 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 …
  O: "[~@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
  P: "[~@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
  Q: "[~@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]@4 ~@2 [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 …
  R: "[~@7 [g3,e4]@14 ~@2 [g3,c4,e4]@4 ~@2 g3@8 ~@2 g3@5 ~@3 g3@6 ~@2 [g3,e4]@3 ~@3 f3@10 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
  S: "[~@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
  T: "[~@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 …
  U: "[~@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 …
  V: "[~@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
  W: "[~@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 ~@2 [g3,c4]@10 ~@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 ~@13 e4@26 ~@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 …
  X: "[~@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
  Y: "[~@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
  Z: "[~@7 e4@8 ~@8 [a3,c4,e4]@4 ~@2 [g3,e4]@11 e4@8 ~@7 [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 …
  AA: "[~@7 [a3,c4,e4]@8 [c4,e4]@8 [a3,c4,e4]@4 ~@4 [g3,c4,e4]@24 [g3,c4,e4]@4 ~@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
  AB: "[~@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
  AC: "[~@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]@6 ~@2 [a3,c4,e4]@6 ~@2 [a3,c4,e4]@3 ~@3 [g3,c4,e4]@9 ~ [g3,c4,e4]@6 ~@2 [g3,c4,e4]@6 ~@2 [c4,e4]@3 ~@2 [a3,c4,e4]@4]/5", // C C7 Am C Am C Am
  AD: "[~@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 E ~@17 E ~@17 E ~@16 F G H I J K L M N O P ~ Q ~ R S ~@2 F G H I J K L M N O P ~ Q ~@3 F G T
  I J K L M N O P ~ Q ~ R S ~@2 F G T I J K L M N O P ~@7 U ~ V W X Y Z AA AB ~@2
>`.pickRestart({
  A: "~@7 g3@5 ~@20", B: "~@15 f3@6 ~@11", C: "~@23 c4@3 ~@6", D: "~@7 c4@20 ~@5", E: "~@15 f3@5 ~@12",
  F: "~@7 g3@8 [g3,e4]@8 ~@9", G: "~@7 a3@8 [a3,c4,e4]@8 ~@9", H: "~@7 g3@8 ~ [g3,c4,e4]@7 ~@9",
  I: "~@7 a3@8 ~ [a3,e4]@7 ~@9", J: "~@7 g3@8 g3@3 g3@5 ~@9, ~@7 c4@16 ~@9", K: "~@7 g3@8 g3@8 [g3,a#3,e4]@6 ~@3",
  L: "~@7 a3@8 a3@8 a3@5 ~@4", M: "~@20 a3@3 ~@9", N: "~@7 c4@8 ~@17", O: "~@23 [g3,a#3,e4]@4 ~@5",
  P: "~@16 [a3,e4]@7 ~@9", Q: "~@15 [g3,e4]@8 ~@9", R: "~@7 g3@8 g3@8 ~@9", S: "~@15 a3@8 ~@9",
  T: "~@8 g3@8 [g3,c4,e4]@7 ~@9", U: "~@23 a3@3 ~@6", V: "~@23 g3@2 ~@7", W: "~@15 [a3,e4]@6 ~@11",
  X: "~@7 g3@5 ~@3 [g3,e4]@6 ~@11", Y: "~@7 a3@5 ~@3 a3@5 ~@12", Z: "~@15 g3@4 ~@2 g3@5 ~@6",
  AA: "~@15 [a3,e4]@7 ~@10, ~@7 c4@16 ~@9", AB: "~@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 C D E F G H I G J C F K H@2 A C L M N O@2 P Q G R F A H F K H@2 A C L M N O@2 P S G R F A H F K H@2 A O L M N
  O@2 P S G R F A H F K H B A C L M N O@2 P Q F R F A H F K H B A O L T N O@2 P S G R F L H F K H B A O L M N O@2 P Q F
  U H F K H@2 A C L M N O@2 P Q G R F A H F K H@2 A O L T N O@2 P S G@2 V W G@2 V W G B G@3 E@2 X ~
>`.pickRestart({
  A: "c2@3 ~@2 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@2 ~@3 c2 ~@2",
  B: "c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@3 ~@2 c2 ~@2",
  C: "c2@2 ~@3 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@3 ~@2 c2 ~@2",
  D: "c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@3 ~@2 g1@2 ~ a1@3 c2@2 a1@2 ~",
  E: "c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@2 ~@3 c2 ~@2",
  F: "c2@2 ~@3 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2",
  G: "c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2",
  H: "c2@2 ~@3 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@3 ~@2 c2 ~@2",
  I: "c2@3 ~@2 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2",
  J: "c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2@2 ~",
  K: "c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@3 ~@2 c2 ~@2",
  L: "c2@3 ~@2 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@3 ~@2 c2 ~@2",
  M: "f1@2 ~@3 f1 ~@2 f1@3 ~@2 f1@2 ~ e1@3 ~@2 e1 ~@2 e1@3 ~@2 e1 ~@2",
  N: "d1@2 ~@3 d1 ~@2 d1@3 ~@2 d1 ~@2 d1@3 ~@2 d1 ~@2 d1@3 ~@2 d1@2 ~",
  O: "c2@2 ~@3 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@3 ~@2 c2 ~@2 c2@2 ~@3 c2 ~@2",
  P: "f1@3 ~@2 f1 ~@2 f1@3 ~@2 f1 ~@2 e1@3 ~@2 e1 ~@2 e1@3 ~@2 e1 ~@2",
  Q: "d1@3 ~@2 d1 ~@2 d1@3 ~@2 d1 ~@2 d1@3 ~@2 d1 ~@2 d1@3 ~@2 d1 ~@2",
  R: "c2@3 ~@2 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@2 ~@3 c2 ~@2 c2@3 ~@2 c2 ~@2",
  S: "d1@3 ~@2 d1 ~@2 d1@3 ~@2 d1 ~@2 d1@2 ~@3 d1 ~@2 d1@3 ~@2 d1 ~@2",
  T: "f1@3 ~@2 f1 ~@2 f1@3 ~@2 f1@2 ~ e1@3 ~@2 e1 ~@2 e1@3 ~@2 e1 ~@2", U: "c2 ~@7",
  V: "f1@2 ~@3 f1 ~@2 f1@2 ~@3 f1 ~@2 e1@2 ~@3 e1 ~@2 e1@2 ~@3 e1@2 ~",
  W: "d1@2 ~@3 d1 ~@2 d1@2 ~@3 d1 ~@2 d1@2 ~@3 d1 ~@2 d1@2 ~@3 d1 ~@2",
  X: "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@8 F@6 D@4 G@5 H@4 C@5 D@4 G@5 I@4 J@5 D@4 G@5 K@7 L@4 M@8 N@6 D@4 G@5 O@4 J@5 P@8 Q@2 R@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 [c4,e4]@5 ~ [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 ~@18 a3@6 ~@2 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]@6 [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]@8 [g3,c4]@2 [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]@3, ~@13 e4@10 ~@48 e4@5 ~@67 e4@6 ~@24 e4@10 ~@16 e4@6 ~@2 e4@6 ~@18 c4@5 ~@20, ~@15 g4@16 ~@144 g4@11 ~@70, ~@15 a3@5 ~@3 a3@8 g3@5 ~@3 g3@6 ~@2 g3@6 ~@26 a3@6 ~@18 g3@6 ~@2 g3@6 ~@58 g3@8 ~@56 g3@6 ~@11]/8", // Am C Am C Am C Am C …
  F: "[~@4 [g3,a#3]@3 [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]@7 [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]@6 [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, ~@7 g3@6 ~@16 e4@10 ~@5 c4@2 ~ g3@5 ~@9 e4@13 ~@29 e4@6 ~@26 e4@6 ~@2 e4@6 ~@43, ~@61 c4@10 ~@21 g3@8 ~@92]/6", // Gm A#dim Edim Am A5 C Am7 Am …
  G: "[~@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 …
  H: "[~@4 [g3,c4]@3 [g3,c4,e4]@6 ~@2 g3@6 c4@2 [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,c4,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 ~@75, ~@15 g4@11 ~@102, ~@15 c4@5 ~@59 g3@6 ~@18 g3@6 ~@19]/4", // C5 C Am C C5 C Edim Gm …
  I: "[~@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]@6 [g3,a#3,e4]@3 [g3,a#3,e4]@4 ~ [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 …
  J: "[~@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@3 [a3,c4]@5 ~ [a3,c4,g4]@7 [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 …
  K: "[~@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]@7 [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]@6 [a3,c4,g4]@7 [c4,e4]@9 g3@2 [g3,c4]@5 ~ [g3,c4]@2 [g3,c4,e4]@8 [g3,c4,e4]@4 ~@2 [g3,a#3,e4]@3, ~@13 e4@10 ~@16 e4@6 ~@2 e4@6 ~@18 c4@5 ~@64 c4@2 ~ [c4,e4]@11 ~@3 c4@10 ~@57, ~@15 g4@11 ~@99 e4@10 ~@22 e4@13 ~@29 e4@6 ~@19, ~@15 g3@8 ~@56 g3@6 ~@18 g3@6 ~@79 g3@8 ~@28]/7", // C5 C Am C C5 C Edim Gm …
  L: "[~@4 [g3,a#3]@3 [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 [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], ~@7 e4@6 ~@2 e4@6 ~@26 g3@5 ~@19 a3@5 ~@3 a3@5 ~@9 [c4,e4]@10 [c4,e4]@8 [c4,e4]@8 ~@9]/4", // Gm Edim Am C Am C Am C …
  M: "[~@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]@8 [g3,c4]@2 [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]@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 ~@24 e4@10 ~@16 e4@6 ~@2 e4@6 ~@18 c4@5 ~@20, ~@175 g4@11 ~@70, ~@175 g3@8 ~@56 g3@6 ~@11]/8", // C Am C Am C Am C Am …
  N: "[~@5 [g3,a#3]@2 [a#3,e4]@5 ~ [a#3,e4]@2 [g3,a#3,e4]@5 ~ [g3,a#3,e4]@3 [g3,a#3,e4]@4 ~ [a3,c4]@7 [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]@6 [a3,c4,g4]@7 ~ [g3,c4,e4]@8 g3@2 [g3,c4]@5 ~ [g3,c4]@2 [g3,c4,e4]@8 [g3,c4,e4]@4 ~@2 [g3,a#3]@7 [g3,a#3]@3 [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 [c4,e4]@6 g3@3 [g3,c4,e4]@4 ~ [a3,c4,e4]@3, ~@7 g3@6 ~@16 e4@10 ~@5 c4@2 ~ g3@5 ~@9 e4@13 ~@29 e4@6 ~@16 e4@10 e4@6 ~@2 e4@6 ~@43, ~@61 c4@10 ~@104 g3@5 ~@12]/6", // Gm A#dim Edim Am A5 C Am7 Am …
  O: "[~@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 …
  P: "[~@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 …
  Q: "[~@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
  R: "[~@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 ~@2 [g3,c4,e4]@8 g3@2 [g3,c4,e4]@8 g3@5 g3@3 [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 ~@24 [c4,e4]@8 ~@5 [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 C D@3 B C B C D C@4 D@2 B D C D@2 B D B D@2 C D C D@2 C B@3 D C D@2 B@3 D@2 C D C D@2 ~@15 E@5 ~ B C D@3
  B C D C D C@4 D@2 ~@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: "~@8 e6@3 ~@21", C: "~@7 e6@4 ~@21", D: "~@7 e6@3 ~@22",
  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] g3@4 ~@3 [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 ~@25 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 B A C A D A@6 ~@18 E C A@2 D A C E A@2 D A ~>".pickRestart({
  A: "~@7 e6@4 ~@21", B: "~@3 e6@2 ~@11", C: "~@2 e6 ~@5", D: "~@7 e6@3 ~@22", E: "~@7 e6@5 ~@20",
})).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@3 c5@2 e5@2 ~ g4@3 c5@2 e5@3 g4@3 c5@2 e5@3 g4@2 ~ 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@2 ~ d5@2 c5@3 a4@2 ~ c5@2 e5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@3 a4@2 ~ 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 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@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@3 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@3 e5@2 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 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@3 c5@2 e5@3 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@3 c5@2 e5@3 g4@3 c5@2 e5@2 ~ g4@3 c5@2 e5@3 g4@3 d5@2 c5@3 a4@3 c5@2 e5@3 a4@3 c5@2 e5@2 ~ 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@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 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 E B@14 F B@7 F B@9 D G B H I H B@3 J B@8 J K L B K B@7 M ~
>`.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: "x ~@6 x ~@7 x ~@7 x ~@7 x", F: "~@31 x", G: "x ~@6 x ~@7 x ~@8 x ~@6 x", H: "~@7 x ~@7 x ~@8 x ~@6 x",
  I: "~@7 x ~@8 x ~@7 x ~@6 x", J: "~@8 x ~@6 x ~@7 x ~@7 x", K: "~@7 x ~@8 x ~@6 x ~@7 x",
  L: "~@8 x ~@7 x ~@7 x ~@6 x", M: "~@13 x ~@15 x ~@2",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct(`<
// … 36 more lines

More by Dalla