Strudelify
Sweet Dreams   Hell Outro cover art

1999 · The Last Tour On Earth

Sweet Dreams Hell Outro

Marilyn Manson

KeyC minorTempo90 bpm
0:00/0:00
// Sweet Dreams   Hell Outro — Marilyn Manson
// 90 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 2 tubular bells (copy of ch 1 tubular bells)
// note: Full arrangement: all 105 bars on a 16-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.

// other · tubular bells
const tubular_bells = note(`<
  A B A B A B A B A B A B A B A B A B ~@14 A B A B A B A B A B A B A B A B ~@14 A B A B A B A B ~@8 A B A B A B A B ~@19
>`.pickRestart({
  A: "c3!2 g3 c3 ab3 c3 g3 c3", B: "ab2!2 eb3 f3 g2!2 d3 eb3",
})).s("gm_tubular_bells").gain(0.64).pan(0)

// bass · acoustic bass
const bass = note("<~@10 A@6 B@8 C@22 D@8 E@4 F@3 ~@44>".pickRestart({
  A: "c2/2", B: "c2/8", C: "[~@2 ab1 g1, c2]/2", D: "[~@2 ab1 g1@13, c2]/8", E: "[~ ab2, c2]/2",
  F: "[~ ab2 ~, c2@43 ~@5]/3",
})).s("gm_acoustic_bass").gain(0.41)

// bass · slap bass 2
const bass_2 = note("<~@18 A B C D A E@8 ~@17 F G H I F J@8 K L M@6 N@8 ~ O P@6 Q@6 R@2 S@3 T@8 ~>".pickRestart({
  A: "ab1 ab1@2 ab1!2 ab1@2 ab1", B: "ab1 ab1@2 ab1!2 g1@2 g1", C: "c2 c2@2 c2!3 eb2!2", D: "ab1 ab1@2 ab1!2 ab1@2 g1",
  E: "[g1!2 g2 g1 g2 g1 g1@58]/8", F: "ab1!8", G: "ab1!5 g1!3", H: "c2!3 eb2", I: "ab1!7 g1",
  J: "[g1!2 g2 g1!2 g2 g1 g1@57]/8", K: "ab1@2 ab1@2 ab1@3 ~@9", L: "c2 c2@2 c2!2 c2@2 c2",
  M: "[ab1 ab1@2 ab1 g1 g1@2 ~ c2 c2@2 c2!2 c2@2 c2 ab1 ab1@2 ab1 g1 g1@2 ~ c2 c2@2 c2!2 c2@2 c2 ab1 ab1@2 ab1 g1 g1@2 ~ c2 c2@2 c2!2 c2@2 c2, ~@7 g1@13 ~@3 g1@13 ~@3 g1@9]/6",
  N: "[ab1 ab1@2 ab1 g1 g1@2 ~ c2@56, ~@7 g1@57]/8", O: "c2@2 ~ g2",
  P: "[ab1@2 g1 ~ c2@2 ~ g2 ab1@2 ~ eb2 c2@2 ~ g2 ab1@2 g1 ~ c2@2 ~ g2, ~@3 g1@7 g1@8 ~ g1@5]/6",
  Q: "[ab1@4 g1@2 ~@2 ab1 ab1@2 ab1!2 ab1@2 ab1 ab1 ab1@2 ab1!2 g1@2 ~ c2 c2@2 c2!3 eb2@2 ab1!2 ab2 ab1!2 ab2 ab1 ~ ab1!8, ~@6 g1@15 ~@2 g1@16 g1@9]/6",
  R: "[g1!7 ~ ab1!8, ~@7 g1@9]/2", S: "[g1!7 ~ c2!8 ab1@4 ~@4, ~@7 g1@17]/3", T: "c2/8",
})).s("gm_slap_bass_2").gain(0.41)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@16 A@2 B C D E F G@3 ~@16 H I H I H I J C D E F K ~@32 B C D E F L F L M N O@8 ~
>`.pickRestart({
  A: "[c3,g3]/2", B: "[ab2,eb3,ab3,c4]!3 [ab2,eb3,ab3] [ab2,eb3,ab3,c4]!4",
  C: "[ab2,eb3,ab3,c4]!5 [g2,d3,g3,b3]!2 [c3,g3,c4,eb4]", D: "[c3,g3,c4,eb4] [c3,g3,c4] [c3,g3,c4,eb4] [c3,g3,c4]!5",
  E: "[ab2,eb3,ab3,c4]!4 [ab2,eb3,ab3]!3 [g2,d3,g3]", F: "[ab2,eb3,ab3]!8",
  G: "[[g2,d3,g3,b3] [g2,d3,g3]!2 [g2,d3,g3]@9]/3", H: "[c3,g3]", I: "[ab2,eb3] [g2,d3]", J: "[ab2,eb3,ab3,c4]!8",
  K: "[g2,d3,g3]!7 [c3,g3]", L: "[g2,d3,g3]!8",
  M: "[c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]!2", // C5
  N: "[ab2,eb3,ab3] [g2,d3,g3]", O: "[c3,g3,c4]/8",
})).s("gm_overdriven_guitar").gain(0.64)

// chords · overdriven guitar
const overdriven_guitar_2 = note("<~@55 A B A B A B C D E F G H I J K L@2 ~@7 M B M B M B M ~@19>".pickRestart({
  A: "[ab2,eb3]", B: "[c3,g3]", C: "[ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@3 ~@9", D: "bb4@3 c5@2 eb5@2 bb4",
  E: "c5@3 bb4 g4@2 g4@2", F: "c4@2 bb3 c4@2 f3@3", G: "g3@3 f3 g3@3 f3 g3@2 c3@2 c3@3 bb2", H: "c3 eb3 f3 f3@3 eb3 f3",
  I: "g3@2 bb3 c4@2 eb4@3", J: "f4@3 bb4 c5@2 bb4@2", K: "eb5@7 f5@9", L: "[c5@31 ~]/2", M: "[ab2,eb3] [g2,d3]",
})).s("gm_overdriven_guitar").gain(0.64)

// other · celesta
const celesta = note("<~@70 A B C B C B C B ~@27>".pickRestart({
  A: "~@2 g6 eb6 c6@12", B: "ab5 g5", C: "g6 eb6@2 c6@5",
})).s("gm_celesta").gain(0.64)

// chords · shakuhachi
const shakuhachi = note("<~@70 A@8 ~@27>".pickRestart({
  A: "[~@15 g4, c4, ~@8 ab4@9 eb5@7 ab4@8 ~ eb5@8 ~@7 g5@8 ab4@8, ~@24 g4@31 ~ g4@13 c5@16 ~@3 g4@14 c5@16 ~@10, ~@32 g5@6 c5@16 ~@10 g5@16 ~ ab4@16 ~ eb5@16 ~@14]/8",
})).s("gm_shakuhachi").gain(0.14)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A B A B A B A B A B A B A C D@5 E F@23 G D@6 F@7 H D@8 F@15 G D@9 I A ~@8
>`.pickRestart({
  A: "x", B: "~@7 x", C: "~@2 x!2", D: "x!2 ~ x!3 ~ x", E: "x!2 ~ x!3 ~@2", F: "x!8",
  G: "x ~ x ~ x ~ x ~ x ~ x!3 ~ x ~", H: "x!3 ~@5", I: "x!2 ~@2 x!2 ~@2",
})).gain(0.64)

// drums · rim
const rim = s("rim").struct("<A B A B A B A B A B A B A B A B A B ~@87>".pickRestart({
  A: "~ x!3", B: "x!4",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@18 A@6 ~@23 B A@6 ~@7 C A@8 ~@15 B A@10 ~@9>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "x!3 ~@5",
})).gain(0.64)

// drums · low tom
const low_tom = s("lt").struct("<~@54 [~@6 x ~ x!2 ~ x!5]!7 ~@44>").gain(0.64)

// drums · hihat
const hihat = s("hh").struct("<~@10 [x!16]!51 ~ [x!16]!34 ~@9>").gain(0.64)

// drums · mid tom
const mid_tom = s("mt").struct("<~@54 [~@5 x ~@2]!7 ~@44>").gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<~@17 [~@2 x!2] [x!8]!6 ~@38 [x!8]!8 ~@35>").gain(0.64)

// drums · crash
const crash = s("cr").struct("<~@18 A B A B A B A ~@22 B C@6 ~@8 A ~@3 A ~@3 A ~@14 B C@9 D A ~@8>".pickRestart({
  A: "x", B: "~@3 x", C: "x!8", D: "x!2",
})).gain(0.64)

// drums · ride
const ride = s("rd").struct("<~@17 [~@2 x!2] ~@87>").gain(0.64)

stack(
  tubular_bells, bass, bass_2, overdriven_guitar, overdriven_guitar_2, celesta, shakuhachi, kick, rim, snare, low_tom,
  hihat, mid_tom, open_hat, crash, ride
)

More by Marilyn Manson