Strudelify

New Life

Depeche Mode

KeyD majorTempo159 bpm
0:00/0:00
// New Life — Depeche Mode
// 159 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (3/4 at bar 1, 4/4 at bar 1) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 149 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(`<
  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 ~@45
>`.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.16)

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

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

// other · epiano1 · "Harmony 2"
const epiano1 = note(`<
  ~@32 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 ~@37
>`.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("<~@64 A@2 B@2 A@2 C@2 ~@77>".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(`<
  ~@104 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 ~@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("<~@138 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("<~@128 A@2 B@2 A@2 B@2 A@2 B@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 d5 d6 d5 a5 g5 ~@2]/2",
})).s("gm_lead_1_square").gain(0.07).pan(0.3)

// other · lead 1 square · "Ending 1" · soft notes
const lead_1_square_soft = note("<~@141 A B@2 C@2 B@2 D>".pickRestart({
  A: "~@6 f#5 g5", 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 d5 d6 d5 a5 g5 f#5 g5]/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("<~@129 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.19)

// other · string ensemble 1 · "Ending 2" · soft notes
const string_ensemble_1_soft = note("<~@141 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)

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

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

// drums · snare
const snare = s("sd").struct("<~@16 A@23 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 ~@9>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@3 x!2",
})).gain(0.56)

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

// drums · clap
const clap = s("cp").struct("<~@16 A@23 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@26 ~@11>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@3 x!2",
})).gain(0.42)

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

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

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@138 [~ 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, epiano1, celesta, electric_guitar_clean,
  electric_guitar_clean_2, lead_1_square, lead_1_square_soft, string_ensemble_1, string_ensemble_1_soft, kick,
  kick_soft, snare, snare_soft, clap, clap_soft, ride, ride_soft
)

More by Depeche Mode