Strudelify
Dreaming of Me cover art

Speak and Spell

Dreaming of Me

Depeche Mode

KeyD majorTempo130 bpm
0:00/0:00
// Dreaming of Me — Depeche Mode
// 130 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 5 "Bass 2" named as a bass, played on electric bass finger (its pad poly patch is not one)
// note: Full arrangement: all 122 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · whistle · "Intro"
const whistle = note("<~@2 [g4@3 c#5@5]!4 ~@116>").s("gm_whistle").gain(0.14)

// other · banjo · "Lead Echo"
const banjo = note(`<
  ~@6 A B C@2 D B C@2 ~@15 A B C@2 D B C@2 ~@15 A B C@2 D B C E ~@10 A B C@2 D B C@2 ~@15 A B C@2 D B C@2 D B C@2 D B
  C@2 D B C@2 F G H ~@6
>`.pickRestart({
  A: "a4!4 b4!2 c#5!2 b4!3 a4 b4!2 c#5!2", B: "~@2 a4!2 b4!2 c#5!2 b4!3 a4 b4!2 a4!2",
  C: "~@2 a4!2 b4!2 a4!2 b4!3 a4 b4!2 a4!2", D: "~@2 a4!2 b4!2 c#5!2 b4!3 a4 b4!2 c#5!2",
  E: "~@2 a4!2 b4!2 a4!2 b4!3 a4 b4!2 ~@2", F: "~@2 a4!2 b4!2 c#5!2 b4!2 a4!2 b4!2 c#5!2",
  G: "~@2 a4!2 b4!2 c#5!2 b4!2 a4!2 b4!2 a4!2", H: "~@2 a4!2 b4!2 a4!2 b4!2 a4!2 b4!2 a4!2",
})).s("gm_banjo").gain(0.1)

// other · banjo · "Lead Echo" · soft notes
const banjo_soft = note(`<
  ~@116
  [~@2 a4!2 b4!2 a4!2 b4!2 a4!2 b4!2 a4!2]
  [~@2 a4!2 b4!2 c#5!2 b4!2 a4!2 b4!2 c#5!2]
  [~@2 a4!2 b4!2 c#5!2 b4!2 a4!2 b4!2 a4!2]
  [~@2 a4!2 b4!2 a4!2 b4!2 a4!2 b4!2 a4!2]!2
  [~@2 a4!2 b4!2 c#5!2 b4!2 a4!2 b4!2 c#5!2]
>`).s("gm_banjo").gain(0.03)

// bass · synth bass 1 · "Bass 1"
const bass = note(`<
  ~@6 A@2 B C A@2 B C A@2 B C A@2 B C D E D E D F@2 A@2 B C A@2 B C A@2 B C A@2 B C D E D E D F@2 A@2 B C A@2 B C G@8 H
  I A@2 B C A@2 B C A@2 B C A@2 B C D E D E D F@2 A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B J ~@5
>`.pickRestart({
  A: "a1!2 c#2!2 e2!2 c#2 e2", B: "g1!2 b1!2 d2!2 b1 d2", C: "d1!2 f#1!2 a1!2 f#1 a1", D: "b1!2 d2!2 f#2!2 d2 f#2",
  E: "a1!2 c#2!2 e2!2 c#2 a1", F: "d1!2 f#1!2 a1!2 f#1!2", G: "c2@2 c2!2 e2@2 e2@2 g2@2 g2@2 e2@2 g2@2", H: "a1!4 b1!4",
  I: "c2!4 d2!4", J: "d1 ~@7",
})).s("gm_synth_bass_1").gain(0.14).pan(1)

// bass · synth bass 1 · "Bass 1" · soft notes
const bass_soft = note(`<
  ~@116
  [~ d1 f#1!2 a1!2 f#1 a1]
  [a1!2 c#2!2 e2!2 c#2 e2]!2
  [g1!2 b1!2 d2!2 b1 d2]
  [d1!2 f#1!2 a1!2 f#1 a1]
  [a1!2 c#2!2 e2!2 c#2 e2]
>`).s("gm_synth_bass_1").gain(0.04).pan(1)

// bass · electric bass finger · "Bass 2"
const bass_2 = note(`<
  ~@6 A@2 B C A@2 B C A@2 B C A@2 B C D A D A D E@2 A@2 B C A@2 B C A@2 B C A@2 B C D A D A D E@2 A@2 B C A@2 B C F@8 G
  H A@2 B C A@2 B C A@2 B C A@2 B C D A D A D E@2 A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B I ~@5
>`.pickRestart({
  A: "a1 a2 a1 a2 a1 a2 a1 a2", B: "g1 g2 g1 g2 g1 g2 g1 g2", C: "d1 d2 d1 d2 d1 d2 d1 d2",
  D: "b1 b2 b1 b2 b1 b2 b1 b2", E: "d2 d3 d2 d3 d2 d3 d2 d3", F: "c2@2 c3!2 c2@2 c3@2 c2@2 c3@2 c2@2 c3@2",
  G: "a1@2 a2!2 a1@2 a2@2 a1@2 a2!2 a1@2 a2@2", H: "c2@2 c3!2 c2@2 c3@2 c2@2 c3!2 c2@2 c3@2", I: "d1 ~@7",
})).s("gm_electric_bass_finger").gain(0.42).pan(0)

// bass · electric bass finger · "Bass 2" · soft notes
const bass_soft_2 = note(`<
  ~@116
  [~ d2 d1 d2 d1 d2 d1 d2]
  [a1 a2 a1 a2 a1 a2 a1 a2]!2
  [g1 g2 g1 g2 g1 g2 g1 g2]
  [d1 d2 d1 d2 d1 d2 d1 d2]
  [a1 a2 a1 a2 a1 a2 a1 a2]
>`).s("gm_electric_bass_finger").gain(0.13).pan(0)

// other · string ensemble 1 · "Harmony 1"
const string_ensemble_1 = note(`<
  ~@14 A B C D A B C D E F E F E G@2 ~@8 A B C D A B C D E F E F E G@2 ~@26 A B C D A B C D E F E F E G@2 ~@29
>`.pickRestart({
  A: "a4@3 e5@3 d5@2", B: "c#5@3 d5@3 c#5@2", C: "g4@3 d5@3 g4@2", D: "d4@6 a4@9 ~", E: "b4@3 c#5",
  F: "a4@3 b4@3 c#5@2", G: "a4/2",
})).s("gm_string_ensemble_1").gain(0.24)

// other · piano · "Harmony 2"
const piano = note("<~@78 A@2 B C A@2 B C A@7 ~@8 A@2 B C A@2 B C A@2 B C A@2 B D ~@5>".pickRestart({
  A: "e6 d6 c#6 a5 ~ a5 ~ a5", B: "d6 c#6 b5 g5 ~ g5 ~ g5", C: "a5 g5 f#5 d5 ~ d5 ~ d5", D: "a5 ~@7",
})).s("gm_piano").gain(0.42)

// other · piano · "Harmony 2" · soft notes
const piano_soft = note(`<
  ~@116
  [~ g5 f#5 d5 ~ d5 ~ d5]
  [e6 d6 c#6 a5 ~ a5 ~ a5]!2
  [d6 c#6 b5 g5 ~ g5 ~ g5]
  [a5 g5 f#5 d5 ~ d5 ~ d5]
  [e6 d6 c#6 a5 ~ a5 ~ a5]
>`).s("gm_piano").gain(0.13)

// other · pad choir · "Bridge 1"
const pad_choir = note("<~@60 A B C D A B E F G H ~@52>".pickRestart({
  A: "c4@3 c5@3 d4@2", B: "a4@2 d4 g4@2 f4 e4 d4", C: "c4@3 d4@3 e4@2", D: "g4 f4 e4 d4", E: "c4 d4 e4 f4",
  F: "g4 f4 e4 c4", G: "[a2,a3] [b2,b3]", H: "[c3,c4] [d3,d4]",
})).s("gm_pad_choir").gain(0.27)

// other · ocarina · "Bridge 2"
const ocarina = note("<~@70 A B C D A B E D ~@44>".pickRestart({
  A: "a4@3 b4@5", B: "c#5@3 a4@5", C: "e5@3 d5@5", D: "c#5 d5 c#5 a4@2 b4@3", E: "a5@3 e5@3 d5@2",
})).s("gm_ocarina").gain(0.27)

// drums · kick
const kick = s("bd").struct("<[x ~@2 x ~@4]!6 [x!2 ~ x!2 ~@3]!7 [x!2 ~ x ~@4] [x!2 ~ x!2 ~@3]!108>").gain(0.8)

// drums · snare
const snare = s("sd").struct(`<
  [~ x ~ x]!13
  [~@4 x ~@3 x!3 ~ x ~ x!2]
  [~ x ~ x]!22
  [~@4 x ~@3 x ~@2 x ~@2 x ~]
  [~ x ~ x]!40
  [~@4 x ~@3 x ~@2 x ~@2 x ~]
  [~ x ~ x]!44
>`).gain(0.8)

// drums · clap
const clap = s("cp").struct("<~@60 [~@6 x!2] [~@2 x ~@3 x!2]!17 ~@44>").gain(0.72)

// drums · hihat
const hihat = s("hh").struct("<~@6 [x!8]!110 x ~@5>").gain(0.48)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@116 [~ x!7] [x!8]!5>").gain(0.16)

// drums · open hat
const open_hat = s("oh").struct("<~@5 [~@3 x] ~@53 [~@3 x] ~@62>").gain(0.24)

stack(
  whistle, banjo, banjo_soft, bass, bass_soft, bass_2, bass_soft_2, string_ensemble_1, piano, piano_soft, pad_choir,
  ocarina, kick, snare, clap, hihat, hihat_soft, open_hat
)

More by Depeche Mode