Strudelify

The Dope Show

Marilyn Manson

KeyG majorTempo90 bpm
0:00/0:00
// The Dope Show — Marilyn Manson
// 90 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 81 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(90/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
const bass = note(`<
  A B A B A B A B A B A B A B A B C D E F C D E F A B A B G H I H I H J K A B A B A B A B C D E F C D E F A B A B G H I
  H I H J K C D E F C D E F A B A B A B A B ~
>`.pickRestart({
  A: "e1@4 ~@4 e1@4 ~@4 e1@4 ~@4 g1@4 e1@3 ~", B: "~@5 d2@7 c2@13 ~@3 g1@4",
  C: "e2@5 e2@3 e2@5 e2@3 e2@5 e2@3 e2@5 e2@3", D: "g2@5 g2@3 g2@5 g2@3 g2@5 g2@3 g2@5 g2@3",
  E: "d2@5 d2@3 d2@5 d2@3 d2@5 d2@3 d2@5 d2@3", F: "c2@5 c2@3 c2@5 c2@3 c2@5 c2@3 b1@5 b1@3",
  G: "e2@5 e2@4 ~@4 e2@3 g2@5 g2@4 ~@4 g2@3", H: "a2@5 a2@5 ~@3 a2@3 d2@8 d2@8",
  I: "e2@5 e2@4 ~@4 e2@3 g2@4 g2@4 ~@5 g2@3", J: "e2@5 e2@4 ~@4 e2@3 d2@4 d2@4 ~@5 d2@3",
  K: "c2@5 c2@5 ~@6 g1@5 ~@3 g1@5 ~@3, ~@13 c2@5 ~@14",
})).s("gm_electric_bass_finger").gain(0.64)

// other · pad choir
const pad_choir = note("<A@4 ~@60 B@8 ~@9>".pickRestart({
  A: "[d3@127 ~]/4",
  B: "[~@15 [d3,d4]@5 [e3,e4]@8 [e2,e3]@3 ~@5 e2@3 e2@5 [e2,e3]@3 [d3,d4]@5 [e3,e4]@8 [e2,e3]@3 ~@5 e2@3 e2@5 [e2,e3]@3 [d3,d4]@5 [e3,e4]@8 [e2,e3]@3 ~@5 e2@3 e2@5 [e2,e3]@3 [d3,d4]@5 [e3,e4]@8 [e2,e3]@3 ~@5 e2@3 e2@5 [e2,e3]@3 [d3,d4]@5 [e3,e4]@8 [e2,e3]@3 ~@5 e2@3 e2@5 [e2,e3]@3 [d3,d4]@5 [e3,e4]@8 [e2,e3]@3 ~@5 e2@3 e2@5 [e2,e3]@3 [d3,d4]@5 [e3,e4]@8 [e2,e3]@3 ~@5 e2@3 e2@5 [e2,e3]@3 [d3,d4]@5 [e3,e4]@8 ~@4, ~@31 [a#2,a#3]@4 g3@5 ~@23 [a#2,a#3]@4 g3@5 ~@23 [a#2,a#3]@4 g3@5 ~@23 [a#2,a#3]@4 g3@5 ~@23 [a#2,a#3]@4 g3@5 ~@23 [a#2,a#3]@4 g3@5 ~@23 [a#2,a#3]@4 g3@5 ~@24, ~@34 a3@3 ~@29 a3@3 ~@29 a3@3 ~@29 a3@3 ~@29 a3@3 ~@29 a3@3 ~@29 a3@3 ~@27]/8", // D E D E D E D E …
})).s("gm_pad_choir").gain(0.32)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  A@4 ~@12 B C D E B C D E ~@10 F G ~@8 B C D E B C D E ~@10 F G B C D E B C D E ~@4 H I H I ~
>`.pickRestart({
  A: "[d3@127 ~]/4",
  B: "[b2,e3,b3,e4]@5 [b2,e3,b3,e4]@3 [b2,e3,b3,e4]@5 [b2,e3,b3,e4]@3 [b2,e3,b3,e4]@5 [b2,e3,b3,e4]@3 [b2,e3,b3,e4]@5 [b2,e3,b3,e4]@3", // E5
  C: "[d3,g3,d4,g4]@5 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@5 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@5 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@5 [d3,g3,d4,g4]@3", // G5
  D: "[a2,d3,a3,d4]@5 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@5 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@5 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@5 [a2,d3,a3,d4]@3", // D5
  E: "[g2,c3,g3,c4]@5 [g2,c3,g3,c4]@3 [g2,c3,g3,c4]@5 [g2,c3,g3,c4]@3 [g2,c3,g3,c4]@5 [g2,c3,g3,c4]@3 [f#2,b2,f#3,b3]@5 [f#2,b2,f#3,b3]@3", // C5 B5
  F: "[e3,b3,e4] [d3,a3,d4]", G: "[c3,g3,c4] [g2,d3,g3]",
  H: "[b2,e3]@6 ~@2 [b2,e3]@6 ~@2 [b2,e3]@6 ~@2 [d3,g3]@4 e3@3 ~", // E5 G5
  I: "~@5 [d3,a3,d4]@6 ~ [g3,c4]@13 ~@7, ~@11 c3@13 ~@8", // D5 C5
})).s("gm_overdriven_guitar").gain(0.32)

// chords · overdriven guitar
const overdriven_guitar_2 = note("<~@28 A@2 B@2 C@2 A@2 ~@20 A@2 B@2 C@2 A@2 ~@17>".pickRestart({
  A: "[~@16 d4@5 e4@3 ~@24 d4@5 e4@3 g4@5 e4@3, e4!2 ~ e4 e4!2 ~@2, ~@5 b3@7 ~ b3@16 b3@8 b3@7 ~ b3@7 ~@12]/2",
  B: "[~@16 d4@5 e4@3 ~@32 g4@5 e4@3, e4@2 e4@2 ~@2 e4@2 e4@2 e4@2 d4@3 ~, ~@5 b3@7 ~ b3@16 b3@8 b3@7 ~ b3@16 ~@3, ~@53 e4@7 ~@4]/2",
  C: "[b3@4 ~@12 d4@5 e4@3 ~@24 d4@5 e4@3 g4@5 e4@3, e4!2 ~ e4 e4!2 ~@2, ~@5 b3@7 ~ b3@16 b3@8 b3@7 ~ b3@7 ~@12]/2",
})).s("gm_overdriven_guitar").gain(0.41)

// other · guitar harmonics
const guitar_harmonics = note("<~@24 A B C D ~@24 E B F G ~@16 E B F G ~@5>".pickRestart({
  A: "e4@5 b4@3 a4@4 e4@4 ~@4 e5@7 e6 ~@4", B: "~@13 a4@3 b4@3 ~@5 e5@4 ~@4",
  C: "e4@5 b4@2 a4@5 e4@4 ~@3 e5@6 ~ e6 ~@5", D: "~@13 e5@3 b4@5 a4@2 g4@4 ~@5",
  E: "e4@5 b4@3 a4@4 e4@4 ~@4 e5@7 ~ e6 ~@3", F: "e4@5 b4@3 a4@4 e4@4 ~@3 e5@6 ~ e6 ~@5",
  G: "~@13 e5@3 b4@5 a4@3 g4@4 ~@4",
})).s("gm_guitar_harmonics").gain(0.46)

// drums · kick
const kick = s("bd").struct("<[x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2]!80 ~>").gain(0.41)

// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!80 ~>").gain(0.41)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C A B C A B C A B C A B C A@2 B C A@2 B C A@2 B C A@2 B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B ~
>`.pickRestart({
  A: "x ~@2 x ~ x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~",
  B: "x ~@2 x ~ x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2",
  C: "x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~",
})).gain(0.41)

// drums · crash
const crash = s("cr").struct(`<
  A ~ A ~ A ~ A ~ A ~ A ~@5 B@8 ~@12 A ~ A ~ A ~ A ~ B@8 A ~@11 B@8 A ~ A ~ A ~ A ~@2
>`.pickRestart({
  A: "x", B: "x!4",
})).gain(0.41)

// drums · vibraslap
const vibraslap = s("vibraslap:0").struct("<~@2 x ~@3 x ~@3 x ~@69 x>").gain(4.81)

stack(bass, pad_choir, overdriven_guitar, overdriven_guitar_2, guitar_harmonics, kick, snare, hihat, crash, vibraslap)

More by Marilyn Manson