Strudelify

Working in a Coalmine

Devo

KeyG majorTempo160 bpm
0:00/0:00
// Working in a Coalmine — Devo
// 160 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 86 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// bass · electric bass pick · "Staff-3"
const bass = note(`<
  ~@2 A B A B A B A B A B A B A B A B C D C D C D E F A B A B A B A B A B A B A B A B A B A B A B A B C D C D C D E F 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 A ~
>`.pickRestart({
  A: "c2@3 ~@3 c2@2 g1@3 ~@3 c2@2", B: "~ c2 ~ g1 a#1!2 c2 a#1", C: "g1@3 ~@3 d2@2 g2@2 d2@2 g1@2 c2@2",
  D: "~@2 c2@2 e1@3 ~ f1@3 ~ f#1@2 f#1@2", E: "g1@3 ~@3 d2@2 g2@2 d2@2 ~@2 g1@2", F: "~ g1 a1 g1 a#1 g1 b1 g1",
})).s("gm_electric_bass_pick").gain(0.48)

// chords · marimba · "Staff-4"
const marimba = note("<~@6 A@12 B C B C B C B@2 A@24 B C B C B C B@2 A@27 ~>".pickRestart({
  A: "~@4 [e5,g5,c6] ~@11", B: "~@4 [b4,d5,g5] ~@7 [b4,d5,g5] ~@3", C: "~@4 [c5,e5,g5] ~@7 [c5,e5,g5] ~@3",
})).s("gm_marimba").gain(0.32)

// chords · electric guitar clean · "Staff-6"
const electric_guitar_clean = note(`<
  ~@9 A ~@8 B C B C B C B A ~@15 A ~@8 B C B C B C B A ~@15 A ~@3 A ~@3 A ~@4
>`.pickRestart({
  A: "[c4,e4,g4]", B: "[b3,d4,g4] ~@7 [b3,d4,g4] ~@7", C: "~@2 d#4@2 e4@2 g4@2 d#4@2 e4@2 g4@3 ~",
})).s("gm_electric_guitar_clean").gain(0.48)

// drums · kick
const kick = s("bd").struct(`<
  ~@6 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 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 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 A ~
>`.pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "~ x ~ x!3 ~ x",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct("<~@6 [~ x ~ x]!79 ~>").gain(0.48)

// drums · ride bell
const ride_bell = s("rd").struct("<~@6 [~ x ~@4 x ~]!79 ~>").gain(0.4)

// drums · tambourine
const tambourine = s("tb").struct("<[x!8]!85 ~>").gain(0.4)

// drums · crash
const crash = s("cr").struct("<~@6 A ~@3 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A@11 ~>".pickRestart({
  A: "x",
})).gain(0.4)

// drums · vibraslap
const vibraslap = s("vibraslap:0").struct(`<
  ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@20
>`.pickRestart({
  A: "~@3 x ~@4",
})).gain(4.7)

stack(bass, marimba, electric_guitar_clean, kick, snare, ride_bell, tambourine, crash, vibraslap)

More by Devo