Strudelify
New Life (remix) cover art

Speak and Spell

New Life (remix)

Depeche Mode

KeyD majorTempo159 bpm
0:00/0:00
// New Life (remix) — Depeche Mode
// 159 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 159 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(159/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 · synth brass 1 · "Intro"
const synth_brass_1 = note(`<
  ~@8 A B C@3 B C@3 B C@3 B D@3 ~@6 E F G F H F G F I ~@15 E F G F H F G F I ~@39 E F G F H F G F I ~@47
>`.pickRestart({
  A: "~ d4 c5 d4", B: "b4 a4@2 d4", C: "[c5 d4 b4 a4@6 d4 c5 d4]/3", D: "[c5 d4 b4 a4@6 ~@3]/3", E: "~@14 a4 b4",
  F: "c5 ~@3 b4 ~@3", G: "f#4@2 g4@2 a4@2 d5@2 ~@6 a4 b4", H: "f#4@2 g4@2 a4@2 d4@2 ~@6 a4 b4", I: "f#4 g4 a4 d4 ~@4",
})).s("gm_synth_brass_1").gain(0.13)

// bass · lead 8 bass lead · "Fill 1"
const bass = note(`<
  ~@23 A B A B A B A B ~@18 A B A B A B ~@18 A B A B A B ~@16 A B A B A B A B ~@18 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 ~@11
>`.pickRestart({
  A: "~@5 d2!3", B: "d2 ~@7",
})).s("gm_lead_8_bass_lead").gain(0.17)

// bass · lead 8 bass lead · "Fill 1" · soft notes
const bass_soft = note("<~@148 A B A B A B A B A B A>".pickRestart({
  A: "d2 ~@7", B: "~@5 d2!3",
})).s("gm_lead_8_bass_lead").gain(0.05)

// bass · fretless bass · "Bass"
const bass_2 = note(`<
  ~@24 A B A B C B C B C B C B C B C B D E F@2 D E F@2 A B A B C B C B C B C B C B C B D E F@2 D E F@2 A B A B C B C B
  ~@16 A B A B C B C B C B C B C B C B D E F@2 D E F@2 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 ~@11
>`.pickRestart({
  A: "d3 ~ d3 ~@3 d3 ~ d3 ~ d3 ~@3 d3 ~", B: "d3 ~ d3 ~@3 d3 ~ d3 ~ d3 ~ d3 ~ d3 ~",
  C: "c3 ~ c3 ~@3 c3 ~ g2 ~ g2 ~@3 g2 ~", D: "a2 ~ a2 ~ c3 ~ a2 ~ e3 ~ a2 ~ c3 ~ a2 ~",
  E: "c3 ~ c3 ~ e3 ~ c3 ~ g3 ~ c3 ~ e3 ~ g2 ~", F: "g2 ~ g2 ~ b2 ~ g2 ~ d3 ~ g2 ~ b2 ~ g2 ~",
})).s("gm_fretless_bass").gain(0.24)

// bass · fretless bass · "Bass" · soft notes
const bass_soft_2 = note("<~@148 A B A B A B A B A B C>".pickRestart({
  A: "d3 ~ d3 ~@3 d3 ~ d3 ~ d3 ~@3 d3 ~", B: "d3 ~ d3 ~@3 d3 ~ d3 ~ d3 ~ d3 ~ d3 ~", C: "d3 ~ d3 ~@13",
})).s("gm_fretless_bass").gain(0.07)

// bass · synth bass 1 · "Harmony 1"
const bass_3 = note(`<
  ~@24 A B A B C B C B D E D E D E D E F G H@2 F G H@2 A B A B C B C B D E D E D E D E F G H@2 F G H@2 A B A B C B C B
  ~@16 A B A B C B C B D E D E D E D E F G H@2 F G H@2 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 I ~@10
>`.pickRestart({
  A: "d3!4 [d3,d5]!2 [d3,a4] [d3,d4]", B: "[d3,a3]!2 [d3,d4] [d3,d5] d3!4", C: "c3!4 [g2,d5]!2 [g2,a4] [g2,d4]",
  D: "c3!4 g2!4", E: "d3!8", F: "a2 ~ a2 ~ c3 ~ a2 ~ e3 ~ a2 ~ c3 ~ a2 ~", G: "c3 ~ c3 ~ e3 ~ c3 ~ g3 ~ c3 ~ e3 ~ g2 ~",
  H: "g2 ~ g2 ~ b2 ~ g2 ~ d3 ~ g2 ~ b2 ~ g2 ~", I: "~@4 d5 ~@3",
})).s("gm_synth_bass_1").gain(0.16)

// bass · synth bass 1 · "Harmony 1" · soft notes
const bass_soft_3 = note("<~@24 A ~@123 B C D C D C D C D C E>".pickRestart({
  A: "[a3,d4,d5]!2 d5 ~@5", B: "d3!5 [d3,d5] [d3,a4] [d3,d4]", C: "[d3,a3]!2 [d3,d4] [d3,d5] d3!4",
  D: "d3!4 [d3,d5]!2 [d3,a4] [d3,d4]", E: "d3!3 ~@5",
})).s("gm_synth_bass_1").gain(0.05)

// other · synth bass 1 · "Verse Accent"
const synth_bass_1 = note("<~@31 A B C B D B C B E ~@15 A B C B D B C B E ~@39 A B C B D B C B E ~@47>".pickRestart({
  A: "~@14 a5 b5", B: "c6 ~@3 b5 ~@3", C: "f#5@2 g5@2 a5@2 d6@2 ~@6 a5 b5", D: "f#5@2 g5@2 a5@2 d5@2 ~@6 a5 b5",
  E: "f#5 g5 a5 d5 ~@4",
})).s("gm_lead_8_bass_lead").gain(0.08).pan(0.2)

// other · epiano1 · "Harmony 2"
const epiano1 = note(`<
  ~@40 A B C@2 A B C D ~@16 A B C@2 A B C D ~@24 A@4 E A E A E A E A E A E F A B C@2 A B C D ~@39
>`.pickRestart({
  A: "a5 e6 c6 a5 e6 c6 a5 e6", B: "c6 g6 e6 c6 g6 e6 c6 g6", C: "g5 d6 b5 g5 d6 b5 g5 d6", D: "g5 d6 b5 g5 d6 b5 g5 ~",
  E: "g5 d6 b5 g5 f5 c6 a5 f5", F: "a5 e6 c6 a5 e6 c6 a5 ~",
})).s("gm_epiano1").gain(0.1)

// chords · celesta · "Bridge"
const celesta = note("<~@72 A@2 B@2 A@2 C@2 ~@79>".pickRestart({
  A: "[[a3,d4]@7 ~ [b3,e4]@5 ~ [d4,f#4]@16 ~@2]/2", B: "[[d4,f#4]@7 ~ [b3,e4]@5 ~ [a3,d4]@16 ~@2]/2",
  C: "[[d4,f#4]@7 ~ [b3,g4]@5 ~ [a3,a4]@16 ~@2]/2", // D Em A
})).s("gm_celesta").gain(0.31)

// other · electric guitar clean · "Harmony 3"
const electric_guitar_clean = note(`<
  ~@112 A B C@2 A B C@2 D E D F D E D F G H G H G H G H G H G H G H G H G H G H ~@11
>`.pickRestart({
  A: "a4 c5 e5 a5 ~ a5 ~ a5", B: "c5 e5 g5 c6 ~ c6 ~ c6", C: "g4 b4 d5 g5 ~ g5 ~ g5", D: "c6 ~@3 b5 ~@3",
  E: "a5 ~@2 d5 ~ d5 ~ d5", F: "a5 ~@2 d6 ~ d6 ~ d6", G: "d5 f#5 a5 ~ a4 d5 f#5 ~", H: "d5 f#5 a5 ~ d6 a5 f#5 e5",
})).s("gm_electric_guitar_clean").gain(0.16).pan(0.7)

// other · electric guitar clean · "Harmony 3" · soft notes
const electric_guitar_clean_2 = note("<~@148 A B A B A B A B A B C>".pickRestart({
  A: "d5 f#5 a5 ~ a4 d5 f#5 ~", B: "d5 f#5 a5 ~ d6 a5 f#5 e5", C: "d5 f#5 a5 ~@5",
})).s("gm_electric_guitar_clean").gain(0.05).pan(0.7)

// other · lead 1 square · "Ending 1"
const lead_1_square = note("<~@136 A@2 B@2 A@2 B@2 A@2 B@2 A@2 C@2 ~@7>".pickRestart({
  A: "[d5!2 e5 d5 f#5 d5 ~ a5@2 d5 d6 d5 a5 g5 f#5 g5]/2", B: "[d5!2 e5 d5 f#5 d5 ~ a5@2 g5 f#5 g5 f#5 e5 d5 a4]/2",
  C: "[d5!2 e5 d5 f#5 d5 ~ a5@2 ~@7]/2",
})).s("gm_lead_1_square").gain(0.08).pan(0.3)

// other · lead 1 square · "Ending 1" · soft notes
const lead_1_square_soft = note("<~@151 A B@2 C@2 B@2 D>".pickRestart({
  A: "~ g5 f#5 g5 f#5 e5 d5 a4", B: "[d5!2 e5 d5 f#5 d5 ~ a5@2 d5 d6 d5 a5 g5 f#5 g5]/2",
  C: "[d5!2 e5 d5 f#5 d5 ~ a5@2 g5 f#5 g5 f#5 e5 d5 a4]/2", D: "d5!2 e5 ~@5",
})).s("gm_lead_1_square").gain(0.02).pan(0.3)

// other · string ensemble 1 · "Ending 2"
const string_ensemble_1 = note("<~@137 A B A B A B A B A B A B A B ~@8>".pickRestart({
  A: "~@5 d3 a2 f#2", B: "d2 ~@7",
})).s("gm_string_ensemble_1").gain(0.22)

// other · string ensemble 1 · "Ending 2" · soft notes
const string_ensemble_1_soft = note("<~@151 A B A B A B A B>".pickRestart({
  A: "~@5 d3 a2 f#2", B: "d2 ~@7",
})).s("gm_string_ensemble_1").gain(0.09)

// other · lead 1 square · "Interlude"
const lead_1_square_2 = note("<~@80 A B A B A B A B C D E F C D E F ~@63>".pickRestart({
  A: "~@8 a4 ~ a4 ~ d4 ~ a3 ~", B: "d3 ~ d3 ~ d4 ~ d5@2 ~@8", C: "~@8 e4 ~ e4 ~ a3 ~ e3 ~",
  D: "c3 ~ c3 ~ g3 ~ g4@2 ~@8", E: "~@8 d4 ~ d4 ~ g3 ~ d3 ~", F: "g2 ~ g2 ~ g3 ~ g4@2 ~@8",
})).s("gm_lead_1_square").gain(0.14)

// drums · kick
const kick = s("bd").struct("<[x!2 ~ x!3 ~ x]!80 [x!2]!16 [x!2 ~ x!3 ~ x]!52 ~@11>").gain(0.7)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@148 [x!2 ~ x!3 ~ x]!10 [x!2 ~@6]>").gain(0.21)

// drums · snare
const snare = s("sd").struct("<A@47 B A@23 B A@9 B A B A B A B A B A B A B A B A@23 B A@30 ~@9>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@3 x!2",
})).gain(0.56)

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

// drums · clap
const clap = s("cp").struct("<A@47 B A@23 B A@9 B A B A B A B A B A B A B A B A@23 B A@28 ~@11>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@3 x!2",
})).gain(0.42)

// drums · clap · soft notes
const clap_soft = s("cp").struct("<~@148 [~ x ~ x]!10 ~>").gain(0.14)

// drums · ride
const ride = s("rd").struct("<~@32 [x!8]!48 ~@16 [x!8]!52 x ~@10>").gain(0.42)

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@148 [~ x!7] [x!8]!9 [x!3 ~@5]>").gain(0.14)

stack(
  synth_brass_1, bass, bass_soft, bass_2, bass_soft_2, bass_3, bass_soft_3, synth_bass_1, epiano1, celesta,
  electric_guitar_clean, electric_guitar_clean_2, lead_1_square, lead_1_square_soft, string_ensemble_1,
  string_ensemble_1_soft, lead_1_square_2, kick, kick_soft, snare, snare_soft, clap, clap_soft, ride, ride_soft
)

More by Depeche Mode