Strudelify

Doomsday is On

Logan Finney

KeyA minorTempo230 bpm
0:00/0:00
// Doomsday is On — Logan Finney
// 230 bpm, 2/2, 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: Transcription provider: pdmx. https://musescore.com/score/901616; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 141 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(230/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 · violin
const violin = note(`<
  A B C D@4 E@5 ~ F G H@2 I J K L M N@8 O@4 P@4 Q@4 R@4 S@8 ~@19 T@2 U V W X ~ X W Y Z AA AB AC T@2 AD AE AF@2 W Y AG@2
  X ~ AH AI AJ@3 AK AJ@3 AL AM AN@4 AO AF@2 O@4 ~ AP@8 AQ@6 AR@5
>`.pickRestart({
  A: "~@3 c4", B: "g4@4 g4@2 f#4 g4", C: "g#4@8 ~ g4@4 f4@3", D: "[~ c5@29 f4@4 ~ c5@8 c5@4 b4@2 c5@2 d5@8 ~ c5@4]/4",
  E: "[d#5@33 g5 g5@3 ~ c5@8 c5@4 d5@4 d#5@4 d5 d#5 ~ d5 c5@5 f5@4 c5@8 ~]/5",
  F: "c5@2 d5@2 d#5@2 ~@2 d#5@2 ~ f5@2 d5@2 ~", G: "~ d5@2 d#5@2 c5@2 ~@2 c5@2 d5@2 b4@2 ~",
  H: "[~@2 g#4@2 g4@2 c5@17 ~@9]/2", I: "~@7 g5@4 c5@4 ~", J: "~ c5 d5 d#5", K: "d5 d#5 d5 c5@5 ~ f5@7",
  L: "~ c5@8 ~@7", M: "~@3 c5 d5 d#5 ~ d#5",
  N: "[f5@2 d5@2 ~@3 d5@2 d#5@2 c5@2 ~@2 c5@2 d5@2 b4@2 ~@2 g#4@2 g4@2 ~ c5@16 b4@17 a4@67]/8", O: "a4/4",
  P: "[~@3 f4@61]/4", Q: "[~@3 d4@29]/4", R: "[~@9 g4@55]/4", S: "[~@6 e4@33 e4@25]/8", T: "[e5@6 d5 c5]/2", U: "b4 c5",
  V: "b4 g#4", W: "a4", X: "e4", Y: "~ b4", Z: "a4 g#4", AA: "a4 b4", AB: "c5", AC: "~ d5", AD: "b4", AE: "~ c5",
  AF: "b4/2", AG: "g#4/2", AH: "f4 e4", AI: "d#4 e4", AJ: "e5/3", AK: "~@2 f5 d5", AL: "~ a4", AM: "g5 g#5", AN: "e5/4",
  AO: "~@2 d5 c5",
  AP: "[~@15 c4@4 g4@8 g4@4 f#4@2 g4@2 g#4@8 g4@4 f4@8 c#5@4 c5@12 c#5@4 c5@12 c#5@4 c5@12 c#5@4 c5@4 f4@4 c5@8 c5@4 b4]/8",
  AQ: "[~ c5@2 d5@8 c5@4 d#5@32 g5@4 c5@4 ~@4 c5@4 d5@4 d#5@4 d5 d#5 d5 c5@5 f5@8 c5@8 ~]/6",
  AR: "[~@11 c5@2 d5@2 d#5@2 ~@2 d#5@2 f5@2 d5@2 ~@2 d5@2 d#5@2 c5@2 ~@2 c5@2 d5@2 b4@2 ~@2 g#4@2 g4@2 c5@16 c5@4 ~@4 c5@8 ~]/5",
})).s("gm_violin").gain(0.2)

// bass · contrabass
const bass = note(`<
  A@7 B C D@2 E@7 F G H I J@8 K@6 L M N@3 O@2 P Q R@2 S@8 ~@2 T@4 U@4 V@4 W@2 X@2 T@4 U@4 V@4 W@2 X@2 Y@2 V@4 X@6 U@4
  Z@4 AA@12 ~ AB@8 AC@8 AD@3
>`.pickRestart({
  A: "[~@12 c2@8 g1@8 c2@8 ~ g1@8 f2@8 c2@8 ~ f2@8 c2@8 f2@8 ~ c2@8 f2@8 ~ c2@8]/7", B: "c2 g1", C: "~ c2@8 d#2@7",
  D: "[~ c2@8 ~ g1@8 c2@8 g1@6]/2",
  E: "[~@3 f2@8 c2@8 ~ f2@8 c2@8 f2@8 ~ c2@8 f2@8 c2@8 ~ c2@8 d2@8 d#2@8 ~ g2@8 c2@8 ~]/7", F: "g1 c2",
  G: "g1@8 ~ f2@7", H: "~ c2@8 f2@7", I: "~ c2@4 f2@3",
  J: "[~@2 c2@8 ~ f2@8 c2@8 ~ c2@8 d2@8 c3@17 a1@8 f2@4 ~ e2@12 f2@4 e2@13 f2@4 e2@13 f2@4 e2@4]/8",
  K: "[a1@8 f2@4 e2@13 f2@4 e2@13 a2@4 e2@12 f2@4 ~ e2@4 a1@8 f2@4 e2@13 a2@4]/6", L: "e2@13 b2@3", M: "~ e2@12 f2@3",
  N: "[~@2 e2@4 a1@8 f2@4 e2@13 a2@4 e2@13]/3", O: "c3 b2@3", P: "~ e3@4 b2@11", Q: "~ e3@2 b2@5",
  R: "[~@2 c3@4 ~ d3@12 c3@4 b2@9]/2",
  S: "[~@4 e3@4 b2@13 e3@4 b2@12 f3@4 ~ b2@12 f3@4 b2@4 g#2@8 ~ c3@4 b2@13 c3@4 b2@36]/8", T: "a2!4", U: "c3!4",
  V: "f2!4", W: "d2!4", X: "e2!4", Y: "g2!4", Z: "d3!4", AA: "e3!4",
  AB: "[~@15 c2@8 g1@8 c2@8 g1@8 f2@8 c2@8 f2@8 c2@8 f2@8 c2@8 f2@8 c2@8 f2@8 c2@8 f2]/8",
  AC: "[~@7 c2@8 c2@8 g#2@4 g2@12 g#2@4 g2@4 c2@8 g1@8 c2@8 g1@8 f2@8 c2@8 f2@8 c2@8 f2@8 c2@8 f2]/8",
  AD: "[~@7 c2@8 c2@8 g1@8 c2@4 ~@4 c2@8 ~]/3",
})).s("gm_contrabass").gain(0.3)

// other · timpani
const timpani = note(`<
  A@7 B C@2 D E F@2 G@2 H@8 I@6 J@4 K@4 L@4 M@2 N@2 O@7 P@3 ~ Q@4 R@4 S@4 T@2 U@2 Q@4 R@4 S@4 T@2 U@2 V@2 S@4 U@6 R@4
  W@4 X@12 ~ Y@8 Z@8 AA@3
>`.pickRestart({
  A: "[~@12 c3@16 g3@17 f3@17 c3@16 f3@17 c3@17]/7", B: "c3", C: "[~ g3@16 c3@15]/2", D: "~ g3@7", E: "~@3 f3@13",
  F: "[~ c3@4 f3@3]/2", G: "[~@5 c3@17 c3@8 d3@2]/2",
  H: "[~@6 d#3@8 ~ g3@8 c3@17 g3@17 f3@16 c3@17 f3@17 c3@17 c3@4]/8", I: "[~@4 d3@8 g3@17 a2@67]/6", J: "a2/4",
  K: "[~@3 f2@61]/4", L: "[~@3 d2@29]/4", M: "[~@9 g2@23]/2", N: "[~@5 g2@11]/2",
  O: "[~@12 e2@16 e2@17 e2@17 e2@16 e2@17 e2@17]/7", P: "[e2!15 e2@18 ~@15]/3", Q: "a2!4", R: "c3!4", S: "f3!4",
  T: "d3!4", U: "e3!4", V: "g3!4", W: "d2!4", X: "e2!4", Y: "[~@15 c3@16 g3@16 f3@16 c3@16 f3@16 c3@16 c3@16 g3]/8",
  Z: "[~@15 c3@16 g3@16 f3@16 c3@16 f3@16 c3@16 f3@16 c3]/8", AA: "[~@15 c3@8 c3@8 g3@4 ~@4 g3@8 ~]/3",
})).s("gm_timpani").gain(0.25)

stack(violin, bass, timpani)