Strudelify

the wizard of oz - Red Shoe Blues

Andrew Lloyd Webber

KeyD♭ majorTempo120 bpm
0:00/0:00
// the wizard of oz - Red Shoe Blues — Andrew Lloyd Webber
// 120 bpm, 6/8, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (6/8 at bar 1, 9/8 at bar 26, 6/8 at bar 28) are rendered on a constant 6/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/227766; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 69 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/3)

// 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 · "MusicXML Part"
const piano = note(`<
  A B C D@2 E F G H I J K@2 L M N O P Q R@2 S T U V W X Y@3 Z AA AB AC AD AE AF AG AH AI AJ AK AL AM@2 AN AO AP AQ AR AS
  AT AU AV AW AX AY AZ BA AT BB BC BD ~@2 BE BF BG BH
>`.pickRestart({
  A: "~ bb3", B: "a3 bb3", C: "a3@8 ~@3 [db4,f4]@2 [db4,f4]@3", D: "~@3 [db4,f4]@3 ~@5 [db4,f4]@2 [db4,f4]@3",
  E: "~@3 [db4,f4]@3 ~@5 [bb3,db4]@2 [bb3,db4]@3", F: "~@3 [a3,c4]@2 [a3,c4]@3 ~@3 [f4,ab4]@2 [f4,ab4]@3",
  G: "~@3 [eb4,ab4]@3 ~@5 [eb4,gb4]@2 [db4,f4]@3", H: "~@3 [db4,f4]@3 ~@5 [db4,gb4]@2 [db4,gb4]@3",
  I: "~@3 [db4,f4]@2 [db4,f4]@3 ~@3 [b3,eb4]@2 [bb3,eb4]@3", J: "~@3 [bb3,f4]@2 [a3,f4]@3 ~@3 [bb3,db4,f4]@5",
  K: "~@3 [a3,c4,f4]@5 ~@3 [bb3,db4,f4]@5", L: "~@3 [bb3,db4,f4]@5 ~@3 [b3,eb4]!2 [db4,f4] ~ [d4,gb4]",
  M: "[eb4,g4] [d4,gb4] ~ [db4,f4] [b3,e4] [b3,eb4] ~ [bb3,d4] ~@3 [gb3,b3,eb4]@5", // Eb D Db E5 B Bb B
  N: "~@3 [gb3,b3,eb4]@5 ~@3 [gb3,b3,eb4]@5", O: "~@3 [gb3,b3,eb4]@5 ~@3 [bb3,c4,f4]@5",
  P: "~@3 [a3,c4,f4]@5 ~@3 [f4,a4] [e4,ab4] [eb4,ab4] ~ [d4,gb4]", // F E Ab5 D
  Q: "[db4,f4] [c4,e4] ~ [b3,eb4] [bb3,d4] [a3,b3] ~ [ab3,b3] [e4,bb4]@4 f4 gb4 ~ f4", // Db C B Bb Asus2 Abm Edim
  R: "e4@3 db4@2 f4@3 e4@4 f4 gb4 ~ f4", S: "e4@3 db4@2 f4@3 eb4 d4 ~ eb4 e4 f4 ~ gb4",
  T: "g4 gb4 ~ f4 e4 eb4 ~ e4 f4@4 gb4 g4 ~ gb4", U: "f4@3 d4@2 gb4@3 f4@4 gb4 g4 ~ gb4",
  V: "f4@3 d4@2 gb4@3 f4@4 gb4 ab4 ~ gb4", W: "f4@3 g4@2 a4@3 db5 c5 ~ db5 d5 eb5 ~ e5",
  X: "f5 e5 ~ f5 gb5 g5 ~ ab5 a5 ab5 ~ a5 bb5 b5@3", Y: "~@3 [eb4,g4]@2 [eb4,g4]@3 ~@3 [eb4,g4]@3 ~@2",
  Z: "~@3 [c4,eb4]@2 [c4,eb4]@3 ~@3 [b3,d4]@2 [b3,d4]@3", AA: "~@3 [g4,bb4]@2 [g4,bb4]@3 ~@3 [f4,bb4]@3 ~@2",
  AB: "~@3 [f4,ab4]@2 [eb4,g4]@3 ~@3 [eb4,g4]@3 ~@2", AC: "~@3 [eb4,ab4]@2 [eb4,ab4]@3 ~@3 [eb4,g4]@2 [eb4,g4]@3",
  AD: "~@3 [db4,f4]@2 [c4,f4]@3 ~@3 [c4,g4]@2 [b3,g4]@3", AE: "g5 g4 ~ g5 g4 ab5 ~ ab4 g5 g4 ~ g5 g4 ab5 ~ ab4",
  AF: "bb5 bb4 ~ bb5 bb4 ab5 ~ ab4 g5 g4 ~ g5 g4 ab5 ~ ab4", AG: "bb5 bb4 ~ bb5 bb4 ab5 ~ ab4 g5 g4 ~ g5 g4 eb5 ~ eb4",
  AH: "f5 f4 ~ f5 f4 f5 ~ f4 f5 f4 ~ f5 f4 f5@3", AI: "a4 ab4 ~ g4 gb4 f4 ~ bb4 a4 ab4 ~ a4 ab4 g4 ~ ab4",
  AJ: "~@3 f5 e5 eb5 ~ d5 ~@3 db5 d5 eb5 ~ e5", AK: "~@3 f5 e5 eb5 ~ e5 ab5 a5 ~ ab5 f5 d5 ~ db5",
  AL: "c4@3 g4!2 g4@3 g4 ab4 ~ a4 bb4 b4 ~ c5", AM: "[f5,db6]@3 ~@5 [ab4,f5]@3 ~@5",
  AN: "[f3,ab3,c4,d4]@8 [ab3,b3,d4,f4]@3 [ab3,b3,d4,g4] ~@4", AO: "c4 b3 ~ c4 db4 d4 ~ eb4 e4 eb4 ~ e4 f4 gb4 ~ g4",
  AP: "ab4 a4 ~ bb4 b4 c5 ~ db5 d5 eb5 ~ e5 f5 gb5 ~ g5",
  AQ: "[ab4,ab5]@3 [g3,g4]@2 [ab3,ab4]@3 ~@3 [a3,a4]@2 [ab3,ab4]@3, ~@3 [db4,e4]@5 ~@3 [c4,eb4]@5", // Ab G Ab A Ab Dbm Cm
  AR: "~@3 [g3,g4]@2 [ab3,ab4]@3 ~@3 [a3,b3,eb4,a4]@2 [ab3,ab4]@3, ~@3 [db4,e4]@5 ~@8", // G Ab B7 Ab Dbm
  AS: "~@3 [g3,g4]@2 [db4,e4]@5 ~ [ab3,ab4]@3 ~@2", // G Dbm Ab
  AT: "~@3 [d4,gb4] [eb4,g4] [e4,ab4] ~ [f4,a4] [gb4,bb4] [f4,a4] ~ [e4,ab4] [eb4,g4] [d4,gb4] ~ [db4,f4]", // D Eb E F Gb F E Eb …
  AU: "~@3 [f3,f4]@2 [gb3,gb4]@3 ~@3 [g3,g4]@2 [gb3,gb4]@3, ~@3 [a3,d4]@5 ~@3 [a3,d4]@5", // F Gb G Gb D5
  AV: "~@3 [f3,f4]@2 [gb3,gb4]@3 ~@3 [a3,d4,a4]@2 [gb3,gb4]@3, ~@3 [a3,d4]@5 ~@8", // F Gb D5 Gb D5
  AW: "~@3 [g3,g4]@2 [db4,eb4]@5 ~ [ab3,ab4]@3 ~@2", // G Dbsus2 Ab
  AX: "~@3 [ab4,c5] [ab4,b4] [gb4,bb4] ~ [f4,a4] [e4,ab4] [eb4,g4] ~ [d4,gb4] [db4,f4] [c4,e4] ~ [b3,eb4]", // Ab Abm Gb F E Eb D Db …
  AY: "~@3 [g3,g4]@2 [ab3,ab4]@3 ~@3 [a3,a4]@2 [ab3,ab4]@3, ~@3 [db4,e4]@5 ~@3 [c4,eb4]@5", // G Ab A Ab Dbm Cm
  AZ: "~@3 [g3,g4]@2 [ab3,ab4]@3 ~@3 [a3,eb4,a4]@2 [ab3,ab4]@3, ~@3 [db4,e4]@5 ~@3 c4@5", // G Ab Adim Ab Dbm
  BA: "~@3 [g3,g4]@2 [ab3,ab4]@3 ~@3 [a3,a4]@2 [ab3,ab4]@3, ~@3 [db4,e4]@5 ~@3 [db4,e4]@5", // G Ab A Ab Dbm
  BB: "~@3 [f3,f4]@2 [gb3,gb4]@3 ~@3 [g3,a3,eb4,g4]@2 [gb3,gb4]@3", // F Gb Am7b5 Gb
  BC: "~@3 [f3,f4]@2 [gb3,gb4]@3 ~@3 [a3,a4]@2 [gb3,gb4]@3, ~@3 [a3,d4]@5 ~@3 d4@5", // F Gb A Gb D5
  BD: "~@3 [g3,g4]@2 [ab3,ab4]@3 ~@3 [a3,a4]@2 [ab3,ab4]@3, ~@3 [db4,eb4]@5 ~@3 [c4,eb4]@5", // G Ab A Ab Dbsus2 Cm
  BE: "[ab4,db5,e5,ab5]@3 [ab4,db5,e5,ab5]@2 [a4,db5,e5,a5]@3 [ab4,b4,eb5,ab5]@3 [ab4,b4,eb5,ab5]@2 [a4,a5]@3", // Dbm A Abm A
  BF: "[b4,e5,ab5,b5]@3 [b4,e5,ab5,b5]@2 [a4,a5]@3 [ab4,db5,e5,ab5]@3 [ab4,db5,e5,ab5]@2 [e4,e5]@3", // E A Dbm E
  BG: "d4 eb4 ~ e4 f4 gb4 ~ g4 ab4 a4 ~ bb4 b4 c5 ~ db5",
  BH: "d5 eb5 ~ e5 f5 gb5 ~ g5 [ab4,ab5] [bb4,bb5] ~ [c5,c6] [db5,db6]@3 ~", // Ab Bb C Db
})).s("gm_piano").gain(0.2)

// other · piano · "MusicXML Part"
const piano_2 = note(`<
  ~@2 A B C@2 D E F G H I J K L@2 M I N O@2 P Q R@2 S T U V U W X Y Z AA AB AC AD AE AF@2 AG AH AI AJ AK AL AM AN AO AP
  AQ@2 AR AS AT AN AO AP AQ@2 AR AS ~@2 AU AV AW AX
>`.pickRestart({
  A: "~ bb3", B: "a3 ab3", C: "a3 bb3", D: "f3 db4", E: "c4 b3", F: "bb3 a3", G: "ab3 gb3", H: "f3@8 [bb1,bb2]@3 ~@5",
  I: "[f1,f2]@3 ~@5 [bb1,bb2]@3 ~@5", J: "[f2,f3]@3 ~@5 [bb1,bb2]@3 ~@5", K: "[bb1,bb2]@3 ~@5 [b1,b2]@3 ~@5",
  L: "[gb1,gb2]@3 ~@5 [b1,b2]@3 ~@5", M: "[eb2,eb3]@3 ~@5 [f2,f3]@3 ~@5", N: "~@3 [f2,f3]@2 [f1,f2]@3 bb2@3 [f3,bb3]@5",
  O: "f2@3 [bb2,f3]@5 bb2@3 [f3,bb3]@5", P: "bb2@3 [f3,bb3]@5 b2@3 [gb3,b3]@5", Q: "gb2@3 [gb3,b3]@5 b2@3 [gb3,b3]@5",
  R: "gb2@3 [b2,gb3]@5 b2@3 [gb3,b3]@5", S: "[f2,f3]@8 bb1@3 ~@5",
  T: "[bb1,bb2]@3 [a1,a2]@2 [gb1,gb2]@3 [g1,g2]@3 ~@2 g1@3", U: "[c3,c4] [b2,b3]", V: "[bb2,bb3] [b2,b3]",
  W: "[c3,c4] [g2,g3]", X: "[eb3,eb4] [d3,d4]", Y: "[db3,db4] [c3,c4]", Z: "[b2,b3] [bb2,bb3]", AA: "[ab2,ab3] [g2,g3]",
  AB: "[c1,c2]@3 [g2,eb3]@5 g1@3 [c2,g2]@5", AC: "c2@3 [g2,eb3]@5 g1@3 [c2,g2]@5",
  AD: "c2@3 [g2,eb3]@5 c2@3 [g2,eb3]@5", AE: "db2@3 [ab2,f3]@2 ab1@3 [f2,db3]@3 db1@2 [db2,ab2]@3",
  AF: "db2@3 [ab2,f3]@5 ab1@3 [db2,ab2]@5", AG: "d2@3 [ab2,d3]@5 ~@3 [g1,g2]@5",
  AH: "c3@3 g3 gb3 f3 ~ e3 eb3 d3 ~ db3 c3 b2 ~ bb2", AI: "db2@3 [db3,f3,ab3]@3 ~@2 ab1@3 [db3,f3,ab3]@3 ~@2",
  AJ: "db2@3 [db3,f3,ab3]@3 ~@2 db2@3 ~@5", AK: "[g1,g2]@8 [g1,g2]@3 [g1,g2]@3 ~@2",
  AL: "g3 gb3 ~ f3 e3 eb3 ~ d3 db3 c3 ~ b2 bb2 a2 ~ ab2", AM: "g2 gb2 ~ f2 e2 eb2 ~ d2 db2 c2 ~ b1 bb1 a1 ~ ab1",
  AN: "[db2,db3]@3 ~@5 [ab1,ab2]@3 ~@5", AO: "[db2,db3]@3 ~@5 [ab2,ab3]@3 ~@5", AP: "[db2,db3]@3 ~@5 [db2,db3]@3 ~@5",
  AQ: "[d2,d3]@3 ~@5 [a1,a2]@3 ~@5", AR: "[d2,d3]@3 ~@5 [gb2,gb3]@3 ~@5", AS: "[ab2,ab3]@3 ~@5 [ab1,ab2]@3 ~@5",
  AT: "[db2,db3]@3 ~@8 [ab2,ab3]@2 [ab1,ab2]@3", AU: "db2@3 [db3,e3,ab3]@5 ab1@3 [b2,eb3,ab3]@5",
  AV: "db2@3 [db3,e3,ab3]@5 db2@3 [db3,e3,ab3]@5", AW: "d1",
  AX: "d3 db3 ~ c3 b2 bb2 ~ a2 [ab1,ab2] [e1,e2] ~ [eb1,eb2] [db1,db2]@3 ~", // Ab E Eb Db
})).s("gm_piano").gain(0.3)

stack(piano, piano_2)

More by Andrew Lloyd Webber