Strudelify

nothing else matters

James Hetfield and Lars Ulrich

KeyE minorTempo71 bpm
0:00/0:00
// nothing else matters — James Hetfield and Lars Ulrich
// 70.5 bpm, 6/8, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (6/8 at bar 1, 9/8 at bar 6, 6/8 at bar 8, 9/8 at bar 55, ...) are rendered on a constant 6/8 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/4531791; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 155 bars on a 24-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): Acoustic Guitar.
setcpm(70.5/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.

// other · flute
const flute = note(`<
  ~@39 A B ~ C D E F G H A B ~ I J I K L@2 ~@6 M N@2 O P@2 Q@2 J ~@35 I J I R I J I S T@2 ~@38
>`.pickRestart({
  A: "~@4 b4@2 a4@2 a4!2 b4@2", B: "a4@2 g4@21 ~", C: "~@2 g4@2 g4@2 g4@2 ~ g4 g4@2", D: "a4@4 b4@2 g4@2 g4@15 ~",
  E: "~@4 e5 b4!2 c5!2 a4@3", F: "a4@2 b4@2 b4@3 c5@5", G: "~@4 a4 b4 a4 b4@2 a4@2 g4", H: "a4@4 b4@4 g4@15 ~",
  I: "~@8 f#5@2 f#5@2 f#5 g5@3 f#5@2 e5@3 f#5@3", J: "f#5@2 e5@21 ~", K: "f#5@2 g5@5 ~@15 f#5@2",
  L: "[f#5@4 ~@2 f#5@2 f#5@4 f#5@2 e5@21 ~@13]/2", M: "~@5 b4", N: "[a4@4 a4@2 a4@2 b4@4 a4@2 g4@21 ~@13]/2",
  O: "~@10 f#5!2", P: "[f#5 ~@3 f#5@2 e5@3 f#5@3 f#5@2 e5@21 ~@9 f#5@2 f#5@2]/2",
  Q: "[f#5 g5@3 f#5@2 e5@3 f#5@3 f#5@2 g5@2 e5@17 ~ f#5@2 f#5@4 ~@2 f#5@2 f#5@4]/2", R: "f#5@2 g5@2 e5@19 ~",
  S: "f#5 g5 e5@9 f#5", T: "[f#5@2 ~ f#5 f#5@2 f#5 g5@16 ~]/2",
})).s("gm_flute").gain(0.45)

// chords · electric guitar jazz · "Electric Guitar [Tablature]"
const electric_guitar_jazz = note(`<
  A@7 B C D E F G@3 H I H I H I J G@2 K L K M K N O P Q K L K M K N R P S K L K M K N R P T U T U T V@7 W@4 X Y X Y Z AA
  G AB AC AD AE AF AG AH AI AB AC AD AE AF AG AH Q K L K M K N R P S K L K M K N R P T U T U T U T U T AJ@3 ~@6 AK@7
  AL@7 AM@2 P AN AO AP@6 P AN AO AQ@3
>`.pickRestart({
  A: "[~@32 g3@4 ~@20 g3@4 ~@20 g3@4 ~@20 b4@4 ~@20 g3@4 b3@4 g3@4 [b3,b4]@4 [b3,c5]@4 b4@2 c5 b4 a4@4 [b3,b4]@4 a4 g#4 g4@2 e4@4, ~@3 e2@6 e2@6 e2@6 e2@6 e2@6 e2@8 ~, ~@4 g3@4 ~@2 g3@4 ~@2 g3@4 ~@2 g3@5 ~@2 g3@2 b3@2 ~@9, ~@10 b3@4 b3@4 ~@4 b3@4 b3@4 ~@4 b3@4 b3@4 ~@4 b3@4 b3@4 ~@2 b3@4 b3 e4@5 ~@18, ~@24 e4@12 ~@12 e4@12 ~@12 e4@12 ~@12 e4@12 b4@12 b4@12 ~@20 a#4 ~@15]/7", // B Cmaj7 B
  B: "~@4 e4@2 ~ e4 ~@2 c4@2, a2, e4@2 ~ f#4@3, ~ c4@4 ~, ~@2 e4",
  C: "~@2 c4@2 e4@2 e4 ~ [c4,e4] ~ [c4,e4] ~, a2@4 a2 b2", // C
  D: "c3@2 ~@5 e4 ~ c4 [c3,c4,e4]@2, [c4,e4]@3 c4@2 c4@3 e4@2 ~@2, ~ c3@4 ~, ~@2 e4 g4@3", // C
  E: "d3@2 ~@4 e4 ~@2 b3 ~ e4, e4@6 ~ a4@3 b3@2, [d4,f#4]@3 d4@2 d4@7, ~ d3@5, ~@8 f#4@7 e4 f#4@8", // D
  F: "~@5 g3, e2@2 b3, ~ g4@5, ~ b4@2, ~ e5", G: "~@5 g3, e2, ~ g3@4 ~, ~ b3!2, ~ e4",
  H: "~ [g4,b4], e2, ~ e3@3, ~ b3@2, ~@5 e4@7", I: "~@5 [c4,e4], d3@2 g3, ~ a3@5, ~ [d4,f#4]@2, ~ c3",
  J: "~@5 [b3,d#4], g2@2 f#3, ~ g3@5, ~ d4@2, ~@2 b3 b2@3", K: "~@11 g3, e2, ~ g3@3 g3 b3, ~@4 b3@5 e4@3, ~ g4",
  L: "d3@2 ~@9 f#2, f#4@8 d4 g3 g2@2, ~ d3@5, ~ g4@3, ~@4 d4 g3 [c3,e4]@6", // C
  M: "d3@2 ~@6 g3 ~@2 f#2, f#4@9 g3 g2@2, ~ d3@5, ~@3 d4@2 g3 [c3,d4]@6, ~ a3@2", // Csus2
  N: "d3 ~@4 g3, f#4, ~ d3@5, ~@3 g4@2 g3@3 d4@4, ~@2 d4 [c3,g4]@3", // C5
  O: "~@6 b2@2 ~@3 a3, g2@9 f#4 b3@2, ~ g3@5, ~ [d4,g4]@2, ~@3 [a3,b3] b2@2", P: "~@5 g3, e2, e4!2, ~ g3@4 ~, ~ b3!2",
  Q: "~@11 f#2, e2@5 g2, ~ g3@5, ~ b3!2, ~ e4", R: "~@3 b2 ~ b3, g2@6 b3@2 b2 f#4@3, ~ g3@5, ~ [d4,g4]@2, ~ a3",
  S: "~@11 f#2, e2@9 e2 g2@2, ~ g3@5, ~ b3!2, ~ e4", T: "[c3,e3,g3,c4,e4] [a2,e3,a3,c#4]",
  U: "[d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!3 [d3,a3,d4,g4] [d3,a3,d4,f#4]@2 [d3,a3,d4,e4]@2 [d3,a3,d4,f#4]", // D Dsus4 D Dsus2 D
  V: "[[d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!2 [d3,a3,d4,f#4]@2 [e2,b2,e3,g3,b3,e4]@24 ~@11 g3 d3@2 ~@9 f#2 ~@11 g3 d3@2 ~@6 g3 ~@2 f#2 ~@4 b3@2, ~@30 e2@12 ~@4 d4 g3 [c3,e4]@2 d4 g3 g2@2 e2@12 ~@4 a3@5 g3 g2@2 e2@6, ~@16 g3@3 g3 b3 ~ d3@5 ~ g3@3 g3 b3 ~ d3@5 ~ g3@2, ~@34 b3@5 e4@3 ~@3 g4@9 ~@6 g4@6 f#4@12 ~@6, ~@36 g4@6 f#4@12 ~@4 b3@5 e4@3 ~@3 d4@2 g3 [c3,d4]@6 ~@6]/7", // D Em C Csus2
  W: "[~@5 g3 d3@2 ~@8 g3@2 ~@6 b2@2 ~@2 b3@2 ~@10 g3@2 [c3,e3,g3,c4,e4]@6, g4@6 f#4@12 ~@6 [a3,b3]@2 b2 f#4@3 e4@6 e4@6 ~@6, ~ g3 b3 ~ d3@5 ~ g3@5 e3@6 ~@3, ~@3 e4@3 ~@3 g4@2 g3@3 d4@4 ~@4 [d4,g4]@8 ~@2 g3@8 ~@8, ~@5 d4 [c3,g4]@3 g2@6 ~@2 b3@2 b3@2 ~@3]/4", // C Asus2 G5 C5
  X: "[a2,e3,a3,c#4]@6 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!3", // A D
  Y: "[d3,a3,d4,g4] [d3,a3,d4,f#4]@2 [d3,a3,d4,e4]@2 [d3,a3,d4,f#4] [c3,e3,g3,c4,e4]@6", // Dsus4 D Dsus2 D C
  Z: "[a2,e3,a3,c#4] [d3,a3,d4,f#4]", AA: "[e2,b2,e3,g3,b3,e4]", AB: "e5 b4@2 f#5 b4@2", AC: "g5 b4@2 a5 b4@2",
  AD: "~@5 c4, c5!2, ~ e4@3 e4@2, ~@2 c4@3 ~", AE: "~@5 c4, a2, ~ c4@4 ~, ~ e4!2, ~ c5",
  AF: "~@5 c4, e4@2 e4, ~ c4@4 ~, ~ g3@2", AG: "~@5 d4, e4@2 e4, ~ d4@4 ~, ~ a3@2",
  AH: "~@5 g3, e4@7 e4@5, ~ b4@5 b4@6, ~ b3@3 b3@2, ~@2 g3@3 ~", AI: "~ e4, e2, ~ g3@5, ~ b3@2",
  AJ: "[[d3,a3,d4,f#4] [e2,b2,e3,g3,b3,e4]@4 ~]/3", // D Em
  AK: "[~@16 g3@2 ~@10 g3@2 ~@10 g3@2 ~@10 g3@2 ~@11 g3 d3@2 ~@9 f#2 ~@4 b3@2, ~@6 e2@12 e2@12 e2@12 e2@12 e2@12 ~@4 d4 g3 [c3,e4]@2 d4 g3 g2@2 e2@6, ~@4 g3@4 ~@2 g3@4 ~@2 g3@4 ~@2 g3@4 ~@2 g3@3 g3 b3 ~ d3@5 ~ g3@2, ~@10 b3@4 b3@4 ~@4 b3@4 b3@4 ~@4 b3@4 b3@4 ~@4 b3@4 b3@4 ~@4 b3@5 e4@3 ~@3 g4@9 ~@6, ~@2 e4 ~ e4 ~ e4 ~ e4 ~ g4 f#4@2 ~]/7", // C
  AL: "[~@5 g3 d3@2 ~@6 g3 ~@2 f#2 ~@11 g3 d3@2 ~@8 g3@2 ~@6 [b2,a3,b3]@3 [b2,a3,b3,f#4]@3 ~@10 g3@2 ~@10 b4@2 ~@4 g3@2, g4@6 f#4@9 g3 g2@2 e2@12 ~@4 d4@2 [c3,g4]@6 g2@12 e2@12 e2@12 [e2,b4]@6, ~@2 g3@2 b3@2 ~@2 d3@10 ~@4 b3@5 e4@3 ~@3 g4@2 g3@3 d4@4 ~@4 [d4,g4]@8 ~@4 b3@4 b3@4 ~@4 b3@4 b3@4 ~@2 b3@4, ~@3 e4@3 ~@3 d4@2 g3 [c3,d4]@6 ~@6 g4@6 f#4@12 ~@6 e4@6 e4@6 e4@6 ~@6 e4@6 ~@6, ~@5 a3@4 ~ g3@3 g3 b3 ~ d3@5 ~ g3@5 ~ g3@4 ~@2 g3@5 ~@3]/7", // B7 C5 E5 G5 Csus2
  AM: "[~@8 g3@4 b3@4 g3@4 [b3,b4]@4 [b3,c5]@4 b4@2 c5 b4 a4@4 [b3,b4]@4 a4 g#4 g4@2 e4@4, b4@12 ~@20 a#4 ~@15, b3 b3@2 e2@9, ~ e4@5 ~@18]/2", // B Cmaj7 B
  AN: "~@5 b4, e2, ~ g3@5, ~ b3!2, ~ e4", AO: "~@5 g3, e2, b4!2, ~@2 b3@4 b3 e4@5, ~ g3 b3",
  AP: "[b3@4 g3@4 [b3,b4]@4 [b3,c5]@4 b4@2 c5 b4 a4@4 [b3,b4]@4 a4 g#4 g4@2 e4@4 ~@20 g3@4 ~@20 b4@4 ~@20 g3@4 b3@4 g3@4 [b3,b4]@4 [b3,c5]@4 b4@2 c5 b4 a4@4 [b3,b4]@4 a4 g#4 g4@2 e4@4, e2@3 e2@2 e2@2 e2@2 e2@3, ~@20 a#4 ~@15 e4@12 e4@12 ~@12 e4@12 b4@12 b4@12 ~@20 a#4 ~@15, ~@10 g3@4 ~@2 g3@5 ~@2 g3@2 b3@2 ~@9, ~@22 b3@4 b3@4 ~@4 b3@4 b3@4 ~@2 b3@4 b3 e4@5 ~@18]/6", // B Cmaj7 B Cmaj7 B
  AQ: "[b3@4 g3@4 [b3,b4]@4 [b3,c5]@4 b4@2 c5 b4 a4@4 [b3,b4]@4 a4 g#4 g4@2 e4@4 [e2,e4]@24 ~@12, e2 ~, ~@20 a#4 ~@51]/3", // B Cmaj7 B E
})).s("gm_electric_guitar_jazz").gain(0.3)

// chords · electric guitar jazz · "Electric Guitar [Tablature]"
const electric_guitar_jazz_2 = note(`<
  ~@19 A B C D E ~@18 F G F H F I J ~@24 K L M@2 N O P@2 K L M@2 N Q R S T ~@65
>`.pickRestart({
  A: "~ b4, ~ e4@2, ~@5 g4@7", B: "~@5 c4, ~@2 a4@7 e4@3, ~ f#4@3, ~ d4@2, ~@2 g4",
  C: "~@5 a3, ~@2 g4@7 d#4@3, ~ d4@3, ~ b3@2, ~@2 f#4", D: "~ g3@2 ~ g3@20, a3, ~ f#3@7", E: "[g4,b4,e5]",
  F: "~@8 [e3,g3]@4 [e3,g3] [f3,g#3] [f#3,a3]@4 [f#3,a3] [f3,g#3] [e3,g3]@4", G: "[d3,f#3] e3 e3@2",
  H: "[d3,f#3] d3 d3@2", I: "[d3,f#3] g3 [c3,e3]@2", J: "b2 ~ b2@2 ~ b2, d3, ~ b2 ~@2 b2 ~, ~ c3@2 c3",
  K: "g5 e5@2 a5 e5@2", L: "b5 e5@2 c6 e5@2", M: "[e5 c5@11]/2", N: "e5 c5 g4@4", O: "e5 f#5@3 d5@4 a4@16",
  P: "[b4 e5@5 e5 b4@17]/2", Q: "~@4 g4@4 g4@2 a4@6 g4@2 a4@2 a4 a#4 a4@2", R: "g4 b4@5 b4 e4@5",
  S: "~@4 [a4,d5] [a#4,d5] ~@2 [a4,d5]@4 [a4,d5] [a4,b4,d5] ~ g4 e4@4 d4 e4 g4@2", T: "e4",
})).s("gm_electric_guitar_jazz").gain(0.3)

// other · distortion guitar · "Electric Guitar [Tablature]"
const distortion_guitar = note(`<
  ~@33 A B@2 C D E F G@2 ~@12 H@3 ~@12 I@2 J ~@17 A B@2 C D E F G@2 ~@19 K L M N O P Q R@6 S@2 T U@8 ~@14
>`.pickRestart({
  A: "g4", B: "[a4 b4 g4@6]/2", C: "a4 b4 c5@2", D: "b4", E: "a4 b4 g4@2", F: "g4 f#4", G: "e4/2",
  H: "[~@2 c3 e3 g3@4 a2 e3 a3@4 d3 a3 d4@2 e4@12 ~@6]/3", I: "[~@8 c3 e3 g3@4 a2 e3 a3@4 d3 a3 d4@2]/2", J: "e4",
  K: "~@4 [e2,b2,e3]!2 [a4,d5]@4 a4@2", L: "g4@8 a3@2 g4@2 f#4@2 g4@2 f#4@2 e4@2 f#4@2 d4 d#4",
  M: "e4@3 g4 a4 g4 a4 b4 e5 a4 b4 e5", N: "d5 b4 a#4 b4 a#4 a4 g4 e4 [a4,c#5] ~ [a4,c#5] [g#4,c5]",
  O: "g4@8 [g4,g#4] [a4,a#4,b4] [c5,c#5,d5] [d#5,e5,f5] g5@4 f#5@4 b4@4, ~@12 f#5 ~@11", // G#maj7
  P: "g5@4 f#5@4 g5@2 a5@2 g5 ~ f#5 [f#5,g5] [e5,f5]@2 b4@2 g5@2 f#5@2", // Gmaj7 Fmaj7
  Q: "b4@6 g4@2 a4@2 g4@2 [a4,c#5]@3 g4 e4@2 g4@2 a4@2 b4@2", // A
  R: "[e5@4 d5@2 d5@5 b4 d5@48 b4@2 d5@2 b4@14 [a#4,b4] [g#4,a4] [f#4,g4]@2 f4@2 e4@2 f#4@2 e4@44 f#4@6 g4@6]/6", // Bmaj7 Amaj7 Gmaj7
  S: "[e4@6 f#4 g4]/2", T: "d4", U: "[~@12 f#4@6 g4 [g#4,a4] b4@172, ~@20 a#4 ~@171]/8",
})).s("gm_distortion_guitar").gain(0.4)

// chords · distortion guitar · "Electric Guitar [Tablature]"
const distortion_guitar_2 = note(`<
  ~@33 A B@2 C D E F@3 ~@47 A B@2 C D E F@3 ~@16 G@3 H I J I K I L M@7 ~@24
>`.pickRestart({
  A: "e4", B: "[f#4 g4 e4@6]/2", C: "f#4 g4 g4@2", D: "g4", E: "f#4 g4 e4@2", F: "b3/3",
  G: "[~@2 c3 e3 g3@4 a2 e3 a3@4 d3 a3 d4@2 e4@12 ~@5 [e2,b2,e3]]/3", // E5
  H: "[e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@8 [b2,c3,f#3,g3,b3,c4] [c#3,d3,g#3,a3,c#4,d4] [d#3,e3,a#3,b3,d#4,e4]@2", // E5 Cmaj7 Dmaj7 Emaj7
  I: "[e3,b3,e4]@2 [e3,b3,e4] [d3,a3,d4]@2 [d3,a3,d4]", // E5 D5
  J: "[c3,g3,c4]@8 [g2,d3]@2 [f#2,c#3]@2 [e2,b2,e3]@8 [b2,c3,f#3,g3,b3,c4] [c#3,d3,g#3,a3,c#4,d4] [d#3,e3,a#3,b3,d#4,e4]@2", // C5 G5 F#5 E5 Cmaj7 Dmaj7 Emaj7
  K: "[c3,g3,c4]@6 [e2,b2]@2 [g2,d3]@2 [f#2,c#3]@2 [e2,b2,e3]@8 [b2,c3,f#3,g3,b3,c4] [c#3,d3,g#3,a3,c#4,d4] [d#3,e3,a#3,b3,d#4,e4]@2", // C5 E5 G5 F#5 E5 Cmaj7 Dmaj7 Emaj7
  L: "[c3,g3,c4] [g2,d3,g3]", M: "[[b2,f#3,b3] [e2,b2,e3]@12 ~]/7",
})).s("gm_distortion_guitar").gain(0.4)

// chords · distortion guitar · "Electric Guitar [Tablature]" · soft notes · E5
const distortion_guitar_soft = note("<~@116 [~@6 [e2,b2,e3]!5 ~] ~@38>").s("gm_distortion_guitar").gain(0.2)

// chords · acoustic guitar steel · "Acoustic Guitar"
const acoustic_guitar_steel = note("<~@55 A@3 ~@97>".pickRestart({
  A: "[~@7 e4@23 ~@6, ~@13 [e3,g3,b3]@47 ~@12]/3", // Em
})).s("gm_acoustic_guitar_steel").gain(0.25)

// other · string ensemble 1 · "Violins"
const string_ensemble_1 = note(`<
  ~@33 A B@2 C D E F G@2 ~@7 H I ~@4 J@2 K@2 ~@12 L M N O ~@14 A B@2 C D E F G@2 ~@17 P Q R ~@37
>`.pickRestart({
  A: "g5", B: "[a5 b5 g5@6]/2", C: "a5 b5 c6@2", D: "b5", E: "a5 b5 g5@2", F: "g5 f#5", G: "e5/2",
  H: "~ e5 f#5 g5 f#5 e5", I: "g5 f#5 e5 a5@3", J: "[~@3 b5@7 a5 g5]/2", K: "[f#5 g5 a5 e5@6 ~@3]/2", L: "e5@2 g5",
  M: "a5 b5 d6", N: "e6 f#6", O: "g6 a6", P: "~ e5", Q: "f#5 g5", R: "a5 ~",
})).s("gm_string_ensemble_1").gain(0.2)

// bass · electric bass finger · "Electric Bass"
const bass = note(`<
  ~@24 A B A B A C D A E A B A B A C F G H A I A I A J D K L M L M L N@2 O P Q P R P S T U V W V W V X@2 Y Z AA AB AC AD
  AE AF Y AG AH AI AC AJ AK AL A B A B A C D K AL A B A B A C D A L M L M L M L M L AM@2 AN AO AP AQ AP AO AR AS@7 ~@24
>`.pickRestart({
  A: "e1 e2", B: "d2@12 c2@4 c2 b1 [a1,a#1] g#1 g1@4", C: "d2@12 c2@4 c2 b1 [a1,a#1] g#1 g1@2 ~@2", D: "g1 b1",
  E: "e1@10 g1 f#1", F: "g1@12 b1@8 b1 [a1,a#1] [g1,g#1] [f1,f#1]", G: "e1@3 e2@2 e1", H: "e1@6 e2@4 g1 f#1",
  I: "d2@3 c2@2 g1", J: "d2@6 c2@4 g1 ~", K: "e1", L: "c2 a1", M: "d2!6", N: "[d2!3 ~@6 e2@3, ~ e1@3]/2",
  O: "e1@4 g1 f#1 e1@6", P: "e2 d2", Q: "c2@4 c2 b1 [a1,a#1] g#1 g1@4 e1@12",
  R: "g2@4 [f#2,g2] [d#2,e2,f2] [c2,c#2,d2] [a1,a#1,b1] g1@4 e1@12, ~@8 g#1 ~@15", // Gmaj7
  S: "c2@4 c2 b1 [a1,a#1] g#1 g1@2 ~@2 g1@12", T: "b1 e1", U: "e2 c2", V: "a1@3 d2!3", W: "d2!3 c2@3",
  X: "[~@12 e2@6 e1@4 g1 f#1, e1@3 ~]/2", Y: "e1 e2!2 e1 e2!2", Z: "e1@4 e2@4 e2@4 e1@4 e2@2 f2@2 c2 b1 ~ a#1",
  AA: "a1", AB: "a1@2 a1@10 a2@4 a1@4 a1 a#1 ~ b1", AC: "c2@6 c2@2 c2@2 b1 c2", AD: "d2@12 d2@4 d2@4 d2 d#2 e2@2",
  AE: "e1@3 e2 b2 e3", AF: "e1@6 e2@2 e2@2 g1 f#1", AG: "e1 e2!2 e1 e2 d2", AH: "a1@3 a2@2 e2", AI: "a1@6 a2@4 a1 b1",
  AJ: "d2@3 a2 d2 g2", AK: "e2@6 e1@4 e2 ~", AL: "e2@6 e1@4 g1 f#1",
  AM: "[d2@4 d2@4 d2 d#2 ~@2 e1@16 e1@4 e1@4 e1@2 e1@2 e1@2 e1@2 e1@2 e1@2, ~@5 e2@9 ~@10]/2", AN: "e1!6 e1@4 e1@2",
  AO: "e2@2 e2 d2@2 d2", AP: "c2@4 g1 f#1 e1@4 e1@2", AQ: "e2@3 e1 e2@2 d2@3 d2 d2@2", AR: "c2@2 c2 g1@3",
  AS: "[b1@2 e1 e1@36 ~@3]/7",
})).s("gm_electric_bass_finger").gain(0.3)

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

// drums · rim
const rim = s("rim").struct("<~@73 [~ x]!6 ~@76>").gain(0.3)

// drums · snare
const snare = s("sd").struct(`<
  ~@24 A@8 B A@7 C B A@9 ~ A ~ A ~ D E F@9 ~ F ~ F G H ~@6 A I A@6 J K A@7 L M A@9 ~ A ~ A ~ A ~ A ~ N O F@2 I P H Q F
  ~@30
>`.pickRestart({
  A: "~ x", B: "~@2 x!2 ~@2", C: "~@3 x!2 ~", D: "x ~@2 x!3 ~@3 x!3", E: "~@3 x!3 ~@6", F: "x", G: "~@2 x!2", H: "x!4",
  I: "x ~ x!2 ~ x", J: "~@3 x ~ x", K: "x ~@2 x!3 ~@6", L: "~@3 x!3", M: "~ x ~ x ~ x ~@6", N: "x ~ x ~ x ~ x!6",
  O: "x!6 ~@6", P: "x!2 ~@2", Q: "x!3 ~",
})).gain(0.3)

// drums · low tom
const low_tom = s("lt").struct("<~@82 A ~@5 B ~@8 B ~@18 C D ~@37>".pickRestart({
  A: "~@5 x", B: "~@10 x!2", C: "~@6 x!6", D: "x!6 ~@6",
})).gain(0.25)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@24 A B@6 A C A B@6 A C A C A C A C A@2 D A D A D@2 E F B@6 G@2 D G D G D H ~ A B A B A B A B A I A J A@3 K A B@6 L M
  A C A C A C D@3 A D A D A D A D@2 ~ F B N H N O F P ~@30
>`.pickRestart({
  A: "~ x!5", B: "x!6", C: "x!5 ~", D: "~ x!2 ~ x!2", E: "x!2 ~ x!2 ~", F: "~@4 x!2", G: "x!3 ~ x!2", H: "~ x!4 ~",
  I: "x!3 ~@3", J: "x ~@3 x ~@3 x ~@3 x ~@3 x!2 ~ x!3 ~ x", K: "x!2 ~ x ~@2", L: "~ x!2 ~@3", M: "x", N: "x!2 ~@2 x!2",
  O: "~ x ~@4", P: "~ x ~ x ~@2",
})).gain(0.3)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@32 A ~@8 B ~@9 C ~ C ~@3 D ~@8 E F E F ~ G C ~@9 E ~@5 H ~@8 I ~@9 C ~ C ~ C ~ C ~@5 J ~ K L F ~@31
>`.pickRestart({
  A: "~@10 x!2", B: "~@9 x!3", C: "~ x ~@2 x ~", D: "x!2 ~@4", E: "~@2 x", F: "~ x ~@4", G: "~@5 x", H: "~@8 x!2 ~@2",
  I: "~@2 x ~ x ~ x!4 ~@2", J: "~@3 x!3 ~@6", K: "~@4 x!2 ~@6", L: "~ x!2",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct(`<
  ~@24 A ~@6 A ~ A ~@6 A ~ A B A B A B A@2 C A C A C@2 ~ D ~@6 D@2 C D C D C A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@3 ~ A ~@6 A ~
  A B A B A B C@3 A C A C A C A C@2 ~ D ~ D A D A D E ~@30
>`.pickRestart({
  A: "x", B: "~@5 x", C: "x!2", D: "~ x", E: "x!2 ~",
})).gain(0.3)

stack(
  flute, electric_guitar_jazz, electric_guitar_jazz_2, distortion_guitar, distortion_guitar_2, distortion_guitar_soft,
  acoustic_guitar_steel, string_ensemble_1, bass, kick, rim, snare, low_tom, hihat, mid_tom, crash
)