Strudelify

Tonite (reprise)

The Smashing Pumpkins

KeyF♯ majorTempo142 bpm
0:00/0:00
// Tonite (reprise) — The Smashing Pumpkins
// 142.2 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 158 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(142.2/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 · electric guitar clean
const electric_guitar_clean = note(`<
  ~ A B C D@4 E@3 F G@4 H@2 I@6 J@3 K@6 L@7 M@4 N@7 O@7 P@2 Q@7 R@5 S T U V@3 W@4 X Y@3 Z AA@3 AB AC@3 AD AE@7 AF@7 P@2
  AG@7 AH@3 AI@3 AJ@3 AK AL@7 AM AN@8 AO@2 AP@3 AQ@7 ~@2
>`.pickRestart({
  A: "c#4@2 ~@2 f#3 [f#2,c#3,a#3]@3, [f#2,c#3]@5 ~@3, f#3@4 ~ f#3 ~@2, a#3@3 ~@5, ~@2 c#4@3 c#4@2 ~", // F# F#5
  B: "~@2 f#3 [f#3,a#3,c#4]@3 [f#3,a#3,c#4]@2, [f#2,c#3,a#3,c#4]@3 [f#2,c#3]@5", // F# F#5
  C: "c#4@2 ~@2 f#3 [f#2,c#3,f#3,a#3,c#4]@3, [f#2,c#3]@5 ~@3, f#3 ~, a#3@3 a#3@2 ~@3, ~@2 c#4@3 ~@3", // F# F#5
  D: "[[f#2,c#3,f#3,a#3,c#4]@3 [f#2,c#3,f#3,a#3,c#4]@3 [f#3,a#3]@2 a#3@2 ~@2 a#2 [d#2,a#2,d#3,f#3,a#3]@3 a#3@3 a#3@3 a#3@2 ~@7 d#3, ~@3 [f#2,c#3,c#4]@8 ~ a#3@2 ~@2, ~@8 [d#3,f#3]@5 ~@3 f#3@5 ~ d#3@5 d#3@4 ~, ~@8 d#2@3 d#2@2 ~@3 [d#2,a#2,d#3]@6 [d#2,a#2]@6 [d#2,a#2,a#3]@4, ~@10 a#3@3 ~@9 f#3@4 f#3@4 ~@2]/4", // F# D#m F#5 D#m D#5
  E: "[[d#2,a#2,d#3,f#3,a#3]@3 [d#2,a#2,d#3,f#3,a#3]@3 [f#3,a#3]@2 c#4@2 ~@2 f#3 [f#2,c#3,f#3,a#3,c#4]@3 [f#2,c#3,f#3,a#3,c#4]@3 [f#2,c#3,f#3,a#3,c#4]@3 [f#2,c#3,f#3,a#3,c#4]@2, ~@3 [d#2,a#2,d#3]@8 ~, ~@8 [f#2,c#3]@5 ~@11, ~@8 f#3@3 a#3@2 ~@11, ~@8 a#3@2 c#4@3 ~@11]/3", // D#m F# D#5 F#5
  F: "c#4@2 ~@2 f#3 [f#2,c#3,a#3,c#4]@3, [f#2,c#3]@5 ~@3, f#3@4 ~ f#3@2 ~, a#3@3 a#3@2 ~@3, ~@2 c#4@3 ~@3", // F# F#5
  G: "[[f#2,c#3,f#3,a#3,c#4]@3 c#4@3 ~ d#2 ~@2 a#3@2 ~@3 a#3 a#3@2 a#3 [d#2,a#2,a#3]@3 d#3@2 ~@2 [f#3,a#3]@2 a#3@2 a#3@2, ~@3 [f#2,c#3]@16 ~@5 d#3@4 ~@4, ~@3 [f#3,a#3]@5 d#2@2 d#3@4 a#2@2 [d#3,f#3]@6 [f#3,a#3]@4 ~@2 f#3@3 ~, ~@3 c#4@8 ~@5, ~@8 a#2@2 f#3@2 a#3 d#2@3 [d#2,a#2]@3 ~@3 [d#2,a#2]@6 [d#2,a#2,d#3]@4]/4", // F# D#5 F# F#5 F# D#m F# D#5
  H: "[[d#2,a#2,d#3,f#3,a#3]@3 [d#2,a#2,d#3,f#3,a#3]@3 f#3@2 [b2,f#3,b3,d#4,f#4]@4 [f#2,c#3,f#3,a#3,c#4]@4, ~@3 [d#2,a#2,d#3,a#3]@3 ~@2]/2", // D#m B F# D#5
  I: "[[c#2,g#2,c#4]@3 ~@5 f#3@4 [c#3,c#4]@4 [c#2,g#2,c#4]@3 ~@5 f#3@4 [c#3,c#4]@4 [c#2,g#2,c#3,g#3,c#4]@6 [c#3,c#4]@2 [f#2,c#3,a#3,c#4]@6 [f#2,c#3,c#4]@2, c#3@5 c#3@7 [f#2,a#3]@12 [b2,b3,d#4,f#4]@16 f#3@8, g#3@4 ~@4 [b2,b3,d#4,f#4]@11 c#4@9 ~@18 a#3 ~, ~@3 [c#2,g#2]@13 [c#3,g#3]@3 [c#2,g#2]@13 ~@6 [c#2,g#2,g#3]@10, ~@3 c#4@9 f#3@9 c#3@7 [f#2,f#3,a#3]@12 ~@8]/6", // C#5 C# C#5 C# C#5 C# F# F#5 …
  J: "[~@20 a#4@3 a#4, c#3@5 f#3@12 a#4@2 c#4@3 ~@2, f#3@3 f#2@3 f#2@16 ~@2, f#2@3 a#3@8 c#4 a#4@2 c#4 a#4 c#3@8, ~ c#4@2 c#3 b2@8]/3",
  K: "[~ a#4@3 ~@42 c#4@2, b2 b2 b2, ~@4 a#4@3 a#4@2 a#4@3 a#4@3 ~@2 a#4@3 a#4@3 a#4@2 ~@3 a#4@3 a#4@2 ~@3 a#4@3 a#4@2 ~@3 a#4@3 ~, ~@6 c#4@5 c#4@3 c#4@5 c#4@3 c#4@5 c#4@3 c#4@5 c#4@3 c#4@5 c#4@3 ~@2, ~ c#3@2 c#3@2 c#3]/6",
  L: "[~@27 c#4, b2@2 d#3@2 b2@2 b2, ~ a#4@3 a#4@3 a#4@2 a#4@2 c#4@3 c#4@5 c#4@3 c#4@5 c#4@3 c#4@5 c#4@3 c#4@5 c#4@3 c#4@5 c#4@3 ~@2, ~@3 c#4@3 c#4@4 f#4@2 a#4@3 a#4@2 ~@3 a#4@3 a#4@2 ~@3 a#4@3 ~@5 a#4@3 a#4@2 ~@3 a#4@3 a#4@2 ~@3 a#4@3 ~, ~ c#3@2 f#3@2 c#3@2]/7",
  M: "[~ a#4@3 ~@19 a#4@2 ~@6 a#4, c#3 c#3, ~@4 a#4@3 a#4@2 a#4@2 c#4@3 c#4@5 c#4@3 c#4@5 c#4@3 c#4@2, ~@6 c#4@4 f#4@2 a#4@3 ~@5 a#4@3 ~@5 a#4@3 ~, ~ b2@2 ~]/4",
  N: "[~@17 a#4@3 ~@8 a#4@3 ~@21 a#4@3 ~, f#3@2 c#3@2 c#3@2 c#3, ~@3 c#4@3 c#4@5 c#4@3 c#4@5 ~@3 c#4@5 ~@8 c#4@3 c#4@5 c#4@3 c#4@5 c#4@3 ~@2, ~@4 a#4@3 a#4@2 ~@3 a#4@3 a#4@2 ~@3 a#4@3 a#4@2 ~@6 a#4@2 ~@3 a#4@3 a#4@2 ~@3 a#4@3 a#4@2 ~@7, ~ b2@2 b2@2 b2@2]/7",
  O: "[[c#3,c#4]@12 ~@12 d#3@6 ~@15 a#3@2 ~@19 a#3@3 a#3@3 ~@18 a#3@5 ~ [c#3,c#4]@12 ~@12 a#3@6 ~@36 [g#2,a#3]@6, f#2@24 [f#3,a#3]@6 d#3@3 f#3@3 a#3@3 f#3@33 b2@36 g#3@35 g#2@7 d#3@9 d#3@6 ~@3, [f#3,a#3]@12 g#2@12 [d#2,a#2]@42 g#2@29 f#2@24 [d#2,a#2]@48 ~, ~@12 [c#2,c#3,c#4]@36 a#3@3 g#3@3 d#3@3 a#3@3 g#3@35 a#3 f#3@12 g#2@12 [d#3,f#3]@6 a#3@3 f#3@3 d#3@2 a#3@6 d#3@4 a#3@9 [g#2,a#3]@9 ~@6, ~@12 g#3@30 d#3@5 g#2@16 d#3@9 a#3@3 f#3@3 d#3@3 a#3@3 f#3@3 d#3@21 [c#2,c#3,c#4]@48 g#3@9 ~@3]/7", // C# G#sus2 F# D#5 C# D#m G#sus2 C#
  P: "[~@2 [b2,f#3,b3,d#4,f#4]!2, b2 ~, a#3 a#3@3, ~@7 f#3@8 f#3@9 ~@24, ~@9 d#3@8 d#3@31]/2", // B
  Q: "[f#3@12 [c#3,c#4]@12 c#4@6 ~@6 c#3@3 ~@21 [c#3,c#4]@12 c#4@6 ~@6 c#3@3 ~@9 f#3@12 [c#3,c#4]@12 c#4@11 ~@13 [f#3,a#3]@12 ~@8 a#3@4, [b2,b3,d#4,f#4]@39 [c#3,c#4]@9 f#3 f#4@23 [c#2,g#2,c#3,g#3]@6 c#4@9 [c#2,g#2,g#3]@33 [c#2,g#2,c#3,g#3]@48, ~@12 [f#2,a#3]@48 [f#2,a#3]@48 f#2@36 d#3@12 [f#3,a#3]@5 d#3@7, ~@12 f#3@36 [b2,b3,d#4]@39 [c#3,c#4]@21 [f#3,a#3]@23 c#4@37, ~@8 [c#2,g#2,c#3,g#3]@2 c#4@3 [c#2,g#2,g#3]@7 f#3@12 [b2,b3,d#4,f#4]@16 [d#2,a#2]@8]/7", // C# F# B C# C#5 F# B C# …
  R: "[~@6 d#3@3 [d#2,a#2,d#3,f#3,a#3]@9 f#3@6 f#3@11 ~ c#4@11 c#4@9 ~@16 f#3@12 [c#3,c#4]@12 c#4@9 ~@9 c#3@6, [d#2,a#2,f#3,a#3]@9 ~@9 [d#2,a#2,d#3]@18 f#3@11 [c#2,g#2]@48 ~ [c#2,g#2]@24, ~@18 a#3@17 f#2@37 [b2,b3,d#4,f#4]@48, ~@24 [b2,b3,d#4,f#4]@23 [c#3,g#3]@9 c#4@28 ~@12 [c#3,g#3]@9 c#4@15, ~@35 c#3 a#3@48 [f#2,f#3,a#3]@36]/5", // D#m C# D#m D#5 C#5 B C#5 F#
  S: "f#3@2 ~ a#3 ~@2 c#4@2, [f#2,c#3], [a#3,c#4]@3 ~ a#3@4, ~@2 f#3@3 f#3@3, ~@2 c#4 ~", // F#5 A#m
  T: "f#3@2 f#3!2 ~ f#3 [f#3,a#3,c#4]@2, [f#2,c#3,a#3,c#4]@3 [f#2,c#3]@5, ~@3 [a#3,c#4]@3 ~@2", // F# F#5 A#m
  U: "f#3@2 ~@5 c#4, [f#2,c#3], c#4@4 c#4@3 ~, a#3@3 a#3@2 a#3@3, ~ f#3@2 f#3", // F#5
  V: "[f#3@2 f#3 [f#3,a#3,c#4]@3 [f#3,a#3]@2 d#3@2 ~@5 d#3 [d#2,a#2,d#3,f#3]@3 a#3@3 ~ f#3, [f#2,c#3,a#3,c#4]@3 [f#2,c#3]@16 ~@5, ~@3 c#4@8 a#3, ~@8 [d#2,a#2,a#3]@3 f#3 [d#2,a#2,a#3]@4 ~@3 [d#2,a#2,d#3]@5, ~@10 d#3@4 f#3@2 a#3@2 ~ f#3@4 ~]/3", // F# D#m F# F#5 D#5
  W: "[d#3@2 ~@8 f#3 [d#2,a#2,d#3,f#3,a#3]@3 [f#3,a#3]@2 c#4@2 ~@2 f#3 [f#2,c#3,f#3,a#3,c#4]@3 [f#2,c#3,f#3,a#3,c#4]@3 c#4@3 ~ a#3, [d#2,a#2]@8 [d#2,a#2,a#3]@3 ~@5 [f#2,c#3]@5 ~@6 [f#2,c#3,f#3]@5, a#3@4 a#3@3 ~@9 a#3@2 c#4@3 ~@9 c#4@2, f#3@3 f#3@2 ~@11 f#3@3 a#3@2 ~@6 a#3@4 ~, ~@2 d#3@4 d#3@5 ~@3 [a#2,d#3]@16 ~@2]/4", // D#m F# D#5 F#5 D#5
  X: "f#3@3 ~@4 c#4, [f#2,c#3], a#3@5 a#3@3, c#4@4 c#4@3 ~, ~@3 f#3@3 f#3@2", // F#5
  Y: "[f#3@2 f#3 [f#2,c#3,f#3,a#3,c#4]@3 [f#3,a#3]@2 [d#3,f#3,a#3]@3 d#3@2 ~@2 f#3 d#3@2 d#3 [d#3,f#3,a#3]@3 [d#3,f#3,a#3]@2, [f#2,c#3,a#3,c#4]@3 ~@3 [f#2,c#3,c#4]@16 ~@2, ~@8 [d#2,a#2]@8 [d#2,a#2,f#3,a#3]@3 [d#2,a#2]@5, ~@11 f#3@3 a#3@2 ~@8, ~@11 a#3@2 d#3@3 ~@8]/3", // F# D#m F# F#5 D#5 D#m D#5
  Z: "[d#2,a#2,d#3,f#3]@3 [d#3,f#3,a#3]@3 ~ d#2, a#3 ~@2 [d#3,f#3,a#3]", // D#m
  AA: "[[d#2,a#2,d#3,f#3,a#3]@3 [d#3,f#3,a#3]@3 f#3 c#4 [f#3,a#3,c#4]@3 ~@4 [f#2,c#4] [f#2,c#3,f#3,a#3,c#4]@3 c#4@3 ~ a#3, ~@3 [d#2,a#2]@16 [f#2,c#3,f#3]@5, ~@3 d#3@8 c#4, ~@6 a#3@2 c#3@3 c#4@2 f#2 c#3@2 ~@8, ~@8 f#2@3 [f#3,a#3]@5 ~@3 a#3@4 ~]/3", // D#m F# F#5 F# D#5 F#5 F#
  AB: "f#3@2 f#3 c#4@2 c#4!3, [f#2,c#3,a#3,c#4]@3 [f#2,c#3]@5, ~@3 [f#3,a#3]@3 [f#3,a#3]@2", // F# F#5 F#
  AC: "[c#4@2 c#4 [f#2,c#3,f#3,a#3,c#4]@3 f#3@2 [d#2,a#2,d#3,f#3,a#3]@3 a#3@2 ~ f#3@2 [d#2,a#2,d#3,f#3,a#3]@3 a#3@3 a#3@2, [f#2,c#3,f#3,a#3]@3 ~@3 [f#2,c#3,c#4]@16 ~@2, ~@6 a#3 ~@4 [d#2,a#2,d#3]@5 ~@3 [d#2,a#2,d#3]@5, ~@11 f#3@3 ~@5 f#3@4 ~, ~@13 a#3@3 ~@8]/3", // F# D#m F# F#5 D#5
  AD: "[d#2,a#2,d#3,f#3,a#3]@3 a#3@3 a#3@2, ~@3 [d#2,a#2,d#3]@5, ~@3 f#3@4 ~", // D#m D#5
  AE: "[[d#2,a#2,d#3,f#3,a#3]@3 [d#2,a#2,d#3,f#3,a#3]!2 [d#2,a#2,a#3] ~@11 a#4@3 ~@8 a#4@3 ~@21 a#4@3 ~, ~@6 [d#2,a#2,d#3,f#3,a#3]@16 c#4@5 ~@8 c#4@3 c#4@5 c#4@3 c#4@5 c#4@3 ~@2, ~ b2@2 b2@2 b2@2, ~@11 c#4@3 c#4@5 ~ a#4@3 a#4@2 ~@6 a#4@2 ~@3 a#4@3 a#4@2 ~@3 a#4@3 a#4@2 ~@7, ~@12 a#4@3 a#4 c#3@16 c#3@16 c#3@8]/7", // D#m D#5 D#m
  AF: "[[c#3,c#4]@4 ~@4 d#3@2 ~@5 a#3 ~@6 a#3!2 ~@6 a#3@2 [c#3,c#4]@4 ~@4 a#3@2 ~@12 [g#2,a#3]@2, f#2@24 [f#3,a#3]@6 d#3@3 f#3@3 a#3@3 f#3@33 b2@36 g#3@35 g#2@7 d#3@6 g#3@9 ~@3, [f#3,a#3]@12 g#2@12 [d#2,a#2]@42 g#2@30 f#2@24 [d#3,f#3]@6 a#3@3 f#3@3 d#3@3 a#3@5 d#3@4 a#3@9 a#3@6 d#3@6 ~@3, ~@4 [c#2,c#3,c#4]@12 a#3 g#3 d#3 a#3 g#3@12 [f#3,a#3]@4 g#2@4 [d#2,a#2]@16, ~@12 g#3@30 d#3@6 g#2@15 d#3@9 a#3@4 f#3@3 d#3@2 a#3@3 f#3@3 d#3@21 [c#2,c#3,c#4]@46 g#2@8 ~@6]/7", // C# G#sus2 F# D#5 D#m C# F# D#5 …
  AG: "[f#3@12 [c#3,c#4]@12 c#4@6 ~@6 c#3@3 ~@21 [c#3,c#4]@12 c#4@6 ~@6 c#3@3 ~@9 f#3@12 [c#3,c#4]@12 c#4@11 ~@13 [d#3,f#3,a#3] [f#3,a#3]@11 ~@9 a#3@3, [b2,b3,d#4,f#4]@39 c#4 c#3@8 b2@24 [c#2,g#2,c#3,g#3]@6 c#4@9 [c#2,g#2,g#3]@33 [c#2,g#2,c#3,g#3]@48, ~@12 [f#2,a#3]@36 f#3 [b3,d#4,f#4]@38 [c#3,c#4]@21 [f#3,a#3]@23 c#4@37, ~@12 f#3@28 g#2@20 [f#2,a#3]@48 f#2@37 d#3@11 [f#3,a#3]@5 d#3@7, ~@8 [c#2,g#2,c#3,g#3]@2 c#4@3 [c#2,g#3]@7 f#3@12 [b2,b3,d#4,f#4]@16 [d#2,a#2]@8]/7", // C# D#m F# B C#5 F# B C# …
  AH: "[~@6 d#3@3 [d#2,a#2,d#3,f#3,a#3]@9 f#3@6 f#3@12 [c#3,c#4]@11 ~ [c#3,g#3,c#4]@11 [c#2,g#2,c#3,g#3,c#4]@12 [f#2,c#3,f#3,a#3], [d#2,a#2,f#3,a#3]@3 ~@3 [d#2,a#2,d#3]@16 ~@2, ~@18 a#3@17 ~ [f#2,f#3,a#3]@35 ~, ~ [b2,b3,d#4,f#4]@2, ~@47 [c#2,g#2]@12 ~@13]/3", // D#m C# C#5 F# D#m D#5 F# B …
  AI: "[[f#2,c#3,f#3,a#3,c#4]@2 c#3@2 [c#3,g#3,c#4]@2 ~@2 [d#3,f#3,a#3]@2 [d#3,f#3,a#3] a#3 [d#3,f#3,a#3]@2 [f#3,a#3]@2 [f#3,a#3,c#4]@2 c#4!2 [f#3,a#3,c#4]@2 [f#3,a#3,c#4]@2, ~@2 [c#2,g#2]@6 [f#2,c#3] a#3 [f#2,c#3]@2, ~@3 g#3@8 ~, ~@3 [c#3,c#4]@4 d#3@5, ~@2 [d#2,a#2] [d#2,a#2]@3]/3", // F# C#5 D#m F# C#5 F#5 C# D#5
  AJ: "[[b3,d#4,f#4]@5 [d#4,f#4]@3 f#4@3 [b3,d#4,f#4]@6 ~@6 [f#3,a#3,c#4]@6 c#4@6 [c#3,g#3,c#4]@6 ~@6 [d#3,f#3,a#3]@6 ~ [d#3,a#3]@3 a#3@3 [d#3,f#3,a#3]@6 [d#3,f#3,a#3]@6, [b2,f#3]@11 b2@30 [c#3,c#4]@31, ~@5 b3@5 ~ f#3@12 f#2@48 ~, ~@17 [b3,d#4,f#4]@30 [d#2,a#2]@7 f#3@6 [d#2,a#2]@12, ~@23 c#3@6 [f#3,a#3]@6 [c#2,g#2]@37]/3", // B D#m B F# C#5 D#m D#5 D#m …
  AK: "[f#3,a#3,c#4] a#3 [f#3,a#3,c#4]!2, [f#2,c#3]!2, ~@2 c#4 ~@5", // F# F#5
  AL: "[[b3,d#4,f#4]@6 [b3,d#4,f#4]@3 [d#4,f#4]@3 [b3,d#4,f#4]@6 ~@6 [f#3,a#3,c#4]@5 [a#3,c#4]@3 ~@3 [c#3,c#4]@6 ~@7 [d#3,f#3,a#3]@6 [f#3,a#3]@3 a#3@3 [d#3,f#3,a#3]@6 [f#3,a#3]@6 [f#3,a#3,c#4]@6 [a#3,c#4]@2 [a#3,c#4]@3 ~ [f#3,a#3,c#4]@6 ~@6 [b3,d#4,f#4]@6 [b3,d#4,f#4]@3 [d#4,f#4]@3 [b3,d#4,f#4]@6 ~@6 [f#3,a#3,c#4]@6 c#4@5 [c#3,g#3,c#4]@6 ~@6 [d#3,f#3,a#3]@6 [d#3,f#3,a#3]@3 [f#3,a#3]@3 ~ [d#3,f#3,a#3]@6 [d#3,f#3,a#3]@6, [b2,f#3]@12 b2@29 g#3@48 ~ [a#3,c#4]@24 [b3,d#4,f#4]@29 [d#2,a#2]@12 ~ [d#2,a#2]@12, ~@12 f#3@12 f#2@24 [d#2,a#2]@12 [d#2,a#2]@36 [b2,f#3]@12 b2@29 [c#3,c#4]@31, ~@18 [b3,d#4,f#4]@23 c#4 c#3@24 d#3@42 f#3@12 c#3@6 [f#3,a#3]@5 [c#2,g#2]@37, ~@24 c#3@5 f#3@6 [c#2,g#2]@37 [f#2,c#3]@12 [f#2,c#3]@36 f#2@48]/7", // B D#m B F# A#m C# D#m F# …
  AM: "[f#3,a#3,c#4]@6 [f#3,a#3,c#4]@3 [f#3,a#3,c#4]@3 [f#3,a#3,c#4]@5 [a#3,c#4]@6 [b2,f#3,b3,d#4,f#4], [f#2,c#3]!2", // F# A#m B F#5
  AN: "[~@6 [b3,d#4,f#4]@3 [d#4,f#4]@2 [b3,d#4,f#4]@7 ~@6 [f#3,a#3,c#4]@6 c#4@6 [c#3,g#3,c#4]@5 ~@7 [d#3,f#3,a#3]@6 [d#3,f#3,a#3]@3 a#3@3 [d#3,f#3,a#3]@6 [f#3,a#3]@6 [f#3,a#3,c#4]@6 [a#3,c#4]@3 c#4@3 [f#3,a#3,c#4]@6 f#3@3 ~@3 [b3,d#4,f#4]@6 [b3,d#4,f#4]@3 [d#4,f#4]@3 [b3,d#4,f#4]@6 ~@6 [f#3,a#3,c#4]@6 c#4@6 [c#3,g#3,c#4]@6 ~@6 [d#3,f#3,a#3]@6 [d#3,f#3,a#3]@5 [d#3,f#3,a#3]@6 [f#3,a#3]@6 [f#2,c#3,f#3,a#3,c#4]@25, ~@11 b2@30 g#3@48 ~ [a#3,c#4]@24 [b3,d#4,f#4]@24 [c#3,c#4]@6 [d#2,a#2]@11 [d#2,a#2]@37, ~@11 f#3@13 f#2@24 [d#2,a#2]@12 [d#2,a#2]@36 [b2,f#3]@12 b2@30 g#3@48 ~@6, ~@18 [b3,d#4,f#4]@23 [c#3,c#4]@25 d#3@42 f#3@12 c#3@6 [f#3,a#3]@6 [c#2,g#2]@48 ~@12, ~@24 c#3@6 [f#3,a#3]@6 [c#2,g#2]@36 [f#2,c#3]@12 [f#2,c#3]@36 f#2@41 d#3@31]/8", // B D#m B F# C#5 D#m F# A#m …
  AO: "[b2,f#3,b3,d#4,f#4]/2", // B
  AP: "[~@27 a#4@9 ~@24 a#4@9 ~ a#4@2, b2@2 b2, ~@3 c#4@3 c#4@5 ~@3 c#4@5 ~@5, ~@4 a#4@3 a#4@2 ~@3 a#4@3 a#4@2 ~@7, ~ c#3@2]/3",
  AQ: "[~@12 f#3 ~@2 c#4 c#3 ~@3 [d#2,a#2,d#3,f#3,a#3]@8, ~ c#3@45 a#4@3 c#3@21 a#4@26 [c#2,g#2]@48 ~@24, ~@10 c#4@9 c#4@15 c#4@6 f#4@12 a#4@6 c#4@6 f#4@20 a#3@12 [g#3,c#4]@6 c#3@48 ~@18, ~@13 a#4@9 a#4@6 ~@9 a#4@6 c#4@12 f#4@6 a#4@6 c#4@5 f#2@36 g#3@48 ~@12, ~@25 b2@47 [c#3,a#3,c#4]@6 f#3@35 c#4@48 ~@7]/7", // D#m C#5 F#
})).s("gm_electric_guitar_clean").gain(0.72)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note(`<
  ~ A@2 ~@2 B C D ~@3 E ~ E ~ E ~@2 F@4 ~ G@2 H@7 I@7 J@8 K@6 ~ L ~ M@4 ~ N ~ N ~@2 E ~@2 O@2 P Q R ~ S T U V@4 ~@4 W X
  ~@3 Y ~ E@2 Z AA@8 ~ L ~ M@4 ~ N ~ N ~@2 E ~@3 AB@2 AC AD AE@3 AF AG AH AI AF AJ@3 AK ~ AL AM AF ~@5 AN@5 ~@7
>`.pickRestart({
  A: "[~@3 a#3@2 ~ f#3 f#3@3 ~@6, ~@7 c#4 ~@8]/2", B: "a#2 ~", C: "~@5 f#3 ~@2", D: "~@6 f#3!2", E: "~@7 f#3",
  F: "[~ g#3@3]/2", G: "[~@7 a#3@4 ~@5]/2",
  H: "[~@2 f#4@3 f#4@5 f#4@3 ~@8 f#4@5 f#4@3 ~@2 a#4@2 ~ f#4@3 ~@5 f#4@3 ~@5 f#4@3 f#4@3, ~ a#4@3 ~@9 f#4@5 f#4@3 ~@8 f#4@5 ~@3 f#4@5 ~@3 f#4@5 ~@6, ~@14 c#4@5 c#4@3 ~@19 a#4@3 ~@5 a#4@3 ~@4]/7",
  I: "[~@2 f#4@3 f#4@2 f#4@3 f#4@3 f#4@5 ~@8 f#4@3 ~@5 f#4@3 ~@2 a#4@2 ~ f#4@3 ~@5 f#4@3 f#4@3, ~ a#4@3 ~@3 a#4@2 ~@12 f#4@5 ~@3 f#4@5 ~@3 f#4@5 ~@3 f#4@5 ~@6, ~@25 a#4@3 ~@5 a#4@3 ~@5 a#4@3 ~@5 a#4@3 ~@4]/7",
  J: "[~@2 f#4@3 ~@2 a#4@2 ~@4 f#4@5 ~@5 a#4@2 ~ f#4@3 ~@5 f#4@3 ~@5 f#4@3 ~@5 f#4@3 f#4@5 ~@3 f#4@3, ~ a#4@3 ~ f#4@5 f#4@3 ~@8 f#4@5 ~@3 f#4@5 ~@3 f#4@5 ~@3 f#4@5 ~@8 f#4@3 ~@3, ~@11 c#4@3 ~@11 a#4@3 ~@4 d#3@16 ~@16, ~@33 a#4@3 ~@5 a#4@3 ~@5 a#4@3 ~@7 c#4@3 ~@2]/8",
  K: "[~@10 f#4@3 ~@5 f#4@3 ~@5 f#4@3 ~@2 a#4@16 ~, ~ a#4@3 ~@5 a#4@3 ~@5 a#4@3 ~@5 a#4@3 ~@20, ~@2 f#4@3 f#4@5 ~@3 f#4@5 ~@3 f#4@5 ~@3 f#4@16 ~@3, ~@3 c#4@3 c#4@5 ~@19 c#4@2 ~@16]/6",
  L: "~@7 c#4", M: "[~@27 g#3@8 ~@10 g#3@48 ~@3, ~@17 f#3@38 ~@41, ~@15 d#3@4 ~@13]/4", N: "~@3 g#3@2 ~@3",
  O: "[~@17 c#3@19 ~@12, ~@5 g#3@11]/2", P: "~@5 g#3@3", Q: "~@3 c#4 ~@4", R: "~@4 f#3 ~@3", S: "~@7 d#2",
  T: "f#3@3 ~@5", U: "~@2 a#3 ~@5", V: "[~@7 a#3 ~@6 d#2@16 ~@2, ~@5 f#3@5 ~@22]/4", W: "~@2 a#3 a#2@5, ~@3 d#2@4 ~",
  X: "~@7 [f#2,c#3,f#3]", Y: "~@7 a#3", Z: "~@5 [d#3,f#3] ~@2",
  AA: "[~@2 f#4@3 f#4@5 ~@16 f#4@3 ~@5 f#4@3 ~@5 f#4@3 ~@2 a#4@16 ~, ~ a#4@3 ~@6 f#4@3 f#4@5 f#4@3 f#4@5 ~@3 f#4@5 ~@3 f#4@5 ~@3 f#4@16 ~@3, ~@11 c#4@3 ~@3 a#4@3 ~@5 a#4@3 ~@5 a#4@3 ~@5 a#4@3 ~@20, ~@19 c#4@3 c#4@5 ~@19 c#4@2 ~@16]/8",
  AB: "[~@2 a#3@6 ~@3 [d#3,f#3] ~@4, ~@5 f#3@18 ~@25, ~@5 c#4@6 ~@37, ~ f#2@7]/2", AC: "~@2 f#3!2 ~@4",
  AD: "~@8 d#4@3 ~@13", AE: "[~@21 d#2@2 ~@10 d#3@3 ~@18 f#3@3 [f#3,c#4]@3 ~@12, ~@17 g#3@48 ~@7]/3", AF: "~@3 b3 ~@4",
  AG: "~@8 c#4@3 g#3@6 ~@4 a#2@3, ~ a#3@2", AH: "~@2 d#3 [d#3,f#3] ~@4", AI: "~@6 f#3@2 ~ f#3@3 ~@6 f#3@6",
  AJ: "[~@32 d#3@3 ~@30 f#3@3 ~ f#3@2 ~, ~@17 g#3@48 ~@3 f#4@3 ~]/3", AK: "~@9 b3@2 ~@13", AL: "~@3 [d#3,f#3] ~@4",
  AM: "~@2 f#3 [f#3,a#3] ~@3 [f#3,f#4]", // F#
  AN: "[~@6 f#4@9 f#4@15 ~@49 f#4@9 ~@15 f#4@9 ~@8, ~@3 a#4@9 ~@18 f#4@9 f#4@15 f#4@9 f#4@15 ~@10 f#4@15 ~@17, ~@33 c#4@9 ~@9 a#4@9 ~@16 a#4@9 ~@15 a#4@9 ~@11, ~@19 c#4@3 c#4@5 ~@13]/5",
})).s("gm_electric_guitar_clean").gain(0.4)

// bass · acoustic bass
const bass = note(`<
  ~ A B C@2 D E D F A B G H I J D K@2 L M N M O G P Q R S R Q T@2 R Q R I G Q R Q U Q R I G Q R S R Q R V W@2 X Y Z AA@2
  AB@2 AC M AD M AE D AF@2 AG M AH@2 B A B I AI D AJ G B AK@2 I J AL AM G B A AN D AO I AP Q AQ AR R AR R Y Z AS AT AU
  AV AW AX AY M AZ BA AZ M BB I BC M BD BE BF BG BH Y BI BJ BK BL BM BN BH BO BF BP BH BO BF BQ@2 BR BS G BT@3 R AR R Q
  R BU BV@5
>`.pickRestart({
  A: "f#2@23 ~", B: "f#2@9 f#2@14 ~", C: "[f#2@23 f#2@10 ~ f#2@14]/2", D: "d#2@23 ~", E: "d#2@3 d#2@5",
  F: "d#2@9 d#2@8 ~ d#2@6", G: "f#2", H: "f#2@9 ~ f#2@14", I: "d#2", J: "d#2@9 ~ d#2@14",
  K: "[d#2@18 d#2@5 b2@13 f#2@12]/2", L: "c#2@18 ~ c#2@5", M: "b2 f#2", N: "c#2@9 ~ c#2@14",
  O: "c#2@9 ~ c#2@8 c#2@4 ~@2", P: "~ f#2@9 f#2@8 f#2@3 ~@3", Q: "b1", R: "c#2", S: "b1@23 ~", T: "[c#2@23 b1@24 ~]/2",
  U: "c#2@23 ~", V: "~ f#2@5 ~ f#2@6 c#2@5 c#2@5 ~", W: "[d#2@6 d#2@11 ~ d#2@5 g#1@6 g#1@6 ~ g#1@6 g#1@5 ~]/2",
  X: "b1@5 b1@6 ~ b1@6 b1@6", Y: "f#2@6 f#2@6 c#2@6 c#2@5 ~", Z: "d#2@6 d#2@5 ~ d#2@6 d#2@6",
  AA: "[g#1@12 g#1@6 g#1@5 b1@6 b1@11 ~ b1@6 ~]/2", AB: "[b1@5 ~ b1@6 b1@6 ~@6 b2@12 f#2@12, ~@18 b1@13 ~@17]/2",
  AC: "c#2@9 c#2@9 c#2@5 ~", AD: "c#2@9 ~ c#2@8 ~ c#2@5", AE: "c#2@9 c#2@14 ~",
  AF: "[d#2@4 ~ d#2@4 ~@2 d#2@4 ~@2 d#2@6 b2@13 f#2@12]/2", AG: "c#2@8 ~ c#2@8 ~ c#2@6",
  AH: "[c#2@9 c#2@14 f#2@24 ~]/2", AI: "d#2@8 ~ d#2@15", AJ: "d#2@9 d#2@8 ~ d#2@5 ~",
  AK: "[f#2@22 ~ f#2@10 ~ f#2@14]/2", AL: "~ d#2@23", AM: "d#2@18 d#2@5 ~", AN: "f#2@3 f#2", AO: "d#2@9 d#2@14 ~",
  AP: "~ d#2@9 d#2@14", AQ: "~ c#2@23", AR: "~ b1@23", AS: "g#1@5 ~ g#1@6 g#1@6 g#1@6", AT: "b1@5 ~ b1@6 b1@6 b1@6",
  AU: "f#2@5 f#2@6 c#2@7 c#2@6", AV: "d#2 d#2@2 d#2", AW: "g#1@6 g#1@5 ~ g#1@11 ~", AX: "b1@6 b1@5 ~ b1@6 b1@5 ~",
  AY: "b1@6 b1@6 b1@5 ~ b1@6", AZ: "c#2@8 ~ c#2@9 c#2@6", BA: "b2@13 f#2@11", BB: "c#2@8 ~ c#2@8 ~ c#2@5 ~",
  BC: "d#2@9 ~ d#2@8 d#2@6", BD: "~ c#2@9 c#2@14", BE: "f#2@6 ~ f#2@5 c#2@6 c#2@5 ~", BF: "d#2@6 d#2@6 d#2@11 ~",
  BG: "f#2@6 f#2@6 f#2@6 f#2@5 ~", BH: "b2@5 ~ b2@6 b2@5 ~ b2@6", BI: "~ d#2@5 d#2@6 ~ d#2@6 d#2@5",
  BJ: "f#2@6 f#2@6 ~ f#2@5 f#2@6", BK: "b2@5 ~ b2@6 b2@6 b2@6", BL: "f#2@6 ~ f#2@5 c#2@6 ~ c#2@5",
  BM: "d#2@6 ~ d#2@5 d#2@11 ~", BN: "f#2@6 ~ f#2@5 f#2@6 f#2@6", BO: "f#2!2 c#2!2", BP: "f#2!4",
  BQ: "[f#2@6 f#2@6 f#2@11 b2@5 ~ b2@12 ~ b2@6]/2", BR: "f#2!2 c#2@2", BS: "d#2@6 ~ d#2@11 ~ d#2@5",
  BT: "[~ b2@48 b1@23]/3", BU: "~ f#2@23", BV: "[c#2@23 d#2@79 ~@18]/5",
})).s("gm_acoustic_bass").gain(0.8)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  A@4 B@5 C@8 D@8 ~@26 E@2 F@8 G@7 H@4 I@3 J K@2 L@4 M N O@4 P@2 Q@2 R@2 S@2 ~@6 T@4 U@7 V@4 W@5 X Y Z@4 AA@3 AB@2 AC
  AD@2 AE AF@2 AG@8 ~@11
>`.pickRestart({
  A: "[~@24 c#5@24 a#4@9 g#4@15 f#4@23 g#4, ~@23 f#2@73]/4",
  B: "[~@3 a#4@3 ~@22 a#3@4 ~@4 f#3@4, ~@18 c#5@7 ~@23 f#3@36 ~@12 g#3@24, ~@23 d#2@96 ~, ~@23 d#5@48 d#5@49]/5",
  C: "[~@11 f#3@4 g#3@2 a#3@3 g#3@4 a#4@8 g#4@9 a#4@3 g#4@3 ~@36 [c#4,f#4,c#5]@12 ~ [a#4,d#5]@48 [a#4,d#5]@24 [d#5,f#5]@24, f#2 ~, c#5@25 ~@22 f#4@36 ~@13 d#4@96, ~@72 [a#3,a#4]@13 ~@10 d#2@97]/8", // F#5 D#5 D#m A#
  D: "[~ b3@11 [f#2,a#3]@11 ~@16 d#5@8 ~ b3@12 ~@27 d#5@8 [b2,b3]@12 ~ f#2@11 c#2@25 ~@48, b2@12 ~@11 [c#2,c#4]@24 b2@13 [f#2,a#3]@12 c#4@23 ~@12 a#3@12 c#4@23 ~@50, ~ c#5@39 ~@8 c#5@40 ~@7 c#5@97, ~@71 c#2@25 ~@96]/8", // F# B C# F#
  E: "[[f#2,c#4]@12 ~ c#2@10 ~ d#2@24, c#5@11 ~ [d#4,d#5]@13 ~@23, ~@23 [a#3,a#4]@25]/2", // F#5 D# A#
  F: "[g#4@22 ~@2 b1@23 ~@13 c#2@11 [d#2,a#3,a#4]@24 ~ g#1@23 ~@36 [f#4,f#5]@12 ~ b2@12 [f#2,a#3]@12, [g#1,g#3]@25 ~@22 [c#4,c#5]@12 d#4@12 ~@24 [g#3,g#4]@25 ~@24 [d#4,d#5]@23 c#5@25, ~@22 b4@26 ~@10 d#5@13 ~@48 [b3,b4]@48 b3@13 ~@12, ~@23 b3@25 f#2@12 ~@60 b1@48 ~@24]/8", // D#5 F# G# C# G# D# B
  G: "[~@15 d#5@8 [b2,b3]@13 [f#2,a#3]@12 ~@15 d#5@8 a#3 ~@12 f#2@11 ~ c#4@23 ~@25 g#4@6 a#4@6 g#4@6 f#4@6, [c#2,c#4]@23 c#5@40 ~@8 c#5@48 ~@49, ~@48 [c#2,c#4]@23 b3@12 a#3@14 ~@23 [d#3,d#4]@48, ~@72 b2@13 ~@10 c#2@24 d#2@49]/7", // B F# C# D#
  H: "[~@13 f#2@10 ~@16 d#5@8 ~ b2@12 [f#2,a#3]@12 [c#2,c#4]@24, c#5@39 ~@8 c#5@41 ~@8, [b2,b3]@13 ~@11 c#2@24 ~@48, ~@11 a#3@12 c#4@24 b3@13 ~@36]/4", // F# C# B
  I: "c#5/3", J: "d#5 c#5", K: "[a#4,d#5]/2", L: "[~ f#5 c#5@2, ~ d#5@48 ~@47]/4", M: "c#5", N: "[c#5,d#5]",
  O: "[a#4,d#5,f#5]/2", P: "[c#4,c#5]/2", Q: "[~ d#5, [c#4,c#5]]/2", R: "[d#4,a#4,d#5,f#5]/2",
  S: "[~@12 c#6@11 ~, a#5@23 ~]/2",
  T: "[[f#2,c#4]@12 c#2@11 [d#2,a#3,a#4]@25 g#4@23 ~ b1@24, c#5@11 ~ [d#4,d#5]@13 ~@23 [g#1,g#3]@25 ~@23, ~@71 [b3,b4]@25]/4", // F#5 D#5 D# G# B
  U: "[[f#2,c#4,c#5]@11 ~ c#2@11 [d#2,a#3,a#4]@24 ~@60 [f#4,f#5]@12 ~@3 b2@10 [f#2,a#3]@12 ~@15 d#5@8 b3, ~@11 [d#4,d#5]@13 ~@23 [g#3,g#4]@24 b4@48 c#5@40 ~@9, ~@24 g#1@12 b1@25 ~@11 [c#2,c#4]@12, ~@72 b3@47 b3@13 ~@36, ~@96 [d#4,d#5]@23 ~@49]/7", // F#5 D#5 F# D# G# C# D#
  V: "[b2@12 [f#2,a#3]@12 ~@15 d#5@8 a#3 ~@12 f#2@12 ~ c#4@23, c#5@40 ~@7 [b2,b3]@12 a#3@13 c#2@24, ~ [c#2,c#4] c#5@2]/4", // F# B C#
  W: "[~@24 g#4@6 a#4@6 g#4@6 f#4@5 ~ b3@11 ~ f#2@12 c#4@18 c#4@3 ~@4 [f#2,a#3]@11 [c#2,c#4]@12, [d#2,d#3,d#4]@47 b2@12 a#3@12 ~ c#2@26 ~@22, ~@48 c#5@39 ~@3 c#5 ~@2 [c#4,c#5]@10 ~@17]/5", // F# C# D# C#
  X: "~ d#2@23, d#4", Y: "[f#2,f#4]",
  Z: "[d#4@11 c#4@12 ~ f#2@11 ~ c#4@11 ~ d#4@24 [f#2,f#4]@24, b2@23 a#3@12 c#2@12 d#2@26 ~@23]/4", // F#
  AA: "[[b2,g#4]@23 [f#2,a#4]@12 ~@13 d#5@24, ~@35 c#2@12 d#2@25, ~@36 c#5@13 ~@23]/3", // E F#
  AB: "[[f#2,f#5]@23 d#5@13 ~ c#5@11, ~@23 b2@25]/2", AC: "[f#2,a#4]@11 [c#2,c#5]@13",
  AD: "[d#5 ~ g#5 a#5, d#2@23 f#2@25, ~@12 f#5@13 ~@23]/2", AE: "c#6 d#6, b2",
  AF: "[[f#2,f#6]@11 ~@14 c#6@11 a#5@12, ~@11 c#2@13 d#2@24, ~@6 d#6@7 ~@11]/2", // F#
  AG: "[g#5@12 a#5@11 ~ b5@12 a#5@11 ~ f#5@6 g#5@6 ~@17 c#5@6 a#4@7 g#4@5 ~ [f#2,c#5]@24 ~ b2@48 ~@23, f#5@48 c#5@25 ~@22 f#4@26 ~@71, f#2@23 ~ b2@23 f#2@13 c#2@12 ~@120, ~@60 f#5@7 ~@4 d#2@25 ~@96, ~@65 d#5@31 ~@24 [b4,f#5]@50 ~@22]/8", // F#5 B5
})).s("gm_string_ensemble_1").gain(0.72)

// drums · kick
const kick = s("bd").struct(`<
  ~@17 A B C D E B ~@2 F@10 G H I F@4 G@2 H I G F@2 G J ~@9 E D E D E B K L E B C B ~@24 I G M G N O ~@9 E D E D E D K L
  C D B ~@36
>`.pickRestart({
  A: "~ x ~", B: "x", C: "~@5 x ~@6", D: "~ x ~@22", E: "~@3 x ~@4", F: "x ~@6 x", G: "x ~@10 x", H: "x ~@4 x ~ x",
  I: "~@7 x", J: "x ~@9 x ~ x ~@2 x ~@2 x ~@2 x ~@2", K: "x ~@11 x ~@10 x", L: "~ x!3", M: "~ x ~@19 x ~@2",
  N: "~ x ~@20 x ~", O: "~ x ~@8 x ~ x ~@2 x ~@2 x ~@2 x ~@2",
})).gain(0.58)

// drums · rim
const rim = s("rim").struct("<~@25 A@11 B A@7 C A@5 D ~@45 A@5 D ~@56>".pickRestart({
  A: "x!4", B: "x ~@2 x!2 ~ x ~", C: "x ~ x!2 ~ x ~@2", D: "x!3 ~",
})).gain(0.58)

// drums · snare
const snare = s("sd").struct(`<
  A B C D E B F G E B C B E B H B I J K L K M N B O ~@25 P Q R S T U V W X Y L Z L AA M AB AC AD AE K L AA ~ E ~ AF B C
  B E AC AG ~ C D E ~ F D C B C D AH B AI ~@5 P AJ AK W AL AM AN W AO AP L AQ L AR M AB AC AS AE AT AU AV AW AX AY AZ BA
  BB BC W BD BB BE BF BG BH BI BJ AO BK BL BM G ~@14
>`.pickRestart({
  A: "~@21 x!3", B: "x", C: "x ~@8 x ~@12 x!2", D: "x!2 ~@22", E: "x ~@8 x ~@11 x!3", F: "x ~@8 x ~@11 x ~ x",
  G: "~ x ~@22", H: "x ~@8 x ~@12 x ~", I: "x ~@8 x ~@2 x ~@2 x ~@2 x ~@2 x!3", J: "~@11 x ~@12", K: "~@12 x ~@9 x!2",
  L: "x!2", M: "~ x", N: "~@12 x ~@5 x ~@3 x!2", O: "x ~@2 x ~@4", P: "~@21 x!2 ~", Q: "x ~@7 x ~ x!2 ~@8 x!2 ~ x",
  R: "~@3 x!3 ~@2 x ~ x!2 ~@3 x!2 ~ x ~@2 x!2 ~", S: "x ~@2 x ~ x!2 ~@2 x!2 ~ x ~@2 x!2 ~ x ~@2 x ~ x",
  T: "x ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x!2 ~ x!2 ~ x!2 ~", U: "x ~@4 x!3 ~ x ~ x ~@5 x!2 ~ x!2 ~ x",
  V: "~@2 x!2 ~ x ~@2 x ~ x!2 ~@3 x!2 ~ x ~@2 x!2 ~", W: "x ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x",
  X: "x ~@3 x!3 ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x", Y: "x ~@2 x ~ x!2 ~@2 x ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~@2",
  Z: "~@12 x ~@8 x!2 ~", AA: "~@12 x ~@8 x!3", AB: "~@11 x ~@9 x ~ x", AC: "x ~@22 x",
  AD: "~@2 x ~ x!2 ~@3 x!2 ~ x ~@2 x!2 ~ x!2 ~ x!2 ~", AE: "x ~@12 x ~@10", AF: "x ~@8 x ~@11 x!2 ~",
  AG: "~@9 x ~@11 x!3", AH: "x ~@9 x ~@10 x ~ x", AI: "x ~@4 x ~@6", AJ: "x ~@8 x!2 ~ x ~@7 x ~ x!2",
  AK: "~@3 x!2 ~ x ~ x ~ x!2 ~@3 x!2 ~ x ~@2 x!2 ~", AL: "x ~@3 x!2 ~ x ~@2 x!3 ~@2 x ~ x!2 ~ x!3 ~",
  AM: "x ~@4 x!2 ~ x!2 ~ x ~@5 x!2 ~ x!2 ~ x", AN: "~@2 x ~ x!2 ~@2 x ~ x!2 ~@3 x!2 ~ x ~@2 x ~ x",
  AO: "x ~@3 x!2 ~ x ~ x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x", AP: "x ~@3 x!2 ~ x ~ x ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~@2",
  AQ: "~@13 x ~@8 x ~", AR: "~@12 x ~@8 x ~ x", AS: "~@3 x!2 ~ x ~@2 x ~ x!2 ~@2 x ~ x!3 ~ x ~ x",
  AT: "~@12 x ~@7 x!2 ~ x", AU: "x ~@4 x!2 ~ x!2 ~ x ~@5 x ~ x!2 ~ x!2",
  AV: "~@3 x!2 ~ x ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x", AW: "x ~@2 x ~ x!2 ~@2 x ~ x!2 ~@3 x!2 ~ x ~@2 x!2",
  AX: "~ x ~ x ~ x!2 ~@2 x ~ x!2 ~@2 x!2 ~ x ~ x!2 ~ x", AY: "x ~@3 x!2 ~ x!2 ~ x!2 ~@4 x ~ x!2 ~ x ~ x",
  AZ: "~@4 x ~ x!2 ~@2 x!3 ~@2 x ~ x!2 ~@2 x ~ x", BA: "x ~@2 x ~ x!2 ~@3 x!3 ~@2 x ~ x!2 ~@2 x ~ x",
  BB: "x ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x!2 ~ x!2 ~ x", BC: "x ~@3 x ~ x!2 ~ x!2 ~ x ~@3 x!2 ~ x ~ x!2 ~",
  BD: "x ~@3 x!2 ~ x ~@2 x!3 ~@2 x ~ x!2 ~@2 x!2 ~", BE: "~ x ~@4 x!2 ~ x!2 ~ x ~@4 x ~ x!2 ~ x ~",
  BF: "x ~@2 x ~ x!2 ~@2 x!2 ~ x ~@2 x ~ x!2 ~@2 x ~ x", BG: "x ~@2 x ~ x!2 ~@2 x ~ x!2 ~@3 x!2 ~@3 x!2 ~",
  BH: "x ~@2 x!2 ~ x ~@2 x!2 ~ x ~@2 x!2 ~ x!2 ~ x ~ x", BI: "x ~@5 x!2 ~ x!2 ~ x ~@4 x ~ x!2 ~ x!2",
  BJ: "~@3 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x", BK: "x ~@3 x!2 ~ x ~ x ~ x!2 ~@2 x ~ x!2 ~ x ~ x!2",
  BL: "~ x ~@3 x ~ x ~ x!2 ~ x!2 ~@4 x ~ x!2 ~ x", BM: "~ x ~@3 x ~ x ~ x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x",
})).gain(0.52)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B@14 C ~@6 D E F@11 G F@7 H F@5 I J K L D M D@2 N M ~@6 O P ~@4 D B@12 Q D B@9 F@5 I J P L D M D@2 N M ~@6 O L ~@2
  M D@2 R S D M D M D@3 M D@3 S D M D M D@2 T U ~@6 V D ~@4
>`.pickRestart({
  A: "~ x ~@4 x ~@5 x ~@5 x ~@5", B: "x!4", C: "x ~@6 x ~@5 x ~@5 x ~@4", D: "~ x!3", E: "x ~@6 x ~@4 x ~@5 x ~@5",
  F: "~ x ~ x ~ x ~ x", G: "~ x!2 ~@2 x ~ x", H: "~ x ~@2 x ~@2 x", I: "~ x ~ x ~@4", J: "~@7 x ~@10 x ~@5",
  K: "~@5 x ~@5 x ~@5 x ~@6", L: "~@5 x ~@6 x ~@5 x ~@5", M: "~ x ~ x", N: "~@6 x ~@6 x ~@4 x ~@5",
  O: "x ~@10 x ~@11 x", P: "~@5 x ~@5 x ~@6 x ~@5", Q: "x ~@5 x ~@5 x ~@5 x ~@4 x", R: "~@6 x ~@5 x ~@4 x ~@6",
  S: "~@5 x ~@12 x ~@5", T: "~@7 x ~@5 x ~@5 x ~@4", U: "~ x ~@5 x ~@5 x ~@5 x ~@4", V: "~@7 x ~@5 x ~@4 x ~@5",
})).gain(0.52)
// … 32 more lines

More by The Smashing Pumpkins