Strudelify

clubbed to death

Evan S.

KeyB♭ majorTempo89 bpm
0:00/0:00
// clubbed to death — Evan S.
// 89 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3254956; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 25 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(89/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.

// chords · piano
const piano = note("<A B C D E F G H I J K L M@2 N@2 O@2 P Q R ~@4>".pickRestart({
  A: "~ d4 g4 d4 bb4 d4 g4 d4, g2@15 ~", B: "c5 d4 gb4 d4 a4 d4 gb4 d4, a2@15 ~",
  C: "~ d4 g4 d4 d5 d4 bb4 d4, bb2@15 ~", D: "bb4 c4 eb4 c4 a4 eb4 c5 eb4, c3@15 ~",
  E: "~ d4 g4 d4 bb4 g4 d5 bb4, d3@15 ~", F: "g5 g4 bb4 g4 eb5 bb4 g5 bb4, eb3@15 ~",
  G: "g5 g4 b4 g4 d5 b4 f5 b4, b2@15 ~", H: "f5 g4 c5 f5 eb5 g4 c5 eb5, c3@15 ~",
  I: "d5 d4 g4 d4 bb4 d4 g4 d4, g2@15 ~", J: "bb4 c4 eb4 bb4 a4 c4 d4 gb4, c3 d3",
  K: "g4 g3 bb3 d4 g4 d4 bb4 g4, g2@15 ~", L: "d5 bb4 g5 d5 bb5 g5 d6 bb5", M: "[g6@23 ~ f6@3 eb6@3 d6 c6]/2",
  N: "[d6 eb6 d6 c6 d6@19 ~ c6@3 bb5@3 a5 g5]/2", O: "[a5 bb5 a5 g5 a5@25 ~ g5 [eb5,f5]]/2", P: "d5 ~@3",
  Q: "~@14 d5 [bb4,c5]", R: "a4@15 ~",
})).s("gm_piano").gain(0.25)

// chords · piano · soft notes
const piano_soft = note("<~@12 A B A C A D E@2 A F A@2 ~>".pickRestart({
  A: "~@2 [g4,bb4,d5] ~ [g4,bb4,d5] ~ [g4,bb4,d5] ~", B: "~@2 [gb4,a4,c5,d5] ~ [gb4,a4,c5,d5] ~ [gb4,a4,c5,d5] ~",
  C: "~@2 [g4,c5,d5] ~ [g4,c5,d5] ~ [g4,c5,d5] ~", D: "~@2 [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~",
  E: "[~@2 [b4,g5] ~ [b4,g5] ~ [b4,g5] ~@3 [c5,eb5,f5] ~ [c5,eb5,f5] ~ [c5,eb5,f5] ~, ~ d5!2 d5@4 ~]/2", // Em F7
  F: "~@2 [a4,c5,d5] ~ [a4,c5,d5] ~ [a4,c5,d5] ~", // D7
})).s("gm_piano").gain(0.15)

// chords · piano
const piano_2 = note("<~@12 A B C D E F G H I J K L M>".pickRestart({
  A: "~ d4 g4 d4 bb4 d4 g4 d4, g2@15 ~", B: "c5 d4 gb4 d4 a4 d4 gb4 d4, a2@15 ~",
  C: "~ d4 g4 d4 d5 d4 bb4 d4, bb2@15 ~", D: "bb4 c4 eb4 c4 a4 eb4 c5 eb4, c3@15 ~",
  E: "~ d4 g4 d4 bb4 g4 d5 bb4, d3@15 ~", F: "g5 g4 bb4 g4 eb5 bb4 g5 bb4, eb3@15 ~",
  G: "g5 g4 b4 g4 d5 b4 f5 b4, b2@15 ~", H: "f5 g4 c5 f5 eb5 g4 c5 eb5, c3@15 ~",
  I: "d5 d4 g4 d4 bb4 d4 g4 d4, g2@15 ~", J: "bb4 c4 eb4 bb4 a4 c4 d4 gb4, c3 d3",
  K: "g4 g3 bb3 d4 g4 d4 bb4 g4, g2@15 ~", L: "d5 bb4 g5 d5 bb5 g5 d6 bb5", M: "[g2,g6]@15 ~",
})).s("gm_piano").gain(0.25)

stack(piano, piano_soft, piano_2)