Strudelify

Boys Say Go!

Depeche Mode

KeyF majorTempo137 bpm
0:00/0:00
// Boys Say Go! — Depeche Mode
// 137 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 1 "Lead 1" percussive organ (copy of ch 2 "Lead 2" lead 5 charang)
// note: Full arrangement: all 104 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(137/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · acoustic bass · "Bass 1"
const bass = note(`<
  ~@9 A@4 B@2 C B@3 C B D E F E D G A@4 B@2 C B@3 C B D E F E D G B@4 ~@16 A@8 B@2 C B@3 C B D E F E D G A@10 H ~@6
>`.pickRestart({
  A: "g1@2 ~@2 g2@2 ~@3 d2 eb2 d2 bb1@2 a1@2", B: "g1@2 ~@2 g2@2 ~@3 d2 eb2@2 bb1@2 a1@2",
  C: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 d2 ~@2", D: "f1@2 ~@2 f1@2 ~@3 f1 f1@2 f1@2 f1@2",
  E: "g1@2 ~@2 g1@2 ~@3 g1 g1@2 bb1@2 g1@2", F: "f1@2 ~@2 f1@2 ~@3 f1 f1@2 ~@3 f1",
  G: "d1@2 ~@2 d1@2 ~@2 d1 d1@2 ~ d1@2 d1@2", H: "g1 ~ g2 ~@5",
})).s("gm_acoustic_bass").gain(0.17)

// bass · acoustic bass · "Bass 1" · soft notes
const bass_soft = note(`<
  ~@97
  [~@9 d2 eb2 d2 bb1@2 a1@2]
  [g1@2 ~@2 g2@2 ~@3 d2 eb2 d2 bb1@2 a1@2]
  [g2@2 ~@2 g3@2 ~@3 d3 eb3 d3 bb2@2 a2@2]!4
  [g2 ~@7]
>`).s("gm_acoustic_bass").gain(0.05)

// bass · electric bass pick · "Bass 2"
const bass_2 = note(`<
  ~@9 A@4 B@2 C B@3 C B D E F E D G A@4 B@2 C B@3 C B D E F E D G B@4 H I J K L H I@2 H I J K L H I ~ A@8 B@2 C B@3 C B
  D E F E D G A@10 M ~@6
>`.pickRestart({
  A: "g3@2 ~@2 g4@2 ~@3 d4 eb4 d4 bb3@2 a3@2", B: "g3@2 ~@2 g4@2 ~@3 d4 eb4@2 bb3@2 a3@2",
  C: "c4 ~ c4 ~ c4 ~ c4 ~ c4 ~ c4 ~ c4 d4 ~@2", D: "f2@2 ~@2 f2@2 ~@3 f2 f2@2 f2@2 f2@2",
  E: "g2@2 ~@2 g2@2 ~@3 g2 g2@2 bb2@2 g2@2", F: "f2@2 ~@2 f2@2 ~@3 f2 f2@2 ~@3 f2",
  G: "d2@2 ~@2 d2@2 ~@2 d2 d2@2 ~ d2@2 d2@2", H: "bb3 ~@3 f3 ~@2 bb3!2 ~@3 bb3 ~ f3!2",
  I: "f3 ~@3 c3 ~@2 f3!2 ~@3 f3 ~ c3 f3", J: "g3 ~@3 d3 ~@2 g3!2 ~@3 g3 ~ d3!2", K: "d3 ~@3 a2 ~@2 d3!2 ~@3 d3 ~ a2 d3",
  L: "eb3 ~@3 bb2 ~@2 eb3!2 ~@3 eb3 ~ bb2 eb3", M: "g3 ~ g4 ~@5",
})).s("gm_electric_bass_pick").gain(0.12)

// bass · electric bass pick · "Bass 2" · soft notes
const bass_soft_2 = note("<~@97 [~@9 d4 eb4 d4 bb3@2 a3@2] [g3@2 ~@2 g4@2 ~@3 d4 eb4 d4 bb3@2 a3@2]!5 [g3 ~@7]>")
  .s("gm_electric_bass_pick").gain(0.04)

// other · synth brass 2 · "Harmony 1"
const synth_brass_2 = note(`<
  ~@13 A B C B A B C B D E D E D F A B A B A B C B A B C B D E D E D F ~@20 A B A B A B A B A B C B A B C B D E D E D F
  A B A B A B A B A B G ~@6
>`.pickRestart({
  A: "g2@3 ~@7 bb2@2 c3@2 ~@2", B: "g2@3 ~@7 bb2@2 g2@2 ~@2", C: "c3@3 ~@7 c3@2 d3@2 ~@2", D: "f2@3 ~@7 f2@2 f2@2 ~@2",
  E: "g2@3 ~@7 g2@2 g2@2 ~@2", F: "d2@3 ~@6 d2@2 d2@2 ~@3", G: "g2@3 ~@13",
})).s("gm_synth_brass_2").gain(0.27)

// other · synth brass 2 · "Harmony 1" · soft notes
const synth_brass_2_soft = note(`<
  ~@97
  [~@5 bb2 c3 ~]
  [g2@3 ~@7 bb2@2 g2@2 ~@2]
  [g2@3 ~@7 bb2@2 c3@2 ~@2]
  [g2@3 ~@7 bb2@2 g2@2 ~@2]
  [g2@3 ~@7 bb2@2 c3@2 ~@2]
  [g2@3 ~@7 bb2@2 g2@2 ~@2]
  [g2@3 ~@13]
>`).s("gm_synth_brass_2").gain(0.08)

// other · english horn · "Harmony 2"
const english_horn = note("<~@30 A B@7 C ~@33 A B@7 C ~@23>".pickRestart({
  A: "~@14 g5 bb5", B: "f6 ~ g6 ~ bb5 ~ g5 ~ f6 ~ d6 g6 ~@2 g5 bb5", C: "f6 ~ g6 ~ bb5 ~ g5 ~ f6 ~ d6 g6 ~@4",
})).s("gm_english_horn").gain(0.16)

// other · sitar · "Chorus 1"
const sitar = note("<~@21 A@4 B C ~@12 A@4 B C ~@36 A@4 B C ~@17>".pickRestart({
  A: "[f3 ~ f3 ~ a3 ~ a3 ~ c4 ~ c4 f4 ~@2 bb4 bb4@2 ~ g4@2 ~@12]/2", B: "f3 ~ f3 ~ a3 ~ a3 ~ c4 ~ c4 f4 ~@4",
  C: "d3 ~@3 d3 ~@3 d3 ~@7",
})).s("gm_sitar").gain(0.31).pan(0.7)

// drums · rim
const rim = s("rim").struct("<~@9 A@4 B@14 A@4 B@14 ~@20 A@8 B@24 C ~@6>".pickRestart({
  A: "x ~ x ~@2 x!2 ~@3 x!2 ~ x!3", B: "x ~ x ~@3 x ~@3 x!2 ~@2 x!2", C: "x",
})).gain(0.32)

// drums · rim · soft notes
const rim_soft = s("rim").struct("<~@97 [~@2 x ~@3 x ~@3 x!2 ~@2 x!2] [x ~ x ~@3 x ~@3 x!2 ~@2 x!2]!5 x>").gain(0.08)

// drums · kick
const kick = s("bd").struct("<~@9 [x!2]!36 [x!4]!20 [x!2]!38 x>").gain(0.8)

// drums · snare
const snare = s("sd").struct("<~@8 [~@3 x] [~ x ~ x]!36 ~@12 [~ x ~ x]!42 [~ x ~@2] ~@4>").gain(0.48)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@96 [~@3 x] [~ x ~ x]!6 ~>").gain(0.08)

// drums · clap
const clap = s("cp").struct("<~@8 A ~@17 A ~@17 A ~@41 A ~@17>".pickRestart({
  A: "~@3 x",
})).gain(0.8)

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

// drums · tambourine
const tambourine = s("tb").struct("<~@9 A@4 B@14 A@4 B@14 ~@20 A@8 B@23 C ~@7>".pickRestart({
  A: "x ~ x ~@2 x!2 ~@3 x!2 ~ x!3", B: "x ~ x ~@3 x ~@3 x!2 ~@2 x!2", C: "x ~ x ~@3 x ~@3 x!2 ~@4",
})).gain(0.24)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@96 [~@14 x!2] [x ~ x ~@3 x ~@3 x!2 ~@2 x!2]!6 x>").gain(0.08)

// drums · congas
const congas = s("conga:18").struct("<~@49 [~ x ~@4 x ~@2 x!2 ~@5]!15 ~@40>").gain(1.28)

// drums · congas
const congas_2 = s("conga:33").struct("<~@49 [x ~@3 x ~@3 x ~@2 x!2 ~ x!2]!15 ~@40>").gain(1.28)

stack(
  bass, bass_soft, bass_2, bass_soft_2, synth_brass_2, synth_brass_2_soft, english_horn, sitar, rim, rim_soft, kick,
  snare, snare_soft, clap, open_hat, tambourine, tambourine_soft, congas, congas_2
)

More by Depeche Mode