Strudelify

Death by Glamour

Toby Fox

KeyG majorTempo150 bpm
0:00/0:00
// Death by Glamour — Toby Fox
// 150 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 1 "Flute" named as a pipe, played on flute (its piano patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/1924196; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 82 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(150/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 · flute
const flute = note("<~@4 A B A B C D C D C D C D C D C D C D C D ~@58>".pickRestart({
  A: "e1 ~@2 b1 ~@2 e1@2 g1@2 d2@2 g1@2 a1 ~", B: "~@2 a1@2 b1@2 g1@2 a1@2 e2 ~@3 g1@2",
  C: "[e1,e2] ~@2 [b1,b2] ~@2 [e1,e2]@2 [g1,g2]@2 [d2,d3]@2 [g1,g2]@2 [a1,a2] ~", // E B E G D G A
  D: "~@2 [a1,a2]@2 [a1,a2]@2 [e2,e3]@2 [a1,a2]@2 [e2,e3] [b1,b2]@3 [d2,d3]@2", // A E A E B D
})).s("gm_flute").gain(0.72)

// other · flute · soft notes
const flute_soft = note("<~@24 [~@4 d6@3 ~@5 d6@3 ~]!15 ~@43>").s("gm_flute").gain(0.16)

// other · brass section · "Square Synthesizer"
const brass_section = note("<~@16 A B A B A B A B C D E F C D E G C D E F C D H I ~@15 J ~@26>".pickRestart({
  A: "~@2 [e4,e5] ~ [b4,b5] ~ [g4,g5] ~ [a4,a5] ~ [e4,e5] [d4,d5]@2 [e4,e5] [b3,b4] ~", // E B G A E D E B
  B: "~@2 [b3,b4] ~ [e4,e5] ~ [g4,g5] ~ [a4,a5] ~ [e4,e5] [d4,d5]@3 [e4,e5] ~", // B E G A E D E
  C: "e3 ~ g3 ~ b2 ~@2 d3 ~ d3 e3!2 a3 ~ g3 ~", D: "e3 ~ g3 ~ a3 b3 ~ g3 ~ g3 e3 ~ d3 ~ d#3 ~", E: "e3!2 g3 a3 ~@11 d4",
  F: "[d#4,e4] ~@2 e4 ~@2 b3 ~ g3 ~ g3 ~ e3 ~@3", G: "[d#4,e4] ~@2 e4 b3 ~ b3 ~ g3 ~ g3 ~ e3 ~@3",
  H: "e3!2 g3 a3 ~@4 e3!2 g3 a3 ~@4", I: "e3!2 g3 a3 [e3,e4]!4 [e3,e4]@2 ~@6", J: "d6 ~@2 d6 ~@2 d6 ~ d6@2 ~@2 a5@4",
})).s("gm_brass_section").gain(0.25)

// other · brass section · "Square Synthesizer" · soft notes
const brass_section_soft = note("<~@24 A B A B A B A B A B C D A B A E ~@42>".pickRestart({
  A: "~@2 [e4,e5] ~ [b4,b5] ~ [g4,g5] ~ [a4,a5] ~ [e4,e5] [d4,d5]@2 [e4,e5] [b3,b4] ~", // E B G A E D E B
  B: "~@2 [b3,b4] ~ [e4,e5] ~ [g4,g5] ~ [a4,a5] ~ [e4,e5] [d4,d5]@3 [e4,e5] ~", // B E G A E D E
  C: "~@2 [e4,e5] ~ [b4,b5] ~ [g4,g5] ~ [a4,a5] ~ [e4,e5] [d4,d5]@2 [e4,e5] [b3,b4] d5", // E B G A E D E B
  D: "d#5 ~ [b3,b4] ~ [e4,e5] ~ [g4,g5] ~ [a4,a5] ~ [e4,e5] [d4,d5]@3 [e4,e5] ~", E: "~@2 [b3,b4] ~@13",
})).s("gm_brass_section").gain(0.15)

// other · orchestra hit
const orchestra_hit = note("<~@39 A B C D E B C D F B C D E B C D G H ~@15 I J I J I J I J I K>".pickRestart({
  A: "~@12 e4 f#4 g4 b4", B: "c5@5 g4 e4 c4 e4@6 c4@2", C: "d#4 b3 b4 a#4", D: "a4@6 f#4 ~ d#4@6 b4 ~",
  E: "e5 d#5 e5 ~ f#5 e5 f#5 ~ g5@4 e4 f#4 g4 b4", F: "g5@2 a5 g5 f#5@2 d5 ~ e5@4 e4 f#4 g4 b4",
  G: "~@4 d5@3 d5@3 d5@2 d5@4", H: "d#5 ~@3", I: "e4@2 ~@2 g4@2 ~@2 d5@2 ~ c#5@3 e4@2",
  J: "~@2 e4@2 g4@2 ~@2 d5 ~@2 c#5@4 ~", K: "~ e4 g4 ~@5",
})).s("gm_orchestra_hit").gain(0.45)

// bass · electric bass pick
const bass = note(`<
  ~@24 A B A B A B A B A B A B A B A C D E F G D E F G D E F G D E F H I J K L I M N O I J K L I M N O ~@4 P ~ Q@2 ~@2
>`.pickRestart({
  A: "e1 ~@2 b1 ~@2 e1@2 g1@2 d2@2 g1@2 a1 ~", B: "~@2 a1@2 b1@2 g1@2 a1@2 e2 ~@3 g1@2", C: "~ a1!2 e2 a1 ~@3",
  D: "~ c2 ~ c2 ~ c2 c1 c2", E: "~ b1 ~ b1 ~ b0 f#1@2", F: "~ a1 ~ a1 ~@2 b0@2, ~@5 b1@3", G: "~ e2 ~ f#2 ~ g2 ~ a2",
  H: "g1@2 g1 g#1", I: "c#2 c#3 c#2 c#3 c#2 c#3 c#2 c#3",
  J: "c#2 c#3 c#2 c#3 [g1,c#5,c#6]@2 c#2 c#3, ~ [f#4,f#5] ~ [b4,b5]", K: "b1 b2 b1 b2 b1 b2 b1 b2, [a#4,a#5] ~",
  L: "c2 c3 c2 c3 f#1@2 c2 c3, [f#4,f#5] ~", M: "d#2 d#3 d#2 d#3 a1@2 d#2 d#3, [a#4,a#5] ~@3",
  N: "g#1 g#2 g#1 g#2 g#1 g#2 g#1 g#2, [b4,b5] ~@3", O: "b1 b2 b1 b2 b1 b2 b1 b2", P: "~@4 f#5@4 f#5@3 f#5@3 f#5@2",
  Q: "[~@4 f#5@4 f#5@3 f#5@3 f#5@10 ~@8]/2",
})).s("gm_electric_bass_pick").gain(0.48)

// other · lead 2 sawtooth · "Square Synthesizer"
const lead_2_sawtooth = note("<~@16 A B C D C D C E ~@31 F G ~@25>".pickRestart({
  A: "~@7 e5 ~ b5 ~ g5 ~ a5 ~ e5", B: "d5@2 e5 b4 ~@3 b4 ~ e5 ~ g5 ~ a5 ~ e5", C: "d5@3 e5 ~@3 e5 ~ b5 ~ g5 ~ a5 ~ e5",
  D: "d5 ~ e5 b4 ~@3 b4 ~ e5 ~ g5 ~ a5 ~ e5", E: "d5 ~ e5 b4 ~@3 b4 ~ e5 ~ g5 ~@4", F: "~@4 g3@3 g3@3 g3@2 g3@4",
  G: "g#3 ~@3",
})).s("gm_lead_2_sawtooth").gain(0.17)

// other · trumpet
const trumpet = note("<~@32 A B C D A B E F ~@42>".pickRestart({
  A: "[e4,e5] ~ [g4,g5] ~ [b3,b4] ~@2 [d4,d5] ~ [d4,d5] [e4,e5]!2 [a4,a5] ~ [g4,g5] ~", // E G B D E A G
  B: "[e4,e5] ~ [g4,g5] ~ [a4,a5] [b4,b5] ~ [g4,g5] ~ [g4,g5] [e4,e5] ~ [d4,d5] ~ [d#4,d#5] ~", // E G A B G E D D#
  C: "[e4,e5]!2 [g4,g5] [a4,a5] ~@11 [d5,d6]", // E G A D
  D: "[d#5,e5,d#6,e6] ~@2 [e5,e6] ~@2 [b4,b5] ~ [g4,g5] ~ [g4,g5] ~ [e4,e5] ~@3", // Emaj7 E B G E
  E: "[e4,e5]!2 [g4,g5] [a4,a5] ~@4 [e4,e5]!2 [g4,g5] [a4,a5] ~@4", F: "[e4,e5]!2 [g4,g5] [a4,a5] ~@2 g4 a4 e4@2 ~@6",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · soft notes · E
const trumpet_soft = note("<~@39 [~@4 [e4,e5]!2 e5!2 e5@2 ~@6] ~@42>").s("gm_trumpet").gain(0.2)

// other · brass section
const brass_section_2 = note("<~@55 A B C D E F C D G B C D E F C D H ~@10>".pickRestart({
  A: "d5 ~@2 d5 ~@2 d5 ~ d5@2 ~@2 d#5@4", B: "f#5@4 e5 ~ d#5 e5@5 d#5@2 c#5 ~",
  C: "c#5@2 d#5@2 c#5 ~ b4 f#4@5 d#4@2 e4@2", D: "f#4 ~@2 f#4 ~@2 g#4@2 f#4@4 c#5@2 a#4@2",
  E: "c5 ~@2 c5 ~@2 c#5@2 d#5@4 c#5@2 d#5 ~", F: "~@2 f#5@2 e5 ~ d#5 e5@5 d#5@2 c#5 ~",
  G: "b4 ~@2 b4 ~@2 c#5@2 d#5@4 c#5@2 b4@2", H: "b4 ~@2 b4 ~@2 c#5@2 d#5@4 c#5@2 b4 ~",
})).s("gm_brass_section").gain(0.5)

// other · string ensemble 1 · "String Synthesizer"
const string_ensemble_1 = note(`<
  ~@8 A@2 B@2 C@2 D@2 ~@8 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2 F G H I F G H J F G H I F G H K@3 L@2 M N O@2 P@2 L@2 M N O@2
  Q R Q R ~@6
>`.pickRestart({
  A: "[[f#4,f#5]@6 [g4,g5] [a4,a5]]/2", B: "[[f#4,f#5]@6 [d4,d5] [f#4,f#5]]/2",
  C: "[[e4,e5]@28 [f4,f5] [f#4,f#5] [g4,g5] [g#4,g#5]]/2", D: "[a4,a5]/2",
  E: "[[a4,a5]@20 ~@8 [e3,e4] [f#3,f#4] [g3,g4] [b3,b4]]/2", F: "[c4,c5]@5 [g3,g4] [e3,e4] [c3,c4] [e3,e4]@6 [c3,c4]@2",
  G: "[d#3,d#4] [b2,b3] [b3,b4] [a#3,a#4]", H: "[a3,a4]@6 [f#3,f#4] ~ [d#3,d#4]@6 [b3,b4] ~",
  I: "[e4,e5] [d#4,d#5] [e4,e5] ~ [f#4,f#5] [e4,e5] [f#4,f#5] ~ [g4,g5]@4 [e3,e4] [f#3,f#4] [g3,g4] [b3,b4]", // E D# E F# E F# G E …
  J: "[g4,g5]@2 [a4,a5] [g4,g5] [f#4,f#5]@2 [d4,d5] ~ [e4,e5]@4 [e3,e4] [f#3,f#4] [g3,g4] [b3,b4]", // G A G F# D E F# G …
  K: "[[g3,b4] ~@2 [g3,b4] ~@2 [g3,b4] ~ [g3,b4]@2 ~@2 c5@4 c#5@32, ~@3 g#3@2 ~@7]/3", L: "d#5/2", M: "c#5", N: "a#4",
  O: "b4/2", P: "c#5/2", Q: "e3@2 ~@2 g3@2 ~@2 d4@2 ~ c#4@3 e3@2", R: "~@2 e3@2 g3@2 ~@2 d4 ~@2 c#4@4 ~",
})).s("gm_string_ensemble_1").gain(0.31)

// other · lead 2 sawtooth · D Asus2 D F# D Asus2 D G …
const lead_2_sawtooth_2 = note(`<
  ~@76
  [[d3,d4] [a3,b3,a4,b4] [d4,f#4,d5,f#5] [f#4,f#5]!13]
  [[d4,d5] [a3,b3,a4,b4] [d3,d4] ~@13]
  [~@2 [g3,g4] [a3,a4] [b3,b4] [g3,g4] [a3,a4] [b3,b4] [d4,d5] [a3,a4] [b3,b4] [d4,d5] [e4,e5] [b3,b4] [d4,d5] [e4,e5]]
  [[b3,b4] [e3,e4] [g3,g4] [a3,a4] [b3,b4] [g3,g4] [a3,a4] [b3,b4] [g4,g5] [e4,e5] [d4,d5] [b3,b4] [a3,a4] [b3,b4] [a3,a4] [g3,g4]]
  [[a4,a5] [g4,g5] [f#4,f#5] [e4,e5] [d4,d5] [b3,b4] [a3,a4] [g3,g4] [e3,e4] [d3,d4] [b2,b3] [d3,d4] [e3,e4] [g3,g4] [a3,a4] [b3,b4]]
  [[e4,e5]!2 ~ [e4,e5] [b3,b4] ~ [b3,b4] ~ [g3,g4] ~ [g3,g4] ~ [e3,e4]@3 ~]
>`).s("gm_lead_2_sawtooth").gain(0.5)

// chords · piano
const piano = note(`<
  A B A B A B A B C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C E ~@42
>`.pickRestart({
  A: "e2@2 ~@2 g2@2 ~@2 d3@2 ~ c#3@3 e2@2", B: "~@2 e2@2 g2@2 ~@2 d3@2 ~ c#3@5",
  C: "[e2,e4,g4,b4]@2 ~@2 [g2,g4,a4,c#5]@2 ~@2 [f#4,b4,d5] ~@2 [e4,a4,c#5] ~@2 [e4,g4,b4] ~, ~@8 d3@2 ~ c#3@3 e2@2", // Em A7 Bm A Em
  D: "~@2 [e4,g4,b4] ~ [g2,g4,a4,c#5]@2 ~@2 [f#4,b4,d5] ~@2 [e4,a4,c#5] ~@4, ~@2 e2@2 ~@4 d3@2 ~ c#3@5", // Em A7 Bm A
  E: "~@2 [e4,g4,b4] ~ [g2,g4,a4,c#5]@2 ~@2 [e4,a4,c#5] ~@7, ~ e2 ~@6", // Em A7 A
})).s("gm_piano").gain(0.6)

// other · orchestra hit
const orchestra_hit_2 = note("<~@40 A B C D A B C E A B C D A B C ~@27>".pickRestart({
  A: "[c4,c5,c6] ~@3", B: "[b3,b4,b5] ~@3", C: "[a3,a4,a5] ~ [b3,b4,b5] ~",
  D: "[e4,e5,e6] [d#4,d#5,d#6] [d4,d5,d6] [b3,b4,b5]", E: "[e4,e5,e6] [b3,b4,b5] [e4,e5,e6] [b3,b4,b5]",
})).s("gm_orchestra_hit").gain(0.45)

// chords · steel drums
const steel_drums = note("<~@56 A@2 B C A D E@2 A@2 B C A D E ~ F G F G F G F G F H>".pickRestart({
  A: "[b3,c#4]@3 [b3,c#4]@3 [b3,c#4]@4 [b3,c#4]@2 [b3,c#4]@2 ~@2", // Bsus2
  B: "[f#3,a#3]@3 [f#3,a#3]@3 [f#3,a#3]@4 [f#3,a#3]@2 [f#3,a#3]@2 ~@2", // F#
  C: "[g#3,c4]@3 [g#3,c4]@3 [g#3,c4]@4 [g#3,c4]@2 [g#3,c4]@2 ~@2", // G#
  D: "[b3,d#4]@3 [b3,d#4]@3 [b3,d#4]@4 [b3,d#4]@2 [b3,d#4]@2 ~@2", // B
  E: "[f#3,b3]@3 [f#3,b3]@3 [f#3,b3]@4 [f#3,b3]@2 [f#3,b3]@2 ~@2", // B5
  F: "[g4,b4]@4 [a4,c#5]@4 [d4,b4,d5]@3 [c#4,a4,c#5]@3 [e3,g4,b4]@2, e3 ~ g3 ~@5", // G A G F#m Em
  G: "~@2 [e3,g4,b4]@2 [a4,c#5]@4 [b4,d5]@3 [c#4,a4,c#5]@4 ~, ~@4 g3@2 ~@2 d4 ~@7", // Em A Bm F#m
  H: "~ [e3,g4,b4] [a4,c#5]@2 ~@4, ~@2 g3 ~@5", // Em A
})).s("gm_steel_drums").gain(0.3)

// drums · kick
const kick = s("bd").struct("<A@11 B A@3 C A@7 C A@15 D A@15 ~ E@15 ~ A@8 ~@2>".pickRestart({
  A: "x!4", B: "x ~@3 x ~@3 x ~@3 x!4", C: "x ~@3 x ~@3 x ~@3 x ~ x!2", D: "x ~@3 x!5 ~@7", E: "x ~@6 x ~ x ~@6",
})).gain(0.25)

// drums · rim
const rim = s("rim").struct("<~@11 A B@27 C ~@16 D E D E D E D E D E D E D E D ~ F@8 ~@2>".pickRestart({
  A: "~@12 x!4", B: "x!2 ~@6 x!2 ~@6", C: "x!2 ~@14", D: "~@2 x!2 ~@2 x ~@3 x!2 ~@2 x ~",
  E: "~@2 x!2 ~@2 x ~@3 x!2 ~@4", F: "x ~ x!3 ~ x!3 ~ x!6",
})).gain(0.25)

// drums · clap
const clap = s("cp").struct("<~@15 [~@14 x!2] ~@7 [~@14 x!2] ~@15 [~@6 x!2 ~@8] ~@42>").gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@15 A B@7 C B@15 D E@15 ~ F G F G F G F G F G F G F G F ~@11>".pickRestart({
  A: "~@12 x!3 ~", B: "~ x ~ x", C: "~@4 x ~@7 x!3 ~", D: "~@4 x!3 ~@9", E: "~ x ~@2",
  F: "~@2 x!2 ~@2 x ~@3 x!2 ~@2 x ~", G: "~@2 x!2 ~@2 x ~@3 x!2 ~@4",
})).gain(0.25)

// drums · mid tom
const mid_tom = s("mt").struct("<~@15 [~@14 x!2] ~@7 [~@14 x!2] ~@58>").gain(0.25)

// drums · open hat
const open_hat = s("oh").struct("<~@56 [~ x ~ x]!15 ~@11>").gain(0.25)

// drums · high tom
const high_tom = s("ht").struct("<~@15 [~@14 x!2] ~@7 [~@14 x!2] ~@58>").gain(0.25)

// drums · ride
const ride = s("rd").struct("<~@72 [~ x ~ x]!8 ~@2>").gain(0.25)

// drums · tambourine
const tambourine = s("tb").struct("<~@40 [~@4 x ~@7 x!3 ~]!15 ~@27>").gain(0.25)

// drums · splash
const splash = s("cr").struct("<~@12 A@3 B A@7 B A@15 C D@15 ~ E@15 ~ F ~@9>".pickRestart({
  A: "~@2 x ~@3 x!2 ~@2 x ~@3 x!2", B: "~@2 x ~@3 x!2 ~@2 x ~@5", C: "~@2 x ~@3 x!2 ~@8",
  D: "x ~ x ~@3 x!2 ~ x!2 ~@3 x ~", E: "~ x ~ x", F: "x",
})).gain(0.25)

// drums · cowbell
const cowbell = s("cb").struct("<[x!4]!11 [x!3 ~] [~ x ~ x]!27 [~ x ~@2]!16 ~@27>").gain(0.25)

// drums · congas
const congas = s("conga:18").struct("<~@15 [~@14 x!2] ~@7 [~@14 x!2] ~@58>").gain(0.79)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@72 [x ~ x!3 ~ x!3 ~ x!6]!8 ~@2>").gain(1.51)

stack(
  flute, flute_soft, brass_section, brass_section_soft, orchestra_hit, bass, lead_2_sawtooth, trumpet, trumpet_soft,
  brass_section_2, string_ensemble_1, lead_2_sawtooth_2, piano, orchestra_hit_2, steel_drums, kick, rim, clap, snare,
  mid_tom, open_hat, high_tom, ride, tambourine, splash, cowbell, congas, cabasa
)

More by Toby Fox