Strudelify

Turn On, Turn In, Cop Out

Freak Power

KeyB♭ minorTempo123 bpm
0:00/0:00
// Turn On, Turn In, Cop Out — Freak Power
// 123 bpm, 4/4, key A# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 131 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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 · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  ~@8 A@4 B@3 C D@8 E@4 F@2 G ~ A@8 D@8 E@4 F@2 G ~ A@8 G ~ H ~ G ~ I@2 D@8 E@8 G ~ H ~ G ~ H ~ A@16 ~@16 J@3
>`.pickRestart({
  A: "[[gb3,bb3,db4,f4]@8 ~@2 [gb3,bb3,db4,f4] ~@3 [ab3,c4,eb4,f4]@14 ~@2 [gb3,bb3,db4,f4]@11 ~ [gb3,bb3,db4,f4] ~@3 [ab3,c4,eb4,f4]@18]/4", // Gbmaj7 Fm7 Gbmaj7 Fm7
  B: "[[gb3,bb3,db4,f4]@8 ~@2 [gb3,bb3,db4,f4] ~@3 [ab3,c4,eb4,f4]@14 ~@2 [gb3,bb3,db4,f4]@11 ~ [gb3,bb3,db4,f4] ~@5]/3", // Gbmaj7 Fm7 Gbmaj7
  C: "[ab3,c4,eb4,f4] ~ [ab3,c4,eb4,f4] ~ [ab3,c4,eb4,f4] ~@11", // Fm7
  D: "[[gb3,bb3,db4,f4]@3 ~ [gb3,bb3,db4,f4] ~@5 [gb3,bb3,db4,f4] ~@3 [ab3,c4,eb4,f4]@7 ~@9 [gb3,bb3,db4,f4]@5 ~ [gb3,bb3,db4,f4] ~@5 [gb3,bb3,db4,f4] ~@3 [ab3,c4,eb4,f4]@6 ~@12]/4", // Gbmaj7 Fm7 Gbmaj7 Fm7
  E: "[[gb3,bb3,db4,f4]@9 ~ [gb3,bb3,db4,f4] ~@3 [ab3,c4,eb4,f4]@14 ~@2 [gb3,bb3,db4,f4]@10 ~@2 [gb3,bb3,db4,f4] ~@3 [ab3,c4,eb4,f4]@14 ~@4]/4", // Gbmaj7 Fm7 Gbmaj7 Fm7
  F: "[[gb3,bb3,db4,f4]@9 ~ [gb3,bb3,db4,f4] ~@3 [ab3,c4,eb4,f4]@14 ~@4]/2", // Gbmaj7 Fm7
  G: "[gb3,bb3,db4,f4] ~ [gb3,bb3,db4,f4] ~ [gb3,bb3,db4,f4] ~@9 [ab3,c4,eb4,f4] ~", // Gbmaj7 Fm7
  H: "[gb3,bb3,db4,f4] ~ [gb3,bb3,db4,f4] ~ [gb3,bb3,db4,f4] ~@5 [gb3,db4]@2 ~@2 [ab3,c4,eb4,f4] ~, ~@10 [bb3,f4] ~@5", // Gbmaj7 Gb5 Fm7 Bb5
  I: "[[gb3,bb3,db4,f4] ~ [gb3,bb3,db4,f4] ~ [gb3,bb3,db4,f4] ~@5 [gb3,db4]@2 ~@2 ab3@8 [ab3,ab4] ~@9, ~@10 [bb3,f4] ~@3 [c4,eb4,f4]@18]/2", // Gbmaj7 Gb5 Ab Bb5 F7
  J: "[~ [gb3,bb3,db4,f4]@10 ~]/3", // Gbmaj7
})).s("gm_epiano2").gain(0.42)

// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  A@14 B C A@14 D ~ A@22 D ~ A@8 D ~ E ~ D ~ E ~ A@16 D ~ E ~ D ~ E ~ A@16 ~@8 A@6 F@2 G@3
>`.pickRestart({
  A: "[eb2@4 ~@2 eb2 ~ gb2@2 bb2@2 ~@2 ab2@6 ~@2 bb2@2 db3@2 bb2@2 db3@2 eb3@2]/2",
  B: "eb2@4 ~@2 eb2 ~ gb2@2 bb2@2 ~@2 ab2@2", C: "ab2 ~ ab2 ~ ab2 ~@11", D: "eb2 ~ eb2 ~ eb2 ~@9 ab2 ~",
  E: "eb2 ~ eb2 ~ eb2 ~@5 eb2 ~@3 ab2 ~", F: "[eb2@4 ~@2 eb2 ~ gb2@2 ~ bb2@2 ~@2 ab2@7 ~@2 bb2@2 ~ db3@2 bb2@2 ~]/2",
  G: "[db3@2 eb3@2 eb2@39 ~@5]/3",
})).s("gm_synth_bass_2").gain(0.4)

// other · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  A@14 B C ~@8 A@6 D ~ A@8 ~@8 A@6 D ~ A@8 E ~ F ~ E ~ F ~ A@16 D ~ F ~ E ~ F ~ A@16 ~@8 A@6 G@2 H@3
>`.pickRestart({
  A: "[eb2@4 ~@2 eb2 ~ gb2@2 bb2@2 ~@2 ab2@6 ~@2 bb2 ~ db3@2 bb2@2 db3@2 eb3@2]/2",
  B: "eb2@4 ~@2 eb2 ~ gb2@2 bb2@2 ~@2 ab2@2", C: "ab2 ~ ab2 ~ ab2 ~@11", D: "eb2 ~ eb2 ~ eb2 ~@9 ab2 ~",
  E: "~@2 eb2 ~ eb2 ~@9 ab2 ~", F: "~@2 eb2 ~ eb2 ~@5 eb2 ~@3 ab2 ~",
  G: "[eb2@4 ~@2 eb2 ~ gb2@2 ~ bb2@2 ~@2 ab2@7 ~@2 bb2 ~@2 db3@2 bb2@2 ~]/2", H: "[db3@2 eb3@2 eb2@39 ~@5]/3",
})).s("gm_epiano1").gain(0.46)

// bass · fretless bass · "MELODY"
const bass_2 = note(`<
  ~@15 A B C@2 A B C@2 D E F G@2 H I J@2 ~@2 K L ~@2 M N B C@2 A B C@2 D E F G@2 H I J@2 ~@2 K L ~@2 M O@3 P@4 Q@2 ~@26
  K L ~@2 M R ~@2 K L ~@2 M R ~@10 K L ~@2 S@3 ~@2
>`.pickRestart({
  A: "~@7 bb2", B: "db3 ~ db3@2 ~@12", C: "[~@6 bb2@2 db3 ~ bb2 ~ db3@2 eb3@6 ~@12]/2", D: "~@10 bb2@2 db3 ~ bb2@2",
  E: "f3@3 ~ f3@3 ~@7 bb2@2", F: "f3@2 gb3@2 ab3@2 f3@4 bb2 ~ db3 ~ bb2 ~",
  G: "[f3@3 ~ f3@2 eb3@2 f3 ~ gb3@2 ab3@2 f3@6 ~@6 bb2@2 db3@2 bb2@2]/2", H: "f3 ~ f3@3 ~@7 f3@2 eb3@2",
  I: "f3@2 gb3@2 ab3@2 f3@3 ~@3 db3@2 bb2@2",
  J: "[f3@2 eb3@2 f3@2 eb3@2 f3@2 gb3@2 ab3@2 bb3@4 ab3@3 ~ db4@2 eb3@4 ~@4]/2", K: "~@8 db4 ~ eb4@2 ~@2 [c4,eb4]@2",
  L: "~@2 [bb3,db4]@2 ~@2 [ab3,c4]@3 ~ [bb3,db4]@6", M: "~@8 [eb3,gb3] ~ [f3,ab3]@2 ~@2 [ab3,c4]@2",
  N: "~@2 [ab3,c4] ~ [ab3,c4]@2 [gb3,bb3]@2 [bb3,db4] ~@5 bb2@2, ~@5 [f3,ab3]@3", // Ab Gb Bbm Fm
  O: "[~@2 [ab3,c4] ~ [ab3,c4]@2 [gb3,bb3]@2 [bb3,db4] ~ bb2 ~ db3 ~ f3@4 bb2@2 db3 ~ f3@4 bb2 ~ db3 ~ f3@4 bb2@2 db3@2 f3@3 ~ bb2@2 db3 ~ bb2@2, ~@5 ab3@3 ~@16, ~@5 f3@2 ~@17]/3", // Ab Gb Bbm
  P: "[f3@2 f3 ~ f3@2 eb3@2 f3 ~ gb3@2 ab3@2 f3@4 ~@8 bb2@2 db3 ~ f3@4 bb2 ~ db3@2 f3@4 bb2 ~ db3@2 f3@4 bb2 ~ db3@2 f3@4 bb2 ~ db3 ~ f3@2]/4",
  Q: "[~@2 f3@2 f3@2 eb3@2 f3 ~ gb3@2 ab3@2 bb3@4 ab3@4 ~@10]/2",
  R: "~@2 [ab3,c4] ~ [ab3,c4]@2 [gb3,bb3]@2 [bb3,db4] ~ [f3,ab3]@6", // Ab Gb Bbm Fm
  S: "[~@8 [eb3,gb3]@2 [f3,ab3]@2 ~@3 [ab3,c4]@4 ~ [ab3,c4]@2 [ab3,c4]@2 [gb3,bb3]@2 ~ [bb3,db4]@2 [f3,ab3]@7 ~@12]/3", // Ebm Fm Ab Gb Bbm Fm
})).s("gm_fretless_bass").gain(0.43)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@7 A@8 B ~@7 C@7 D E@8 F@8 G@7 D E@8 H I ~ J ~ I ~ J E@8 K@8 H I ~ J ~ I ~ J E@8 K@8 H ~@19
>`.pickRestart({
  A: "[~@16 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,f4] ~@3 [c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,f4] ~@3 [c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,f4] ~@3 [c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4, ~@7 [gb3,bb3,db4]@7 ~ [ab3,c4]@4 ~@4 [gb3,bb3,db4]@7 ~ [ab3,c4]@4 ~@4 [gb3,bb3,db4]@7 ~ [ab3,c4]@4 ~@4 [gb3,bb3,db4]@7 ~@2, ~@31 [eb4,f4]@7 ~@25 [eb4,f4]@7 ~@25 [eb4,f4]@7 ~@26]/8", // Bb5 F5 F7 Bb5 F5 F7 Bb5 F5 …
  B: "[c4,eb4,f4,ab4] ~ [c4,eb4,f4,ab4] ~ [c4,eb4,f4,ab4] ~@11", // Fm7
  C: "[~@6 [c4,eb4,f4] ~@3 [ab3,c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,eb4,f4] ~@3 [ab3,c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,eb4,f4] ~@3 [ab3,c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,eb4,f4] ~@3 [ab3,c4,eb4,f4] ~@5, ~@7 [gb3,bb3,db4]@7 ~ [ab3,c4]@4 ~@4 [gb3,bb3,db4]@7 ~ [ab3,c4]@4 ~@4 [gb3,bb3,db4]@7 ~ [ab3,c4]@4 ~@5, ~@31 [eb4,f4]@7 ~@25 [eb4,f4]@7 ~@25 [eb4,f4]@7 ~@10]/7", // F7 Fm7 Bb5 F7 Fm7 Bb5 F7 Fm7 …
  D: "[bb3,db4,f4,bb4] ~ [bb3,db4,f4,bb4] ~ [bb3,db4,f4,bb4] ~@9 [c4,eb4,f4,ab4] ~", // Bbm Fm7
  E: "[~@16 [db4,f4,bb4]@12 ~@4 ab4@5 ~ [c4,f4] ~@3 [c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,f4] ~@3 [c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,f4] ~@3 [c4,eb4,f4] ~@5 [f4,bb4]@12 ~@3 [eb4,f4], ~@15 [gb3,bb3]@13 ~@2 [ab3,c4]@8 ~@8 [gb3,bb3,db4]@14 ~@2 [ab3,c4]@8 ~@8 [gb3,bb3,db4]@14 ~@2 [ab3,c4]@8 ~@8 [gb3,bb3,db4]@14 ~@2 [ab3,c4]@2, ~@31 [eb4,f4]@7 ~@25 [eb4,f4]@7 ~@25 [eb4,f4]@7 ~@26]/8", // Bbm F5 F7 Bb5 F5 F7 Bb5 F5 …
  F: "[ab4@5 ~ [c4,f4] ~@3 [c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,eb4,f4] ~@3 [ab3,c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,eb4,f4] ~@3 [ab3,c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,eb4,f4] ~@3 [ab3,c4,eb4,f4] ~@5 [f4,bb4]@12 ~@3 [eb4,f4], ~@7 [gb3,bb3,db4]@7 ~ [ab3,c4]@4 ~@4 [gb3,bb3,db4]@7 ~ [ab3,c4]@4 ~@4 [gb3,bb3,db4]@7 ~ [ab3,c4]@4 ~@4 [gb3,bb3,db4]@7 ~ [ab3,c4], ~@31 [eb4,f4]@7 ~@25 [eb4,f4]@7 ~@25 [eb4,f4]@7 ~@26]/8", // F5 F7 Bb5 F7 Fm7 Bb5 F7 Fm7 …
  G: "[ab4@5 ~ [c4,eb4,f4] ~@3 [ab3,c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,eb4,f4] ~@3 [ab3,c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,eb4,f4] ~@3 [ab3,c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,eb4,f4] ~@3 [ab3,c4,eb4,f4] ~@5, ~@7 [gb3,bb3,db4]@7 ~ [ab3,c4]@4 ~@4 [gb3,bb3,db4]@7 ~ [ab3,c4]@4 ~@4 [gb3,bb3,db4]@7 ~ [ab3,c4]@4 ~@5, ~@31 [eb4,f4]@7 ~@25 [eb4,f4]@7 ~@25 [eb4,f4]@7 ~@10]/7", // F7 Fm7 Bb5 F7 Fm7 Bb5 F7 Fm7 …
  H: "ab4@5 ~ [c4,f4] ~@3 [c4,eb4,f4] ~@5", // F5 F7
  I: "[gb3,bb3,db4,f4] ~ [gb3,bb3,db4,f4] ~ [gb3,bb3,db4,f4] ~@9 [ab3,c4,eb4,f4] ~", // Gbmaj7 Fm7
  J: "[gb3,bb3,db4,f4] ~ [gb3,bb3,db4,f4] ~ [gb3,bb3,db4,f4] ~@5 [gb3,bb3,db4,f4] ~@3 [ab3,c4,eb4,f4] ~", // Gbmaj7 Fm7
  K: "[ab4@5 ~ [c4,f4] ~@3 [c4,eb4,f4] ~@5 [db4,f4,bb4]@12 ~@4 ab4@5 ~ [c4,f4] ~@3 [c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,f4] ~@3 [c4,eb4,f4] ~@5 [f4,bb4]@12 ~@4 ab4@5 ~ [c4,f4] ~@3 [c4,eb4,f4] ~@5 [f4,bb4]@12 ~@3 [eb4,f4], ~@15 [gb3,bb3]@13 ~@2 [ab3,c4]@8 ~@8 [gb3,bb3,db4]@14 ~@2 [ab3,c4]@8 ~@8 [gb3,bb3,db4]@14 ~@2 [ab3,c4]@8 ~@8 [gb3,bb3,db4]@14 ~@2 [ab3,c4]@2, ~@31 [eb4,f4]@7 ~@25 [eb4,f4]@7 ~@25 [eb4,f4]@7 ~@26]/8", // F5 F7 Bbm F5 F7 Bb5 F5 F7 …
})).s("gm_electric_guitar_jazz").gain(0.24).pan(0.3)

// chords · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@9 A ~ A ~ A ~@9 B ~ B ~ B ~ B ~@3 A ~ A ~ A ~ A ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@3 A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@19
>`.pickRestart({
  A: "~@6 [ab3,eb4] ~@3 ab3 ~@5", B: "~@6 ab3 ~@9",
})).s("gm_electric_guitar_jazz").gain(0.14).pan(0.3)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@103 A@6 B@3 ~@19>".pickRestart({
  A: "[~@15 [f5,f6]@24 [db5,db6]@8 [f5,f6]@24 [db5,db6]@8 [f5,f6]@17]/6", B: "[~@7 [db5,db6]@8 [c5,c6]@33]/3",
})).s("gm_string_ensemble_2").gain(0.48)

// other · trombone
const trombone = note("<~@72 A B C D E F G H I J K L M N O P ~@43>".pickRestart({
  A: "ab3 a3 bb3@4 bb3 a3 ab3 ~@3 ab3 a3 bb3 a3", B: "~ a3 ab3 ~@3 ab3 a3 bb3 a3 bb3 a3 ab3 eb3@3",
  C: "~@2 gb3 ~ db3 d3 eb3 e3 f3@2 gb3 g3 ab3 bb3@3", D: "c4@2 db4@2 ~@6 eb4 ~@4 eb4",
  E: "~@3 f4 eb4@3 ~ c4 ~@5 db4 c4", F: "~ c4!2 ~@2 ab3 ~@5 gb3 ~@3 [gb3,a3]", G: "~@4 eb3@2 ~@3 f3@2 gb3@2 ab3@2 ~",
  H: "db3@2 db3 ~ db3@2 eb3@2 f3@2 ~@6", I: "~@8 c4 db4 eb4 eb4@3 eb4!2", J: "f4 f4@3 ~ e4 eb4 ~@7 eb4 d4",
  K: "~@8 c4 db4 [c4,eb4] ~@3 c4 ~", L: "~@2 ab3 gb3 ab3@2 bb3 c4 ~ ab3 ~@6", M: "~@5 ab3 ~ gb3 bb3 ~@4 bb3 ~ db4",
  N: "~@2 eb4 ~ c4 f4 ~ db4 ~@3 eb4 a4 ~@3", O: "~@10 ab4 ~ ab4@2 g4 ~", P: "~@6 f4 db4 ~ e4 eb4 ~ eb4@2 db4 ~",
})).s("gm_trombone").gain(0.72)

// other · trombone · soft notes
const trombone_soft = note("<~@73 A ~ B C D E ~ F G H A I J@2 K ~@43>".pickRestart({
  A: "bb3 ~@15", B: "~@4 eb4@2 f4@4 ~@2 gb4@3 ~", C: "f4 ~@7", D: "db4 ~@3 bb3 ~@2 ab3 ~ gb3 ~@3 ab3 ~@2",
  E: "bb3@3 ~@3 eb3 eb3@2 ~@7", F: "~@2 c4@3 c4@2 ~@9", G: "~@4 f4 ~@2 eb4 ~@8", H: "eb4 ~@3 db4 ~@6 db4@3 ~@2",
  I: "~@2 gb3 ~@8 c4 ~@2 db4 ~", J: "[~@8 gb4 ~@3 bb4@12 ~@8]/2", K: "gb4 ~@7 e4 ~@6 db4",
})).s("gm_trombone").gain(0.08)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@80 A B C D A B C D ~@8 A B C D A B C D A B C D A B C D ~@19>".pickRestart({
  A: "[e4,a4] [f4,bb4]@2 [db4,f4,bb4] ~@2 [db4,f4,bb4] [f4,bb4] db4 [db4,f4,bb4] ~@2 [db4,f4,bb4] ~@3, db4@3 ~@13", // A5 Bb5 Bbm Bb5 Bbm
  B: "[e4,g4] [f4,ab4]@2 [c4,f4,ab4] ~@3 [c4,f4,ab4] ~@2 [f4,ab4]!2 [c4,f4,ab4] ~ [f4,ab4]!2, c4@3 ~@13", // Em Fm
  C: "[e4,a4] [f4,bb4]@2 [db4,f4,bb4] ~@2 [db4,f4,bb4] ~@3 [db4,f4,bb4] ~ [db4,gb4] ~@3, db4@3 ~@13", // A5 Bb5 Bbm Gb5
  D: "[e4,g4] [f4,ab4]@2 [c4,f4,ab4] ~@2 [c4,f4,ab4] ~@5 [c4,f4,ab4] ~ [f4,ab4]!2, c4@3 ~@13", // Em Fm
})).s("gm_electric_guitar_clean").gain(0.39).pan(0.3)

// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz_3 = note(`<
  ~@8 A B A C A B D ~@17 A B A C A B D ~@17 A B A C A B D ~@9 A B D ~ A B D ~ A B D ~ A B D ~@9 A B A C A B D ~ A B A C
  A B D ~@20
>`.pickRestart({
  A: "[f4,f5]@7 ~, [e4,e5] ~@15", B: "~@6 [f4,f5] ~ [eb4,eb5]@2 [f4,f5] ~ [db4,db5]@2 [eb4,eb5]@2",
  C: "~@10 [db4,db5]@3 [eb4,eb5]@3", D: "[c4,c5]@7 ~, [b3,b4] ~@15",
})).s("gm_electric_guitar_jazz").gain(0.48)

// chords · lead 1 square · "SQUAREWAVE"
const lead_1_square = note("<~@11 [~@10 ab5@3 gb5@3, ~@10 gb5 ~@5] ~@119>").s("gm_lead_1_square").gain(0.48)

// drums · kick
const kick = s("bd").struct(`<
  ~@8 A B A B A B A ~ A B A B A B A B A B A B A B ~@2 A B A B A B A B A B A B A B A B A B A B A B ~@2 A B A B A B A B
  ~@8 A B A B A B A B A B A B A B A B ~@8 A B A B A B A B A B A B A B A B C D C D C D C D ~@11
>`.pickRestart({
  A: "x ~@2 x!3 ~ x", B: "x ~@2 x!3 ~@2", C: "x!2 ~@3 x ~@2", D: "~ x ~@3 x ~@2",
})).gain(0.4)

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

// drums · clap
const clap = s("cp").struct("<~@8 A@7 ~ A@14 ~@2 A@22 ~@2 A@8 ~@8 A@16 ~@8 A@19 B A@4 ~@11>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@4 x",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@8 A B@6 C A B@13 D E A B@7 A B@13 D E A B@7 D B F B D B G ~ A B@7 A B@7 D B F B D B G ~ A B@15 H B I J I B I K ~@11
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "x!3 ~@5", D: "x!3 ~ x ~ x!2", E: "x!3 ~", F: "x!3 ~ x!4", G: "x!3 ~ x!3 ~",
  H: "~ x!2 ~ x ~ x ~", I: "x!3 ~ x ~ x ~", J: "x ~ x ~ x ~@2 x", K: "x ~ x ~ x ~ x!2",
})).gain(0.72)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@8 A B@2 C B C B ~ A B@2 C B@3 C B@3 C B C ~@2 A B@2 C B@3 C A B@2 C B@3 C B@3 C B C ~@2 A B@2 C B@3 C ~@8 A B@2 C
  B@3 C A B@2 C B@3 C ~@8 A B@2 C B@3 C B@3 C B@3 C A B A C A B A C ~@11
>`.pickRestart({
  A: "~@3 x ~ x ~ x", B: "~ x ~ x ~ x ~ x", C: "~ x ~ x ~ x ~@2",
})).gain(0.4)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@11 A ~ A ~@5 A ~@3 A ~@3 A ~ A ~@5 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A ~@5 A ~@3 A ~@6 A ~@4 A ~@3 A ~@3 A ~@3 A ~@6 A ~@4
  A ~@3 A ~@3 A ~@3 A B ~ B ~ B ~ B ~@12
>`.pickRestart({
  A: "~@7 x", B: "~ x ~@14",
})).gain(0.64)

// drums · mid tom
const mid_tom = s("mt").struct("<~@7 A ~@23 A ~@23 A ~@15 A ~@23 A ~@35>".pickRestart({
  A: "~@7 x",
})).gain(0.32)

// drums · crash
const crash = s("cr").struct(`<
  ~@8 A ~@7 A ~@15 A ~@7 A ~@15 A ~@7 A ~@7 A ~@7 A ~@7 A ~@3 A ~@3 A ~@7 A ~@7 A ~@18
>`.pickRestart({
  A: "x",
})).gain(0.56)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~@56 A B A B A B A B C ~ D ~ E ~ D ~@9 A B A B A B A B C ~ D ~ C ~ D ~@9 A B A B A B A B ~@8 F ~@7 G ~@2
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~@2 x ~@3 x ~@3 x ~@4 x", C: "~ x!2 ~@4 x", D: "x!3 ~@2 x ~ x", E: "x!3 ~@4 x", F: "x",
  G: "~ x ~@2",
})).gain(0.48)
// … 41 more lines