Strudelify

welcome to the black parade

My Chemical Romance

KeyG majorTempo200 bpm
0:00/0:00
// welcome to the black parade — My Chemical Romance
// 200 bpm, 4/4, key G major. 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: Transcription provider: pdmx. https://musescore.com/score/5849913; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 244 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(200/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.

// bass · electric bass finger · "Voice"
const bass = note(`<
  ~@42 A@2 B@4 C D@3 E F@3 G H@3 I J@3 K@4 L@4 M@4 N@4 O@4 P@5 Q R S T U@2 T V W R X U@2 Q T V Q R X U@2 Q T V Y@2 Z@2
  AA@2 AB@2 Y@2 Z@2 AA@2 AB@2 W R X U Q T V Q R X U Q T V Y@2 Z@2 AA@2 AB@2 Y@2 Z@2 AA@2 AC AD AE@2 S AF U@2 AG AH AI AJ
  AK AL AM AI AN@8 AO@8 AP@3 AQ AR AS AT@4 AU AV AW AX AY AZ BA BB BC BD BE AX AY AZ BA BB BC BF BG BH@8 BI@8 BJ@5 ~@5
>`.pickRestart({
  A: "[~@5 d3@3 e3@3 g3@21]/2", B: "[f#3@21 e3@16 e3@2 f#3@2 e3@2 d3@21]/4", C: "c3",
  D: "[c3@3 c3@2 b2@21 ~ a2@16 a2@5]/3", E: "d3", F: "[d3@3 e3@2 g3@16 g3@3 g3@3 f#3@21]/3", G: "e3",
  H: "[e3@3 e3@2 d3@21 ~ c3@16 c3@2 c3@3]/3", I: "b2", J: "[b2@3 b2@2 a2@16 a2@5 ~ d2@16 f#2@5]/3",
  K: "[g1@21 f#1@21 ~ e1@21]/4", L: "[d2@21 c2@21 ~ b1@21]/4", M: "[a1@21 d2@21 ~ g1@21]/4",
  N: "[f#1@21 e1@21 ~ d2@21]/4", O: "[c2@21 b1@21 ~ a1@21]/4", P: "[d2@21 g1@59]/5", Q: "g1!8", R: "f#1!8", S: "e1!8",
  T: "d2!8", U: "c2!8", V: "d2!6 d2@2", W: "g1@2 g1!6", X: "f1!8", Y: "[g1@2 g1@2 g1!3 f#1@2 f#1 f#1@2 f#1!2 f#1@2]/2",
  Z: "[e1@2 e1@2 e1!3 d2@2 d2 d2@2 d2!2 d2@2]/2", AA: "[c2@2 c2@2 c2!3 c2@2 c2 c2@2 c2!2 c2@2]/2",
  AB: "[d2@2 d2@2 d2!3 d2@2 d2 d2@2 d2!2 d2@2]/2", AC: "d2@2 d2@2 d2!4", AD: "d2 c2", AE: "b1@2 b1!2 ~ b1 b1@2",
  AF: "e1 e2 e1!2 e2 e1 e2@2", AG: "d#2 d2", AH: "c2 a#1", AI: "g1", AJ: "f#1", AK: "e1", AL: "d2", AM: "f2",
  AN: "[c2@18 d2@18 ~ g1@18 f#1@18 e1@18 d2@18 ~ c2@18]/8", AO: "[g1@18 c2@18 ~ d2@18 a1@18 g#1@18 f#1@18 ~ e1@18]/8",
  AP: "[d2@18 a1@18 ~ e1@4 e2@2 e1@2 ~ e1@2]/3", AQ: "e1@2 e2@2 ~ e1@2 e2@4 e2@2 ~ e1@2",
  AR: "e1@2 e1@2 ~ e2@2 e1@2 e2@2 e1@2 ~ e1@2", AS: "e2@2 e1@2 ~ e1@2 e2@2 e1@2 e2@2 ~@3",
  AT: "[~@14 a1@4 a1@5 a1@2 a1@2 a1@2 ~ g#1@4 g#1@2 ~ g#1@4 g#1@2 g#1@2 ~ g#1@4 f#1@5 f#1@4 f#1@2 ~ f#1@2]/4",
  AU: "f#1@2 e1@5 e1@2 e1@5 e1@2", AV: "e1@2 e1@5 d2@4 d2@5", AW: "d2@2 d2@2 ~ d2@2 d2@4 d2@2 d2@3",
  AX: "~ d2@2 d2@2 d2@4 e2@4 e2@3", AY: "~ e2@2 e2@2 e2@2 e2@4 e2@2 e2@3", AZ: "~ e2@2 e2@2 e2@4 a1@4 a1@3",
  BA: "~ a1@2 a1@2 a1@2 g#1@4 g#1@2 g#1@3", BB: "~ g#1@2 g#1@2 g#1@4 f#1@4 f#1@3",
  BC: "~ f#1@2 f#1@2 f#1@2 e1@4 e1@2 e1@3", BD: "~ e1@2 e1@2 e1@4 d2@4 d2@3", BE: "~ d2@2 d2@2 d2@2 d2@4 d2@2 d2@3",
  BF: "~ e1@2 e1@2 e1@4 e1@7", BG: "~ e1@8 e1@7",
  BH: "[~ e1@8 e4@4 c#4@2 d4@2 ~@4 a1@4 ~@2 c#4@2 c#4@2 d4@2 e4@4 [g#1,c#4]@4 ~@2 c#4@2 c#4@2 d4@2 ~@4 f#1@4 ~@2 c#4@2 c#4@2 d4@2 e4@4 [e1,c#4]@4 a3@4 c#4@2 d4@2 ~@4 d2@4 ~@2 c#4@2 c#4@2 d4@2 e4@4 [d2,c#4]@4 ~@2 c#4@2 c#4@2 d4@2 e1@4 e1@4 ~@2 c#4@2 [e1,c#4]@2 d4, ~@9 a1@12 ~@4 g#1@12 ~@4 f#1@12 ~@4 e1@12 ~@4 d2@12 ~@4 d2@12 ~@4 e1@4 e1@4 ~@8 e1@4 ~@3, ~@17 e4@8 ~@24 e4@8 ~@24 e4@8 ~@24 e4@8 ~@7]/8", // C#5 C#m Dmaj7 C#m
  BI: "[~ e4@4 c#4@4 a3@4 c#4@2 d4@2 ~@4 a1@4 ~@2 c#4@2 c#4@2 d4@2 e4@4 [g#1,c#4]@4 c#4@2 c#4@2 d4@2 ~@6 f#1@4 ~@2 c#4@2 c#4@2 d4@2 e4@4 [e1,c#4]@4 c#4@2 c#4@2 d4@2 ~@6 d2@4 ~@2 c#4@2 c#4@2 d4@2 e4@4 [d2,c#4]@4 c#4@2 c#4@2 d4@2 ~@2 e1@4 e1@4 ~@2 c#4@2 [e1,c#4]@2 d4, ~ e1@8 a1@12 ~@4 g#1@12 ~@4 f#1@12 ~@4 e1@12 ~@4 d2@12 ~@4 d2@12 ~@4 e1@4 e1@4 ~@8 e1@4 ~@3, ~@17 e4@8 ~@22 e4@8 ~@24 e4@8 ~@24 e4@8 ~@9]/8", // C#5 C#m Dmaj7 C#m
  BJ: "[~ [e1,e4]@4 [e1,c#4]@4 a1@59 ~@12, ~@9 a3@4 ~@67]/5", // E C#m
})).s("gm_electric_bass_finger").gain(0.3)

// chords · electric guitar clean · "Electric Guitar (Tablature)"
const electric_guitar_clean = note(`<
  ~@21 A@3 B C@2 D E@4 F@2 G D H@4 I J@3 K L@3 M N@2 ~ O@4 P Q R@2 ~ S@2 T U V@2 W ~ X@2 ~ Y Z AA@2 AB AC@2 ~ AD AE AF@2
  AG AH@3 ~ AI AJ AK AL AM@2 AL@2 AN AO AP AQ AR AS AT AU AV AW AX AY@2 AZ AL BA BB BC BD BE BF BG BH BE BB BC BD BE BF
  BG BH BE AN BI BJ AQ AR AS AT AU AV AW AX AY@2 AZ AL BA BB BC BD BE BF BG BH BE BB BC BD BE BF BG BH BE BK@2 AK@2 BK@2
  AK@2 BL@2 BM BN BO@4 BP@4 BQ@8 BR@2 BS@2 BT@4 BU BV BW@2 BX BY BZ CA CB CC CD CE CF CG BZ CA CB CC CD CH CI CJ@7 CK
  CL@7 CK CM@2 ~@8
>`.pickRestart({
  A: "[~@5 g4@21 ~ d4@10 g4@5 ~ a4@5]/3", B: "b4@5 e5@11", C: "[d5@5 b4@21 ~ c5@5]/2", D: "e5@11 d5@5",
  E: "[b4@21 c5@5 ~ b4@10 g4@5 ~ a4@21]/4", F: "[g4@21 d4@11]/2", G: "g4@5 a4@5 ~ b4@5",
  H: "[b4@21 c5@5 ~ e5@10 d5@5 ~ b4@21]/4", I: "c5@5 b4@11", J: "[g4@5 a4@21 ~ g4@21]/3", K: "d4@11 g4@5",
  L: "[a4@5 b4@5 ~ e5@10 d5@5 ~ b4@21]/3", M: "c5@5 e5@11", N: "[d5@5 b4@21 ~@6]/2",
  O: "[d4@11 c4@10 g4@16 d4@3 g4@3 a4@16 g4@2 a4@3]/4", P: "g4@5 d5@11", Q: "g4@5 ~@11", R: "[~@11 d5@16 b4@5]/2",
  S: "[~@5 b4@16 g4@5 ~ g4 a4@4]/2", T: "~@11 d4@2 g4@3", U: "g4", V: "[d4@3 g4@2 a4@16 g4@3 a4@3 b4@5]/2",
  W: "d5@11 b4@5", X: "[~@5 d5@16 b4@5 ~@6]/2", Y: "b4", Z: "g4@5 g4 ~ a4@4 ~@5",
  AA: "[~@5 d4@3 g4@3 g4@16 d4@2 g4@3]/2", AB: "a4", AC: "[g4@3 a4@2 b4@5 ~ d5@10 b4@5 ~@6]/2", AD: "d5",
  AE: "b4@5 ~@11", AF: "[~@11 b4@16 g4@5]/2", AG: "g4 a4@4 ~@11", AH: "[d4@5 g4@43]/3", AI: "[g2,d3,g3]!8",
  AJ: "[f#2,d3,f#3]!8", AK: "[e2,b2,e3]!8", AL: "[d3,g3,d4]!8", AM: "[c3,f3,c4]!8", AN: "[g2,d3]@2 [g2,d3]!5 e2",
  AO: "[f#2,d3]@2 [f#2,d3]!5 e2", AP: "[f2,d3]@2 [f2,d3]!5 e2", AQ: "[c3,g3]!8", AR: "[c3,g3]!7 a2", AS: "[g2,d3]!7 e2",
  AT: "[d3,a3]!8", AU: "[d3,a3]!6 [d3,a3]@2", AV: "g2!2 [g2,d3] g2!2 [g2,d3] g2 [g2,d3]",
  AW: "f#2!2 [f#2,d3] f#2!2 [f#2,d3] f#2 [f#2,d3]", AX: "f2!2 [f2,d3] f2!2 [f2,d3] f2 [f2,d3]",
  AY: "c3!2 [c3,g3] c3!2 [c3,g3] c3 [c3,g3]", AZ: "g2!2 [g2,d3] g2!2 [g2,d3] [b2,g3]@2",
  BA: "[d3,g3,d4]!6 [d3,g3,d4]@2", BB: "[g2,d3,g3]@2 [g2,d3,g3]@2 [g2,d3,g3]!3 [f#2,d3,f#3]",
  BC: "~ [f#2,d3,f#3] [f#2,d3,f#3]@2 [f#2,d3,f#3]!2 [f#2,d3,f#3]@2", BD: "[e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]!4",
  BE: "~ [d3,a3,d4] [d3,a3,d4]@2 [d3,a3,d4]!2 [d3,a3,d4]@2", BF: "[c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]!4",
  BG: "~ [c3,g3,c4] [c3,g3,c4]@2 [c3,g3,c4]!2 [c3,g3,c4]@2", BH: "[d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]!4",
  BI: "[f#2,d3]!7 e2", BJ: "[f2,d3]!7 e2", BK: "[b2,e3,b3]@4 [b2,e3,b3]@2 [b2,e3,b3]@2 ~@3 [b2,e3,b3] [b2,e3,b3]@2 ~@2",
  BL: "[c3,g3,c4]!8", BM: "d#3 f3", BN: "g3 a#3", BO: "[g2@18 d3@18 ~ c3@6 b2@7 a2@5 b2@9]/4",
  BP: "[c3@9 g2@18 g2@18 ~ c3@7 g2@6 c3@5]/4", BQ: "[d3@9 f#2@9 b2@18 ~ d3@13 c3@2 ~ d3@2 e3@18 b2@18 c3@18 ~ g2@18]/8",
  BR: "[g3@2 ~ b3@2 ~ d4@2 ~ f#4@2 ~ a4@2 ~ c5@2 d5@2 ~@13, ~@2 a3@2 ~ c4@2 ~ e4@2 ~ g4@2 ~ b4@2 ~@16]/2",
  BS: "[~@5 [a2,e3,a3]@9 [a2,e3,a3]@4 [a2,e3,a3]@2 ~ [a2,e3,a3]@2 [e2,b2,e3]@9]/2", // A5 E5
  BT: "[[e2,b2,e3]@5 [e2,b2,e3]@2 [e2,b2,e3]@2 [f#2,c#3,f#3]@9 [f#2,c#3,f#3]@5 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [e2,b2,e3]@9 ~ [e2,b2,e3]@4 [e2,b2,e3]@2 [e2,b2,e3]@2 ~ [d3,a3,d4]@9 [d3,a3,d4]@4 [d3,a3,d4]@2 ~ [e3,a3,d4]@2]/4", // E5 F#5 E5 D5 Dsus2
  BU: "[a2,e3,a3]@9 [a2,e3,a3]@5 [a2,e3,a3]@2", // A5
  BV: "[a2,e3,a3]@2 [e2,b2,e3]@2 ~ [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2 ~ [e2,b2,e3]@2", // A5 E5
  BW: "[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]@2", // E5
  BX: "[e2,b2,e3]@2 [e2,b2,e3]@2 ~ [e2,b2,e3]@2 [e2,b2,e3]@2 ~@7", BY: "~@9 [a2,e3,a3]@4 [a2,e3,a3]@3",
  BZ: "~ [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [g#2,e3,g#3]@2 ~@2 [g#2,e3,g#3]@2 [g#2,e3,g#3]@3", // A5 C#m
  CA: "~ [g#2,e3,g#3]@2 [g#2,e3,g#3]@2 [g#2,e3,g#3]@4 [f#2,c#3,f#3]@4 [f#2,c#3,f#3]@3", // C#m F#5
  CB: "~ [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [e2,b2,e3]@2 ~@2 [e2,b2,e3]@2 [e2,b2,e3]@3", // F#5 E5
  CC: "~ [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@4 [d3,a3,d4]@4 [d3,a3,d4]@3", // E5 D5
  CD: "~ [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2 ~@2 [d3,a3,d4]@2 [d3,a3,d4]@3", // D5
  CE: "~ [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@4 [e3,b3,e4]@4 [e3,b3,e4]@3", // D5 E5
  CF: "~ [e3,b3,e4]@2 [e3,b3,e4]@2 [e3,b3,e4]@2 [e3,b3,e4]@2 ~@2 [e3,b3,e4]@2 [e3,b3,e4]@3", // E5
  CG: "~ [e3,b3,e4]@2 [e3,b3,e4]@2 [e3,b3,e4]@4 [a2,e3,a3]@4 [a2,e3,a3]@3", // E5 A5
  CH: "~ [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@4 [e2,b2,e3]@7", CI: "~ [e2,b2,e3]@8 [e2,b2,e3]@4 f#2@3",
  CJ: "[~ a3@8 [a2,e3,a3]@12 [a2,e3,a3]@4 [g#2,e3,g#3]@12 [g#2,e3,g#3]@4 [f#2,c#3,f#3]@12 [f#2,c#3,f#3]@4 [e2,b2,e3]@12 [e2,b2,e3]@4 [d3,a3,d4]@12 [d3,a3,d4]@4 [d3,a3,d4]@12 [d3,a3,d4]@4 [e2,b2,e3]@4 [e2,b2,e3]@3]/7", // A5 C#m F#5 E5 D5 E5
  CK: "~ [e2,b2,e3]@4 [e2,b2,e3]@4 [e2,b2,e3]@4 [e2,b2,e3]@3", // E5
  CL: "[~ [e2,b2,e3]@4 [e2,b2,e3]@4 [a2,e3,a3]@12 [a2,e3,a3]@4 [g#2,e3,g#3]@12 [g#2,e3,g#3]@4 [f#2,c#3,f#3]@12 [f#2,c#3,f#3]@4 [e2,b2,e3]@12 [e2,b2,e3]@4 [d3,a3,d4]@12 [d3,a3,d4]@4 [d3,a3,d4]@12 [d3,a3,d4]@4 [e2,b2,e3]@4 [e2,b2,e3]@3]/7", // E5 A5 C#m F#5 E5 D5 E5
  CM: "[~ [e2,b2,e3]@4 [e2,b2,e3]@4 [a2,e3,a3]@16 ~@7]/2", // E5 A5
})).s("gm_electric_guitar_clean").gain(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@89 A B@6 C A B@6 D A B@5 E F G H G H G H I F G J K C G H I C A B@6 D A B@5 E F G H G C G C I F G J K C G J L M N@2
  ~@2 N@2 ~@2 O L M@2 P ~ Q ~ R ~ K ~@2 S ~ T ~ U ~@2 P ~ Q T R V W X Q S ~@3 R Y Z Y Z Y AA AB AC Y AD AE AC Y AF ~ R Q
  AG Q AG Q AH AI R Q AG Q AG Q AH AJ AK ~@5 K ~@3
>`.pickRestart({
  A: "x ~@3 x!2 ~@2", B: "x!2 ~@2 x!2 ~@2", C: "~ x ~@3 x ~@2", D: "x ~@2 x ~@4", E: "x!2 ~@2 x!2 ~ x",
  F: "~ x ~ x ~ x ~@2", G: "x ~@3 x!2 ~ x", H: "~ x ~@2 x!2 ~@2", I: "x ~@4 x ~ x", J: "~ x ~@3 x ~ x", K: "~@7 x",
  L: "~ x ~ x ~@4", M: "x!2", N: "x ~@2 x ~@2 x ~@3 x ~@5", O: "~ x ~ x ~ x ~ x", P: "x", Q: "~@5 x ~@10",
  R: "~@9 x ~@6", S: "~ x ~@6", T: "~@7 x ~@8", U: "~@11 x ~@4", V: "~@10 x!2 ~@4", W: "x ~@3 x ~ x!2",
  X: "~@2 x ~@4 x ~@3 x ~@4", Y: "~ x ~ x ~@3 x ~@3 x ~@4", Z: "~ x ~ x ~@5 x ~@6", AA: "~ x ~ x ~@5 x ~ x ~@4",
  AB: "~ x ~ x ~@7 x ~@3 x", AC: "~@3 x ~@5 x ~@6", AD: "~@3 x ~@3 x ~@8", AE: "~@7 x ~@3 x ~@4",
  AF: "~ x ~ x ~@3 x ~@8", AG: "~@5 x ~@3 x ~@6", AH: "~@5 x ~@3 x ~@3 x ~@2", AI: "~ x ~@3 x ~@9 x",
  AJ: "~ x ~@3 x ~@3 x ~@3 x ~@2", AK: "~ x ~@3 x ~@3 x ~@6",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct(`<
  ~@20 A B ~@66 C D@15 E D@7 F D@6 ~@3 D G H D@11 E D@7 F D@7 I D@2 G D@3 J ~ D@2 K@2 D@2 K L M N ~@2 O P Q R S T U V W
  X Y Z AA AB AC AD AE AF AG AF ~ E AH ~ AI AJ AK@2 AL AM AN@6 AH AO AN AP AQ AN@2 AR AS ~ AT ~ AT ~ AT ~ AT AF AT ~ AT
  ~ AT ~@12
>`.pickRestart({
  A: "~@11 x ~ x ~@2", B: "x ~@2 x ~@12", C: "~@2 x!3 ~@5 x!2 ~@4", D: "~ x ~ x", E: "~ x ~@6", F: "x!2 ~ x",
  G: "x!2 ~@6", H: "~@3 x", I: "~@2 x!2", J: "~@4 x!4", K: "~@2 x!2 ~@2 x ~", L: "~@8 x!2 ~@2 x!2 ~@2", M: "x!4",
  N: "x ~@3 x ~@3 x!2 ~ x!3 ~ x", O: "~@5 x!2 ~ x!2 ~@4 x ~", P: "x ~ x ~@2 x ~ x ~@3 x ~@4",
  Q: "x!4 ~ x!2 ~ x!2 ~ x!2 ~ x ~", R: "~@2 x ~@2 x ~ x ~ x ~ x ~@4", S: "x!10 ~ x!2 ~ x!2",
  T: "~ x!2 ~@4 x ~ x ~ x ~@2 x ~", U: "x ~@4 x ~@3 x!3 ~ x!3", V: "~ x!2 ~ x!2 ~ x ~@3 x ~@2 x ~",
  W: "x ~ x ~@2 x ~@3 x!7", X: "x!3 ~ x!2 ~ x!2 ~ x!2 ~@4", Y: "x ~ x ~@2 x ~ x ~ x ~@4 x ~",
  Z: "~@2 x!2 ~ x!4 ~ x!2 ~ x!2 ~", AA: "x ~@4 x ~ x ~ x ~ x ~@2 x ~", AB: "~@2 x!10 ~ x!2 ~",
  AC: "x ~ x!2 ~ x ~@3 x ~ x ~@2 x ~", AD: "x ~ x ~@4 x ~@3 x ~ x!3", AE: "x ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2",
  AF: "~ x ~@14", AG: "~@14 x!2", AH: "~@5 x ~@10", AI: "x ~@13 x!2", AJ: "~@7 x!5 ~ x!3", AK: "x!4 ~ x!7 ~ x!3",
  AL: "x!4 ~ x!5 ~@5 x", AM: "x ~@2 x!2 ~@8 x ~@2", AN: "~@5 x ~@7 x ~@2", AO: "~ x ~@3 x ~@7 x ~@2",
  AP: "~@5 x ~@3 x ~ x ~@4", AQ: "~@13 x ~@2", AR: "~@5 x ~@3 x!2 ~ x!3 ~", AS: "x", AT: "~@9 x ~@6",
})).gain(0.45)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@21 A B C B D E D F D B C B D E D F D B C B D E D F D B C B D G ~@184 H I J I K L ~@3
>`.pickRestart({
  A: "~@5 x ~@5 x!2 ~ x ~", B: "x ~@4 x ~ x ~ x ~ x ~@4", C: "x ~ x ~ x!2 ~ x ~ x ~ x!2 ~ x ~",
  D: "x ~ x ~ x!2 ~@5 x!2 ~ x ~", E: "x ~ x ~ x!2 ~ x ~ x ~ x ~@4", F: "x ~@4 x ~ x ~ x ~ x!2 ~ x ~",
  G: "x ~ x ~ x!2 ~ x ~ x ~@6", H: "~@9 x ~@4 x ~", I: "x ~ x ~ x ~@4 x ~ x ~ x!2 ~", J: "~@4 x ~ x!2 ~ x ~ x ~ x!2 ~",
  K: "~@4 x ~ x!2 ~ x ~@4 x ~", L: "x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~@2",
})).gain(0.25)

// drums · low tom
const low_tom = s("lt").struct("<~@88 A ~@74 B@2 ~@2 B C ~@3 D ~@18 E ~ F ~@24 G ~@21 H ~@3>".pickRestart({
  A: "~@14 x!2", B: "x!2 ~@2 x!2 ~@2", C: "~@10 x!2 ~@2 x!2", D: "~@9 x ~ x!3 ~ x", E: "~ x ~@6", F: "~ x",
  G: "~@5 x!2 ~ x ~@7", H: "~@7 x",
})).gain(0.45)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@97 A B@2 C B@3 D ~@7 E ~@16 A B@2 C B@3 D ~@7 E ~@17 F ~@3 F ~@20 F G H ~@54
>`.pickRestart({
  A: "~@2 x!6", B: "x!8", C: "x!6 ~@2", D: "~ x", E: "x", F: "~@7 x", G: "~@2 x ~@4 x ~@8", H: "x ~@4 x ~@3 x ~@6",
})).gain(0.45)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@52 A B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E F ~@2 G ~@7 H ~@7 I ~@7 H ~@7 J ~@2 K ~@4 H ~@7
  I ~@7 H ~@7 J ~@2 K ~@3 J ~@2 L@2 ~@2 L M N ~@2 O P ~@17 Q R S T ~@3 U V ~@3 W ~@10 X ~@3 Y Z ~@21 M ~@3
>`.pickRestart({
  A: "~@11 x!2 ~ x ~", B: "x ~ x ~ x!2 ~@5 x!2 ~ x ~", C: "~@5 x ~ x ~ x ~ x ~@4", D: "x ~ x ~ x ~@6 x!2 ~ x ~",
  E: "x ~@4 x ~ x ~ x ~@6", F: "x!3 ~@5", G: "x ~@5 x ~ x ~@3 x!2 ~@2", H: "~ x", I: "~@8 x!5 ~@3", J: "~ x ~@2",
  K: "~@4 x!3 ~", L: "~@14 x!2", M: "~@7 x", N: "x!2 ~@2", O: "~@9 x ~ x!3 ~ x", P: "~ x ~ x!3 ~ x ~@8",
  Q: "~@2 x ~@2 x ~ x!2 ~ x!2 ~ x!2 ~", R: "x ~@2 x ~@12", S: "~@4 x!2 ~@10", T: "x ~ x!2 ~ x!2 ~@9",
  U: "~@9 x!3 ~ x ~@2", V: "x!2 ~@14", W: "~@5 x!4 ~@7", X: "~ x ~ x ~ x ~@10", Y: "~@9 x!2 ~ x!3 ~", Z: "x!3 ~ x ~@11",
})).gain(0.45)

// drums · open hat
const open_hat = s("oh").struct("<~@100 A ~@3 B C D@6 ~@20 A ~@3 B C D@6 ~@17 C D ~@2 C D ~@77>".pickRestart({
  A: "~@3 x", B: "x!2 ~@2", C: "~ x!3", D: "x!4",
})).gain(0.45)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@52 A ~ B A C ~ B A C ~ B A C ~ B A C ~ B A C ~ B A C ~ B A C ~ B A C ~@11 D ~@23 E ~@2 F ~@4 D ~@23 E ~@2 F ~@3 E
  ~@11 G ~@18 E ~ H ~@9 I ~@6 J ~@2 K ~@4 L ~@22 M ~@3
>`.pickRestart({
  A: "~@5 x ~ x ~ x ~@6", B: "x!3 ~@5", C: "~@11 x!2 ~ x ~", D: "~@3 x ~@4", E: "~ x ~@2", F: "~@2 x!2 ~@4",
  G: "~ x ~ x!3 ~ x ~@8", H: "~ x ~@6", I: "~ x!2 ~@13", J: "~@13 x ~@2", K: "~@13 x ~ x", L: "~ x!2 ~ x!3 ~ x ~@7",
  M: "~@7 x",
})).gain(0.45)

// drums · crash
const crash = s("cr").struct(`<
  ~@85 A ~@3 B@7 C D ~@7 D ~@6 E D ~@3 B@3 F D ~ G ~ B@3 C D ~@7 D ~@6 E D ~@3 B@3 F D ~ G H B@2 D I D ~@3 D ~@3 B J I@2
  D ~@17 A K L M N O D P ~@3 L ~ L ~ Q R@2 S@2 ~@2 K Q R T ~ L@6 Q R S L@5 Q R S ~@9
>`.pickRestart({
  A: "~@5 x ~@10", B: "x!4", C: "x ~@2 x", D: "x", E: "~@3 x", F: "x ~ x!2", G: "~@7 x", H: "~ x!3", I: "x!2",
  J: "x!2 ~@2", K: "~@7 x ~@8", L: "~@9 x ~@6", M: "~@2 x ~@8 x ~@4", N: "x ~@4 x ~@3 x ~@4 x ~",
  O: "~@2 x ~@4 x ~@3 x ~@4", P: "~ x ~@6", Q: "~@9 x ~@3 x ~@2", R: "~ x ~@3 x ~@3 x ~@3 x ~@2",
  S: "~ x ~@3 x ~@3 x ~@6", T: "~ x ~@3 x ~@10",
})).gain(0.45)

// drums · ride
const ride = s("rd").struct(`<
  ~@113 A B@3 ~@4 A B ~ A ~@20 A B@3 ~@4 A B ~@36 C D ~@9 E F G F H ~@3 E F H E H ~@3 E G@5 H ~ E G@5 H ~@11
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "~@9 x ~@6", D: "~@11 x ~@4", E: "~@13 x ~@2", F: "~ x ~@3 x ~@3 x ~@3 x ~@2",
  G: "~ x ~@3 x ~@7 x ~@2", H: "~ x ~@3 x ~@10",
})).gain(0.45)

stack(bass, electric_guitar_clean, kick, snare, snare_soft, low_tom, hihat, mid_tom, open_hat, high_tom, crash, ride)

More by My Chemical Romance