Strudelify

Welcome To The Black Parade by milesaye

Gerard Way Frank Iero Mikey Way Ray Toro Bob Briar

KeyG majorTempo75 bpm
0:00/0:00
// Welcome To The Black Parade by milesaye — Gerard Way Frank Iero Mikey Way Ray Toro Bob Briar
// 75 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3031881; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 52 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(75/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A B C D A B C D E F G H A B C D A B C I J K L M N O P D N O P D Q R@2 A B C P A B C P A B C D A B C S@2
>`.pickRestart({
  A: "g4@2 f#4 b4", B: "e4@2 d4 g4", C: "c4@2 b3 e4", D: "a3 d4", E: "b4@2 a4 d5", F: "c5@2 b4 e5", G: "g4@2 g4 d5",
  H: "e5 a4", I: "g5@2 d5!2", J: "d4@6 b3 d4 e4@6 d4 e4", K: "c5!2 a4!2", L: "d5 d5@2 b4@5",
  M: "d5@2 d5@4 c5@2 c5@4 ~@2 a5!2", N: "g3 d4", O: "e4 g4", P: "a3 e4", Q: "b4@3 ~", R: "d5/2", S: "[a3@2 e4@5 ~]/2",
})).s("gm_clarinet").gain(0.3)

// other · trombone
const trombone = note(`<
  ~@4 A B C D A B E D F B G D F B G H I J K L M N O@2 M N O@2 P Q@2 R S T G U R S E ~@9
>`.pickRestart({
  A: "g2 d3", B: "e3 g3", C: "a2 e3", D: "a2 d3", E: "c3 g3", F: "g3 a3", G: "a2 g3", H: "a2@2 c3!2",
  I: "b2@6 f#2 b2 c3@6 b2 c3", J: "d3 f#3!2 d3@5", K: "g3 f#3 e3 d3 c3@4", L: "c3@2 b2@2 a2@2 g2@2 f#2@4 ~@2 f#3!2",
  M: "~ e3@3 ~@2 f3!2 ~ e3@3 ~@2 f3!2", N: "f3 e3@3 f3@4 f3@2 e3@2 d3@2 e3!2",
  O: "[c3@4 ~@2 f3!2 ~ e3@3 d3@2 e3 e3@9 ~@4 e3 e3@3]/2", P: "b3@3 ~", Q: "g3/2", R: "g3@2 f#3 b3", S: "e3@2 d3 g3",
  T: "c3@2 b2 e3", U: "b3@2 a#3 d4",
})).s("gm_trombone").gain(0.25)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<~@4 A B C D A B C D A B C E A B C F G H I J K L M@2 K L M@2 N O@2 A B C D ~@13>".pickRestart({
  A: "g4@2 f#4 b4", B: "e4@2 d4 g4", C: "c4@2 b3 e4", D: "a3 d4", E: "a3 e4", F: "e4@2 d4!2", G: "d4!2 f#4!2",
  H: "e4 g4!2 e4@5", I: "b3 b3@2 g3@5", J: "b3@2 b3@4 g3@2 g3@4 ~@2 d4!2", K: "~ d4@3 ~@2 c4!2 ~ d4@3 ~@2 c4!2",
  L: "a4 g4@3 a4@4 a4@2 g4@2 f#4@2 g4!2", M: "[e4@4 ~@2 a4!2 ~ g4@3 f#4@2 g4 g4@9 ~@4 a4 a4@3]/2", N: "b3@3 ~",
  O: "d4/2",
})).s("gm_tenor_sax").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@12 x!7 [x!2 ~@2] ~@32>").gain(0.3)

// drums · snare
const snare = s("sd").struct(`<
  ~@8
  [x ~@3 x!2 ~ x!2 ~@3 x!2 ~ x!2 ~@3 x!2 ~ x!9]!11
  ~@5
  [x ~@3 x!2 ~ x!2 ~@3 x!2 ~ x!2 ~@3 x!2 ~ x!9]!9
  [x ~@7 x ~@7 x ~@7 x!8]!2
  [x ~@3 x!2 ~ x!2 ~@3 x!2 ~ x!2 ~@3 x!2 ~ x!2 ~@3 x!2 ~ x]!15
  [x ~@3 x!2 ~ x!2 ~@3 x!2 ~ x!2 ~@3 x!2 ~ x!9]
  [x!32]
>`).gain(0.3)

// drums · mid tom
const mid_tom = s("mt").struct("<~@19 [~@24 x!8] [x ~@3 x!2 ~ x ~@4 x!2 ~ x!2 ~@3 x!2 ~ x ~@4 x!2 ~ x]!4 ~@28>")
  .gain(0.3)

// drums · high tom
const high_tom = s("ht").struct("<~@19 [~@16 x!8 ~@8] [~@8 x!2 ~ x ~@12 x!2 ~ x ~@4]!4 ~@28>").gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@12 x!7 ~@33>").gain(0.3)

stack(clarinet, trombone, tenor_sax, kick, snare, mid_tom, high_tom, crash)