Strudelify

like a rolling stone

The Rolling Stones

KeyB♭ majorTempo120 bpm
0:00/0:00
// like a rolling stone — The Rolling Stones
// 120 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4803391; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 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 · [...]/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 B C D E F@2 G H I J K L M N O@2 P Q B C D E F@2 G H I J K L M N O@2 P R S T U V W X Y Z AA I K L M N O@2 P AB S T U
  V W X Y Z AA I K L M N O@2 P AC
>`.pickRestart({
  A: "~@2 c5 d5 eb5 f5 g5 bb5", B: "f5@2 c5@2 f5@2 c5@2 f5@2 ~ g5 f5@2 [c5,a5]@2, a5@4 ~ c5 ~@2, f3 c4 [eb4,a5] c4",
  C: "f5 a4 c5 [a4,d5] [c5,eb5] [a4,f5] [f5,g5] [eb5,bb5], [f3,a5] c4 eb4 c4", // D5 Cm Dm Fsus2 Eb5 F
  D: "f5@2 c5@2 f5@2 c5@2 f5@2 ~ g5 f5@2 [c5,a5]@2, [f3,a5] [c4,a5] [eb4,a5] c4, ~@5 c5 ~@2", // F Ebdim
  E: "f5 a4 c5 [a4,d5] eb5 [a4,f5] g5 [eb5,bb5], [f3,a5] c4 eb4 c4", // D5 Dm Eb5 F
  F: "[f5 a4 c5 [a4,d5] eb5 [a4,f5] ~@2 f5 a4 c5 [a4,d5] eb5 [a4,d5] eb5 [a4,g5], [f3,a5] c4 eb4 c4 f3 c4 eb4 c4, ~@6 g5 eb5 ~@8, ~@13 bb5@2 a5@5 ~@12]/2", // D5 Dm D5 A7 F
  G: "~@2 f4@2 bb4@2 [f4,d5]@2 bb4@2 f4@2 eb5 d5 c5 d5, eb5@3 ~@3 bb4 f4, bb3 f3 [bb3,d5] f3", // Dm Bb
  H: "eb5@2 eb5@2 eb5@2 eb5@2 eb5 d5@3 [f3,c5]@2 [bb2,d5]@2, [bb2,f4,bb4] [f3,f4,bb4] [bb3,f4,bb4] [f4,bb4]", // F5 Bb Bb5
  I: "[bb2,eb5]@2 [bb2,bb4]@2 ~ bb4!2 c5, [eb4,g4]!2, ~@2 bb2!2", // Eb5 Bb Eb
  J: "[bb2,d5]@2 [bb2,bb4]@2 ~ bb4!2 c5, [d4,f4]!2, ~@2 bb2!2", K: "bb2!4, [f4,bb4,d5] [d4,f4,bb4]",
  L: "bb2@4 eb5 eb5@3 eb5 d5@3 [f3,c5]@2 [bb2,d5]@2, ~ [f3,f4,bb4] [bb3,f4,bb4] [f4,bb4]", // F5 Bb Bb5
  M: "eb3@2 eb3@2 eb3@2 bb4 c5, [g4,bb4,eb5]@11 ~ [eb3,eb4,g4]@4", // Eb
  N: "bb2@2 bb2@2 ~ bb4!2 d5, [f4,bb4,d5] [d4,f4], ~@2 bb2!2", // Bb Dm
  O: "[f2@2 ~ [g4,bb4] f3@2 ~ [g4,bb4] f2@2 c3@2 f3@2 c3@2, eb4@31 ~, [a4,c5]@6 ~@2 [f4,a4]@6 ~@2 [a4,c5]@15 ~, ~ c3 ~ c3 ~@4]/2", // Gm Am F Am
  P: "bb4 f4 bb4 f4 bb4 f4 bb4 f4, [bb2,d5] [f3,d5] [bb3,d5] [f3,d5]", Q: "[bb2,f4,bb4,d5]@2 c5 d5 eb5 f5 g5 bb5",
  R: "[bb2,f4,bb4,d5]@2 c4 d4 eb4 f4 g4 bb4", // Bb
  S: "[c4,a4]@4 ~@2 f2@2 [c4,a4]@3 [bb3,g4] [a3,f4]@2 [c4,a4]@2, f2@3 ~ f2@4, ~ [c4,a4] ~@2", // F Eb Dm F
  T: "[c4,a4]@2 [a3,c4] [f2,bb3,d4] [c4,eb4] [d4,f4] [eb4,g4] [g4,bb4], f2@3 ~ f2@4", // F Am Bb Cm Dm Eb Gm
  U: "[f4,a4]@4 ~@2 f2@2 [c4,a4]@3 [bb3,g4] [a3,f4]@2 [c4,a4]@2, f2@3 ~ f2@4, ~ [c4,a4] ~@2", // F Eb Dm F
  V: "[c4,a4]@2 [a3,c4] [f2,bb3,d4] [f2,c4,eb4] [d4,f4] [eb4,g4] [f2,g4,bb4], f2@3 ~@2 f2@2 ~", // F Am Bb F7 Dm Eb Gm7
  W: "[f4,a4]@2 [a3,c4] [f2,bb3,d4] [f2,c4,eb4] [d4,f4] [eb4,g4] [f2,g4,bb4], f2@3 ~@2 f2@2 ~", // F Am Bb F7 Dm Eb Gm7
  X: "[f4,a4]@2 [c4,a4] [f2,d4,bb4] [f2,c5] eb5!2 [f2,eb5], f2@3 ~@2 f2@2 ~, ~ f4 [eb4,a4] [f4,a4]", // F Bb F5 F7 Ebdim F
  Y: "bb2@2 ~ [f4,bb4,d5] bb3@2 f3@2, [f4,bb4,eb5]@3 ~ [f4,bb4,d5]@4, ~ f3 ~@2", // Bb Ebsus2 Bb
  Z: "~@2 eb5@2 eb5@2 eb5@2 eb5 d5@3 [f3,c5]@2 [bb2,d5]@2, bb2 [f3,f4,bb4] [bb3,f4,bb4] [f4,bb4]", // F5 Bb Bb5
  AA: "[eb3,eb5]@2 [eb3,bb4]@2 ~ bb4!2 c5, [eb4,g4]!2, ~@2 eb3!2", // Eb Eb5 Eb
  AB: "[bb2,f4,bb4,d5]@2 d4!2 [c4,eb4] [d4,f4] [eb4,g4] [f4,bb4], ~@3 c3", AC: "[bb2,f4,bb4,d5]@15 ~",
})).s("gm_piano").gain(0.3)

stack(piano)

More by The Rolling Stones