Strudelify

roll with the changes

REO Speedwagon

KeyC majorTempo95 bpm
0:00/0:00
// roll with the changes — REO Speedwagon
// 95 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/6350984; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 9 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(95/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/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 · piano
const piano = note("<A@2 B C@2 D E F@2>".pickRestart({
  A: "[~@13 [g2,g3] [a2,a3] [g3,c4]@3 g3@2 ~@11 g3, ~@15 c2@17, ~@18 c4@4 g3@2 c3@3 g3 c3@4, ~@20 e4@6 c4@3 g3 c4@2, ~@20 g3 c3@2 c4@2 g3@2 e4@5]/2", // G A C5
  B: "~@15 a3, c2, ~@2 a3@2 f4@6 c4@3 a3 c4@2, ~@3 c3@2 c3@2 c4@2 a3@2 f4@5, ~@4 a3@2 a3@2 c3@3 a3 c3@4",
  C: "[~@6 a3 a3@3 ~@4 a3 g3@3 ~@13 g3, c2@7 c2@8 c2@17, ~@2 a#3@2 [a#3,d4,f4]@3 ~@3 a3@2 [a3,c4,f4]@3 c4@7 g3@2 c3@3 g3 c3@4, ~@3 c3@2 c3@2 [c3,c4,f4]@4 c3@2 c3@2 [c3,e4]@4 c3 g3 c3@2 c4@2 g3@2 e4@5, ~@18 g3@2 e4@6 c4@3 g3 c4@2]/2", // A# F F5 C
  D: "~@2 [c3,g3]@2 [c3,g3,c4,e4]@2 g3 [c3,g3,c4,e4]@3 [c3,g3,c4,e4]@2 ~ g3 c4 [c3,g3], c2@15 ~, ~@12 c3@3 ~", // C5 C C5
  E: "c3@2 [c3,a3]@2 [c3,a3,c4,f4]@2 a3 a3@2 ~@2 a3@2 ~@2 a3, c2, ~@7 [c3,c4,f4]@3 c4@3 a3@2 ~, ~@9 a3@2 [c3,f4]@5, ~@7 c4", // F F5
  F: "[~@2 [c3,a#3]@2 [c3,a#3,d4,f4]@2 a3 [c3,a3]@3 [c3,a3]@2 [c3,a3,c4,f4]@2 a3 [c2,c3,g3,c4,e4]@3 f2!2 f#2!2 g2!2 [c3,g3,c4,e4] ~@7, c2@7 c2@8 ~@17, ~@7 [c4,f4]@5 ~@6 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 ~@8]/2", // C7 A# F C F5 C
})).s("gm_piano").gain(0.3)

stack(piano)

More by REO Speedwagon