Strudelify

robbery

Joshua Phillips

KeyD majorTempo160 bpm
0:00/0:00
// robbery — Joshua Phillips
// 160 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5490989; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 40 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, 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 · piano
const piano = note("<A B C D E B C F G B C H I B J F K B L M N B L O G B C H I B C P Q R S T U V W X>".pickRestart({
  A: "[g2,d5,b5]@2 [d4,b4,d5]@3 f#5@2 e5, ~@4 g1@11 ~", B: "~ e6 [a3,f#4,d5]@2",
  C: "[d4,d5]@2 [f#4,d5,a5]@3 f#5@2 e5, d2@15 ~", D: "~@2 e6@2 a3 a3@3, c#2 [e4,b4]",
  E: "g2@2 [d4,b4]@3 f#5@2 e5, ~@4 [g1,d3]@11 ~", F: "~@4 e6 f#6@3 [a3,e4,b4]@8, a1 ~",
  G: "[d5,b5]@2 [d4,b4,d5]@3 f#5@2 e5, g2@15 ~", H: "~ e6 [a3,e4,b4]@2, c#2 ~",
  I: "g2@2 [d4,b4]@3 f#5@2 e5, ~@4 g1@11 ~", J: "[d4,d5]@2 [f#4,d5,a5]@3 f#5@2 e5, [d2,d3]@15 ~",
  K: "[d5,b5]@2 [d4,b4,d5]@3 f#5@2 [g1,e5], g1@13 ~@3, [g2,b3]@7 ~@9", // G C G
  L: "[d4,d5]@2 [f#4,d5,a5]@3 ~@2 e5, [d1,d2]@5 f#5@2 ~, ~@3 d1", M: "c#2@2 [c#1,e6]@2 a3 a1@3, ~ [e4,b4]",
  N: "~@5 f#5@2 [g1,e5], [g1,g2]@3 g1@4 ~, ~@2 [d4,b4]@3 ~@3", O: "[a1,c#2]@4 e6 f#6@3 [a1,e4,b4]@8, ~@4 a1@4 a3@3 ~@5",
  P: "~@4 e6 f#6@3 [e4,b4]@8, a1@15 ~", Q: "[d5,b5]@2 [d4,b4,d5]@3 f#5 d5 [g1,e5], g1@13 ~@3, g2@7 ~@9",
  R: "~ e5 [a3,f#4,d5]@2", S: "~@2 [f#4,d5,f#5,a5]@3 ~@2 e5, [d1,d2]@5 f#5@2 ~, ~@3 d1",
  T: "c#2@2 c#1@2 a3 a1@3, ~ [e4,b4]", U: "[d5,b5]@2 ~@3 f#5 d5 [g1,e5], [g1,g2]@3 g1@4 ~, ~@2 [d4,b4]@3 ~@3",
  V: "~ e6 [a3,f#4]@2", W: "d4@2 [f#4,d5,f#5,a5]@3 ~@2 e5, [d1,d2]@5 f#5@2 ~, ~@3 d1",
  X: "a1@2 a1@2 [a3,e4,b4] b4@3, ~ a1", // Asus2
})).s("gm_piano").gain(0.25)

stack(piano)