Strudelify

Coddingtown

Primus

KeyE minorTempo134 bpm
0:00/0:00
// Coddingtown — Primus
// 134 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 3 "Cello 2" contrabass (copy of ch 1 "Cello - Le Claypool" contrabass)
// note: Full arrangement: all 56 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(134/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 · contrabass · "Cello - Le Claypool"
const bass = note("<~@2 A@4 B@2 A@10 C D A@2 C E A@4 B@2 A@10 C D A@2 C E A@8 C D>".pickRestart({
  A: "e1@4 g1@4 g#1@3 ~ a1@2 a#1@2", B: "e1@4 b1@3 ~ e2@4 d2@2 a#1@2", C: "a1", D: "c2 ~@7",
  E: "c2@2 ~ c2@3 c2@2 d2@3 d2@3 d2@2",
})).s("gm_contrabass").gain(0.64).pan(0)

// chords · overdriven guitar · "Guitar - Ler"
const overdriven_guitar = note("<A@18 B C A@2 B D A@16 B C A@2 B D A@8 B C>".pickRestart({
  A: "[e2,b2]@2 [e2,b2]!2 [g2,d3]@2 [g2,d3]!2 [g#2,d#3]@2 [g#2,d#3]!2 [a2,e3]!2 [a#2,f3]@2", B: "[a2,e3]",
  C: "[c3,g3] ~@7", D: "[c3,g3]@2 ~ [c3,g3]@3 [c3,g3]@2 [d3,a3]@3 [d3,a3]@3 [d3,a3]@2",
})).s("gm_overdriven_guitar").gain(0.47)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A B A B A B A C A B A B A B A C@3 A B C D A B A B A B A C A B A B A B A C@3 A B C D A B A B A B A C@3
>`.pickRestart({
  A: "x ~@2 x", B: "x ~@11 x!2 ~@2", C: "x", D: "x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~",
})).gain(0.54)

// drums · snare
const snare = s("sd").struct("<~ A B@7 C B@7 C ~ D B@2 ~ E B@7 C B@7 C ~ D B@2 ~ E B@7 C ~@2>".pickRestart({
  A: "~@10 x!6", B: "~ x ~ x ~ x ~ x", C: "~@2 x ~@3 x ~@3 x!6", D: "~@7 x", E: "x ~@2 x ~@2 x ~@9",
})).gain(0.54)

// drums · low tom
const low_tom = s("lt").struct("<~@23 [x ~@2 x ~@2 x ~@9] ~@21 [x ~@2 x ~@2 x ~@9] ~@10>").gain(0.54)

// drums · hihat
const hihat = s("hh").struct("<~@2 A@7 B A@7 B ~ C A@2 ~ D A@7 B A@7 B ~ C A@2 ~ D A@7 B ~ C>".pickRestart({
  A: "x!16", B: "x!8 ~@8", C: "x", D: "~@8 x ~@2 x ~@2 x ~",
})).gain(0.54)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@19 [~@7 x] ~@21 [~@7 x] ~@14>").gain(0.54)

// drums · crash
const crash = s("cr").struct(`<
  ~@2 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@3 ~ A B A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@3 ~ A B A ~ A ~ A ~ A ~ A@2
>`.pickRestart({
  A: "x", B: "~@8 x ~@2 x ~@2 x ~",
})).gain(0.54)

stack(bass, overdriven_guitar, kick, snare, low_tom, hihat, open_hat, mid_tom, crash)

More by Primus