Strudelify
Bound for the Floor cover art

1996 · As Good As Dead

Bound for the Floor

Local H

KeyF♯ majorTempo121 bpm
0:00/0:00
// Bound for the Floor — Local H
// 121 bpm, 4/4, key F# 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: duplicate parts dropped: ch 3 "sargpepp67" distortion guitar (copy of ch 1 "Kopesetic by" distortion guitar); ch 6 distortion guitar (copy of ch 5 distortion guitar); ch 8 electric guitar muted (copy of ch 7 electric guitar muted)
// note: Full arrangement: all 112 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 28.
setcpm(121/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 · distortion guitar · "Kopesetic by"
const distortion_guitar = note(`<
  A B C D A B C D A B C D A B C D A B C D A B C D ~ E F G H I J K L B C D A B C D A B C D A B C D ~ E F G H I J K M N O
  P Q R S T U@2 V@2 W@2 X@2 Y Z AA AB AC AD AE AB AF AG AH AI AF AG AE AJ AK N O P Q R S T U@2 V@2 W@2 X@2 A B C D A B C
  ~
>`.pickRestart({
  A: "[g#2,d#3,g#3,a#3] ~ [g#2,d#3,g#3,a#3] ~ [g#2,d#3,g#3,a#3]!2 ~ [b2,d#3,f#3,a#3]", // G#sus2 Bmaj7
  B: "~@2 [b2,d#3,f#3,a#3]@2 [b2,d#3,f#3,a#3]@2 ~@2 [b2,d#3,f#3,a#3] ~ [b2,d#3,f#3,a#3]@2 [b2,d#3,f#3,a#3]@2 [a#2,d#3,g#3,a#3] ~", // Bmaj7 D#sus4
  C: "[f#2,f#3,a#3] ~@3 [f#2,d#3,f#3,a#3]@2 ~@2 [f#2,d#3,f#3,a#3]@2 [f#2,d#3,f#3,a#3]@2 ~@2 [c#3,d#3,g#3,a#3] ~", // F# D#m C#sus2
  D: "~ [c#3,d#3,g#3,a#3]!2 ~ [c#3,d#3,g#3,a#3] [c#3,d#3,g#3] [c#3,d#3,g#3,a#3] [c#3,d#3,g#3], ~@5 b3@2 ~", // C#sus2
  E: "~@4 [b3,c#4,f#4]@9 ~@3", F: "~ [f#3,c#4,f#4]@2 ~", G: "~@4 [g#3,c#4,d#4,g#4]@7 ~@5", H: "~ [g#3,a#3,d#4]@2 ~",
  I: "~ [b3,c#4,f#4]@5 ~@2", J: "~@4 [f#3,c#4]@7 ~@5", K: "~ [c#4,d#4,g#4]@3 ~@4",
  L: "[g#2,d#3,g#3,a#3,d#4] ~ [g#2,d#3,g#3,a#3] ~ [g#2,d#3,g#3,a#3]!2 ~ [b2,d#3,f#3,a#3]", // G#sus2 Bmaj7
  M: "[g#3,a#3,d#4] ~ [g#3,d#4]@4 ~@2", N: "~@2 [f#4,c#5]@5 ~", O: "~ [f#3,c#4]@2 ~", P: "~ [c#4,g#4]@2 ~",
  Q: "~@4 [g#3,d#4]@7 ~@5", R: "~@4 [b3,f#4]@7 ~@5", S: "~@4 [f#3,c#4,f#4]@7 ~@5",
  T: "~ [c#4,d#4,g#4]@2 ~, ~ g#3@5 ~@2", U: "[~@2 d#4@2 ~ d#4 ~ [b3,f#4]@2 [b3,f#4] [b3,f#4]@4 ~@2, ~ g#3@2 ~@5]/2",
  V: "[~@4 [f#3,c#4]@4 ~@2 [f#3,c#4]@2 ~@2 [c#4,g#4]@3 ~ [c#4,g#4] ~ [c#4,g#4]@6 ~@6, ~@7 g#3@6 ~@3]/2", // F#5 C#5
  W: "[d#4@2 ~@2 d#4@5 ~ [g#3,d#4]@4 [b3,f#4]@14 ~@4, g#3 ~@3]/2", X: "[[f#4,c#5]@6 ~ [c#4,g#4]@4 ~ a#3 b3 a#3 f#3]/2",
  Y: "[g#2,d#3]@2 [g#2,d#3] ~ [g#2,d#3] ~ [g#2,d#3] ~ [g#2,d#3]@2 [g#2,d#3]@2 [g#2,d#3]@2 [g#2,d#3] ~", // G#5
  Z: "[b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3] ~", // B5
  AA: "[f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3] ~", // F#5
  AB: "[c#3,g#3] ~ [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3] ~", // C#5
  AC: "[g#2,d#3] ~ [g#2,d#3]@2 [g#2,d#3]@2 [g#2,d#3]@2 [g#2,d#3]@2 [g#2,d#3]@2 [g#2,d#3]@2 [g#2,d#3] ~", // G#5
  AD: "[b2,f#3] ~ [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3] ~", // B5
  AE: "[f#2,c#3] ~ [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2", // F#5
  AF: "[g#2,d#3]!8", AG: "[b2,f#3] ~ [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2",
  AH: "[f#2,c#3] ~ [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3] ~", // F#5
  AI: "[c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3] ~", // C#5
  AJ: "[c#3,g#3] ~ [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [a#2,a#3]@2 [b2,b3]@2 [a#2,a#3]@2 [f#2,f#3]@2", // C#5 A# B A# F#
  AK: "~ [g#3,d#4]@2 ~", // G#5
})).s("gm_distortion_guitar").gain(0.25).pan(1)

// bass · electric bass finger
const bass = note(`<
  ~@2 A B C D E F G H I J K H E J G H E J K H I F L@2 M@2 N@2 O@2 G H I J K H E J G H E J K H I F L@2 M@2 N@2 O@2 P@2 Q
  R S@2 T@2 U@2 V@2 W@2 X@2 Y Z AA AB AC AD AA AE AC Z AA AE AC Z AF AG P@2 Q R S@2 T@2 U@2 V@2 W@2 X@2 C D E F G H I ~
>`.pickRestart({
  A: "f#1@2 ~@2 f#1 ~@3 f#1 ~ f#1@2 d#1@2 c#2 ~", B: "~@2 c#2 ~ c#2@2 ~@2 c#2 ~ c#2@2 c#2@2 f#1@2",
  C: "g#1 ~@3 g#1@2 ~@2 g#1 ~ g#1@2 d#1@2 b1@2", D: "~@2 b1 ~ b1 ~@3 b1 ~ b1 ~ b1@2 g#1@2",
  E: "f#1@2 ~@2 f#1@2 ~@2 f#1 ~ f#1@2 d#1@2 c#2 ~", F: "~@2 c#2 ~ c#2@2 f#1@2 a#1@2 b1@2 a#1@2 f#1@2",
  G: "g#1@2 ~@2 g#1@2 ~@2 g#1 ~ g#1@2 d#1@2 b1@2", H: "~@2 b1 ~ b1@2 ~@2 b1 ~ b1 ~ b1@2 g#1@2",
  I: "f#1@2 ~@2 f#1@2 ~@2 f#1 ~ f#1@2 d#1@2 c#2@2", J: "~@2 c#2 ~ c#2@2 ~@2 c#2 ~ c#2 ~ c#2@2 f#1@2",
  K: "g#1@2 ~@2 g#1@2 ~@2 g#1 ~ g#1@2 d#1@2 b1 ~", L: "[g#1@8 ~@2 g#1@2 a#1@2 b1@5 ~ b1@4 ~@2 b1@4 g#1@2]/2",
  M: "[f#1@4 f#1@6 f#1@2 g#1 ~ c#2@6 c#2@2 f#1@2 a#1@2 b1@2 a#1@2 f#1@2]/2",
  N: "[g#1@9 ~ g#1@2 a#1 ~ b1@6 b1@6 b1@4 g#1@2]/2",
  O: "[f#1@3 ~ f#1@5 ~ f#1@2 g#1@2 c#2@8 f#1@2 a#1@2 b1@2 a#1@2 f#1@2]/2",
  P: "[g#1@3 ~ g#1@5 ~ g#1@2 a#1@2 b1@12 ~@4 g#1@2]/2", Q: "f#1@3 ~ f#1@4 ~@2 f#1@2 g#1@2 c#2@2",
  R: "~ c#2@2 ~ a#1 b1 a#1 f#1", S: "[g#1@2 ~@2 g#1@8 a#1 ~ b1@4 ~@2 b1@7 ~@3 g#1@2]/2",
  T: "[f#1@3 ~ f#1@4 ~@2 f#1@2 g#1@2 c#2@5 ~ c#2@4 a#1@2 b1@2 a#1@2 f#1@2]/2",
  U: "[g#1@2 ~@2 g#1@4 ~@2 g#1@2 ~@2 b1@5 ~ b1@4 ~@2 b1@2 ~@2 g#1@2]/2",
  V: "[f#1@2 ~@2 f#1@4 ~@2 f#1@2 g#1@2 c#2@5 ~ c#2@4 a#1@2 b1@2 a#1@2 f#1@2]/2",
  W: "[g#1@3 ~ g#1@5 ~ g#1@2 ~@2 b1@4 ~@2 b1@7 ~@3 g#1@2]/2", X: "[f#1 ~ f#1@2 ~ f#1 g#1 c#2@4 f#1 a#1 b1 a#1 f#1]/2",
  Y: "g#1!8", Z: "b1@2 b1@2 b1@2 b1@2 b1@2 b1@2 b1@2 b1 ~", AA: "f#1@2 f#1@2 f#1@2 f#1@2 f#1@2 f#1@2 f#1@2 f#1 ~",
  AB: "c#2!8", AC: "g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1 ~", AD: "b1!8",
  AE: "c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2 ~", AF: "f#1!8",
  AG: "c#2@2 c#2@2 c#2@2 f#1@2 a#1@2 b1@2 a#1@2 f#1 ~",
})).s("gm_electric_bass_finger").gain(0.72)

// chords · clavinet
const clavinet = note(`<
  ~@8 A@2 B C@3 B D E F G H G I J K L M N O N P Q ~ R@2 B S@3 B T U I V W U X Y Z AA P AB P L P AC P AD AE AF AG AH AE
  AF AG AI AJ AK AL AM AN AO AP AQ AR AS AR AS AR AS AT AU AV AW AX AY AV AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM
  BN BO BN BP BQ BR BS BR BQ BR ~
>`.pickRestart({
  A: "[~@8 a#4 ~ a#4 ~ a#4 ~ f#4@6 ~@12]/2", B: "~@8 a#4 ~ a#4 ~ a#4 ~ a#4@2",
  C: "[~@2 g#4@2 ~@2 d#4@2 ~@2 a#4@2 ~@2 a#4@5 ~@5 a#4 ~ a#4 ~ g#4 ~ a#4@9 ~@9]/3",
  D: "~@2 g#4@2 ~@2 d#4@2 ~@4 a#4 ~ g#4 ~", E: "a#4 ~@3 a#4 ~ g#4 ~ a#4 ~ a#4@2 g#4 ~ a#4 ~",
  F: "~@2 a#4 ~ a#4 ~ g#4 ~ a#4 ~ a#4 ~ a#4 ~ g#4 ~", G: "a#4 ~@3 a#4 ~ g#4 ~ a#4 ~ a#4 ~ g#4 ~ a#4 ~",
  H: "~@2 a#4 ~ a#4 ~ g#4 ~ a#4@3 ~ a#4 ~ g#4 ~", I: "~@2 a#4 ~ a#4@2 g#4 ~ a#4 ~ a#4 ~ a#4 ~ g#4 ~",
  J: "a#4 ~@3 a#4 ~@3 a#4 ~ a#4 ~ g#4 ~ [g#4,a#4] ~", K: "~@2 a#4 ~ a#4@2 g#4 ~ a#4@3 ~ [a#3,a#4] ~ [g#3,g#4] ~",
  L: "[a#3,a#4]@3 ~@5", M: "~@12 [a#3,a#4]@2 [g#3,g#4] ~", N: "[a#3,a#4] ~@3", O: "~@12 [a#3,c4,a#4] ~ [g#3,g#4] ~",
  P: "~@12 [a#3,a#4] ~ [g#3,g#4] ~", Q: "[a#3,a#4]@5 ~@11", R: "[~@8 a#4 ~ a#4@2 g#4@2 a#4@11 ~@7]/2",
  S: "[~@2 g#4@2 ~@2 d#4@2 ~@2 a#4@2 ~@2 a#4@5 ~@5 a#4 ~ a#4@2 b4 ~ f#4@10 ~@8]/3", T: "~ g#4 ~ d#4 ~@2 a#4 g#4",
  U: "a#4 ~@3 a#4@2 ~@2 a#4 ~ a#4 ~@3 a#4@2", V: "a#4 ~@3 a#4 ~@3 a#4 ~ a#4@2 ~@2 a#4 ~",
  W: "~@2 a#4 ~ a#4@2 g#4 ~ a#4@3 ~ a#4 ~ g#4 ~", X: "~@2 a#4 ~ a#4@2 g#4 ~ a#4 ~ a#4 ~ a#4@2 g#4 ~",
  Y: "a#4@2 ~@2 a#4@2 ~@2 a#4 ~ a#4 ~@3 a#4 ~", Z: "~@2 a#4 ~ a#4@2 g#4 ~ a#4@2 ~@2 [a#3,a#4] ~ [g#3,g#4] ~",
  AA: "~ a#3@7 ~@8, a#4 ~", AB: "[a#3,a#4] ~", AC: "[a#3,a#4]@5 ~@3",
  AD: "[a#3,a#4]@3 ~ [a#3,a#4]@3 ~ [a#3,a#4] ~ [a#3,a#4]@3 ~ [a#3,a#4]@2", // A#
  AE: "~@2 [a#3,a#4] ~ [a#3,a#4] ~ [g#3,g#4] ~ [a#3,a#4] ~ [a#3,a#4] ~ [a#3,a#4] ~ [g#3,g#4] ~", // A# G# A# G#
  AF: "[a#3,a#4]@3 ~ [a#3,a#4] ~ [g#3,g#4] ~ [a#3,a#4] ~ [a#3,a#4] ~ [g#3,g#4] ~ [a#3,a#4]@2", // A# G# A# G# A#
  AG: "~@2 [a#3,a#4] ~ [a#3,a#4] ~ [g#3,g#4] ~ [a#3,a#4]@3 ~ [a#3,a#4] ~ [g#3,g#4] ~", // A# G# A# G#
  AH: "[g#3,g#4] g#4 ~@2 [a#3,a#4]@3 ~ [a#3,a#4] ~ [a#3,a#4]@2 ~@2 [a#3,a#4]@2, [a#3,a#4]@3 ~@13", // G# A#
  AI: "[a#3,a#4,d#5]@3 ~ [a#3,a#4,d#5]@3 ~ [a#3,a#4,d#5] ~ [a#3,a#4,d#5]@3 ~ [a#3,a#4,d#5]@2, g#4 ~@9 f5 ~@5", // D#5
  AJ: "~@2 [a#3,a#4,d#5] ~ [a#3,a#4] ~ [g#3,g#4,c#5] ~ [a#3,a#4,d#5] ~ [a#3,a#4,d#5] ~ [a#3,a#4,d#5] ~ [g#3,g#4,c#5] ~, ~@2 d#5 ~@5", // D#5 A# C#5 D#5 C#5
  AK: "[a#3,a#4,d#5]@3 ~ [a#3,a#4,d#5]@3 ~ [a#3,a#4,d#5] ~ [a#3,a#4,d#5]@2 ~@2 [a#3,a#4,d#5]@2", // D#5
  AL: "~@2 [a#3,a#4,d#5] ~ [a#3,a#4] ~ [g#3,g#4,a#4,c#5] ~ [a#3,a#4,d#5] ~ [a#3,a#4,d#5] ~ [a#3,a#4,d#5] ~ [g#3,a#3,g#4,c#5,d5] ~, ~@2 d#5 ~@5", // D#5 A# A#m7 D#5 A#7
  AM: "[a#3,a#4,d#5]@2 ~@2 [a#3,a#4,d#5]@2 ~@2 [a#3,a#4,d#5] ~ [a#3,a#4,d#5]@2 ~@2 [a#3,a#4,d#5]@2", // D#5
  AN: "~@2 [a#3,a#4,d#5] ~ [a#3,a#4,d#5] ~ [g#3,g#4,c#5] ~ [a#3,a#4,d#5] ~ [a#3,a#4,d#5] ~ [a#3,a#4,d#5] ~ [g#3,g#4,c#5] ~", // D#5 C#5 D#5 C#5
  AO: "[a#3,a#4,d#5]@3 ~ [a#3,a#4,d#5]@2 ~@2 [a#3,a#4,d#5] ~ [a#3,a#4,d#5]@3 ~ [a#3,a#4,d#5]@2", // D#5
  AP: "~@2 [a#3,a#4,d#5] ~ [a#3,a#4,d#5] ~ [g#3,g#4,c#5] ~ [a#3,g#4,a#4,d#5] ~ [a#3,a#4,d#5] ~ [a#3,a#4] ~ [g#3,g#4,c#5] ~, ~@6 d#5 ~", // D#5 C#5 D#sus4 D#5 A# C#5
  AQ: "[a#4,d#5] ~@7", AR: "~@12 d#5 ~ c#5 ~", AS: "d#5 ~@7", AT: "~@12 d#5@2 c#5 ~",
  AU: "[a#4,d#5]@2 ~@2 a#4@2 ~@2 a#4 ~ a#4@2 g#4 ~ a#4@2", // D#5
  AV: "~@2 a#4 ~ a#4@2 g#4 ~ a#4 ~ a#4 ~ [a#4,d#5]@2 [g#4,c#5] ~", // D#5 C#5
  AW: "[a#4,d#5]@2 ~@2 a#4 ~@3 a#4 ~ a#4@2 g#4 ~ a#4@2", // D#5
  AX: "~@2 a#4 ~ a#4@2 g#4 ~ b4@2 a#4 ~ d#5@2 [g#4,c#5] ~, ~@12 a#4 ~@3", // C#5
  AY: "[a#4,d#5]@2 ~@2 a#4@2 g#4 ~ a#4 ~ a#4@2 g#4 ~ a#4@2", // D#5
  AZ: "~@2 a#4 ~ a#4@2 g#4 ~ b4@2 a#4 ~ [a#4,d#5]@2 [g#4,c#5] ~", // D#5 C#5
  BA: "[d#4,a#4,d#5]@3 ~ [d#4,a#4,d#5]@3 ~ [d#4,a#4,d#5] ~ [a#4,d#5] ~ [c#4,g#4,c#5] ~ [d#4,a#4,d#5,f5]@2, ~@5 d#4 ~@2", // D#5 C#5 D#sus2
  BB: "~@2 [d#4,a#4,d#5] ~ [d#4,d#5]@2 [c#4,g#4,c#5] ~ [d#4,a#4,d#5] ~ [d#4,a#4,d#5] ~ [d#4,a#4,d#5] ~ [c#4,g#4,c#5] ~, ~@4 a#4 ~@11", // D#5 D# C#5 D#5 C#5
  BC: "[d#4,a#4,d#5]@3 ~ [d#4,a#4,d#5] ~ [c#4,g#4,c#5] ~ [d#4,a#4,d#5] ~ [d#4,a#4,d#5] ~ [c#4,g#4,c#5] ~ [d#4,a#4,d#5]@2", // D#5 C#5 D#5 C#5 D#5
  BD: "~@2 [d#4,a#4,d#5] ~ [a#4,d#5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5]@2 [d#4,a#4,d#5] ~ [d#4,a#4,d#5] ~ [c#4,g#4,c#5] ~, ~@2 d#4 ~@5", // D#5 C#5 E5 D#5 C#5
  BE: "[d#4,a#4,d#5]@3 ~ [a#4,d#5]@2 ~@2 [d#4,a#4,d#5] ~ [d#4,a#4,d#5] ~ a#4 ~ [d#4,a#4,d#5] ~, ~@4 d#4 ~@11", // D#5
  BF: "~@2 [d#4,a#4,d#5] ~ [d#4,a#4,d#5] ~ [c#4,g#4,c#5] ~ [d#4,a#4,d#5,f5] ~ [d#4,a#4,d#5] ~ [d#4,a#4,d#5] ~ [c#4,g#4,c#5] ~", // D#5 C#5 D#sus2 D#5 C#5
  BG: "[d#4,a#4,d#5]@2 ~@2 [d#4,a#4,d#5] ~@3 [d#4,a#4,d#5] ~ [d#4,a#4,d#5] ~ a#4 ~ [d#4,a#4,d#5]@2", // D#5
  BH: "~@2 [d#4,a#4,d#5] ~ [d#4,a#4,d#5] ~ [c#4,g#4,c#5] ~ [e4,a#4,e5] ~ [d#4,a#4,d#5] ~ [d#4,a#4,d#5] ~ [c#4,g#4,c#5] ~", // D#5 C#5 Edim D#5 C#5
  BI: "[d#4,a#4,d#5]@3 ~ [d#4,a#4,d#5,g#5]@3 ~ [d#4,a#4,d#5,g#5] ~ [d#4,a#4,d#5,g#5]@2 a#4 ~ [d#4,a#4,d#5,g#5]@2, f5 ~@15", // D#5 D#sus4
  BJ: "~@2 [d#4,a#4,d#5,g#5] ~ [d#4,a#4,d#5,g#5] ~ [c#4,g#4,c#5,f#5] ~ [d#4,a#4,d#5,g#5] ~ [d#4,a#4,d#5,g#5] ~ [d#4,a#4,d#5,g#5] ~ [c#4,g#4,c#5,f#5] ~", // D#sus4 C#sus4 D#sus4 C#sus4
  BK: "[d#4,a#4,d#5,g#5]@2 ~@2 [d#4,a#4,d#5,g#5] ~ a#4 ~ [d#4,a#4,d#5,g#5] ~ [d#4,a#4,d#5,g#5] ~ [d#4,a#4] ~ [d#4,a#4,d#5,g#5]@2", // D#sus4 D#5 D#sus4
  BL: "~@2 [d#4,a#4,d#5,g#5] ~ [d#4,a#4,d#5,g#5,a#5] ~ [c#4,g#4,c#5,f#5] ~ [d#4,a#4,d#5,g5,g#5] ~ [d#4,a#4,d#5,g#5] ~ [d#4,a#4,d#5,g#5] ~ [c#4,g#4,c#5,f#5] ~", // D#sus4 C#sus4 D# D#sus4 C#sus4
  BM: "[d#4,a#4,d#5,g#5]@3 ~ [d#4,a#4,d#5,a#5]@3 ~ [d#4,a#4,d#5,a#5] ~ [d#4,a#4,d#5,a#5]@3 ~ [d#4,a#4,d#5,a#5]@2, g5 ~@15", // D#sus4 D#5
  BN: "~@2 [d#4,a#4,d#5,a#5] ~ [d#4,a#4,d#5,a#5] ~ [c#4,g#4,c#5,g#5] ~ [d#4,a#4,d#5,a#5] ~ [d#4,a#4,d#5,a#5] ~ [d#4,a#4,d#5,a#5] ~ [c#4,g#4,c#5,g#5] ~", // D#5 C#5 D#5 C#5
  BO: "[d#4,a#4,d#5,a#5]@2 ~@2 [d#4,a#4,d#5,a#5] ~ [c#4,g#4,c#5,g#5] ~ [d#4,a#4,d#5,a#5] ~ [d#4,a#4,d#5,a#5] ~ [c#4,g#4,c#5,g#5] ~ [d#4,a#4,d#5,a#5]@2", // D#5 C#5 D#5 C#5 D#5
  BP: "[d#4,a#4,d#5,a#5] ~@7", BQ: "~@12 a#4@2 g#4 ~", BR: "a#4 ~@7", BS: "~@12 a#4 ~ g#4 ~",
})).s("gm_clavinet").gain(0.8)

// chords · distortion guitar
const distortion_guitar_2 = note(`<
  ~@23 A B@2 C@2 D@2 C@2 ~@15 A B@2 C@2 D@2 C@2 E@2 F@2 G@2 H@2 I@2 H@2 E@2 H@2 J@8 K@8 E@2 F@2 G@2 H@2 I@2 H@2 E@2 H@2
  ~@8
>`.pickRestart({
  A: "~@4 [a#2,a#3] [b2,b3] [a#2,a#3] [f#2,f#3]", // A# B A# F#
  B: "[g#2@4 ~ g#2 a#2 b2@5 a#2 b2 a#2 g#2, d#3@7 ~@9, g#3@6 ~ [f#3,b3]@8 ~]/2", // B5
  C: "[f#2@4 ~ f#2 g#2 [c#3,g#3]@4 ~ [a#2,a#3] [b2,b3] [a#2,a#3] [f#2,f#3], [c#3,f#3]@6 ~ c#4@5 ~@4]/2", // C#5 A# B A# F# F#5
  D: "[g#2@4 ~ g#2 a#2 b2@5 a#2 b2 a#2 g#2, d#3@7 f#3@8 ~, g#3@6 ~ b3@9]/2",
  E: "[g#2@9 ~ g#2@2 a#2@2 b2@10 a#2@2 b2@2 a#2@2 g#2@2, [d#3,g#3]@14 [f#3,b3]@17 ~]/2", // G#5 B5
  F: "[f#2@4 ~ f#2 g#2 [c#3,g#3,c#4]@5 [a#2,a#3] [b2,b3] [a#2,a#3] [f#2,f#3], [c#3,f#3]@13 ~@19]/2", // C#5 A# B A# F# F#5
  G: "[g#2@9 ~ g#2@2 a#2@2 b2@10 a#2@2 b2@2 a#2!2 g#2@2, [d#3,g#3]@7 [f#3,b3]@9]/2", // G#5 B5
  H: "[f#2@9 ~ f#2@2 g#2@2 [c#3,g#3,c#4]@10 [a#2,a#3]@2 [b2,b3]@2 [a#2,a#3]@2 [f#2,f#3]@2, [c#3,f#3]@13 ~@19]/2", // C#5 A# B A# F# F#5
  I: "[g#2@4 ~ g#2 a#2 b2@5 a#2 b2 a#2 g#2, [d#3,g#3]@7 [f#3,b3]@9]/2", // G#5 B5
  J: "[a#3@2 a#3@2 a#3@2 g#3 ~ a#3@4 g#3 ~ a#3@4 a#3 ~ a#3 ~ g#3 ~ a#3@4 ~ g#3 a#3@4 a#3@2 a#3@2 g#3@2 a#3@4 g#3 ~ a#3@4 a#3@2 a#3@2 g#3@2 a#3@4 g#3 ~ a#3@4 a#3@2 a#3@2 g#3@2 a#3@4 g#3 ~ a#3@4 a#3@2 a#3@2 g#3@2 a#3@4 g#3 ~ a#3@4 a#3@2 a#3@2 g#3@2 a#3@4 g#3 ~ a#3@4 a#3@2 a#3 ~ g#3 ~ a#3@4 g#3 ~ a#3@2]/8",
  K: "[~@2 a#3@2 a#3@2 g#3 ~ a#3@4 g#3 ~ a#3@4 a#3@2 a#3@2 g#3@2 a#3@4 g#3@2 a#3@4 a#3@2 a#3@2 g#3@2 a#3@4 g#3@2 a#3@4 a#3@2 a#3@2 g#3@2 a#3@4 ~ g#3 a#3@4 a#3@2 a#3@2 g#3@2 a#3@4 g#3 ~ a#3@4 a#3@2 a#3@2 g#3@2 a#3@4 g#3@2 a#3@4 a#3@2 a#3@2 g#3@2 a#3@4 g#3@2 a#3@4 a#3@2 a#3@2 a#3 ~ [a#2,a#3]@2 [b2,b3]@2 [a#2,a#3]@2 [f#2,f#3]@2]/8", // A# B A# F#
})).s("gm_distortion_guitar").gain(0.39).pan(1)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A B A B A B A B A B A B A B A B A C A B A C A B A D A B A E A B A B A B A B A B A C A B A C A B A D A B A F G B G
  H I B G J G B G K G B G L A B A B A B A C A B A B A B A M G B G H I B G J G B G K G B G L A B A B A B A ~
>`.pickRestart({
  A: "x ~@3 x!2 ~ x", B: "~ x ~@2 x!2 ~@2", C: "~ x ~@2 x ~@3", D: "~@2 x ~@3 x ~@3 x!2 ~@2 x ~",
  E: "~@2 x ~@3 x ~@3 x!2 ~@4", F: "x ~ x ~@4 x ~@3 x ~@4", G: "x!2 ~@2 x!2 ~ x", H: "~@2 x ~@5 x ~ x!2 ~@4",
  I: "x ~ x ~@6 x!2 ~@3 x ~", J: "~@2 x ~@3 x ~ x ~ x!2 ~ x ~@2", K: "~ x ~ x ~ x ~@2", L: "~@2 x ~@5 x ~ x!2 ~ x ~@2",
  M: "~@2 x ~@5 x ~@4 x ~@2",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A@21 B A@3 C A@3 C A@15 B A@3 C A@3 D A E A F A G@2 H G@2 A I A@3 F A@7 E A G@6 J A E A F A G@2 H G@2 A I A@3 F
  A@7 ~
>`.pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "~@4 x ~@3 x!2 ~@2 x ~@3", D: "~@4 x ~@3 x!2 ~@2 x!4", E: "~@4 x ~@7 x ~@2 x",
  F: "~@4 x ~@2 x ~ x ~@2 x ~ x!2", G: "~@4 x ~@2 x ~@4 x ~@3", H: "~@4 x ~@4 x ~@2 x ~ x!2", I: "~@4 x ~@2 x!3 ~ x!5",
  J: "~@4 x ~@2 x ~@2 x ~ x ~ x!2",
})).gain(0.8)

// drums · low tom
const low_tom = s("lt").struct("<~@23 A ~@7 B ~@15 A ~@8 C ~@31 C ~@23>".pickRestart({
  A: "~@11 x!2 ~ x ~", B: "~@7 x", C: "~@3 x",
})).gain(0.8)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@2 A@5 B C A@14 ~@9 C A@6 B C A@6 ~@25 D@8 E D E D E D E F ~@16 A@3 B C A@2 ~
>`.pickRestart({
  A: "x!4", B: "x!3 ~", C: "~ x!3", D: "x!8", E: "~ x!6 ~", F: "x!5 ~@3",
})).gain(0.8)

// drums · open hat
const open_hat = s("oh").struct("<~@23 A ~@15 B ~@7 A ~@32 C ~ C ~ C ~ C ~@25>".pickRestart({
  A: "x!2 ~@2 x ~@3", B: "~@3 x", C: "x ~@6 x",
})).gain(0.8)

// drums · ride
const ride = s("rd").struct(`<
  ~@24 A B C B A B C D ~@16 A B C B A B C ~ C E F G H B C I H B H J C K C L ~@16 C E F G H B C I H B H J C K C L ~@8
>`.pickRestart({
  A: "~ x!6 ~", B: "x!8", C: "~ x!4 ~ x ~", D: "x!4 ~@4", E: "~@2 x!6", F: "x ~ x!5 ~", G: "~ x!4 ~@3",
  H: "~@2 x!3 ~ x ~", I: "~ x!3 ~@4", J: "x!5 ~@3", K: "~ x!7", L: "~ x ~@6",
})).gain(0.64)

// drums · ride · soft notes
const ride_soft = s("rd").struct(`<
  ~@57 A B ~ B ~@2 C B ~ B ~@2 C ~ C ~@17 A B ~ B ~@2 C B ~ B ~@2 C ~ C ~@8
>`.pickRestart({
  A: "x!2 ~@6", B: "~ x ~@6", C: "x",
})).gain(0.32)

// drums · china
// … 10 more lines

More by Local H