Strudelify

The Things You Said

Depeche Mode

KeyC minorTempo115 bpm
0:00/0:00
// The Things You Said — Depeche Mode
// 115 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: track names are the Roland MT-32 patch names at their program numbers ("bass" on 30, "bells" on 38), so with no bank select the whole file is read through the MT-32 patch table: ch 2 "bass" Syn Bass 3 -> synth bass 1; ch 5 "vocal" Square Wave -> lead 1 square; ch 3 "background" Chorale -> choir aahs; ch 4 "bells" Warm Bell -> pad bowed
// note: Full arrangement: all 88 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(115/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// bass · synth bass 1 · "bass"
const bass = note(`<
  A B C D A@2 C D A B E@2 B A E@2 A F A E G H G I G F J F B@2 E F B@2 F E B E B F K L K M K F N E O B P B O A F E B E Q
  E B@2 E F B A E F B F B F G H K M G E N R ~@8
>`.pickRestart({
  A: "c2@2 c2@2 ~@2 c2@2 c3@3 ~ c2@2 c3@2", B: "c2!2 ~ c2 c3@2 c2 c3", C: "ab1@2 ab1@2 ~@2 ab1@2 ab2@3 ~ ab1@2 ab2@2",
  D: "ab1!2 ~ ab1 ab2@2 ab1 ab2", E: "ab2!2 ~ ab2 ab2@2 ab2!2", F: "ab2@2 ab2@2 ~@2 ab2@2 ab2@3 ~ ab2@2 ab2@2",
  G: "c2!2 ~ c2 c3@2 c3!2", H: "[ab2,f3] [ab2,eb3] f3 [ab2,eb3] [ab2,f3]@2 ab2!2, ~@3 c3",
  I: "[ab2,f3]!2 eb3 ab2 ab2@2 ab2!2, ~@6 f3@5 ~ g3@4", J: "c2!2 ~ c3 c2@2 ab2!2",
  K: "c2@2 c2@2 ~@2 c2@2 c3@3 ~ c3@2 c3@2",
  L: "[ab2,f3]@2 [ab2,eb3]@2 f3@2 [ab2,eb3]@2 [ab2,f3]@3 ~ ab2@2 ab2@2, ~@3 c3", // Db Ab5 Db
  M: "[ab2,f3]!2 eb3 ab2 ab2@2 ab2!2, ~@6 f3@5 ~ ab3@4", N: "c2@2 c2@2 ~@2 c3@2 c2@3 ~ ab2@2 ab2@2",
  O: "f2!2 ~ f2 bb2@2 bb2!2", P: "f2@2 f2@2 ~@2 f2@2 bb2@3 ~ bb2@2 bb2@2", Q: "c2@2 c2@2 ~@2 c3@2 c2@3 ~ c3@2 c3@2",
  R: "ab2 ~@7",
})).s("gm_synth_bass_1").gain(0.25)

// bass · synth bass 1 · "bass" · soft notes
const bass_soft = note("<~@79 A B C D E B E D E>".pickRestart({
  A: "~@2 ab2@2 ~@2 ab2@2 ab2@3 ~ ab2@2 ab2@2", B: "c2@2 c2@2 ~@2 c2@2 c3@3 ~ c3@2 c3@2", C: "ab2!2 ~ ab2 ab2@2 ab2!2",
  D: "c2@2 c2@2 ~@2 c3@2 c2@3 ~ ab2@2 ab2@2", E: "ab2@2 ab2@2 ~@2 ab2@2 ab2@3 ~ ab2@2 ab2@2",
})).s("gm_synth_bass_1").gain(0.05)

// other · pad bowed · "bells"
const pad_bowed = note("<~@24 A B A C ~@16 D B D E ~@8 A F D E ~@16 A F G ~@9>".pickRestart({
  A: "eb5!3 c5 f5 g5 ~ g4", B: "eb5@2 eb5@2 eb5@2 d5@2 bb4 ~ c5@4 g4@2", C: "eb5@2 eb5@2 eb5@2 d5@2 bb4 ~ c5@4 ~@2",
  D: "eb5@2 eb5@2 eb5@2 c5@2 f5 ~ g5@2 ~@2 g4@2", E: "eb5!3 d5 bb4 c5@2 ~", F: "eb5!3 d5 bb4 c5@2 g4",
  G: "eb5@2 eb5@2 eb5@2 c5@2 f5 ~@7",
})).s("gm_pad_bowed").gain(0.18)

// other · pad bowed · "bells" · soft notes
const pad_bowed_soft = note("<~@78 A B C D C B C E C B>".pickRestart({
  A: "~@5 g5 ~ g4", B: "eb5@2 eb5@2 eb5@2 d5@2 bb4 ~ c5@4 ~@2", C: "eb5@2 eb5@2 eb5@2 c5@2 f5 ~ g5@2 ~@2 g4@2",
  D: "eb5!3 d5 bb4 c5@2 g4", E: "eb5@2 eb5@2 eb5@2 d5@2 bb4 ~ c5@4 g4@2",
})).s("gm_pad_bowed").gain(0.04)

// drums · kick
const kick = s("bd").struct("<[~ x ~ x]!78 [~ x ~@2] ~@9>").gain(0.35)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@78 [~@3 x] [~ x ~ x]!9>").gain(0.05)

// drums · snare
const snare = s("sd").struct("<~@56 [~ x]!22 ~@10>").gain(0.35)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@78 [~ x]!10>").gain(0.05)

// drums · tambourine
const tambourine = s("tb").struct("<~@24 A@17 B A B A@29 B A B A@3 C ~@8>".pickRestart({
  A: "x!2 ~ x!2 ~ x!2", B: "x!5 ~ x!2", C: "x",
})).gain(0.25)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@79 [~ x ~ x!2 ~ x!2] [x!2 ~ x!2 ~ x!2]!8>").gain(0.05)

stack(bass, bass_soft, pad_bowed, pad_bowed_soft, kick, kick_soft, snare, snare_soft, tambourine, tambourine_soft)

More by Depeche Mode