Strudelify

Movin' Out (Anthony's Song)

Billy Joel

KeyD minorTempo132 bpm
0:00/0:00
// Movin' Out (Anthony's Song) — Billy Joel
// 132 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 6 "WOODWINDS" pan flute (copy of ch 4 "WOODWINDS" flute)
// note: Full arrangement: all 122 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(132/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.

// other · piano · "LEFT"
const piano = note(`<
  A@2 B C A@2 D E A@2 B C F@3 G H I J K A@2 L M N O P Q N R S T@2 U C V W@2 E A@2 B C F@3 G H I J K A@2 L M N O P Q N R
  S T@2 U C V W@2 E A@2 B C F@3 G H I J K A@2 L M N O P Q N R S T@2 U C V W@2 E X Y Z AA X Y Z AB X Y Z AC AD AE AF AG
  AD AE AF AG AH
>`.pickRestart({
  A: "[d3@3 ~ d2@3 ~@3 a2 ~ ab2 ~ g2@7 ~@9 d3 ~]/2", B: "c3@5 ~@3 e2@5 ~@3", C: "f2@4 ~@2 a2 ~@3 c3@4 ~@2",
  D: "c3@5 ~@3 [e1,e2]@5 ~@3", E: "[f1,f2]@4 ~@2 [f1,f2] ~@3 [a1,a2] ~@3 [c1,c2] ~",
  F: "[d3@3 ~ d2@3 ~@3 a2 ~ ab2 ~ g2@7 ~@5 d3 ~ db3 ~ c3@7 ~@3 e2@5 ~@3]/3", G: "f2@4 ~@2 f2 ~@3 a2 ~@3 c3 ~",
  H: "d3@5 ~@3 d2@5 ~@3", I: "[g1,g2]@11 ~@5", J: "[bb1,bb2]@11 ~@5", K: "[e2,c3]@11 ~@5", L: "c3@5 ~@3 [e2,e3]@5 ~@3",
  M: "[f2,f3]@5 ~@3 [a2,a3]@5 ~@3", N: "[bb1,bb2]@5 ~@3 [d2,d3]@5 ~@3", O: "[c2,c3]@5 ~@3 [bb1,bb2]@3 ~ [bb1,bb2]@3 ~",
  P: "[a1,a2]@5 ~@3 [db2,db3]@5 ~@3", Q: "[d2,d3]@5 ~@3 [c2,c3]@5 ~@3", R: "[e2,e3]@11 ~@5", S: "[a1,a2]@11 ~@5",
  T: "[[d2,d3]@3 ~ [d2,d3]@3 ~@3 [a2,a3] ~ [ab2,ab3] ~ [g2,g3]@7 ~@9 [d2,d3] ~]/2", // D A Ab G D
  U: "[c2,c3]@3 ~ [c2,c3]@3 ~ e2@5 ~@3", V: "d3@3 ~ d2@3 ~@9", W: "[g2@5 ~@3 g2 ~ d3 ~ db3 ~ c3@7 ~@3 [e2,e3]@5 ~@3]/2",
  X: "[d1,d2]@5 ~@3 d2@3 ~ d2 ~ d2 ~", Y: "[g1,g2]@5 ~@3 g2@5 ~@3",
  Z: "[a1,a2] ~ a2@4 ~@2 a2@3 ~ a2@3 ~, ~@2 a1@11 ~@3", AA: "[d1,d2]@5 ~@3 d2@3 ~ d2@3 ~",
  AB: "[d1,d2]@3 ~ [d1,d2]@3 ~ [d1,d2]@3 ~ [d1,d2]@3 ~", AC: "[d1,d2]@4 ~@2 [d1,d2]@3 ~@3 [d1,d2]@4",
  AD: "[d1,d2]@5 ~@3 [gb1,gb2]@5 ~@3", AE: "[g1,g2]@5 ~@3 [g1,g2]@5 ~@3", AF: "[a1,a2]@5 ~@3 [a1,a2]@5 ~@3",
  AG: "[d1,d2]@5 ~@3 [d1,d2]@5 ~@3", AH: "[d1,d2]@3 ~@13",
})).s("gm_piano").gain(0.01)

// chords · piano · "RIGHT"
const piano_2 = note(`<
  A B C D A B C D A B C E A B C E A F G H I J K L M N O P Q R S T B U E T B V D A B C D A B C E A F G H I J K L M N O P
  Q R S T B U E T B V D A B C E A B C E A F G H I J K L M N O P Q R S T B U E T B V D W X@2 Y W X@2 Z W X@2 AA AB@3 AC
  AD AE@2 AF AG
>`.pickRestart({
  A: "[a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~", // Dm
  B: "[bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Bb
  C: "[g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [ab3,c4,e4] ~ [ab3,c4,e4] ~ [ab3,c4,e4] ~ [ab3,c4,e4] ~", // C Abaug
  D: "[a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~", // Am
  E: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  F: "[g3,b3,d4,f4]@11 ~@5", G: "[bb3,d4,f4] ~ [c4,e4,g4] ~ [d4,f4,a4] ~ [c4,e4,g4]@3 ~ [bb3,d4,f4]@4 ~@2",
  H: "~@2 [g3,c4,g4]@3 ~ [g3,c4,g4]@2 [g3,c4,g4]@3 ~ c4 ~@3", // C5
  I: "[a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [b3,d4,f4] ~", // Dm Bdim
  J: "[b3,d4,f4] ~ [b3,d4,f4] ~ [b3,d4,f4] ~ [b3,d4,f4] ~ [b3,d4,f4] ~ [b3,d4,f4] ~ [b3,d4,f4] ~ [b3,d4,f4] ~", // Bdim
  K: "[g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4]@5 ~@3", // Gm7
  L: "[f3,a3] ~ [g3,bb3] ~ [a3,c4] ~ [bb3,d4] ~ [c4,e4] ~ [d4,f4] ~ [e4,g4] ~ [f4,a4] ~", // F Gm Am Bb C Dm Em F
  M: "[d4,f4,bb4]@5 ~@3 [bb3,d4,f4]@5 ~@3", N: "[c4,e4,g4]@4 ~@2 [bb3,d4,g4]@3 ~ [bb3,d4]@4 ~@2",
  O: "[a3,db4,e4]@5 ~@3 [a3,db4,e4]@5 ~@3", P: "[a3,d4,f4]@5 ~@3 [a3,d4,f4]@5 ~@3",
  Q: "[bb3,d4,f4]@9 ~@3 [f3,bb3,d4]@4", R: "[bb3,d4,g4]@5 ~@3 [bb3,d4,g4]@5 ~@3", S: "[a3,db4,e4,g4]@11 ~@5",
  T: "[a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [bb3,d4,f4] ~", // Dm Bb
  U: "[g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4]@3 ~ [ab3,d4,f4] ~ [ab3,d4,f4] ~ [ab3,d4,f4]@3 ~", // Gm7 Ddim
  V: "[g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4]@3 ~ [ab3,c4,e4] ~ [ab3,c4,e4] ~ [ab3,c4,e4]@3 ~", // C Abaug
  W: "[a3,d4,gb4] ~ e4 ~ [a3,d4,gb4] ~ [a3,d4,gb4]@3 ~ [a3,d4,gb4,a4]@4 ~@2", // D
  X: "[[c4,e4,a4,c5]@3 ~ [b3,d4,g4,b4] ~ [b3,d4,g4,b4]@5 ~ [a3,db4,e4,a4] ~ [a3,db4,e4,a4]@5 ~ [a3,db4] ~ [a3,d4]@3 ~ [a3,e4]@4 ~@2]/2", // Am G A D5 A5
  Y: "[b3,d4,g4]@3 ~ [a3,d4,gb4] ~ [a3,d4,gb4]@3 ~ [a3,e4,g4] ~ [a3,d4,gb4] ~ [a3,db4,e4] ~", // G D A7 D A
  Z: "[b3,d4,g4]@3 ~ [a3,d4,gb4] ~ [a3,d4,gb4]@3 ~ [a3,d4,gb4]@4 ~@2", // G D
  AA: "[a3,d4,g4]@3 ~ [a3,d4,gb4] ~ [a3,d4,gb4]@3 ~ [a3,e4,g4] ~@5", // Dsus4 D A7
  AB: "[~@2 [a4,d5,gb5] ~@3 [a4,d5,g5] ~ [a4,d5,g5]@3 ~ [d5,gb5,a5] ~ c6 ~ c6@3 ~ [d5,g5,b5] ~ [d5,g5,b5]@5 ~ [d5,e5,a5] ~ [db5,e5,a5]@5 ~ [a4,db5] ~ [a4,d5]@3 ~ [a4,db5,e5]@4 ~@2, ~@14 [e5,a5]@5 ~@29]/3", // D Dsus4 D G Dsus2 A D5 A …
  AC: "[g4,e5,g5]@3 ~ [a4,d5,gb5] ~ [a4,d5,gb5]@3 ~ [a4,e5,g5] ~@3 [a4,e5] ~", // C D A7 A5
  AD: "[a4,d5,gb5]@3 ~ [a4,d5,gb5] ~ [b4,e5,g5]@3 ~ [c5,gb5,a5]@4 ~@2", // D Em Gbdim
  AE: "[[e5,a5,c6]@3 ~ [d5,g5,b5] ~ [d5,g5,b5]@5 ~ [e5,a5,db6] ~ [e5,a5,db6]@5 ~ [a4,db5] ~ [a4,d5]@3 ~ [a4,db5,e5]@4 ~@2]/2", // Am G A D5 A
  AF: "[b4,e5,g5]@3 ~ [a4,d5,gb5] ~ [a4,d5,gb5]@3 ~ [a4,e5,g5] ~ [a4,d5,gb5] ~ e5 ~", AG: "[a4,d5,gb5]@3 ~@13",
})).s("gm_piano").gain(0.01)

// chords · flute · "WOODWINDS"
const flute = note("<~@31 A@2 B@2 A@2 B@2 ~@23 A@2 B@2 A@2 B@2 ~@23 A@2 B@2 A@2 B@2 ~@21>".pickRestart({
  A: "[~@6 [a4,f5] ~ [bb4,g5] ~ [c5,a5] ~@3 [e5,c6]@5 ~ [d5,bb5] ~ [d5,bb5]@5 ~ [c5,a5] ~ [bb4,g5] ~]/2", // Dm Eb F C Gm F Eb
  B: "[~@6 [g4,e5] ~ [a4,f5] ~ [bb4,g5] ~@3 [d5,bb5]@5 ~ [c5,a5] ~ [c5,a5]@5 ~ [bb4,g5] ~ [a4,f5] ~]/2", // C Dm Eb Gm F Eb Dm
})).s("gm_flute").gain(0.51).pan(0)

stack(piano, piano_2, flute)

More by Billy Joel