Strudelify

Puppets

Depeche Mode

KeyE minorTempo120 bpm
0:00/0:00
// Puppets — Depeche Mode
// 120 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 1 lead 8 bass lead (copy of ch 2 lead 2 sawtooth); ch 2 lead 2 sawtooth (copy of ch 8 synth bass 2); ch 7 lead 2 sawtooth (copy of ch 6 pad new age); ch 15 string ensemble 1 (copy of ch 12 synth strings 1)
// note: Full arrangement: all 126 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 2
const bass = note(`<
  ~@4 A B@5 C B@3 C B D@2 E@2 F@2 G H I J G H I J B@2 C B@3 C B D@2 E@2 F@2 K L M K@2 L M K N O N O N O P Q@2 L M K@2 L
  M K@2 L M K@2 L M R K S K S K S K S K T C B@3 C B D@2 E@2 F@2 G H I J G H I J G H I J G H I J B@8 ~@4
>`.pickRestart({
  A: "~@4 e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~", B: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~",
  C: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~", D: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~",
  E: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~", F: "e2/2", G: "e2@7 ~ e2@7 ~", H: "c2@5 ~ c2@10", I: "d2@7 ~ d2@7 ~",
  J: "e2@5 ~ e2@9 ~", K: "e2!8", L: "c2!8", M: "d2!8", N: "~@2 a3!2 ~@2 a3!2, a2", O: "~@2 e3!2 ~@2 e3!2, e2",
  P: "~@2 d3!2 ~@2 d3!2, d2", Q: "[~@2 e3!2 ~@2 e3 ~ e2!8, e2 ~, ~@7 e3@2 ~@7]/2", R: "e2!5 [b1,e2] [d2,e2] e2",
  S: "e2!5 b1 d2 e2, ~@10 e2 ~ e2 ~@3", T: "e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2 ~",
})).s("gm_synth_bass_2").gain(0.53)

// other · pad sweep
const pad_sweep = note("<~@19 A B@3 ~@19 C@3 ~@26 D@2 ~@2 E@3 F@2 G@2 H@2 I@2 ~@9 A J@3 ~@23 K@3 ~>".pickRestart({
  A: "[e2,e3]", B: "[[e2,e3]@19 ~@5]/3", C: "[[e2,e3]@47 ~]/3", D: "[~@5 [e2,e3]@9 ~@2]/2",
  E: "[~@11 e3@5 e3@29 ~@3, ~@11 e2@33 ~@4]/3", F: "[[e2,e3]@27 ~@5]/2", G: "[[e2,e3]@13 e3 ~@2, f2 ~@31]/2",
  H: "[e3, e2@7 ~]/2", I: "[[e2,e3]@23 ~@9, f2 ~@15]/2", J: "[[e2,e3]@11 ~@5]/3", K: "[[e2,e3]@23 ~]/3",
})).s("gm_pad_sweep").gain(0.72)

// other · pad new age
const pad_new_age = note(`<
  A B A B A B A B ~@14 A B A B A B A B ~@14 A B A B A B A B ~@8 A B A B A B A B A B A B A B A B A B A B A B A B ~@14 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: "e6 ~ e6 ~ e6 ~ e6 ~ e6 ~ e6 ~ d6!4", B: "e6 ~ e6 ~ e6 ~ e6 ~ e6 ~ e6 ~ g6!4",
})).s("gm_pad_new_age").gain(0.54)

// other · synth strings 1
const synth_strings_1 = note("<~@16 A B C D E@2 ~@16 A B C D E@2 ~@48 A B C D E@2 ~@28>".pickRestart({
  A: "a4@3 e4@3 f#4@2", B: "g4@3 f#4@3 e4@2", C: "b4@3 f#4@3 b4@2", D: "c#5@3 b4@3 a4@2", E: "e4/2",
})).s("gm_synth_strings_1").gain(0.72)

// bass · lead 8 bass lead
const bass_2 = note("<~@63 A@2 ~@2 B ~@3 B ~@3 C@8 D@3 ~@40>".pickRestart({
  A: "[~@5 b1 d2 e2@4 ~@5]/2", B: "~@5 b1 d2 e2", C: "[~@5 b0 d1 e1@14 b1 d2 e2@14 b1 d2 e2@14 b1 d2 e2@9]/8",
  D: "[~@5 b1 d2 e2@16 ~]/3",
})).s("gm_lead_8_bass_lead").gain(0.72)

// other · synth strings 1
const synth_strings_1_2 = note("<~@8 A@2 B C@3 B D ~@14 A@2 B C@3 B D ~@46 A@2 B C@3 B D ~@34>".pickRestart({
  A: "e4/2", B: "d4", C: "e4/3", D: "e4",
})).s("gm_synth_strings_1").gain(0.72)

// drums · kick
const kick = s("bd").struct("<~@8 A@12 B@2 A@20 B@2 A@32 ~@8 A@12 B@2 A@24 ~@4>".pickRestart({
  A: "x!2 ~ x!3 ~@2", B: "x!2 ~ x!3 ~ x",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A@12 ~@2 A@3 B A@16 ~@2 A@3 B A@15 B A@7 B A@4 ~@8 A@12 ~@2 A@3 B A@3 B A@3 B A@7 B A@4 ~@4
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x ~ x!2",
})).gain(0.8)

// drums · clap
const clap = s("cp").struct(`<
  ~@16 A@4 ~@2 A@3 B A@4 ~@8 A@4 ~@2 A@3 B A@4 ~@8 A@3 B A@7 B A@4 ~@16 A@4 ~@2 A@3 B A@3 B A@3 B A@7 B A@4 ~@4
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x ~ x!2",
})).gain(0.8)

stack(bass, pad_sweep, pad_new_age, synth_strings_1, bass_2, synth_strings_1_2, kick, snare, clap)

More by Depeche Mode