Strudelify

Your Song

Elton John

KeyE♭ majorTempo62 bpm
0:00/0:00
// Your Song — Elton John
// 62 bpm, 4/4, key D# 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 64 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(62/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
const piano = note("<A@6 B@3 C D@5 E@8 F@3 G H@5 I J K L@8 M@7 N@5 O@4 P@2 Q@3>".pickRestart({
  A: "[~@77 eb3@6 ~@6 bb4@3 ~@12 eb2@3 ~@9 c4@6 ~@6 eb3@3 ~@3 eb3@6 ~@12 eb2@3 c4@6 c4@3 ~@6 c4@3 ab2@3 [ab2,g4]@3 bb3@6 ~@15 d2@3 [g3,d4]@6 ~@3 d4@6 ~@6 g3@3 ~@21 g4@3 ~@21 eb4@3 c4@6 ~@3 c4@3 a2, ~@35 eb2@15 g5@3 eb5@15 ab4@15 ~@18 eb3@15 ab4@9 eb2@6 [eb2,eb4]@18 bb3@6 ab3@12 ab3@12 d3@15 [f3,d4]@9 ~@6 g3@9 g3@6 ~@3 [g3,eb4]@15 [g3,c4]@9 ~@6 g3@9 g3@9 ~@6 g3@7, ~@35 g4@6 g4@18 eb2@21 ~@3 [eb2,c5]@18 [d4,bb4]@6 eb2@15 c4@9 g3@12 eb3@9 eb4@12 eb4@9 [c4,eb4]@6 ~@6 f3@6 d2@9 ~@3 g2@18 [g2,d4]@6 ~@6 c4@6 c3@12 ~@3 bb2@15 [bb2,c4]@6 [a2,g4]@13, ~@38 eb3@24 eb3@12 eb5@9 ~@3 d5@12 d5@9 ~@3 eb4@21 bb3@6 ~@3 bb3@6 g3@9 [ab2,g4]@21 ~@12 bb3@9 [d3,bb3]@6 ~@24 c3@9 c2@9 [c2,eb4]@6 [bb1,g4]@24 ~@13, ~@44 bb4@15 ab4@6 [eb4,c5]@18 f4@9 [f4,f5]@15 [c4,ab4]@6 c5@18 ~@9 g4@15 ~@24 f4@24 ~@9 g4@15 d4@24 c4@9 [c4,eb4]@12 ~@16]/6", // Abmaj7 G5 Eb Dm Cm C5 Cm Gm …
  B: "[~@8 eb4@3 ab3@6 ab3@3 ~@12 eb4@3 [g3,bb3]@9 bb3@3 ~@9 eb4@3 d4@3 bb3@6 bb3@6 ~@6 bb2@3 ~@30 c4@3 ~@12 eb4@3 [g3,bb3]@3 ~@6 bb3@3 eb4, ~@2 [g3,eb4]@9 [ab2,c4]@9 c4@6 ab3@9 ~@12 bb3@6 bb3@6 ~@18 bb3@6 b2@6 g4@3 b1@9 g4@6 eb4@9 g4@9 [c3,c4]@6 ~@6 eb3@7, ~@5 c4@6 eb4@18 c4@6 ~@12 g4@12 ~@9 f4@15 ~@6 b3@15 b2@27 [eb2,eb4]@13, ~@23 ab2@12 [bb2,eb4]@24 bb2@21 d4@15 b2@3 [d4,d5]@9 c5@24 ~@13, ~@50 g3@9 f3@15 f3@9 g3@24 c3@9 c4@3 eb4@3 g3@9 ~@13]/3", // Gm Cm Ab C Eb Eb5 D
  C: "~@5 eb3@3 eb3@3 [c4,eb4]@6 ~@15 ab4@3 [ab3,c4]@6 ~@3 c4@3 [ab3,eb4], ~@2 [bb3,eb4,bb4]@9 [f2,ab4]@18 [f2,eb4]@6 [ab2,eb4]@13, ~@17 c4@6 f3@12 ~@6 ab3@6 ~, ~@20 c5@15 ~@13, ~@20 eb4@6 c4@9 ~@13", // Cm Ab Ab5 Eb5 Fm F7 Ab5
  D: "[~@8 c4@3 f3@6 ~@15 f3@3 [bb3,eb4]@9 ~@12 d4@3 ~@9 eb4@3 ~@9 bb4@3 eb4@3 ~@18 ab2@3 ~@45 bb4@3 [eb4,c5]@3 ~@66 g4@3 eb4@6 c4@3 eb4@3 f3, ~@2 c4@6 ~@3 d4@18 d4@6 ~@9 eb4@15 g4@15 bb3@9 [ab3,c5]@12 ab2@6 [ab3,eb5]@6 [d3,bb4]@12 f4@6 d5@12 d4@3 g4@6 [d4,bb4]@9 ~@6 [eb4,g4]@9 eb4@6 c5@18 [c5,g5]@3 g3@9 g3@15 eb4@6 ~@13, ~@5 [ab2,ab3]@6 [bb2,bb3]@9 bb3@6 [bb3,f4]@9 ~@12 d4@6 bb3@6 [bb3,eb4]@9 ~@3 [eb4,bb4]@12 ~@6 eb4@18 f4@9 d4@9 [d3,f4]@6 [g3,bb4]@12 g3@12 ~@9 g3@12 eb4@6 eb4@18 [g4,c5]@9 eb4@3 g4@6 c4@9 ~@13, ~@17 f3@15 ~@3 f3@3 ~@6 [f3,bb3]@6 f3@9 ~@3 eb3@15 g4@6 ~@9 g4@15 ~@6 d5@9 bb4@6 g4@12 d5@15 ~@12 c4@12 ~@3 g4@3 g3@3 [g4,eb5]@15 ~@6 c5@18 ~@13, ~@23 bb2@12 bb2@24 eb2@24 ~@9 eb5@6 [c5,g5]@9 f5@24 d4@3 g2@15 [g2,g4]@6 c3@18 [c3,g4]@6 bb2@24 [a2,eb5]@24 ab2@13]/5", // Eb5 Cm Ab Ab5 Gm Eb C5 Ab …
  E: "[~@2 c4@3 ~@3 ab2@3 [bb3,eb4]@6 ~@15 eb4@3 d4@3 ~@18 [d4,bb4]@3 ~@45 c5@3 eb4@6 ~@24 c4@3 ~@15 [ab2,c4]@9 ~@9 c4@3 eb4@2 ~@19 [eb2,g3]@6 [ab3,eb4]@6 ab3@3 ~@12 eb4@3 f4@6 ~@24 g4@3 ~@12 c5@3 [eb4,ab4]@6 ~@39 c5@3 f4@6 ~@9 bb4@3 ~@12 g4@3 ~@24 ab4@4, ~@5 [c4,eb4,ab4]@6 [g2,g4]@24 [bb2,f4]@15 d4@6 ~@12 d4@12 [d5,g5]@18 eb4@3 g4@6 ~@9 eb4@6 ~@6 [c4,eb4]@12 ab4@6 c4@3 eb4@15 [c4,eb4]@3 ab2@11 ~@7 eb3@18 eb2@24 ~@9 bb4@9 bb4@6 ~@3 eb4@6 g4@3 c4@12 ~@12 f2@12 ab2@15 eb4@9 ~@6 d4@9 d4@6 eb4@6 eb4@15 c3@6 f3@13, ~@17 bb3@12 bb3@6 ~@6 bb3@3 d4@3 bb3@12 ~@6 b3@15 g4@6 c5@3 g3@3 [g4,c5]@3 c4@12 ~@6 bb3@9 [bb3,eb4,g4]@9 ~@9 [c4,eb4]@3 f3@27 ab3@6 ~@3 bb3@9 g3@3 bb3@9 ~@15 eb3@12 [d3,bb4]@12 d3@6 ~@3 c5@21 [c3,g4]@6 [f3,c5]@18 f3@6 ~@9 ab4@9 [ab2,ab4]@6 [d3,bb4]@15 ~@3 d3@6 c3@15 [c5,g5]@6 c5@16, ~@20 eb4@6 [eb4,bb4]@9 ~@9 bb4@9 [bb2,f4]@6 [b2,d4,g4]@9 g4@3 b2@12 c3@24 [eb3,g4]@15 ~@3 eb3@6 f2@45 ~@3 eb2@15 eb4@9 ~@9 eb4@9 bb3@6 d4@21 [eb4,g4]@9 ~@3 eb5@15 ~@9 ab4@12 ab4@12 eb5@15 ~@12 d3@6 ~@3 c5@15 c4@9 ab4@12 ~@4, ~@23 g3@12 ~@3 f3@21 ~@3 g3@12 [g4,d5]@3 g3@6 ~@3 eb5@21 ~@12 eb3@6 ~@3 ab3@6 ab3@21 ab4@21 ~@3 g4@24 ~@15 g3@9 ~@6 f4@9 f4@9 c3@15 eb4@9 ~@6 eb4@9 [eb4,c5]@9 ~@3 eb4@9 ab3@12 ~@9 f4@15 ~@9 [g4,eb5]@15 ~@6 eb4@7]/8", // Eb5 Gm Ab Eb Ab5 Ab G Bb5 …
  F: "[~@17 eb4@3 ~@9 [ab2,eb4]@3 ~@3 eb4@6 eb4@3 ~@12 c4@3 ~@45 g4@3 f3@19 f3@18, ~@2 [eb4,c5]@6 eb4@9 ~@6 ab3@9 ~@3 c3@15 [c4,eb4]@6 eb4@18 [c5,g5]@3 bb2@6 a2@12 g3@12 ~@37, ~@5 ab4@6 ab2@15 c4@6 ~@9 c5@12 c3@27 c5@27 ~@37, ~@8 c4@5 ~ c4@6 [c4,eb4]@9 ~@18 g3@9 g4@6 g4@3 c5@3 [g4,eb5]@15 ~@6 eb4@9 c4@9 ~@37, ~@59 bb2@12 g3@12 ~@9 g4@9 [a2,eb4]@6 [ab2,eb4]@37]/3", // Ab5 Cm C5 Cm Adim Ab5
  G: "eb4 ~@2 [g2,g4] eb4 ~@2 [ab2,eb4], bb4@8 ~@3 eb4@3 ~@2, g2@3 ~ ab2@3 ~, bb3 ~ eb4@3 eb4@3 c4 ~ c4@3 c4@3, ~@3 g3@5 ~@4 ab3@4", // G Ab5
  H: "[[ab3,c4]@2 ~@5 f3 ~@2 bb3 ~@3 bb3 ~ [bb2,bb3]@3 ~@2 f3@2 d4 g4@2 ~@12 eb3@2 ~@2 bb4 ~@4 eb2 ~@3 c4@2 ~@2 eb3 ~ eb3@2 ~@4 eb2 c4@2 c4 ~@2 c4 ab2 [ab2,g4] bb3@2 ~@5 d2, ab2@6 ab2@2 bb2@4 bb2@3 ~@5 bb2@4 [eb2,eb3,g3,eb4]@9 eb3@4 eb5@3 ~ d5@4 d5 [d4,bb4]@2 [c4,ab4]@2 c5@4 eb2@2 [eb2,eb4]@6 bb3@2 ~@6 [c4,eb4]@2 ~@3 bb3@2 [f3,d4]@3, ~@2 ab3@2 ab3@4 ~ f3@2 [f3,bb3]@3 ~ d4@8 ~@3 g4@4 eb5@5 ab4@5 ~@6 eb3@5 ab4@5 ~@3 g4@4 eb4@4 eb4@3 ~@2 f4@8, ~@3 c4@2 c4@3 ~@5 f3@2 ~ [f3,eb4]@2 ~ [f3,bb3]@3 ~@5 bb4@5 eb2@7 ~ [eb2,c5]@8 eb2@5 c4@3 g3@4 eb3@4 [ab2,g4]@7 ~ d3@6 [d3,bb3]@2, ~@29 g5@3 ab4@2 [eb4,c5]@6 f4@3 [f4,f5]@5 ~ eb4@7 bb3@2 ~ bb3@2 g3@3 ab3@4 ab3@4 ~@2 f3@2 d2@3 ~]/5", // Ab Bb Abmaj7 Eb Gm Fm Eb Cm …
  I: "[g3,d4]@2 ~ d4@2 ~@2 g3 ~@7 g4, g2@3 g2@4 [c2,eb4], ~@2 g3@3 g3@2 ~ [c3,g3,eb4]@2 c4 c2 c3@4, ~@3 g4@10 [g3,c4]@3, ~@3 d4 d4@4", // G5 Cm C5
  J: "~@7 eb4 ~@7 eb4, [bb1,g4]@8 ~@3 c4@3 c4@2, c4@2 g3@3 g3@3 ~@2 g3@3 [g3,eb4]@3, ~ bb2@5 [bb2,c4]@2 [a2,c4]@4 a2@4, ~@3 [c4,eb4]@4 ~ g4@8", // Eb Cm Bbsus2 Am Cm
  K: "ab3@2 ab3 ~@4 eb4 [g3,bb3]@3 bb3 ~@3 eb4, eb4@3 c4 ~@2 g4@2, [ab2,c4]@3 c4@2 ab3@3 ~@4 bb3@2 bb3@2, ~ ab2 [bb2,eb4]@2, ~@13 g3@3", // Gm Ab Eb5
  L: "[d4@3 bb3@6 bb3@6 ~@6 bb2@3 ~@30 c4@3 ~@12 eb4@3 [g3,bb3]@3 ~@17 eb4@3 ~@3 eb3@3 eb3@3 [c4,eb4]@6 ~@15 ab4@3 ab3@6 ~@15 c4@3 f3@6 ~@15 f3@3 [bb3,eb4]@9 ~@12 d4@3 ~@9 eb4@3 ~@9 bb4@3 eb4@3 ~@18 ab2@3 ~@45 bb4@3 [eb4,c5]@3 ~@66 g4@3 eb4@6 c4@3 ~@3 f3@3 c4, bb2@18 bb3@6 g3@18 g4@6 eb4@9 g4@9 [c3,c4]@6 ~@14 eb3@12 ~@15 eb4@6 c4@9 [c4,eb4]@12 eb4@12 d4@18 d4@6 ~@9 eb4@15 g4@15 bb3@9 [ab3,c5]@12 ab2@6 [ab3,eb5]@6 [d3,bb4]@12 f4@6 d5@12 d4@3 g4@6 [d4,bb4]@9 ~@6 [eb4,g4]@9 eb4@6 c5@18 [c5,g5]@3 g3@9 g3@15 eb4@6 ~@9 eb4@7, f3@15 f3@6 d4@12 b1@12 b2@27 eb2@32 [f2,ab4]@18 [f2,eb4]@6 ab2@18 [ab2,ab3]@6 [bb2,bb3]@12 bb2@12 bb2@24 eb2@24 ~@9 eb5@6 [c5,g5]@9 f5@18 [d3,f4]@6 [g3,bb4]@12 g3@12 ~@9 g3@12 eb4@6 eb4@18 [g4,c5]@9 eb4@3 g4@6 c4@9 ~@16, ~@9 f4@15 b2@6 g4@6 b2@3 [d4,d5]@9 c5@24 ~@17 bb3@6 [bb3,eb4,bb4]@9 ~@6 c4@6 f3@12 ~@6 ab3@6 ab3@6 ~@12 f3@15 ~@3 f3@2 ~@7 [f3,bb3]@6 f3@9 ~@3 eb3@15 g4@6 ~@9 g4@15 f4@9 d4@12 g4@12 d5@15 ~@12 c4@12 ~@3 g4@3 g3@3 [g4,eb5]@15 ~@6 c5@18 ~@16, ~@30 b3@18 c3@9 c4@3 eb4@3 g3@9 eb4@20 ~@21 c5@15 ~@9 c4@6 c4@6 ~@12 bb3@6 [bb3,f4]@9 ~@12 d4@6 bb3@6 [bb3,eb4]@9 ~@3 [eb4,bb4]@12 ~@6 eb4@18 ~@6 d5@9 bb4@9 d4@3 g2@15 [g2,g4]@6 c3@18 [c3,g4]@6 bb2@24 [a2,eb5]@24 ab2@16]/8", // Gm Cm Eb5 Cm C Cm Ab Ab5 …
  M: "[~@5 ab2@3 [bb3,eb4]@6 ~@15 eb4@3 d4@3 ~@18 [d4,bb4]@3 ~@45 c5@3 eb4@6 ~@24 c4@3 ~@15 [ab2,c4]@9 ~@9 c4@3 eb4@2 ~@19 [eb2,g3]@6 [ab3,eb4]@6 ab3@3 ~@12 eb4@3 f4@6 ~@24 g4@3 ~@12 c5@3 [eb4,ab4]@6 ~@39 c5@3 f4@6 ~@6 d3@3 [d4,bb4], ~@2 [c4,eb4,ab4]@6 [g2,g4]@24 [bb2,f4]@15 d4@6 ~@12 d4@12 [d5,g5]@18 eb4@3 g4@6 ~@9 eb4@6 ~@6 [c4,eb4]@12 ab4@6 c4@3 eb4@15 [c4,eb4]@3 ab2@11 ~@7 eb3@18 eb2@24 ~@9 bb4@9 bb4@6 ~@3 eb4@6 g4@3 c4@12 ~@12 f2@12 ab2@15 eb4@9 ~@6 d4@9 ~, ~@14 bb3@12 bb3@6 ~@6 bb3@3 d4@3 bb3@12 ~@6 b3@15 g4@6 c5@3 g3@3 [g4,c5]@3 c4@12 ~@6 bb3@9 [bb3,eb4,g4]@9 ~@9 [c4,eb4]@3 f3@27 ab3@6 ~@3 bb3@9 g3@3 bb3@9 ~@15 eb3@12 [d3,bb4]@12 d3@6 ~@3 c5@21 [c3,g4]@6 [f3,c5]@18 f3@6 ~@9 ab4@9 [ab2,ab4]@6 [d3,bb4]@15 ~, ~@17 eb4@6 [eb4,bb4]@9 ~@9 bb4@9 [bb2,f4]@6 [b2,d4,g4]@9 g4@3 b2@12 c3@24 [eb3,g4]@15 ~@3 eb3@6 f2@45 ~@3 eb2@15 eb4@9 ~@9 eb4@9 bb3@6 d4@21 [eb4,g4]@9 ~@3 eb5@15 ~@9 ab4@12 ab4@12 eb5@15 ~@16, ~@20 g3@12 ~@3 f3@21 ~@3 g3@12 [g4,d5]@3 g3@6 ~@3 eb5@21 ~@12 eb3@6 ~@3 ab3@6 ab3@21 ab4@21 ~@3 g4@24 ~@15 g3@9 ~@6 f4@9 f4@9 c3@15 eb4@9 ~@6 eb4@9 [eb4,c5]@9 ~@3 eb4@9 ab3@12 ~@9 f4@7]/7", // Eb5 Gm Ab Eb Ab5 Gm Ab G …
  N: "[~@14 g4@3 ~@24 ab4@6 ~@15 eb4@3 ~@9 [ab2,eb4]@3 ~@3 eb4@6 eb4@3 ~@12 c4@3 ~@45 g4@3 f3@20 f3@13 eb4@6 ~@12 [g2,g4]@6 eb4@6 ~@12 [ab2,eb4]@6 [ab2,ab3,c4]@6 ab3, ~@2 d3@6 c3@15 [c5,g5]@3 c3@6 f3@21 c4@5 ~ c4@6 [c4,eb4]@9 ~@12 c5@15 g4@6 g4@3 c5@3 [g4,eb5]@6 [c5,g5]@3 bb2@6 a2@12 g3@12 ~@42 g3@15 ~@12 ab3@12 ~@7, ~@5 c5@15 c4@9 c5@18 ~@6 eb4@9 ~@6 ab3@9 ~@15 g3@9 ~@3 bb2@12 g3@9 c5@27 ~@33 bb4@24 ~@9 eb4@9 ~@13, ~@5 eb4@6 eb4@18 ab4@12 ~@9 ab4@6 ~@15 c4@6 ~@18 [c4,eb4]@6 eb4@27 ~@6 eb4@9 c4@9 ~@33 bb3@3 ~@3 eb4@9 eb4@9 c4@3 ~@3 c4@9 c4@9 ~@7, ~@17 [g4,eb5]@15 ~@6 eb4@9 [eb4,c5]@9 ab2@18 ~@6 c3@18 c3@30 ~@9 g4@9 [a2,eb4]@6 [ab2,eb4]@32 ~ g2@18 ~@6 ab2@18 ~@13]/5", // Ab5 G Ab5 Ab C5 Cm C5 Cm …
  O: "[~@14 f3@3 ~@6 bb3@3 ~@9 bb3@3 ~@3 [bb2,bb3]@9 ~@6 f3@6 d4@3 eb4@6 eb4@3 ~@12 c4@3 ~@45 g4@4 f3@19 f3@13 eb4@6 ~@12 [g2,g4]@4, ~@2 c4@6 c4@9 ~@15 f3@6 d4@24 ~@9 c5@12 c3@21 [c5,g5]@3 bb2@6 a2@12 g3@12 ~@42 g3@13, ~@5 ab3@12 ~@3 f3@6 [f3,bb3]@9 ~@6 [f3,eb4]@6 ~@3 [f3,bb3]@9 ~@18 g3@9 g4@6 g4@3 c5@3 [g4,eb5]@12 c5@27 ~@33 bb4@22, ~@11 ab2@6 bb2@12 bb2@9 ~@15 bb2@12 c3@15 [c4,eb4]@6 eb4@27 ~@6 eb4@9 c4@9 ~@33 bb3@3 ~@3 eb4@9 eb4@7, ~@89 bb2@12 g3@12 ~@9 g4@9 [a2,eb4]@6 ~ [ab2,eb4]@32 g2@18 ~@4]/4", // Bb G C5 Bb5 F7 Bb5 Cm Adim …
  P: "[~ eb4@3 ~@6 [ab2,eb4]@3 [ab3,c4]@3 ~@30 eb3@2, ~@2 ab2@15 c4@9 ~@6 ab3@6 ab3@9 f3@9 g4@3 bb4@6 g5@3 eb5@15 ab4@13, ~@2 c4@3 ~@3 c4@6 ab3@12 ab2@18 ab2@30 ab4@6 [eb4,c5]@16, ~@11 eb4@9 ~@15 c4@6 c4@9 eb2@24 eb2@21 ~, ~@50 g4@3 eb3@24 eb3@12 eb5@7]/2", // Ab5 Ab Cm
  Q: "[~@8 bb4@3 ~@12 eb2@3 ~@10 c4@6 ~@7 eb3@3 ~@2 eb2@78 ~@12, ~@2 [eb2,c5]@18 [d4,bb4]@6 eb2@16 c4@4 eb2@7 [eb3,g3,bb3]@78 ~@13, ~@2 f4@9 [f4,f5]@15 [c4,ab4]@7 c5@20 ~@91, ~@5 d5@12 d5@9 ~@3 eb4@23 eb4@78 ~@14, ~@5 eb3@4 ab4@4 ~@23]/3", // Cm Gm Eb F Fm
})).s("gm_piano").gain(0.18).pan(0.6)

// chords · piano · soft notes
const piano_soft = note(`<
  ~ A@2 B ~ C D ~ E ~ F G ~ H@2 I ~ J K L M N O P Q R S T U V W X Y ~ Z AA ~@2 AB AC ~ AD AE AF ~ AG AH AI AJ AK AL AM
  AN AO@2 AP@2 AQ AR AS@3 ~@2
>`.pickRestart({
  A: "[~@11 eb4@6 ~@15 eb2@3 ~@9 [eb3,bb4]@9 ~@18 eb3@9 ~@9 bb3@3 ~@4]/2", B: "~@10 c4@3 ~@11", C: "~@8 c4@3 ~@37",
  D: "~@20 ab3@6 ~@15 g3@7", E: "~@2 g4@3 ~@43", F: "~@41 f3@3 ~@4", G: "~@17 bb3@9 ~@6 eb3@3 ~@13",
  H: "[~@47 g3@6 ~@39 c4@4]/2", I: "~@35 bb4@9 ~@4", J: "~@5 g3@6 ~@37", K: "~@17 ab3@9 ~@22",
  L: "~@8 bb3@3 ~@9 bb3@9 ~@19", M: "~@5 d3@6 ~@37", N: "~@8 c4@27 ~@13", O: "~@5 bb4@6 ~@37",
  P: "~@11 eb4, ~@35 c4@13", Q: "~@19 c4@5", R: "~@13 [ab3,c4]@11", S: "~ bb3@3 ~@4", T: "~@7 bb3 ~@8",
  U: "~@2 f3 ~@3 bb3@2 ~@8, ~ eb4@3 ~@4", V: "eb4@2 ~@5 eb2 ~@3 [eb3,bb4]@3 ~@2", W: "~@4 eb3@3 ~@3 bb3 ~@5",
  X: "~@3 c4@2 ~@11", Y: "~@15 c4", Z: "~@3 ab3@2 ~@5 g3@3 ~@3", AA: "~@13 g4 ~@2", AB: "~@38 f3@3 ~@7",
  AC: "~@14 bb3@9 ~@6 eb3@3 ~@16", AD: "~@11 g3", AE: "~@41 c4@6 ~", AF: "~@32 bb4@9 ~@7", AG: "~ g3@3 ~@20",
  AH: "~@14 ab3@9 ~@25", AI: "~@5 bb3@3 ~@9 bb3@9 ~@22", AJ: "~ d3@3 ~@20", AK: "~@5 c4@27 ~@16", AL: "~ bb4@3 ~@20",
  AM: "~@41 eb4@6 ~, ~@32 c4@15 ~", AN: "~@35 c4@12 ~", AO: "[~@23 [ab3,c4]@18 ~@6 bb3@18 ~@31]/2",
  AP: "[~@14 bb3@3 ~@30 f3@3 ~@9 bb3@6 ~@9 eb4@6 ~@16, ~@47 eb4@18 c4@15 ~@16]/2", AQ: "~@5 c4@3 ~@4",
  AR: "~@4 [ab3,c4]@9 ~@3 bb3@8", AS: "[~@47 bb3@3 ~@24 eb4@6 ~@15 eb2@3 ~@9 [eb3,bb4]@9 ~@19 eb3@9]/3",
})).s("gm_piano").gain(0.09).pan(0.6)

// bass · acoustic bass
const bass = note(`<
  ~@2 A@2 B C D E F G@2 H@3 I J K@2 L M N@3 O P Q R S T ~ U V W X Y Z AA@5 AB AC@5 AD@4 AE AF AG@3 AH@3 AI AJ AK@3
>`.pickRestart({
  A: "[~@35 eb2@22 ~@2 ab2@21 ~@3 d2@12 ~]/2", B: "~@2 d2@3 f2@3 gb2@3 g2@23 ~ c2@13",
  C: "~@2 g2@2 ~ c3@5 ~ bb1@19 ~@5 a1@13", D: "~@5 a1@5 ~ ab1@21 ~@3 bb1@13",
  E: "~@5 bb1@2 ~@4 bb1@11 ~@4 f2@3 bb2@5 ~ b1@12 ~", F: "~@2 b1@3 g2@6 c2@19 ~@5 eb2@13",
  G: "[~@5 eb2@6 f2@16 ~@2 f1@6 ab1@23 ~ bb1@21 ~@3 bb1@13]/2",
  H: "[~@5 bb1@5 ~ eb2@13 ~@5 eb2@6 ab2@21 ~@3 d2@15 ~@3 d2@6 g2@8 ~@4 g2@3 d2@3 g2@5 ~ c2@11 ~@4 c2@9 bb1@12 ~]/3",
  I: "~@2 bb1@9 a1@12 ~@3 a1@9 ab1@12 ~", J: "~@2 ab1@7 ~@2 bb1@20 ~@4 bb1@13",
  K: "[~@2 f2@3 bb2@5 ~ b1@12 ~@3 b1@3 g2@5 ~ c2@20 ~@4 eb2@13 ~@5 eb2@6 f2@13]/2", L: "~@5 f1@6 ab1@21 ~@3 eb2@12 ~",
  M: "~@2 eb2 ~@5 bb1@2 ~ eb2@6 ~@3 eb2@3 g2@6 eb2@6 d2@13",
  N: "[~@5 d2@5 ~ c2@21 ~@3 f2@17 ~ g2@6 ab2@13 ~@5 ab2@5 ~ d2@21 ~@3 c2@15 ~@3 c2@5 ~ f1@13]/3",
  O: "~@5 g1@5 ~ ab1@19 ~@5 c2@13", P: "~@5 c2@5 ~ bb1@16 ~@2 bb2@5 ~ a1@13", Q: "~@5 a1@4 ~@2 ab1@32 ~@5",
  R: "g1@21 ~@3 ab1@20 ~@4", S: "ab1@22 ~@2 bb1@21 ~@3", T: "bb1@23 ~@25", U: "~@12 eb2@11 ~",
  V: "ab2@22 ~@2 d2@21 ~@3", W: "g1@7 ~@2 g1 ~@2 g1@7 ~@2 g1@3 c2@21 ~@3", X: "bb1@20 ~@4 a1@21 ~@3",
  Y: "ab1@20 ~@4 bb1@9 ~@3 bb1@6 ~@3 bb1 ~@2", Z: "bb1@11 ~ f2@3 bb1@3 ~@3 bb1@3 b1@9 ~@3 b1@7 ~@2 g1@3",
  AA: "[c2@9 ~@3 c2@3 ~@3 c2@3 ~@3 eb2@15 ~@2 eb2 ~@2 eb2@9 ~@3 f2@9 c2 ~@2 f1@11 ~ ab1@9 ~@3 ab1@10 ~@2 bb1@10 ~@2 bb1@8 ~@4 bb1@2 ~ bb1 ~@5 bb1 ~@2 bb1@12 eb2@9 ~@3 eb2@6 ~@3 eb2@2 ~ ab1@10 ~@2 ab2@7 ~@2 ab2@2 ~ d2@11 ~ d3@3 d2@2 ~@4 d2@2 ~ g1@7 ~@2 d2@2 ~ g2@3 d2]/5",
  AB: "~@2 g2@4 ~@2 c2@7 ~@2 c2@2 ~@4 c2@2 ~@4 c2 ~@2 bb1@8 ~ bb1@2 ~@4 bb1",
  AC: "[~@5 bb1@2 ~ a1@8 ~ a1@2 ~@4 a1@2 ~@4 a1@2 ~ ab1@7 ~@2 ab1@2 ~@4 ab2@3 ~@3 ab1@2 ~ bb1@9 ~@3 bb1@6 ~@3 bb1 ~@2 bb1@6 ~@3 bb1 ~@2 f2@3 bb1@3 ~@3 bb1@2 ~ b1@11 ~ g1@3 d2@2 ~ g2@5 ~ c2@9 ~@3 c2 ~@2 c2@6 ~@3 eb2@8 ~ bb1 ~@2 eb2@3 bb1@2 ~ eb2@6 f2@6 ~@3 c2@2 ~ f2@3 c2@2 ~ f2@4 ~@2 ab1@9 ~@3 ab1@8 ~@4 eb2@6 ~@3 eb2@3 ~@4]/5",
  AD: "[~@2 eb2@2 ~@4 eb2@4 ~@5 eb2@2 ~ g2@6 eb2@2 ~@4 d2@10 ~@2 d2@7 ~@5 c2@10 ~@2 c2@11 ~ f1@10 ~@2 f2@10 ~@2 ab1@6 ~@3 ab1 ~@2 ab1@7 ~@5 d2@8 ~@4 d2@8 ~@4 c2@6 ~@3 c2 ~@2 c2@2 ~ c2 ~@5 c2@2 ~ f1@15 ~]/4",
  AE: "~@2 g1@6 ab1@22 ~@2 c2@13 ~@3", AF: "~@2 c2@3 ~@3 bb1@13 ~@5 bb1@2 ~@4 a1@13 ~@3",
  AG: "[~@2 a1@3 ~@3 ab1@29 ~@4 g1@21 ~@3 ab1@21 ~@3 ab1@20 ~@4 bb1@20 ~@4 bb1@6 ~]/3",
  AH: "[~@2 f2@3 bb1 ~@2 bb1@9 c2@13 ~@5 c2@2 ~@4 bb1@15 ~@3 bb1@3 ~@3 a1@14 ~@4 a1@3 ~@4 ab1@29 ~@3 g1@22]/3",
  AI: "~@2 ab1@21 ~@3 ab1@22", AJ: "~@2 eb3@5 ~@4 eb3@5 ~ eb2@2 ~ eb3@3 ~@3 eb3@6 ~@3 eb3@5 ~ eb2 ~@2 eb3@4",
  AK: "[~@2 eb3@6 ~@3 eb3@4 ~@2 eb2 ~@2 eb3@2 ~@4 eb3@7 ~@3 eb3@3 ~@3 eb2@3 ~ eb3@6 eb2@78 ~@14]/3",
})).s("gm_acoustic_bass").gain(0.22)

// chords · string ensemble 1
const string_ensemble_1 = note("<~@11 A@5 B@6 C@4 D@3 E F@2 G@3 H I@3 J@7 K@4 L@3 M@7 N@4>".pickRestart({
  A: "[~@11 [eb2,bb2]@24 [ab2,c3]@24 [d2,bb2,f3]@24 g3@12 f3@12 g3@24 ~@12 bb2@12 a2@23 ~ [ab2,f3,ab3,eb4]@24 [g3,bb3,eb4]@24 [f3,bb3,d4]@13, ~@11 g3@48 ~@24 [g2,d3]@24 eb3@95 ~@38, ~@107 c3@36 ~@12 g3@19 ~@66, ~@131 c4@48 ~@61]/5", // Eb5 Ab Bb Fm7 Eb Bb G5
  B: "[~@23 b2@12 [c3,eb3,g3,c4]@23 ~ [eb2,bb2,eb3,g3]@24 [f2,c3,eb3,ab3]@24 [ab2,eb3,ab3,c4]@24 [eb2,eb3,g3,bb3]@48 [d4,f4,bb4]@24 [eb4,g4,c5]@24 [eb4,ab4,c5]@47 ~ [d4,f4,bb4]@13, ~@11 d4@24 ~@253, ~@11 g3@19 ~@258]/6", // Cm Eb Fm7 Ab Eb Bb Cm Ab …
  C: "[~@11 g4@18 c5@6 [ab4,f5]@18 eb5@6 [ab4,c5]@23 ~@25 bb3@24 [a3,eb5]@24 [ab3,eb4,ab4,f5]@37, ~@11 c4@71 ~ c4@76 ~@33, ~@11 eb4@24 f4@27 ~@21 c5@46 ~@2 c5@54 ~@7, ~@83 eb4@41 ~@68, ~@107 g4@19 ~@5 g4@18 ~@43]/4", // Db Ab Adim Fm7
  D: "[[g3,bb4]@23 ~ c5@24 ~@24 [bb3,d4]@47 ~ [eb2,bb2,g3]@24, eb5@47 ~@97, eb4@42 ~@6 f4@71 ~@25, ~ ab3@2 ~@3]/3", // Gm Bb Eb
  E: "[ab2,eb3,c4]@24 [d3,f3,bb3,f4]@23 ~", // Ab Bb
  F: "[[c3,ab3,c4,eb4]@23 ~ bb3@23 ~ ab3@23 ~ f5@6 bb4@12 bb4@6, ~@24 [eb3,g4]@46 ~@2 [d3,f4]@23 ~, ~@48 c4@17 ~@31]/2", // Ab Eb Dm
  G: "[g4@6 bb4@12 d5@6 eb4@8 ~@28 eb5@12 g5@12 ~@12 eb5@11 ~ g5@3 f5@3 eb5@6 [bb4,eb5]@11 ~ bb4@12, [g3,d4] c4@2 ~@3, ~@12 eb5@13 ~@11 c5@4 ~@2 c5@18 ~@12, ~@36 eb4@11 ~ eb4@49 ~@23 eb4@18 ~@6, ~@42 bb3@30 a3@24 [ab3,c4]@24 g3@23 ~]/3", // Eb5 G5 Ab
  H: "bb3@7 ~@35 d5@6, [d4,f4]@6 d5@7 ~@3, ~@12 bb4@11 ~ [d4,g4]@24", // Dm G5
  I: "[[g4,eb5]@15 d5@3 c5@6 ~@26 bb4@6 c5@15 ~@3 c5@5 ~ [ab3,ab4,c5]@24 bb4@35 ~ f4@4, ~@24 [g3,bb3]@32 ab3@21 ~@27 [bb3,d4]@40, ~@24 eb4@25 ~@31 eb4@19 ~@5 f4@30 ~@10, ~@44 g4@13 ~@14 bb4@5 ~@68]/3", // Cm Ab Gm Bb
  J: "[~@8 g4@12 bb4@12 eb4@24 ~@12 bb4@6 f5@6 [bb4,g5]@12 g4@10 ~@2 c4@24 ~@18 c5@6 [a3,eb5]@24 f5@12 eb5@12 bb4@11 ~ g4@12 f4@11 ~ f4@12 [b3,d4]@24 [c4,eb4]@18 d4@5 ~@13 bb4@12 c5@9 bb4@3 ab4@3 g4, ~@8 [eb3,bb3]@24 ~@24 [bb3,d4]@50 ~@22 bb3@24 ~@24 [ab3,c4,ab4]@25 ~@95 bb3@24 c4@16, ~@8 eb4@20 ~@4 c5@33 ~@39 g4@42 ~@6 g4@17 ~@79 g4@60 ~@28, ~@56 f4@22 ~@26 eb4@72 ~@24 [bb3,eb4]@19 ~@5 [bb3,d4]@21 ~@51 eb4@38 ~@2]/7", // Eb Adim Bm Cm Eb5 Bb Ab Eb5 …
  K: "[~@2 f4@3 eb4@3 c5@24 ~@12 g4@6 ab4@6 bb4@6 g4@6 bb4@6 eb5@6 bb4@9 ~@3 bb4@12 ~@6 c5@3 d5@3 eb5@10 ~@2 ab4@18 c5@3 bb4@3 [ab3,ab4,c5]@24 [d4,f4,bb4]@16, ~@8 eb4@19 ~@5 [g3,bb3]@48 ~@24 eb4@44 ~@4 eb4@19 ~@21, ~@32 eb5@23 ~ eb4@24 [d4,f4]@24 c4@70 ~@18, ~@104 g4@24 eb5@17 ~@47]/4", // Ab Bb Gm Dm
  L: "[~@8 g4@6 c5@12 eb5@6 f5@18 eb5@6 [eb4,c5]@21 ~@3 c4@48 [a3,eb4,c5,eb5]@16, ~@8 [c4,eb4]@23 ~ ab4@45 ~@3 g4@64, ~@32 ab3@41 ~@71, ~@8 c4@6 ~@6 eb4@11 ~@5]/3", // Cm Adim Cm
  M: "[~@8 [ab4,f5]@31 ~@2 [g3,eb4,bb4]@24 [ab3,c4,ab4]@24 [ab3,c4,eb4,c5]@24 [bb3,d4,f4,bb4]@45 ~@3 [c4,eb4,g4]@47 ~ [a3,c5,eb5]@25 [c4,f5]@32 [g3,bb4]@24 [ab4,c5]@24 [ab3,c4,eb4]@22, ~@41 eb5@48 ~@120 g4@20 ~@37 [eb4,eb5]@48 ~@22]/7", // Db Eb Ab Bb Cm Adim F5 Gm …
  N: "[~@2 g4@25 ~@23 d4@24 ~@27 [eb3,bb3,g4,eb5]@73 ~@18, ~ eb5@49 ~@46]/4", // Eb
})).s("gm_string_ensemble_1").gain(0.12).pan(0.3)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@2 A@4 B C@6 D@6 E@7 F@3 ~ G@6 H@2 I J@8 K@8 L@7 M@2>".pickRestart({
  A: "[~@35 g4@24 [c4,eb4]@15 ~@3 eb4@6 [f3,d4]@21 ~@3 g4@15 ~@9 eb4@21 ~@18 c5@3 g4@6 [c4,eb4]@13, ~@35 eb4@20 ~@4 ab3@24 ~@42 g4@27 ~@3 eb4@23 ~@14, ~@74 c4@8 ~@40 d4@9 ~@21 c4@23 ~@17]/4", // Cm Dm Cm
  B: "~@5 eb4@5 ~ [ab3,eb4]@23 ~ [bb3,eb4]@13", // Ab5 Eb5
  C: "[~@5 eb4@6 d4@15 bb4@9 ~@18 d4@6 ~@18 g4@6 [bb3,eb4]@18 eb4@6 [c4,eb4]@18 eb4@6 [c4,eb4]@18 eb4@6 ~@9 d4@9 ~@3 d4@3 [f3,bb3,eb4]@9 ~@9 bb3@6 [eb4,g4]@9 bb3@6 ~@6 eb4@3 [c4,g4]@9 g4@15 f4@9 f4@15 [g3,d4]@9 d4@4, ~@2 bb3@9 ~@24 g4@24 ~@15 c4@9 ~@90 bb3@6 ~@9 d4@12 ~@12 g4@15 ~@61, ~@50 b3@9 [g3,eb4]@24 g3@24 ~@24 ab3@24 [f3,bb3]@18 ~@21 f3@9 ~@15 g3@9 ~@33 bb3@6 ~@22, ~@221 bb3@6 ~@9 c4@9 ~@6 d4@18 ~@19]/6", // Eb5 Cm Ebsus2 Eb C5 G5 Cm Bb5
  D: "[~@2 g4@6 d4@3 ~@9 g4@12 eb4@3 [c4,g4]@9 c4@6 g3@6 eb4@3 [c4,g4]@9 c4@6 ~@3 eb4@6 eb4@9 eb4@6 ~@3 eb4@6 [bb3,g4]@9 bb3@9 ~@3 eb4@3 [bb3,eb4]@9 ~@12 d4@3 ~@9 g3@6 ~@6 d4@3 ~@9 g3@6 ~@6 eb4@3 [bb3,g4]@9 bb3@6 ~@3 eb4@6 eb4@6 ~@12 c4@6 ab3@6 ~@3 c4@6 ~@6 ab3@3 [g3,eb4]@9 [g3,eb4]@4, ~@11 eb4@21 ~@12 g4@15 ~@9 g4@15 ~@33 g4@15 ~@18 bb3@6 g4@24 g4@24 ~@9 g4@15 ~@9 eb4@15 eb4@15 ~@22, ~@11 g3@15 ~@66 ab3@15 ~@18 bb3@6 ~@9 [bb3,d4]@12 ~@3 b3@15 g3@9 ~@9 eb4@9 c4@6 ~@15 bb3@9 ~@6 c4@12 ~@24 c4@6 bb3 ~@12, ~@20 c4@9 ~@45 c4@9 c4@15 c4@6 ~@42 f3@9 ~@9 d4@9 b3@6 c4@15 g3@9 ~@24 ab3@15 ab3@9 ~@6 ab3@9 [ab3,eb4]@9 ~@13]/6", // C5 Eb Eb5 Eb Cm Bb Ab5
  E: "[~@5 [g3,eb4]@3 bb3@2 ~ [c4,ab4]@6 eb4@3 bb3@6 ~@6 eb4@3 bb3@9 ~@12 f3@3 g3@6 ~@12 eb4@6 ~@45 eb4@3 ~@9 bb3@6 ~@3 bb3@6 ~@21 g3@3 ab3@6 ~@3 ab3@6 ~@18 c4@6 ~@6 eb4@3 c4@6 ~@39 bb4@3 ~@21 eb4@3 ~@33 c4@4, ~@2 bb3@6 ~@12 g4@15 f4@24 ~@12 g4@12 ~@30 eb4@12 c4@6 d4@24 c4@18 c4@6 ~@15 c4@6 c4@12 ~@9 c4@6 ~@9 c4@12 c4@9 c4@3 g4@9 eb4@6 g4@24 f4@37, ~@26 eb4@6 ~@15 bb3@6 bb3@6 ~@9 c4@6 c4@9 c4@18 c4@21 ab4@9 ~@39 eb4@9 ~@6 eb4@18 eb4@21 ~@9 g4@18 ~@3 g3@21 ~@15 g3@9 ~@24 ab3@13, ~@29 bb3@6 ~@9 f3@12 ~@9 g3@18 ~@6 ab3@9 ab3@6 ab3@6 ab3@6 ab3@15 ~@33 g3@12 ~@21 ab3@6 ~@6 ab3@9 ab3@9 ~@15 eb4@9 eb4@15 c4@9 ~@6 c4@12 c4@6 ~@10 c4@23 ~@4, ~@50 d4@9 eb4@18 ~@15 eb4@15 eb3@24 ~@6 f3@9 f3@9 ~@6 eb3@18 ~@66 g3@6 bb3@24 ~@9 eb4@12 ~@18 eb4@22]/7", // Cm Fm
  F: "[bb3@2 ~ bb3@2 ~@18 c4 bb3@2 ~ bb3@2 ~@3 [f3,bb3,eb4]@2 ~ bb3 ~@3 d4 ~@8, eb4@6 bb3@9 ab3@3 ab3@4 ab3@2 ~@6 bb3@2 ~@6 bb3@2 ~@8, ~@2 g3@3 g3@2 eb4@9 eb4@8 ~@7 d4@5 d4@3 ~@9, ~@8 c4@3 ab3@3 eb3@2 ~ eb3@4 eb3@3 ~@2 f3@3 f3@3 ~@2 f3@2 ~ f3@3 ~@8, ~@10 eb3@3 c4@6 c4@4 ~@12 eb4@5 ~@8]/3", // Ebsus2
  G: "[~@23 g3 ~@11 g3@2 ~@2 g3 ~@15 c4 c4@2 ~@9 ab3@2 ~@2 eb4 ~@3 bb3@2 ~@8 f3@2 ~@4 g3@2 ~@2 d4, ~@8 g4@8 ~@3 g4@5 ~@3 f4@4 g3@2 g3@2 ~@2 g3@2 ~@2 g3@2 g4@4 eb4@3 eb4@4 eb4@4 eb4@4 eb4@3 eb4@6 ~@3 eb4@5 eb4@9 ~@2 g4@6, ~@9 bb3@4 bb3@3 c4@2 c4@3 c4@3 ~@2 bb3@3 bb3@3 g4@8 eb4@6 c4@2 c4@3 c4@4 ~@4 c4@4 c4@9 bb3@3 ~@3 bb3@4 bb3@6 ~@8, ~@10 eb4@4 eb4@8 eb4@2 d4@6 d4@4 d4@4 d4@10 ~@21 f4@3 ~@5 g4@3 d4@3 d4@4 d4@2 d4@4 d4@2 ~, ~@11 g3@4 g3@2 g3@6 ~@2 f3@7 ~@10 c4@3 g3@3 ~ g3@4 g3@3 ~@5 g3@3 ab3@3 ~@3 ab3@2 ~ g3@7 ~ f3@4 ~@3 g3@3 ~@3 g3@2]/6",
  H: "[[g3,eb4]@6 ~@3 g3@6 ~@3 g3@6 [bb3,eb4]@14 ~@3 bb3@6 ~@6 g3@3 ab3@6 ~@3 ab3@6 ~@6 c4@3 [ab3,eb4]@6 ~@3 [ab3,eb4]@7, ~@6 c4@9 c4@6 ~@17 g3@9 g3@6 ~@21 ab3@6 ~@16, ~@9 eb4@15 ~@17 eb4@15 eb4@24 ~@16, ~@50 bb3@6 ~@6 c4@9 c4@6 ~@9 c4@9 ~]/2", // Cm Eb5 Ab5
  I: "~@5 c4@3 [bb3,d4]@6 ~@18 [f3,bb3,eb4]@6 ~@3 [bb3,eb4]@3 d4@3 f3, ~@2 [ab3,eb4]@6 ~@6 f3@9 f3@6 d4@15 ~@4, ~@17 [bb3,d4]@9 bb3@6 ~@6 f3@6 ~@4", // Bb Ebsus2 Eb5 Ab5 Bb
  J: "[~@5 d4@3 ~@9 bb4@6 ~@6 eb4@3 ~@21 c4@3 ~@15 d5@6 bb4@3 g4@2 ~@7 g3@6 d4@6 d4@3 ~@81 eb4@6 ~@6 ab3@3 ~@30 bb3@3 ~@12 bb3@3 ~@9 g4@6 ~@6 g3@3 ~@21 c4@3 ~@21 g3@3 ~@21 c4@3 ~@21 eb4@3 ~@9 bb3@6 g3, ~@2 bb3@6 g4@15 bb4@9 ~@3 c4@18 ~@6 bb3@21 ~@27 c4@12 g3@6 eb4@21 c4@6 c4@6 c4@9 c4@6 c4@27 bb3@9 bb3@15 bb3@6 ~@3 d4@15 ~@3 d4@12 d4@9 ~@3 d4@21 ~@6 bb3@9 bb3@9 c4@9 c4@12 ~@9 c4@12 c4@6 ~@3 bb3@6 ~@7, ~@14 eb4@12 g4@6 g4@15 g4@9 f4@18 ~@12 g4@18 g4@24 ~@9 d4@12 eb4@21 eb4@6 ~@6 f4@18 ~@6 g4@18 ~@18 f4@9 ~@15 g4@6 g4@15 c4@3 g4@6 ~@9 g4@15 ~@33 eb3@15 ~@16, ~@38 eb4@12 eb4@6 ~@6 d4@18 ~@3 d4@12 ~@15 eb4@12 c4@6 c4@6 c4@9 g4@9 ~@9 g4@15 ~@18 eb4@21 eb4@6 eb4@15 ~@3 bb3@6 ~@9 b3@18 ~@6 eb4@18 eb4@18 eb4@12 eb4@9 eb4@9 eb4@21 ~@3 eb4@16, ~@41 c5@15 ~@9 bb4@12 ~@36 d4@15 ~@3 g3@21 ~@3 g3@21 ab3@15 ab3@6 ~@6 g3@15 g3@6 ~@3 f3@9 f3@12 g3@21 ~@12 g3@15 ~@3 g3@18 ~@6 ab3@15 ab3@6 ~@3 ab3@12 ab3@9 ~@6 g3@9 ~]/8",
  K: "[~@5 eb4@3 ~@21 bb3@3 ~@21 bb3@3 ~@9 c4@6 ~@54 eb4@3 ~@45 g3@3 c4@6 ~@39 ab3@3 eb4@15 [g3,c4,eb4]@9 [g3,eb4]@12 ~@3 [g3,bb3,eb4]@2 ~@4 g3@3 [g3,c4,eb4]@15 [g3,c4,eb4]@2 ~@7 ab3@20 ~@6 f4@6 ~@10 bb3@6 ~@30 ab3@3 c4@7, ~@2 bb3@6 ~@3 eb4@6 g4@15 f4@24 ~@6 eb4@12 c4@6 c4@6 c4@12 c4@6 ~@3 c4@6 c4@6 ab3@9 ~@3 f3@18 g3@6 ~@3 g3@15 ~@18 ab3@9 ~@9 ab3@9 eb3@6 g3@9 ~@83 ab3@13 ~@6 g3@18 ~@9 ab3@12 ~@10, ~@14 bb3@6 bb3@6 g3@6 ~@3 bb3@6 f3@6 d4@9 d4@21 eb4@12 eb4@12 eb4@15 eb4@6 c4@6 d4@6 bb3@9 bb3@9 ~@3 c4@12 c4@9 ~@6 c4@12 c4@6 ~@15 c4@9 ~@72 [c4,eb4]@32 ~@19 bb3@6 c4@15 c4@9 ~@7, ~@23 eb4@9 ~@6 d4@6 bb3@6 f3@6 ~@3 g3@12 g3@9 ~@3 ab3@12 ab3@9 ~@6 ab4@18 ~@9 f4@15 eb4@18 eb4@8 ~@7 eb4@15 ~@6 eb4@18 ~@105 eb4@21 eb4@9 eb4@18 ~@7, ~@146 d4@7 ~@8 g4@15 ~@21 ab4@27 ~@120 g4@9 ~@18 eb3@6 ~@7]/8", // Cm Eb Cm
  L: "[~@14 c4@3 bb3@6 ~@18 [bb3,eb4]@6 ~@3 [bb3,eb4]@3 ~@9 d4@3 eb4@11 ~@4 [g3,c4,eb4] ~@8 [g3,eb4]@12 ~@3 [g3,bb3,eb4]@2 ~@4 g3@3 [g3,c4,eb4]@15 [g3,c4,eb4]@2 ~@8 ab3@19 ~@7 f4@6 ~@9 bb3@6 ~@30 ab3@3 ~@21 c4@3 ~@3 g3@3 eb4@3 bb3@6 g4@2 ~ bb3@2 ~ eb4@3 ~@9 c4@6 ~@6 ab3@3 ~@18 bb3@6 ~@16 ab3@4 c4@2, ~@2 c4@9 ab3@6 eb4@21 d4@15 d4@9 ~@76 [c4,eb4]@32 eb4@18 bb3@6 c4@15 c4@9 c4@9 c4@12 ~@27 c4@9 ~@9 c4@6 ~@6 bb3@12 ~@6 c4@19 ~@3, ~@8 eb3@9 ~@6 f3@6 d4@6 bb3@6 ~@18 bb3@6 ~@120 g4@6 eb4@9 eb4@18 ~@6 ab3@12 ab3@6 ~@27 ab3@12 ab3@6 ~@6 f3@6 f3@12 ~@6 eb3@19, ~@26 bb3@6 f3@9 ~@6 f3@6 ~@3 f3@9 g3@5 ~@87 ab3@13 ~@6 g3@18 ~@9 ab3@9 eb3@6 ~@3 eb3@12 eb3@9 ~@30 eb4@18 d4@15 d4@9 ~@7 ab3@9 ~@6, ~@27 eb4]/7", // Eb5 Cm Eb Cm
  M: "[~ ab3@3 ~@4 eb4@63 ~@25]/2",
})).s("gm_acoustic_guitar_steel").gain(0.15)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@2 A@7 B C@2 D@2 E F ~@2 G H ~@3 I@2 ~ J ~@6 K ~@2 L M@2 N O P ~ Q ~@5 R ~ S ~@2 T@2 U ~@2 V W X Y@2
>`.pickRestart({
  A: "[~@35 bb3@23 ~@25 bb3@21 ~@3 bb3@24 c4@19 ~@5 bb3@23 ~@16 c4@4 ~@29 g3@24 ~@18 d4@6 [b3,d4]@18 ~@43, ~@107 d4@13 ~@59 a3@23 ~@49 bb3@24 ~@61]/7", // Bm
  B: "~@2 bb3@9 ~@15 c4@9 ~@13", C: "[~@2 c4@9 ~@15 f3@9 ~@9 [f3,bb3]@9 ~@3 d4@3 bb3@9 ~@28]/2",
  D: "[~@8 eb4@3 ~@21 bb3@3 ~@9 g3@9 g3@6 ~@18 c4@6 ~@13, ~@2 ab3@9 ~@15 bb3@6 ~@42 g3@9 ~@13, ~@5 c4@6 ~@18 d4@6 ~@61]/2",
  E: "~@5 c4@6 ~@37", F: "~@8 c4@4 ~@14 g3@9 ~@13", G: "~@41 bb3@7", H: "~@41 d4@7", I: "[~@38 g3@15 ~@43]/2",
  J: "~@8 ab3@3 ~@5", K: "~@9 g3@4 ~@3", L: "~@7 c4 ~@8", M: "[~@47 c4@6 ~@43]/2", N: "~@11 bb3@21 ~@16",
  O: "~@13 f4@3 ~@8", P: "~ g3@3 ~@20", Q: "~@41 bb3@3 ~@4", R: "~@19 d4@5", S: "~@11 c4@12 ~@18 g3@6 ~",
  T: "[~@20 ab3@6 ~@21 eb3@9 ~@40]/2", U: "~@5 bb3@2 ~@19 g3@2 ~@20", V: "~@5 ab3@6 ~@37",
  W: "~@2 bb3@3 ~@43, ~@2 eb4 ~@45", X: "~@23 f3@3 ~@22", Y: "[~ [g3,bb3]@16 ~@7]/2",
})).s("gm_acoustic_guitar_steel").gain(0.09)

// chords · orchestral harp
const orchestral_harp = note("<~@30 A B C D E F G@3 H@2 I@2 J@8 K@3 L@2 M@8>".pickRestart({
  A: "~@30 g4@3 f4@3 eb4@3 ~@3 eb4@2 ~ g4@2 ~, ~@24 eb3@17 ~@7, ~@27 bb3@9 ~@3 bb3@5 ~@4",
  B: "~@7 ab4 ~@7 f4, ab3@8 ~@3 d5@5, ~ eb4@4 ab4 eb4@2 d4@5 f4 d4@2, ~@2 ab4@2 c5@4 ~ f4@3 bb4@4, ~@3 eb5@5 ~@2 f5@6",
  C: "~@7 d4 ~@7 c4, g3!2 c3@2, ~ d4@2 d4@2 d4@2 ~ eb4@2 g4@3 eb4@3, ~@2 g4@4 g4@2 ~ c4@5 [g3,g4]@2, ~@11 eb4 c5@4", // G
  D: "eb4 ~@6 eb4 ~@7 eb4, bb2@8 ~@3 c5@5, ~ c4@3 g3@4 g3@8, ~@2 g4@3 c4@3 ~ c4@4 eb4 c4@2, ~@3 eb4@3 g4@2 ~@2 eb4@2 g4@4",
  E: "~@7 eb4 ~@7 eb4, ab3 g3, ~ c4@2 c4@2 eb4@2 ~@3 eb4@2 g4@4, ~@2 eb4@2 f4@4 ~@3 bb4@5, ~@6 c4@2 ~ bb3@4 eb4 bb3@2",
  F: "~@7 bb3 ~@7 d4, bb2@8 ~@3 d4@4 ~, ~ f3@4 bb3 f3@2 g3@5 g3@3, ~@2 bb3@2 d4@4 ~ b3@3 b3@2 b3@2, ~@3 f4@5 ~@2 g4@6",
  G: "[~@21 g4@3 ~@29 eb4@3 ~@21 eb4@3 ~@21 c4@3 ~@21 bb3@3 bb2@2 ~@10 bb3@3 f3, c3@18 c4@6 ~@11 bb3@9 g4@3 eb4@3 bb3@6 ~@3 ab3@21 ab3@12 ab3@12 ~@3 f3@12 bb3@3 f3@6 ~@3 f3@12 ~, ~@3 g3@21 eb3@32 f3@24 ~@24 bb2@24 ~@16, ~@6 d4@18 ~@17 bb4@15 ~@9 eb4@3 ab4@12 ~@6 eb4@12 eb4@6 ~@9 eb4@15 ~@9 d4@7, ~@9 eb4@3 g4@3 eb4@9 ~@14 f4@18 ~@6 c4@9 eb4@3 c4@6 ~@3 c4@6 c4@6 c4@6 ~@9 bb3@6 d4@12 ~@6 bb3@6 ~@4]/3",
  H: "[~@2 bb2@3 ~@24 g4@3 ~@21 ab4@3 ~@21 f4@3 ~@12 g3@3 d4, ~@5 f3@21 eb4@6 ~@3 eb4@12 ab4@3 eb4@6 d4@15 f4@3 d4@6 g3@12 ~@4, ~@8 eb3@24 ~@9 eb5@15 ~@6 f5@18 ~@16, ~@11 bb3@6 f4@15 ~@6 ab4@6 c5@12 ~@3 f4@9 bb4@12 ~@3 d4@6 d4@6 ~, ~@14 g4@6 eb4@3 bb3@9 ab3@24 ~@9 d5@15 ~@6 g4@10]/2",
  I: "[~@5 d4@3 ~@21 c4@3 ~@21 c4@3 [a2,g4]@3 ~@18 eb4@3 ~@12 eb4@3 c4, ~@2 g4@6 c3@15 g4@3 eb4@6 ~@6 eb4@6 c5@3 g4@3 eb4@6 ~@6 c4@12 c4@6 ~@3 c4@12 ~, ~@11 g3@21 bb2@24 ~@12 g4@12 ~@9 f4@7, ~@14 d4@18 ~@3 g3@21 ~@3 g3@21 ab3@16, ~@17 eb4@3 c5@12 ~@9 eb5@15 ~@9 eb4@6 eb4@6 ~@9 eb4@6 ~@4]/2", // A7
  J: "[~@5 eb4@3 ~@21 eb4@3 ~@21 bb3@3 ~@6 g4@6 ~@9 g4@3 c5@3 ~@18 eb4@3 ~@21 eb4@3 ~@21 c4@3 ~@21 ab3@3 ~@21 bb3@3 ~@9 eb4@3 ~@9 g3@3 ~@21 d4@3 ~@21 eb4@3 ~@21 ab4@3 ~@21 c4@3 ~@21 d4@3 ~@21 eb4@3 ~@12 ab4@3 eb4, ~@2 ab4@6 eb3@24 bb2@18 d4@6 ~@3 d4@12 d4@9 c4@15 eb4@3 c4@6 bb3@18 bb3@6 f3@18 eb4@6 ~@3 c4@6 c4@9 c4@6 ~@3 bb3@9 eb4@3 bb3@3 g3@6 ~@3 g3@9 ~@21 bb4@15 ~@6 g4@6 g4@12 ~@6 ab4@6 c5@3 ab4@3 eb4@6 ~@6 eb4@6 eb4@12 ~@6 d4@9 bb4@3 f4@6 g4@12 g4@12 ~@6 eb4@9 ~, ~@11 g3@21 ~@3 f3@21 g3@24 ~@12 d4@12 ~@6 eb4@9 eb4@6 ~@6 ab3@21 ab3@21 ~@3 eb3@24 eb3@12 [eb3,g4]@12 d3@24 ~@9 c5@15 ~@9 eb5@15 ~@9 ab4@15 ~@9 f4@3 d5@12 ~@6 c5@18 ~@9 c5@7, ~@14 bb3@9 eb4@3 bb3@6 ~@6 bb3@9 f4@9 ~@12 g4@9 ~@6 g4@6 g4@15 ~@3 g4@9 g4@12 ~@6 c4@9 ab4@9 ~@6 eb4@9 eb4@9 ~@6 f4@18 ~@6 bb3@6 ~@6 bb3@6 ~@3 bb3@21 c4@18 c4@6 f3@24 ab3@18 ab3@6 d3@24 ~@9 d4@15 ~@3 c4@13, ~@17 eb4@3 bb4@12 ~@9 d4@3 bb4@12 ~@18 b4@6 ~@6 c5@18 ~@9 bb4@15 ~@9 eb4@3 c5@12 ~@12 ab4@12 ~@9 g4@15 ~@15 eb4@9 ~@6 f4@6 f4@3 d4@3 f4@6 ~@3 eb4@12 eb4@6 ~@6 c4@21 ~@3 c4@12 c4@6 ~@6 bb3@21 ~@3 eb4@12 eb4@3 c4@6 ab3@16]/8", // Eb
  K: "[~@5 eb4@3 ~@21 c4@3 ~@21 c4@3 ~@21 c4@3 ~@18 a3@6 [ab3,c4,eb4]@26 ~@14, ~@2 c4@6 ab3@24 g3@24 bb3@24 a3@15 eb4@9 ~@40, ~@11 c4@12 c4@6 ~@6 c4@15 g4@6 ~@6 eb4@6 c5@12 ~@9 c5@15 ~@40, ~@14 eb4@6 eb4@6 eb4@6 ~@9 eb4@3 c5@12 ~@9 g4@6 eb4@9 ~@3 c4@21 ~@40, ~@17 ab4@15 ~@6 g4@9 eb4@9 ~@3 c4@15 g4@6 ~@6 eb4@6 g4@12 ~@40]/3", // Ab
  L: "[~@17 [ab3,eb4]@18 ~@6 [ab3,c4,eb4]@19 ~@5 [f3,bb3,d4]@25 ~@6, ~@8 c4@9 ~@31]/2", // Ab5 Ab Bb
  M: "[~@38 c4@3 ~@21 eb5@3 ~@21 g4@3 ~@15 ab4@18 ~@21 g4@3 ~@21 eb4@3 ~@9 eb4@6 ~@3 ab4@3 c5@2 ~@22 bb4@3 ~@21 c5@3 ~@21 f4@3 ~@23 c4@5 ~@16 eb5@45 ~@29, ~@17 c3@18 eb4@6 ~@3 c4@9 eb5@3 c5@3 g5@6 ~@9 c5@3 g5@6 c5@7 ~@9 f4@23 ~@6 g4@9 eb5@3 bb4@6 ~@6 ab4@9 c5@11 ~@4 ab4@12 ~@12 eb4@6 bb4@3 g5@3 eb5@6 ~@3 ab4@6 ab4@9 ab4@6 ~@3 f4@9 f4@6 bb4@6 ~@3 c5@25 ~@9 f4@2 g4@2 bb4@48 ~@29, ~@20 g3@21 g3@24 a3@24 ~ ab3@32 g3@24 ab3@24 ab3@22 ~@2 eb3@24 ~@12 c5@9 ~@12 bb4@6 d4@9 [c4,eb4]@13 c4@7 eb4@8 ~@4 bb3@57 ~@29, ~@23 c4@9 g4@9 ~@6 eb4@18 ~@3 eb4@22 ~@4 eb4@28 ~@3 eb4@21 ~@3 eb4@15 ab4@9 eb4@6 ~@6 eb4@6 ~@6 bb3@21 ~@6 eb5@18 ~@6 d5@18 ~@7 ab4@21 ~@7 eb4@54 ~@29, ~@26 eb4@3 c5@21 g4@15 ~@6 g4@9 eb5@9 ~@42 bb4@3 g5@12 ~@9 eb5@15 ~@9 c5@12 ~@12 g4@15 [eb4,c5]@15 eb4@9 bb3@24 ~@10 eb4@6 ab3@12 eb3@61 ~@29]/8", // Cm
})).s("gm_orchestral_harp").gain(0.12).pan(0.8)

// other · flute
const flute = note("<~@24 A@2 B C ~@24 D@4 ~ E@5 ~@2>".pickRestart({
  A: "[~@38 c5@21 f4@18 ~ f5@16 ~@2]/2", B: "eb5@15 ~@3 bb4@6 c5@16 ~@2 c5@6", C: "f4@17 ~ eb4@6 f4@23 ~",
  D: "[~@35 c5@21 f4@23 ~@3 f5@6 ~ eb5@16 ~@2 bb4@6 c5@16 ~@2 c5@6 f4@17 ~ eb4@6 f4@23 ~@8]/4",
  E: "[~@20 c5@21 ~ f4@23 ~@3 f5@6 eb5@16 ~@2 bb4@6 c5@16 ~@2 c5@6 f4@17 ~ eb4@53 ~@47]/5",
})).s("gm_flute").gain(0.15).pan(0.9)

// drums · kick
const kick = s("bd").struct(`<
  ~@30 A B C D E F G H I J K L M N O P Q R S@2 T U V W X Y Z AA AB AC AD AE AF ~
>`.pickRestart({
  A: "~@8 x ~@2 x ~ x ~ x", B: "~ x ~ x ~@3 x!2 ~@2 x ~@4", C: "~@2 x ~@4 x!2 ~@4 x ~@2", D: "~ x ~@3 x ~@2 x ~@6 x",
  E: "x ~@5 x ~ x ~@2 x ~@4", F: "~ x ~ x ~@3 x ~@8", G: "x ~@8 x ~@8 x ~@2 x ~@2 x ~@16 x ~@6",
  H: "~@5 x ~@2 x ~@8 x ~@14 x ~@15", I: "~@8 x ~@8 x ~@14 x ~@2 x ~@5 x ~@6",
  J: "~@8 x ~@8 x ~@5 x ~@2 x ~@8 x ~@5 x ~@6", K: "~@8 x ~@8 x ~@11 x ~@2 x ~@2 x ~@11 x",
  L: "~@8 x ~@8 x ~@8 x ~@2 x ~@11 x ~@6", M: "~@5 x ~@2 x ~@8 x ~@8 x ~@8 x ~@5 x ~@6",
  N: "~@5 x ~@17 x ~@2 x ~@8 x ~@5 x ~@6", O: "~@5 x ~@2 x ~@8 x ~@5 x ~@11 x ~@8 x ~@2 x",
  P: "~@8 x ~@8 x ~@8 x ~@8 x ~@12", Q: "~@8 x ~@11 x ~@8 x ~@11 x ~@5 x", R: "~@8 x ~@23 x ~@8 x ~@6",
  S: "~@2 x ~@2 x ~@2 x ~@8 x ~@14 x ~@8 x ~@6", T: "~@5 x ~@2 x ~@8 x ~@5 x ~@5 x ~@2 x ~@8 x ~@6",
  U: "~@5 x ~@2 x ~@8 x ~@11 x ~@2 x ~@15", V: "~@5 x ~@2 x ~@20 x ~@2 x ~@15", W: "~@8 x ~@32 x ~@6",
  X: "~@17 x ~@23 x ~@6", Y: "~@17 x ~@8 x ~@8 x ~@2 x ~@8 x", Z: "~@8 x ~@5 x ~@2 x ~@20 x ~@2 x ~@6",
  AA: "~@17 x ~@24 x ~@5", AB: "~@13 x ~@10", AC: "~ x ~@11 x ~@10", AD: "~@2 x ~@8 x ~@5 x ~@11 x ~@2 x ~@8 x ~@5 x",
  AE: "~@2 x ~@8 x ~@5 x ~@11 x ~@3 x ~@8 x ~@5", AF: "~ x ~@2 x ~@43",
})).gain(0.18)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@31 A B C D E ~@2 F G H ~ I ~@2 J K F L@2 ~@5 M ~ N ~@6>".pickRestart({
  A: "~@13 x ~@2", B: "~ x ~@14", C: "~@3 x!2 ~@11", D: "~@5 x ~@10", E: "~@11 x ~@4", F: "~@5 x ~@42", G: "~@19 x ~@4",
  H: "~@5 x ~@20 x ~@21", I: "~@23 x ~@24", J: "~@5 x ~@35 x ~@6", K: "~@5 x ~@11 x ~@30", L: "~@23 x ~@5 x ~@18",
  M: "~@11 x", N: "~ x ~@5 x ~@16",
})).gain(0.09)

// drums · snare
const snare = s("sd").struct("<~@30 A B C D E F G H I H J K H L M H N O P@2 Q R M S ~ T U V W X Y Z ~@2>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@2 x ~@4 x ~@3", D: "~@5 x ~@6 x ~@2 x", E: "~@2 x!2 ~@2 x ~",
  F: "~@4 x ~@7 x ~@2 x", G: "~@3 x ~@7 x", H: "~@20 x ~@8 x ~@14 x ~@3", I: "~@5 x ~@14 x ~@27",
  J: "~@5 x ~@14 x ~@8 x ~@18", K: "~@5 x ~@14 x ~@14 x ~@8 x ~@3", L: "~@2 x ~@2 x ~@2 x ~@11 x ~@8 x ~@11 x ~@6",
  M: "~@5 x ~@14 x ~@8 x ~@14 x ~@3", N: "~@5 x ~@14 x ~@8 x ~@11 x ~@2 x ~@3",
  O: "~@2 x ~@2 x ~@2 x ~@14 x ~@2 x ~@2 x ~@14 x ~@3", P: "~@11 x ~@8 x ~@23 x ~@3", Q: "~@5 x ~@14 x ~@23 x ~@3",
  R: "~@14 x ~@5 x ~@2 x ~@5 x ~@14 x ~@3", S: "~@5 x ~@35 x ~@6", T: "~@11 x", U: "~@5 x ~@2 x ~@5 x ~@14 x ~@8 x ~@9",
  V: "~@5 x ~@8 x ~@14 x ~@8 x ~@9", W: "~@13 x ~@10", X: "~@20 x!2 ~@2", Y: "~@7 x ~@11 x ~@4", Z: "~@14 x ~@24 x ~@8",
})).gain(0.18)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@31 A ~ B C ~ D E F G H I ~@2 J ~@14 K L ~@3>".pickRestart({
  A: "~@7 x ~@8", B: "~ x ~@2", C: "~@7 x!2 ~@7", D: "~ x ~@14", E: "~@5 x ~@42", F: "~@44 x ~@2 x",
  G: "~@2 x ~@2 x ~@29 x ~@12", H: "~@41 x ~@6", I: "~@29 x ~@2 x ~@15", J: "~@35 x ~@12", K: "~@41 x ~ x!5",
  L: "x!2 ~@46",
})).gain(0.09)

// drums · low tom
const low_tom = s("lt").struct("<~@51 [~@2 x] ~@4 [~ x ~@22] ~@7>").gain(0.18)

// drums · hihat
const hihat = s("hh").struct("<~@30 A B C D E F G H I J K L K M K N O P Q@3 R ~@12>".pickRestart({
// … 55 more lines

More by Elton John