Strudelify
Everybody Hurts cover art

1992 · Automatic For The People

Everybody Hurts

R.E.M.

KeyD majorTempo62 bpm
0:00/0:00
// Everybody Hurts — R.E.M.
// 62 bpm, 6/8, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 3 "Strings" named as a string part, played on string ensemble 1 (its piano patch is not one); ch 4 "Accordion" named as an organ, played on accordion (its piano patch is not one)
// note: Full arrangement: all 104 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/3)

// 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 · string ensemble 1 · "Strings"
const string_ensemble_1 = note("<~@29 A@8 B@8 C@6 D E@4 F@5 G@4 H@8 I@4 J@8 K@8 L@8 M@3>".pickRestart({
  A: "[~@15 [a4,d5,f#5]@63 [g4,b4,d5]@65 [a4,d5,f#5]@64 [g4,b4,d5]@64 [a4,d5,f#5]@64 [g4,b4,d5]@49]/8", // D G D G D G
  B: "[~@14 f#5@65 g4@47 f#4@17 [g4,e5]@63 ~ [a4,c#5,e5]@64 [g4,b4,e5]@64 [a4,c#5,e5]@49, ~@13 [a4,d5]@65 ~ b4@128 ~@177, ~@79 d5@65 ~@240]/8", // C A Em A D5
  C: "[~@13 [g4,b4,e5]@65 ~ [a4,c#5,e5]@64 [a#4,c#5,f#5]@64 [f#4,b4,d5]@32 [a#4,c#5,f#5]@31 ~ [f#4,b4,d5]@17]/6", // Em A F# Bm F# Bm
  D: "~@5 [a#4,c#5,f#5]@11", E: "[~@31 [b4,d5]@64 [c5,e5]@64 [b4,d5]@33, ~@30 f#4@65 g4@97]/4",
  F: "[~@31 c5@64 c#5@95 ~ [a4,d5]@49, ~@31 [a4,e5]@159 f#5@50]/5", // D5 A5
  G: "[~@15 [g4,b4,d5]@64 [a4,d5,f#5]@64 [g4,b4,d5]@49]/4", // G D G
  H: "[~@14 [a4,d5,f#5]@65 [g4,b4,d5]@63 [a4,d5,f#5]@65 g4@48 f#4@16 [g4,e5]@64 [a4,c#5,e5]@49, ~@207 b4@128 ~@49, ~@207 d5@64 ~@113]/8", // D G D C A
  I: "[~@15 [g4,b4,e5]@63 ~ e5@64 [g4,b4,e5]@49, ~@78 [a4,c#5]@65 ~@49]/4", // Em A
  J: "[~@14 [a4,c#5,e5]@65 [a4,d5,f#5]@64 [g4,b4,d5]@64 [a4,d5,f#5]@63 [g4,b4,d5]@65 [a4,d5,f#5]@49]/8", // A D G D G D
  K: "[~@15 [g4,b4,d5]@64 [a4,d5,f#5]@63 [g4,b4,d5]@65 [a4,d5,f#5]@64 [g4,b4,d5]@64 [a4,d5,f#5]@49]/8", // G D G D G D
  L: "[~@15 [g4,b4,d5]@64 [a4,d5,f#5]@64 [g4,b4,d5]@64 [a4,d5,f#5]@64 [g4,b4,d5]@64 [a4,d5,f#5]@49]/8", // G D G D G D
  M: "[~@15 [g4,b4,d5]@64 [a4,d5,f#5]@65]/3", // G D
})).s("gm_string_ensemble_1").gain(0.26)

// chords · accordion
const accordion = note(`<
  ~@5 A@6 B@5 C D@5 E@7 F@6 G@2 H@3 I@8 J@7 K@3 L@2 M@3 N@8 O@5 P@2 Q@5 R@2 S@6 T@5 U@3 V@5
>`.pickRestart({
  A: "[~@37 a4@4 ~ a4@5 g5@10 f#5@5 ~ d5@69 ~ b4@5 d5@5 a4@20 ~@2 a4@4 ~ a4@5 g5@11 f#5@11 e5@5 d5@5 b4@63 ~@18]/6",
  B: "[~@5 a4@4 ~@2 a4@4 g5@11 f#5@11 e5@5 d5@5 b4@52 ~@2 b4@5 d5@21 a4@42 f#4@5 ~ d4@33 ~@32]/5",
  C: "~@27 b4@4 f#5@10 ~ e5@6",
  D: "[~@5 d5@4 b4@5 ~ e5@52 ~ e5@5 f#5@5 ~ e5@26 b4@6 f#5@10 e5@11 ~ d5@5 b4@5 a4@63 ~@28 b4@5 f#5]/5",
  E: "[~@9 e5@11 ~ d5@5 b4@5 e5@35 ~@25 d5@19 ~ a4@69 ~ b4@4 ~ b4@5 c5@11 b4@11 a4@5 g4@5 a4@85 ~ d4@4 ~ d4@5 c5@10 ~ b4@6]/7",
  F: "[~@5 a4@5 g4@26 ~ a4@4 ~ a4@5 g5@10 ~ f#5@5 d5@69 ~ b4@5 d5@5 a4@21 ~ a4@4 ~@2 a4@4 g5@10 ~ f#5@11 e5@5 d5@5 b4@64 ~@17]/6",
  G: "[~@5 a4@3 ~ a4@5 ~ g5@11 f#5@11 e5@4 d5@5 ~ b4@49]/2", H: "[~@5 b4@5 d5@21 ~ a4@42 f#4@5 d4@34 ~@31]/3",
  I: "[~@26 b4@5 f#5@11 e5@11 d5@5 b4@5 e5@51 ~@3 e5@5 f#5@5 e5@27 b4@5 f#5@11 e5@10 ~ d5@5 b4@5 a4@62 ~@28 b4@6 f#5@10 e5@11 d5@5 b4@5 ~ e5@63 ~@2]/8",
  J: "[~@21 f#5@3 ~@2 f#5@3 ~@2 f#5@11 e5@10 ~ e5@3 ~@2 e5@4 ~ e5@11 ~ d5@31 c#5@21 b4@32 ~@22 f#5@3 ~@2 f#5@5 a#5@10 f#5@11 ~ e5@3 ~ e5@3 ~@3 e5@11 d5@39 ~@9 g4@5 e5@11 d5@15 ~ e5@5 d5@17]/7",
  K: "[~@5 d5@5 e5@5 b4@10 a4@11 ~ b4@5 a4@5 b4@3 a4@2 ~ g4@19 ~@2 g4@5 a4@25 ~@2 a4@5 ~ b4@11 a4@15 e5@5 ~]/3",
  L: "[e5@31 ~@17]/2",
  M: "[~@21 f#4@3 ~@2 f#4@5 [d5,g5]@11 [d5,f#5]@5 ~ a4@15 b4@54 [g4,b4]@5 [b4,d5]@5 a4@17, ~@20 a4@4 ~ a4@5 ~@17 d5@69 ~@11 f#4 ~@16]/3", // G5 D G Bm
  N: "[~@5 [f#4,a4]@4 ~ [f#4,a4]@5 [d5,g5]@10 ~ [d5,f#5]@11 [a4,e5]@5 [a4,d5]@5 b4@63 ~@23 [f#4,a4]@4 ~ f#4@5 [d5,g5]@10 [d5,f#5]@11 ~ a4@4 [a4,d5]@5 ~ b4@52 ~@2 [g4,b4]@5 b4@5 ~@16 f#4@43 [d4,f#4]@5 [b3,d4]@47 ~@34, ~@47 g4 ~@89 a4@5 ~@22 e5@5 ~@6 g4 ~@58 d5@21 ~@129, ~@239 a4@59 ~@5 a3 ~@80]/8", // F#m G5 D A5 D5 F#m G5 D …
  O: "[~@11 g4@4 ~ b4@10 [b4,e5]@11 d5@5 g4@5 e5@53 ~ [c#5,e5]@5 [c#5,f#5]@5 e5@26 ~ [g4,b4]@5 [b4,f#5]@11 ~ b4@9 ~ d5@5 g4@5 a4@64 ~, ~@10 b4@5 f#5@11 ~@11 b4@10 c#5 ~@63 b4 ~@42 e5@10 ~ b4@10 e4 ~@64]/5", // E5 C#m F#5 G B5
  P: "[~@26 [g4,b4]@5 [b4,f#5]@10 ~ b4@10 ~@5 g4@5 ~ [c#5,e5]@33, ~@41 e5@11 d5@5 ~@39, ~@53 b4@9 ~@34]/2", // G B5 C#m
  Q: "[~@27 a4@4 a4@15 ~ f#4@48 d4@21 ~ [g4,b4]@4 ~@2 g4@5 [g4,c5]@10 ~ g4@10 [d4,a4]@5 [d4,g4]@5 [f#4,a4]@52 ~@2 f#4@4 [a4,d5]@5 ~ [g4,b4]@17, ~@27 d5@19 ~ a4@70 ~@5 b4@6 ~@10 b4@11 ~@63 a4@5 ~@23]/5", // G C5 D5 G5 F#m D5 G
  R: "[~@5 [b3,d4]@4 ~ [b3,d4]@5 [g4,c5]@11 [g4,b4]@11 [d4,a4]@5 [d4,g4]@5 a4@49, ~@47 f#4 ~@48]/2", // Bm C5 G D5 G5
  S: "[~@5 [f#4,a4]@5 [a4,d5]@5 [g4,b4]@22 [b3,d4]@3 ~@2 [b3,d4]@5 [g4,c5]@10 ~ [g4,b4]@11 [d4,a4]@5 [d4,g4]@5 [f#4,a4]@51 ~@3 f#4@4 [a4,d5]@5 ~ [g4,b4]@21 [b3,d4]@4 ~ [b3,d4]@5 ~ [g4,c5]@10 [g4,b4]@12 [d4,a4]@5 [d4,g4]@5 a4@53 ~ [f#4,a4]@5 [a4,d5]@5 [g4,b4]@2 ~ d4@2 ~ [d4,g4]@11, ~@132 a4@5 ~@70 f#4 ~@65 a4@3 ~@12]/6", // F#m D5 G Bm C5 G D5 G5 …
  T: "[~@5 [b3,d4]@3 ~ [b3,d4]@3 ~@4 d5@10 [d5,f#5]@11 [b4,e5]@4 ~ b4@5 a4@51 ~@2 [f#4,a4]@5 ~ a4@5 [g4,b4]@21 ~ b3@3 ~@2 b3@5 [b4,d5]@2 g4@9 [g4,b4]@11 [d4,a4]@5 [d4,g4]@5 [f#4,a4]@51 ~@3 [f#4,a4]@4 ~ a4@5 [g4,b4], ~@15 g5@11 ~@15 d5@5 ~ f#4 ~@57 d5@5 ~@22 d4@4 ~ d4@5 ~ c5@11 ~@79 d5@5 ~@2]/5", // Bm D E5 F#m G Bm G D5 …
  U: "[~@2 d4@2 ~ d4@15 ~ [b3,d4]@3 ~@2 b3@3 ~@3 d5@10 ~ d5@10 [b4,e5]@5 [b4,d5]@4 ~ [f#4,a4]@51 ~@3 [f#4,a4]@5 [a4,d5]@5 [g4,b4]@17, ~ a4@3 g4@16 ~@5 d4@4 ~@2 g5@11 f#5@11 ~@10 d4 ~@80]/3", // Bm E5 Bm F#m D5 G
  V: "[~@5 [b3,d4]@4 ~ b3@5 [g4,c5]@10 ~ g4@11 [d4,a4]@5 [d4,g4]@5 [f#4,a4]@52 ~@2 [f#4,a4]@5 [a4,d5]@5 [g4,b4]@21 ~ [b3,d4]@4 ~ [b3,d4]@3 ~@3 d5@9 ~ d5@11 [b4,e5]@5 [b4,d5]@5 a4@41 ~@24, ~@9 d4@5 ~@11 b4@12 ~@106 g5@10 f#5@11 ~@11 f#4 ~@64]/5", // Bm C5 D5 G5 F#m D5 G Bm …
})).s("gm_accordion").gain(0.31)

// chords · piano · "Gitaar"
const piano = note("<A@2 ~@102>".pickRestart({
  A: "[[f#3,a3]@5 a3@5 ~ d4@5 f#4@5 d4@5 ~ [d2,a3]@5 f#3@5 a3@5 ~ d4@5 f#4@5 d4@5 ~ [a1,a3]@5 ~@32, a4@21 ~@11, d2@13 ~@3 d2@13 ~@19, d4@11 ~@85]/2", // F#m D5 A
})).s("gm_piano").gain(0.2)

// chords · acoustic guitar steel · "Gitaar"
const acoustic_guitar_steel = note("<~@48 A B C D C E F G H I J K ~@29 L M N O P Q R S T M N O P Q U>".pickRestart({
  A: "[c#4,f#4,a#4]@5 [c#4,f#4,a#4]@2 ~ [c#4,f#4,a#4]@2 ~ [c#4,f#4,a#4]@5 [c#4,f#4,a#4]@5 [c#4,f#4,a#4]@5 ~ [c#4,f#4,a#4]@5 [c#4,f#4,a#4]@5 [c#4,f#4,a#4]@2 ~ [c#4,f#4,a#4]@2 ~ [c#4,f#4,a#4]@5", // F#
  B: "[c#4,f#4,a#4]@5 [c#4,f#4,a#4]@5 ~ [c#4,f#4,a#4]@5 [f#3,b3,d4]@5 [f#3,b3,d4]@2 ~ [f#3,b3,d4]@2 ~ [f#3,b3,d4]@5 [f#3,b3,d4]@5 [f#3,b3,d4]@5 ~ [f#3,b3,d4]@5", // F# Bm
  C: "[c#4,f#4,a#4]@5 [c#4,f#4,a#4]@2 ~ [c#4,f#4,a#4]@2 ~ [c#4,f#4,a#4]@5 [c#4,f#4,a#4]@5 [c#4,f#4,a#4]@5 ~ [c#4,f#4,a#4]@5 [f#3,b3,d4]@5 [f#3,b3,d4]@2 ~ [f#3,b3,d4]@2 ~ [f#3,b3,d4]@5", // F# Bm
  D: "[f#3,b3,d4]@5 [f#3,b3,d4]@5 ~ [f#3,b3,d4]@5 [c#4,f#4,a#4]@5 [c#4,f#4,a#4]@2 ~ [c#4,f#4,a#4]@2 ~ [c#4,f#4,a#4]@5 [c#4,f#4,a#4]@5 [c#4,f#4,a#4]@5 ~ [c#4,f#4,a#4]@5", // Bm F#
  E: "[f#3,b3,d4]@5 [f#3,b3,d4]@5 ~ [f#3,b3,d4]@5 [f#3,b3,d4]@5 [f#3,b3,d4]@2 ~ [f#3,b3,d4]@2 ~ [f#3,b3,d4]@5 [f#3,b3,d4]@5 [f#3,b3,d4]@5 ~ [f#3,b3,d4]@5", // Bm
  F: "[g3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4]@5 [g3,c4,e4]@5 ~ [g3,c4,e4]@5 [g3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@5", // C
  G: "[g3,c4,e4]@5 [g3,c4,e4]@5 ~ [g3,c4,e4]@5 [d4,g4,b4]@5 [d4,g4,b4]@2 ~ [d4,g4,b4]@2 ~ [d4,g4,b4]@5 [d4,g4,b4]@5 [d4,g4,b4]@5 ~ [d4,g4,b4]@5", // C G
  H: "[d4,g4,b4]@5 [d4,g4,b4]@2 ~ [d4,g4,b4]@2 ~ [d4,g4,b4]@5 [d4,g4,b4]@5 [d4,g4,b4]@5 ~ [d4,g4,b4]@5 [e3,a3,c4]@5 [e3,a3,c4]@2 ~ [e3,a3,c4]@2 ~ [e3,a3,c4]@5", // G Am
  I: "[e3,a3,c4]@5 [e3,a3,c4]@5 ~ [e3,a3,c4]@5 [e3,a3,c4]@5 [e3,a3,c4]@2 ~ [e3,a3,c4]@2 ~ [e3,a3,c4]@5 [e3,a3,c4]@5 [e3,a3,c4]@5 ~ [e3,a3,c4]@5", // Am
  J: "[e3,a3,c4] ~@4 [e3,a3,c#4]@2 ~ [e3,a3,c#4]@2 ~ [e3,a3,c#4]@5 [e3,a3,c#4]@5 [e3,a3,c#4]@5 ~ [e3,a3,c#4]@5 [e3,a3,c#4]@5 [e3,a3,c#4]@2 ~ [e3,a3,c#4]@2 ~ [e3,a3,c#4]@5", // Am A
  K: "[e3,a3,c#4]@5 [e3,a3,c#4]@5 ~ [e3,a3,c#4]@4 ~ [e3,a3,c#4]@15 ~@17", // A
  L: "~@16 [a3,d4,f#4]@5 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@5 [a3,d4,f#4]@5 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@5", // D
  M: "[a3,d4,f#4]@5 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@5 [a3,d4,f#4]@5 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@5 [d4,g4,b4]@5 [d4,g4,b4]@2 ~ [d4,g4,b4]@2 ~ [d4,g4,b4]@5", // D G
  N: "[d4,g4,b4]@5 [d4,g4,b4]@5 ~ [d4,g4,b4]@5 [d4,g4,b4]@5 [d4,g4,b4]@2 ~ [d4,g4,b4]@2 ~ [d4,g4,b4]@5 [d4,g4,b4]@5 [d4,g4,b4]@5 ~ [d4,g4,b4]@5", // G
  O: "[a3,d4,f#4]@5 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@5 [a3,d4,f#4]@5 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@5 [a3,d4,f#4]@5 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@5", // D
  P: "[a3,d4,f#4]@5 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@5 [d4,g4,b4]@5 [d4,g4,b4]@2 ~ [d4,g4,b4]@2 ~ [d4,g4,b4]@5 [d4,g4,b4]@5 [d4,g4,b4]@5 ~ [d4,g4,b4]@5", // D G
  Q: "[d4,g4,b4]@5 [d4,g4,b4]@2 ~ [d4,g4,b4]@2 ~ [d4,g4,b4]@5 [d4,g4,b4]@5 [d4,g4,b4]@5 ~ [d4,g4,b4]@5 [a3,d4,f#4]@5 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@5", // G D
  R: "[a3,d4,f#4]@5 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@5 [a3,d4,f#4]@5 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@5 [a3,d4,f#4]@5 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@5", // D
  S: "[d4,g4,b4]@5 [d4,g4,b4]@2 ~ [d4,g4,b4]@2 ~ [d4,g4,b4]@5 [d4,g4,b4]@5 [d4,g4,b4]@5 ~ [d4,g4,b4]@5 [d4,g4,b4]@5 [d4,g4,b4]@2 ~ [d4,g4,b4]@2 ~ [d4,g4,b4]@5", // G
  T: "[d4,g4,b4]@5 [d4,g4,b4]@5 ~ [d4,g4,b4]@5 [a3,d4,f#4]@5 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@5 [a3,d4,f#4]@5 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@5", // G D
  U: "[a3,d4,f#4]@5 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@5 [a3,d4,f#4]@5 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@5 [a3,d4,f#4]@5 [a3,d4,f#4]@11", // D
})).s("gm_acoustic_guitar_steel").gain(0.2)

// bass · acoustic bass · "Bass"
const bass = note(`<
  ~ A B@2 C@2 D@2 E@2 B@2 C@2 F@2 G@2 H@2 I@2 J@2 E@2 B@2 C@2 D@2 E@2 B@2 C@2 K@2 G@2 H@2 I@2 L@2 M@2 N@2 O@2 P@2 Q@2
  R@2 E@2 B@2 C@2 D@2 E@2 S@2 I@2 T@2 G@2 U@2 C@2 D@2 E@2 B@2 V W X@2 Y@2 Z@2 AA@2 X@2 Y@2 AB@2
>`.pickRestart({
  A: "~@16 g1@26 ~ g1@5", B: "[g1@26 ~ d2@4 ~ d2@26 ~ d2@5 d2@26 ~ a1@4 ~]/2",
  C: "[g1@26 ~ g1@5 g1@26 ~ d2@4 ~ d2@26 ~ d2@5]/2", D: "[d2@26 ~ a1@4 ~ g1@26 ~ g1@5 g1@26 ~ d2@4 ~]/2",
  E: "[d2@26 ~ d2@5 d2@26 ~ a1@4 ~ g1@26 ~ g1@5]/2", F: "[d2@26 ~ a1@4 ~ g1@26 ~ g1@5 g1@16 b1@10 ~ f#1@4 ~]/2",
  G: "[e1@26 ~ e1@5 e1@26 ~ b1@4 ~ a1@26 ~ a1@5]/2", H: "[a1@26 ~ e1@4 ~ e1@26 ~ e1@5 e1@26 ~ b1@4 ~]/2",
  I: "[a1@26 ~ a1@5 a1@26 ~ e1@4 ~ e1@26 ~ e1@5]/2", J: "[e1@26 ~ b1@4 ~ a1@26 ~ a1@5 a1@3 ~@29]/2",
  K: "[d2@26 ~ a1@4 ~ g1@26 ~ g1@5 g1@15 b1@11 ~ f#1@4 ~]/2",
  L: "[e1@26 ~ b1@4 ~ a1@26 ~ a1@4 ~ a1@15 ~ e1@4 ~ e2@4 ~@2 e1@4 ~]/2",
  M: "[f#1@26 ~ f#1@5 f#1@26 ~ c#2@5 b1@26 ~ b1@5]/2", N: "[f#1@26 ~ c#2@5 b1@26 ~ b1@5 f#1@26 ~ c#2@5]/2",
  O: "[f#1@26 ~ f#1@5 b1@26 ~ f#1@5 b1@26 ~ b1@5]/2", P: "[c2@26 ~ g1@5 c2@26 ~ c2@5 g1@26 ~ d2@5]/2",
  Q: "[g1@26 ~ g1@5 a1@26 ~ e1@5 a1@26 ~ a1@5]/2", R: "[a1 a1@25 ~ e1@5 a1@26 ~ a1@4 ~ a1@15 ~ e1@5 e2@5 ~ e1@5]/2",
  S: "[g1@16 b1@10 ~ f#1@4 ~ e1@26 ~ e1@5 e1@26 ~ b1@4 ~]/2", T: "[e1@26 ~ b1@4 ~ a1@26 ~ a1@5 a1@26 ~ e1@4 ~]/2",
  U: "[a1@3 ~@29 d2@26 ~ d2@5 d2@26 ~ a1@4 ~]/2", V: "g1@15 g1@11 ~ d2@4 ~ g1@15 ~",
  W: "d2@4 ~ d3@4 ~@2 d2@4 ~ d2@26 ~ d2@5", X: "[d2@26 ~ a1@5 g1@26 ~ g1@5 g1@26 ~ d2@5]/2",
  Y: "[d2@26 ~ d2@5 d2@26 ~ a1@5 g1@26 ~ g1@5]/2", Z: "[g1@26 ~ d2@5 d2@26 ~ d2@5 d2@26 ~ a1@5]/2",
  AA: "[g1@26 ~ g1@5 g1@26 ~ d2@5 d2@26 ~ d2@5]/2", AB: "[g1@26 ~ d2@5 d2@26 ~ d2@5 d2@32]/2",
})).s("gm_acoustic_bass").gain(0.41)

// drums · kick
const kick = s("bd").struct(`<
  A B C D A B C D A B C D A B C D A B C D A B C E A B C D A B C D A B C D A B C D A B C D A B C D C F C F C F C F C F C
  B A B C D A B C D A B C D A B C D A B A D A B C D A B C D C F C F C F C F C F C F C F C B
>`.pickRestart({
  A: "x ~ x", B: "~@11 x ~@4 x ~@31", C: "x ~@26 x ~@4 x ~@15", D: "~@16 x ~@26 x ~@4", E: "~ x ~",
  F: "~@11 x ~@4 x ~@26 x ~@4",
})).gain(0.41)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  A B ~ C A B ~ C A B ~ C A B ~ C A B ~ C A B ~ C A B ~ C A B ~ C A B ~ C A B ~ C A B ~ C A B ~ C ~@12 A B ~ C A B ~ C A
  B ~ C A B ~ C A B ~ C A B ~ C A B ~ C ~@16
>`.pickRestart({
  A: "~@9 x ~@6", B: "~@43 x ~@4", C: "~@11 x ~@36",
})).gain(0.26)

// drums · rim
const rim = s("rim").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A B A B A B A B A C ~@12 A B A B A B A B A
  B A B A B A B A B ~ B A B A B A B A B A ~@15
>`.pickRestart({
  A: "~ x ~", B: "x ~ x", C: "x",
})).gain(0.36)

// drums · snare
const snare = s("sd").struct("<~@47 A B C B C B C B C B C B D ~@28 E C B C B C B C B C B C B C B C>".pickRestart({
  A: "~@31 x!2 ~@15", B: "~ x ~", C: "x ~ x", D: "x", E: "~@47 x",
})).gain(0.46)

// drums · hihat
const hihat = s("hh").struct(`<
  A@23 B A@23 C D E D E D E D E D E D F A@18 G A@9 H I D E D E D E D E D E D E D E
>`.pickRestart({
  A: "x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4", B: "x ~@4 x ~@5 x ~@4 x ~@31", C: "x ~@4 x ~@5 x ~@36",
  D: "~@7 x ~@8", E: "~@5 x ~@31 x ~@10", F: "~@5 x ~@42", G: "x ~@31 x ~@4 x ~@5 x ~@4",
  H: "x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@20", I: "~@37 x ~@10",
})).gain(0.2)

// drums · low tom
const low_tom = s("lt").struct("<~@47 [~@37 x ~@10] ~@11 [~@43 x ~@4] ~@29 [~@5 x ~@42] ~@14>").gain(0.31)

// drums · open hat
const open_hat = s("oh").struct("<~@47 A@2 B A B A B A B A B A C ~@28 D@2 A B A B A B A B A B A B A B>".pickRestart({
  A: "~ x ~", B: "x ~ x", C: "x", D: "~@2 x",
})).gain(0.26)

// drums · mid tom
const mid_tom = s("mt").struct("<~@47 [~@9 x ~@6] ~@11 [~@37 x ~@10] ~@28 [~@43 x ~@4] ~@15>").gain(0.36)

// drums · high tom
const high_tom = s("ht").struct("<~@47 [~@7 x ~@8] ~@11 [~@31 x!2 ~@15] ~@28 [~@37 x ~@10] ~@15>").gain(0.31)

// drums · crash
const crash = s("cr").struct("<~@59 [~ x ~] ~@44>").gain(0.36)

// drums · ride
const ride = s("rd").struct("<~@48 A B A B A B A B A B A C ~@29 D A B A B A B A B A B A B A E>".pickRestart({
  A: "x ~@4 x ~@2 x ~@2 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@2 x ~@2 x ~@4",
  B: "x ~@4 x ~@5 x ~@4 x ~@4 x ~@2 x ~@2 x ~@4 x ~@4 x ~@5 x ~@4", C: "x ~@4 x ~@5 x ~@36",
  D: "~@16 x ~@4 x ~@2 x ~@2 x ~@4 x ~@4 x ~@5 x ~@4", E: "x ~@4 x ~@5 x ~@4 x ~@4 x ~@2 x ~@2 x ~@4 x ~@4 x ~@10",
})).gain(0.26)

stack(
  string_ensemble_1, accordion, piano, acoustic_guitar_steel, bass, kick, kick_soft, rim, snare, hihat, low_tom,
  open_hat, mid_tom, high_tom, crash, ride
)

More by R.E.M.