Strudelify

Dominated Love Slave

Green Day

KeyE♭ majorTempo136 bpm
0:00/0:00
// Dominated Love Slave — Green Day
// 136 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 54 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(136/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.

// chords · overdriven guitar · "Tre - Elec. Guitar"
const overdriven_guitar = note(`<
  A@3 B A C A B D A B A C A B A C E A B A C A B D A B A C A B A C E A B A C A B D A B A C A B A F G ~ H I@2
>`.pickRestart({
  A: "[eb3,g3]@2 [bb3,eb4,g4]@3 [bb3,eb4,g4] [bb3,eb4,g4]@2 [eb3,g3]@2 [bb3,eb4,g4]@3 [bb3,eb4,g4] [bb3,eb4,g4]@2", // Eb
  B: "[ab2,c3]@2 [eb3,ab3,c4]@3 [eb3,ab3,c4] [eb3,ab3,c4]@2 [ab2,c3]@2 [eb3,ab3,c4]@3 [eb3,ab3,c4] [eb3,ab3,c4]@2", // Ab
  C: "[bb2,d3]@2 [f3,bb3,d4]@3 [f3,bb3,d4] [f3,bb3,d4]@2 [bb2,d3]@2 [f3,bb3,d4]@3 [f3,bb3,d4] [f3,bb3,d4]@2", // Bb
  D: "[eb3,g3]@2 [bb3,eb4,g4]@3 [bb3,eb4,g4] [bb3,eb4,g4]@2 [bb2,d3]@2 [f3,bb3,d4]@3 [f3,bb3,d4] [f3,bb3,d4]@2", // Eb Bb
  E: "[eb3,g3]@2 [bb3,eb4,g4]@3 [bb3,eb4,g4] [bb3,eb4,g4]@2 [eb3,g3]@2 [bb3,eb4,g4]@2 [bb3,eb4,g4]@3 ~", // Eb
  F: "[f3,bb3,d4]@2 [f3,bb3,d4]!14", G: "[f3,bb3,d4]@7 ~@9", H: "~@6 [bb3,d4,ab4]@5 [bb3,eb4,g4] ~ [bb3,eb4,g4]!3",
  I: "[[bb3,eb4,g4]!10 [bb3,eb4,g4]@13 ~ [bb3,eb4,g4]@3 ~@5]/2", // Eb
})).s("gm_overdriven_guitar").gain(0.72)

// bass · electric bass pick · "Mike - Bass Guitar"
const bass = note("<~@18 A B A C A D E F B A G F B A G H A B A C A D E F B A G F B A I J K@4>".pickRestart({
  A: "eb2@3 ~ bb1@3 ~ eb2@3 ~ bb1@2 eb2@2", B: "ab2@3 ~ eb2@3 ~ ab2@3 ~ eb2@2 ab2@2",
  C: "bb2@3 ~ f2@3 ~ bb2@2 ab2@2 g2@2 f2@2", D: "ab2@3 ~ eb2@2 eb3@2 f3@2 eb3@2 [b2,c3]@2 eb3@2",
  E: "eb2@3 ~ bb1@3 ~ bb2@3 ~ f2@2 bb2@2", F: "eb2@3 ~ bb1@3 ~ eb2@2 eb2@2 f2@2 g2@2",
  G: "bb2@3 ~ f2@3 ~ bb2@3 ~ f2@2 bb2@2", H: "eb2@3 ~ bb1@3 ~ eb2@7 ~", I: "bb1!8", J: "bb1@7 ~@9",
  K: "[~@4 eb2@3 bb1 a1 bb1 b1@3 bb1@6 ~@3 d2@5 eb2@4 eb2@2 eb2@2 eb2@2 eb2@2 eb2@3 eb2@13 ~ eb2@3 ~@5]/4",
})).s("gm_electric_bass_pick").gain(0.72)

// drums · kick
const kick = s("bd").struct("<~@17 [~@3 x] [x!4]!30 x!2 [~@13 x ~@2] [~@11 x ~@4] [~ x ~@4 x ~@4 x ~@4] [~ x]>")
  .gain(0.72)

// drums · snare
const snare = s("sd").struct("<~@17 A B@15 C B@14 D ~@2 E F G>".pickRestart({
  A: "~@3 x", B: "~ x ~ x ~ x ~ x", C: "~ x ~ x ~ x!2 ~", D: "~@7 x!9", E: "~@14 x!2", F: "x ~@3 x!2 ~@2 x!3 ~@5",
  G: "~ x",
})).gain(0.72)

// drums · low tom
const low_tom = s("lt").struct("<~@48 [~@3 x!3 ~@10] [~ x] [~@7 x!3 ~@6] ~@3>").gain(0.72)

// drums · mid tom
const mid_tom = s("mt").struct("<~@48 [~@3 x ~@4] ~ [~@5 x ~@2] ~@3>").gain(0.72)

// drums · open hat
const open_hat = s("oh").struct("<~@17 A B C@7 ~@7 A ~@7 D ~@12>".pickRestart({
  A: "~@3 x", B: "~ x!7", C: "x!8", D: "~@6 x!2",
})).gain(0.72)

// drums · high tom
const high_tom = s("ht").struct("<~@50 [~ x ~@2] ~@3>").gain(0.72)

// drums · ride bell
const ride_bell = s("rd").struct("<~@26 A B@3 A B@2 C ~@8 A B@3 A B ~@6>".pickRestart({
  A: "~ x!7", B: "x!8", C: "x!6 ~@2",
})).gain(0.72)

// drums · splash
const splash = s("cr").struct("<~@18 A ~@7 A ~@3 A ~@3 B@7 C A ~@3 A ~ A@2 ~ D E F>".pickRestart({
  A: "x", B: "~ x ~ x ~ x ~ x", C: "~ x ~ x ~ x ~@2", D: "~@11 x ~@4", E: "~ x ~@4 x ~@4 x ~@4", F: "~ x",
})).gain(0.72)

stack(overdriven_guitar, bass, kick, snare, low_tom, mid_tom, open_hat, high_tom, ride_bell, splash)

More by Green Day