Strudelify

Rollin' and Tumblin'

Canned Heat

KeyG majorTempo120 bpm
0:00/0:00
// Rollin' and Tumblin' — Canned Heat
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 37 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

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

// chords · acoustic guitar steel · "steel guitar - bottleneck"
const acoustic_guitar_steel = note(`<
  A B C D E B C D F G H D E B C I J B C D K G H D E L C D E B M D F G N D O
>`.pickRestart({
  A: "~@5 b3 [b3,d4] d4", B: "[c4,e4] g4 [c4,e4,g4]!2 ~ g4@3, ~@8 [c4,e4]@7 ~",
  C: "~@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [g3,b3,d4]@2 [a#3,d4,f4]@3 ~ [c4,e4,g4]@3 ~", D: "g3@3 ~ d3@2 g3@2 a#3@2 g3@2 ~@4",
  E: "g3@3 ~ f3@2 g3@2 ~@2 [g3,b3]@2 [b3,d4]@2 [b3,d4]@2", F: "c4 g3 a#3 g3 f3 g3 ~ [g3,b3,d4]",
  G: "[d3,a3,d4]@6 ~ [d3,g3]", H: "[c3,e3,g3]@3 ~ [c3,e3,g3]@2 [d3,g3]@2 [d3,a3,d4]@2 [d3,g3]@2 [a#2,f3,a#3]@3 ~",
  I: "d5@3 ~ d5@3 ~ b4@2 g4@2 ~@2 g4@2", J: "g4 d4 a#3 g3 f3 g3 ~ [b3,d4]", K: "g3@3 ~ f3@2 g3@2 ~@6 [b3,d4]@2",
  L: "~ g4!3 ~ g4@3, [c4,e4]@7 ~ [c4,e4]@7 ~", // C
  M: "~@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [g3,b3,d4]@2 [a#3,d4,f4]@3 ~ [c4,e4,g4]@4", // C G A# C
  N: "[c3,e3,g3]@6 [d3,g3]@2 [d3,a3,d4]@3 ~ [a#2,f3,a#3]@3 ~", O: "[g2,g3] [d2,d3] [f2,f3] [g2,g3]@3 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.41)

// other · woodblock · "(woodblock) - body thwack"
const woodblock = note("<~@3 A B ~@2 A ~@3 A B ~@2 A@2 ~@2 A B ~@2 A B ~@2 A B ~@2 A ~@3 A ~>".pickRestart({
  A: "~@12 g2 ~@3", B: "~@8 g2 ~@7",
})).s("gm_woodblock").gain(0.14)

stack(acoustic_guitar_steel, woodblock)

More by Canned Heat