Strudelify

Fly on the Windscreen (Final)

Depeche Mode

KeyE majorTempo95 bpm
0:00/0:00
// Fly on the Windscreen (Final) — Depeche Mode
// 95 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 3 rock organ (copy of ch 2 synth bass 1); ch 12 pad poly (copy of ch 13 synth strings 2)
// note: Full arrangement: all 131 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(95/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 · synth bass 1
const bass = note(`<
  ~@8 A B@12 C@2 B@16 C@2 D E F G D E F G ~ A B@14 C@2 D E F G D E F G ~@13 A B@2 D E F G D E F G D E F G D E F G D E F
  G D E F G ~@16
>`.pickRestart({
  A: "~@13 e2!3", B: "e2 ~ e2 ~@2 e2 g2@2 e2@2 ~ e2 ~ e2 d3 e3", C: "f#2 ~ f#2 ~@2 f#2 a2@2 f#2@2 ~ f#2 ~ f#2 e3 f#3",
  D: "g2 ~ g2 ~@2 g2 g3@2 g2@2 ~ g2 ~ g2 d3 e3", E: "g#2 ~ g#2 ~@2 g#2 g#3@2 g#2@2 ~ g#2 ~ g#2 d#2 e2",
  F: "c#2 ~ c#2 ~@2 c#2 c#3@2 c#2@2 ~ c#2 ~ c#2 d#2 e2", G: "c2 ~ c2 ~@2 c2 c3@2 c2@2 ~ c2 ~ c3 c#3 d3",
})).s("gm_synth_bass_1").gain(0.54)

// other · bandoneon
const bandoneon = note(`<
  ~@41 A B C D A B C D ~@18 A B C D A B C D ~@16 A B C D A B C D A B C D A B C D A B C D A B C D ~@16
>`.pickRestart({
  A: "b3 a3 g3 a3", B: "g#3 c4 c#4 d#4", C: "e4 c#4 g#3 e3", D: "g4 f#4 e4 c4",
})).s("gm_bandoneon").gain(0.45)

// bass · piano
const bass_2 = note(`<
  ~@21 A B C@2 D@3 ~ E@2 F G H G H G H G A B ~@8 C@2 D@3 ~ E@2 F G H G H G H G A B ~@8 I@3 ~@7 J K@3 G L ~@24 M@12 I@3 ~
>`.pickRestart({
  A: "f#2", B: "~ e3, c#3@5 ~@3", C: "[[e1,e2]@3 ~]/2", D: "[[e1,e2]@5 ~]/3", E: "[[e1,e2]@31 ~]/2", F: "~@7 f#2",
  G: "b2", H: "e2@7 f#2", I: "[e1,e2]/3", J: "~@7 [f#1,f#2]", K: "[[b1,b2]@23 ~]/3", L: "c#3 a2",
  M: "[~ [f#1,f#2], [e1,e2]@3 ~]/4", // F# E
})).s("gm_piano").gain(0.72)

// other · synth strings 2
const synth_strings_2 = note("<~@67 A@3 B A@3 B ~@16 A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B ~@16>".pickRestart({
  A: "[~@6 e4!2 g4!2 e4 b4@11 e4!2 g#4!2 e4 d#5@4 c#5@17]/3", B: "f#5@3 ~ f#5@12",
})).s("gm_synth_strings_2").gain(0.36)

// other · synth strings 2 · soft notes
const synth_strings_2_soft = note("<~@68 A ~@3 A ~@19 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@18>".pickRestart({
  A: "~@15 d#5",
})).s("gm_synth_strings_2").gain(0.2)

// other · synth brass 2
const synth_brass_2 = note("<~@67 A@3 B A@3 B ~@16 A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B ~@16>".pickRestart({
  A: "[~@6 e4!2 g4!2 e4 b4@11 e4!2 g#4!2 e4 d#5@4 c#5@17]/3", B: "f#5@3 ~ f#5@12",
})).s("gm_synth_brass_2").gain(0.36)

// other · synth brass 2 · soft notes
const synth_brass_2_soft = note("<~@68 A ~@3 A ~@19 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@18>".pickRestart({
  A: "~@15 d#5",
})).s("gm_synth_brass_2").gain(0.2)

// other · pad metallic
const pad_metallic = note(`<
  ~@21 A B C@2 D@3 ~ E@2 F G H G H G H G A B ~@8 C@2 D@3 ~ E@2 F G H G H G H G A B ~@8 I@8 ~@2 J K@3 G L ~@40
>`.pickRestart({
  A: "f#2", B: "~ e3, c#3@5 ~@3", C: "[[e1,e2]@3 ~]/2", D: "[[e1,e2]@5 ~]/3", E: "[[e1,e2]@31 ~]/2", F: "~@7 f#2",
  G: "b2", H: "e2@7 f#2", I: "[e2,e3]/8", J: "~@7 [f#1,f#2]", K: "[[b1,b2]@23 ~]/3", L: "c#3 a2",
})).s("gm_pad_metallic").gain(0.32)

// drums · kick
const kick = s("bd").struct(`<
  ~@9 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 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 A B A B A B A B A B A B A B A B
  A B A B ~@2
>`.pickRestart({
  A: "x!2 ~@6 x ~@7", B: "x!4 ~@4 x ~@7",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct("<~@9 [~ x ~ x]!120 ~@2>").gain(0.72)

// drums · hihat
const hihat = s("hh").struct("<~@9 [x!8]!120 ~@2>").gain(0.72)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<[x ~ x ~ x!6 ~@6]!9 ~@16 [x ~ x ~ x!6 ~@6]!6 ~@20 [x ~ x ~ x!6 ~@6]!6 ~@74>")
  .gain(3.65)

// drums · shaker
const shaker = s("sh").struct("<[x!11 ~@5]!9 ~@16 [x ~ x ~ x!6 ~@6]!6 ~@20 [x ~ x ~ x!6 ~@6]!6 ~@74>").gain(0.72)

stack(
  bass, bandoneon, bass_2, synth_strings_2, synth_strings_2_soft, synth_brass_2, synth_brass_2_soft, pad_metallic, kick,
  snare, hihat, cabasa, shaker
)

More by Depeche Mode