Strudelify

Girl You Want

Devo

KeyE minorTempo155 bpm
0:00/0:00
// Girl You Want — Devo
// 155 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 117 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(155/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.

// other · overdriven guitar · "guitar riff"
const overdriven_guitar = note(`<
  A B A B A B A B A B A B A B A B C D A B A B A B A B C D A B C D A B A B A B A B A B A B C D A B C D A B A B ~@9 C D A
  B C D ~@2 E@3 F G H I ~@2 A B A B A B A B C D A B C D ~@9 C D A B C D A B C D A B C D
>`.pickRestart({
  A: "d#3 e3 e2 ~ d#3 ~ e3 d#3", B: "~ e3 e2 ~ d#3 e3 ~@2", C: "g2!2 ~@6", D: "a2!2 ~@6", E: "[f4@15 g4@16 f4@16 ~]/3",
  F: "c5", G: "g4", H: "f4", I: "a4@3 ~",
})).s("gm_overdriven_guitar").gain(0.51)

// bass · synth bass 2 · "bass"
const bass = note(`<
  ~@8 A@8 ~@2 A@8 ~@2 A@2 ~@2 A@12 ~@2 A@2 ~@2 A@4 B C B D C B E A@2 ~@2 A@2 ~@2 A@2 B C B D C B E A@10 ~@2 A@2 ~@2 B C
  B D C B E A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2
>`.pickRestart({
  A: "~ e2 e1 e2 e1 e2 e1 e2", B: "f1!8", C: "g1!8", D: "c2!8", E: "a1!8",
})).s("gm_synth_bass_2").gain(0.51)

// other · distortion guitar · "guitar riff2"
const distortion_guitar = note(`<
  ~@16 A B ~@8 A B ~@2 A B ~@12 A B ~@2 A B ~@4 C D C E D C F ~@2 A B ~@2 A B ~@2 C D C E D C F ~@10 A B ~@2 A B C D C E
  D C F ~@2 A B ~@2 A B ~@2 A B ~@2 A B
>`.pickRestart({
  A: "g2!2 ~@6", B: "a2!2 ~@6", C: "f2", D: "g2", E: "c3", F: "a2",
})).s("gm_distortion_guitar").gain(0.51)

// other · flute
const flute = note("<~@54 A B C D B C E ~@10 A B C D B C E ~@16 A B C D B C E ~@16>".pickRestart({
  A: "~@4 f5 ~ f5 ~ f5 ~ f5 ~ f5@2 ~@2", B: "~@4 g5 ~ g5 ~ g5 ~ g5 ~ g5 ~@3", C: "~@4 f5 ~ f5 ~ f5 ~ f5 ~ f5 ~@3",
  D: "~@4 c6 ~ c6 ~ c6 ~ c6 ~ c6 ~@3", E: "~@4 a5 ~ a5 ~ a5 ~ a5 ~ a5@2 ~@2",
})).s("gm_flute").gain(0.51)

// drums · kick
const kick = s("bd").struct(`<
  ~@8 A@8 B@2 A@8 B@2 A@2 B@2 A@12 B@2 A@2 B@2 A@13 B@2 A@2 B@2 A@19 B@2 A@2 B@2 A@9 B@2 A@2 B@2 A@2 B@2 A@2 B@2
>`.pickRestart({
  A: "x!2", B: "x!4",
})).gain(0.51)

// drums · snare
const snare = s("sd").struct(`<
  ~@7 A B@8 ~@2 B@8 ~@2 B@2 ~@2 B@12 ~@2 B@2 ~@2 B@13 ~@2 B@2 ~@2 B@10 C B@8 ~@2 B@2 ~@2 B@9 ~@2 B@2 ~@2 B@2 ~@2 B@2 ~@2
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@2 x ~@2 x!3",
})).gain(0.51)

// drums · clap
const clap = s("cp").struct("<~@7 [~@3 x] ~@109>").gain(0.51)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~@8 A@8 ~@2 A@8 ~@2 A@2 ~@2 A@12 ~@2 A@2 ~@2 A@13 ~@2 A@2 ~@2 A@19 ~@2 A@2 ~@2 A@9 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2
>`.pickRestart({
  A: "x!2 ~ x!3 ~ x",
})).gain(0.51)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@8 A@8 ~@2 A@8 ~@2 A@2 ~@2 A@12 ~@2 A@2 ~@2 A@13 ~@2 A@2 ~@2 A@19 ~@2 A@2 ~@2 A@9 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2
>`.pickRestart({
  A: "~ x ~ x",
})).gain(0.51)

stack(overdriven_guitar, bass, distortion_guitar, flute, kick, snare, clap, pedal_hat, open_hat)

More by Devo