Strudelify

Dancing Machine

Jackson 5

KeyG minorTempo116 bpm
0:00/0:00
// Dancing Machine — Jackson 5
// 116 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 44 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(116/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 · "Grand Piano"
const piano = note("<A@4 B@2 C@2 D@2 E@2 F G@5 H@4 I@2 J@2 K@2 L@2 M@3 N O M@2 N A@4 P@2>".pickRestart({
  A: "[[bb4,bb5]@3 g5 ~@2 [c5,c6]@3 ~ [g2,g3,g5]@2 [d5,d6]@3 ~@3 [bb2,bb3,bb5]@2 ~ [bb2,bb3,bb5]@3 ~@2 [g4,g5]!2 [bb4,bb5]@2 [c5,c6] ~ g2@3 ~@3 d2@2 [g2,c4,c5]@4 ~@4 [g2,a3]@3 ~@3 d2@2 [g2,a3]@4 [f3,f4]@4, ~@3 g4@3 ~@3 [bb4,bb5]@3 ~@3 [d5,d6]@11 ~@5 [f5,a5,bb5,d6]@25 a4@8, ~@4 [g2,g3,g5]@4 ~@16 [c3,c4]@7 a4 bb3@3 g2 d5@28, ~@24 c6@6 ~ g4@5 d4@4 ~@4 [bb3,bb4]@20, ~@31 [bb4,d5] g3@16 a4@3 g2 [g3,g4]@12]/4", // Bb C G D Bb G Bb C …
  B: "[[d4,bb4,d5]@2 bb3 a3 bb3 a3@2 ~@2 g3@2 ~@3 g3@2 [d4,bb4,d5]@2 bb3 a3 bb3 a3@2 ~@7 c3@2, f5, g4@23 a3 g2 g3 bb2 g3@5, g2@4 g2@3 a3 g2@3 g3 g2@4 g2@4 [g2,bb4]@4 [bb3,g4,bb4]@8, ~ [d4,bb4,d5] [d4,bb4,d5]@6 ~ [d4,bb4,d5] [d4,d5]@6]/2", // Gm Eb Gm D
  C: "[[d4,bb4,d5]@2 [d4,bb4,d5]@2 ~@2 a3@2 a3 g3@2 ~@3 f3@2 [bb3,d4,bb4,d5]@2 [d4,bb4,d5]@2 [g2,bb4]@4 g2@2 bb2@4 c3@2, f5, g4@3 [bb3,g4,bb4], g2@2 [d4,bb4,d5]@6 ~ g3@7, ~@2 bb3@2 g2@4 g2@3 g3 g2@4 g2@4 [d4,d5]@12]/2", // Gm Bb Gm Eb Gm D
  D: "[[d4,bb4,d5]@2 bb3 a3 bb3 a3@2 ~@2 g3@2 ~@3 a3@2 [d4,bb4,d5]@2 [bb3,d4,bb4,d5]@2 bb3@2 a3 ~@4 g3@3 [c3,g3]@2, f5, g4@23 a3 g2 g3 bb2@4 ~@2, g2@4 g2@3 a3 g2@3 a3 g2@4 g2@4 [g2,bb4]@4 [bb3,g4,bb4]@8, ~ [d4,bb4,d5] [d4,bb4,d5]@6 ~@2 [d4,d5]@6]/2", // Gm Bb C5 Gm Eb Gm D
  E: "[[d4,bb4,d5]@2 [d4,bb4,d5]@2 ~@2 a3@2 a3 g3@2 ~@3 f3@2 [bb3,d4,bb4,d5]@2 [d4,bb4,d5]@2 g2@4 g2@2 bb2@4 [c3,g3,g4,g5]@2, f5, g4@15 ~, g2@2 [d4,bb4,d5]@6 ~ g3@6 ~, ~@2 bb3@2 g2@4 g2@3 g3 g2@4 g2@4 [d4,bb4,d5]@12]/2", // Gm Bb Gm C5 Gm
  F: "[a3,bb3,a4,bb4,bb5]@2 a5@2 [g3,g4,g5]@2 [g3,g4,g5]@2 [g3,g4,bb5]@2 [a3,a4,a5] [g3,g4,g5]@3 [g3,g4,g5]@2, [d2,d3,f3,d4,f4] [eb2,eb3,bb3,eb4,bb4], ~ [a3,a4]@3 ~@4", // Bbmaj7 G Gm A G Dm Eb5 A
  G: "[[a4,bb5]@2 [a3,a5]@2 [g3,g4,g5]@2 [g3,g4,g5]@2 [d5,d6]@2 [c4,c5,c6]@2 [bb3,bb4,bb5]@2 g5 [bb4,bb5] [bb4,bb5]@2 [g4,g5] ~@3 [c5,c6]@3 ~ g2@2 [d5,d6]@3 ~@3 [bb2,bb3,bb4,bb5]@2 ~ [bb2,bb3,bb4,bb5]@3 ~@2 [g3,g4,g5]!2 [bb3,bb4,bb5]@2 c6 ~ g2@3 ~@3 d2@2 [g2,c4,c5]@4 ~@4 [g2,a4]@3 ~@3 d2@2 [g2,a4]@4 [f3,f4]@4, [e2,e3,bb3,e4,bb4]@8 [f2,d4]@8 ~@4 g2@4 ~ [bb4,bb5]@3 ~@12 [c4,c5,c6]@6 [c4,c5] [bb4,d5] g3@4 d4@4 ~@4 [bb3,bb4]@12 a3@8, [g3,g4]@4 ~@4 [g3,g4]@6 [g3,g4]@2 ~@2 g3@2 g3@6 g3@5 [d4,d5,d6]@11 ~@5 [f5,a5,bb5,d6]@33, ~@2 a4@6 [bb3,bb4]@4 ~@3 bb3@3 ~ [g4,g5]@13 ~@8 c3@7 g4@17 a3@3 g2 [g3,g4]@12, ~@47 a3 bb3@3 g2 d5@28]/5", // Bbmaj7 A G D C Bb G C …
  H: "[[bb3,bb4,bb5]@3 [g3,g5] ~@2 [c4,c5,c6]@3 ~ [g2,g3,g5]@2 [d4,d5,d6]@3 ~@3 [bb2,bb3,bb5]@2 ~ [bb2,bb3,bb5]@3 ~@2 [g3,g4,g5]!2 [bb3,bb4,bb5]@2 [c5,c6] ~ g2@3 ~@3 d2@2 [g2,c4,c5]@4 ~@4 [g2,a4]@3 ~@3 d2@2 [g2,a4]@4 ~@2 [d4,g4,d5,g5]!2, ~@3 g4@3 ~@3 [bb3,bb4,bb5]@3 ~@3 [d4,d5,d6]@11 ~@5 [f5,a5]@29 [f3,f4]@4, ~@4 [g2,g3,g5]@4 ~@16 c3@7 [bb5,d6]@13 bb4@4 a3@3 g2 g3@12, ~@24 [c4,c6]@6 c4 [a3,bb4,d5] [g3,bb3]@3 g2 d5@16 g4@4 a3@8, ~@31 g4@5 d4@4 ~@4 bb3@20]/4", // Bb G C G D Bb G Bb …
  I: "[[g2,g3,f4,g4,bb4,f5,bb5]@2 ~ [d4,g4,d5,g5] [g2,c4,c5]@2 ~ g2 [bb3,bb4] [a3,g4,a4] g2@2 [f4,bb4,f5,bb5] [e4,a4,e5,a5] [g3,d4,g4,d5,g5] [d4,d5,g5] ~@2 [f4,f5,bb5] [e4,a4,e5,a5] [d4,d5,g5]@4 [f4,f5,bb5] [e4,a4,e5,a5] [d4,g4,d5,g5] [d4,d5,g5] ~@2 [d4,g4,d5,g5]!2, ~ [bb2,bb3,bb4] ~ [d4,f4,bb4,d5,f5,bb5] bb2 [g3,g4]@2 e2@9, ~@9 [d4,d5,g5]@3 ~@3 [e3,g3,bb3]@17, ~@15 g4@5 g4@6 ~ g4@3 ~@2, ~@15 bb4@3 bb4@6 bb4@8]/2", // Gm7 G5 C5 Bb A7 Bb5 A5 G5 …
  J: "[[f2,f4,f5]@2 [f2,g3,bb3,f4,bb4,d5,f5]@2 ~@2 [f2,f4,f5]@2 [e2,e4,e5]@4 [f4,f5]!2 [gb2,g4,g5] [bb4,bb5] ~@2 [g3,bb3,bb4,d5]@2 ~@2 bb2 b2 c3@2 db3 ~@3 [d4,g4,d5,g5]!2, ~@4 [f2,f4,f5]@2 ~@6 f2@2 ~ g2@6 [g3,bb3,bb4,d5]@3 [g3,bb3,bb4]@8, ~@5 [g3,bb3,bb4,d5]@3 [g3,bb3,bb4,d5]@8 [g4,g5]@14 ~@2, ~@12 d5@3 ~, ~@27 d3@5]/2", // F Gm7 F E F Gmaj7 Bb Gm …
  K: "[[g2,g3,f4,g4,bb4,f5,bb5]@2 ~ [d4,g4,d5,g5] [g2,c4,c5]@2 ~ g2 [bb3,bb4] [a3,g4,a4] g2@2 [f4,bb4,f5,bb5] [e4,a4,e5,a5] [d4,g4,d5,g5]!2 bb4@2 [f4,f5,bb5] [e4,a4,e5,a5] [d4,d5,g5]@4 [f4,f5,bb5] [e4,a4,e5,a5] [d4,g4,d5,g5] [d4,d5,g5] ~@2 [d4,g4,d5,g5]!2, ~ [bb2,bb3,bb4] ~ [d4,f4,bb4,d5,f5,bb5] bb2 g3@3 [e3,g3,bb3]@8, ~@9 [d4,d5,g5]@3 ~@2 e2@18, ~@10 g4@4 ~@2 g4@4 g4@6 ~ g4@3 ~@2, ~@9 bb4@3 bb4@4]/2", // Gm7 G5 C5 Bb A7 Bb5 A5 G5 …
  L: "[[f2,f4,f5]@2 [f2,g3,bb3,f4,bb4,d5,f5]@2 ~@2 [f2,f4,f5]@2 [e2,e4,e5]@4 [f4,f5]!2 [gb2,g4,g5] [bb4,bb5] ~@2 [g3,bb3,bb4,d5]@2 ~@2 bb2 b2 c3@2 db3 ~@3 [g4,g5]@2, ~@4 [f2,f4,f5]@2 ~@6 f2@2 ~ g2@6 [g3,bb3,bb4,d5]@3 [g3,bb3,bb4,d5]@8, ~@5 [g3,bb3,bb4,d5]@3 [g3,bb3,bb4,d5]@8 [g4,g5]@14 ~@2, ~@27 d3@5]/2", // F Gm7 F E F Gmaj7 Bb Gm …
  M: "~@2 [g3,g4,g5]@2 [f3,f4,f5]@2 [g3,g4,g5]@2 [f4,f5] [gb4,gb5] [g4,g5] ~@3 [g4,g5]@2, [bb4,bb5]@3 ~ bb2@4, ~@8 [bb3,bb4]@3 [bb3,bb4]@5", // G F G F Gb G Bb
  N: "~@2 [c2,g3,g4,g5]@2 [c2,f3,f4,f5]@2 c2 d2 [f4,f5] [gb4,gb5] [g4,g5] d2@3 [f2,g4,g5]@2, [bb4,bb5]@3 [g3,g4,g5] bb2@4, ~@8 [bb3,bb4]@3 [bb3,bb4]@5, ~@9 d2@2 ~@5", // C5 F5 F Gb G Fsus2 Bb G …
  O: "g2@2 [g3,g4,g5]@2 [f3,f4,f5]@2 [g3,g4,g5]@2 [f4,f5] [gb4,gb5] [g4,g5] ~@3 [g4,g5]@2, [bb4,bb5]@3 ~ bb2@4, ~@8 [bb3,bb4]@3 [bb3,bb4]@5", // G F G F Gb G Bb
  P: "[[bb4,bb5]@3 g5 ~@2 [c5,c6]@3 ~ [g2,g3,g5]@2 [d5,d6]@3 ~@3 [d2,bb3,bb5]@2 ~ [d2,bb3,bb5]@3 ~@2 [g4,g5]!2 [bb4,bb5]@2 [c5,c6] [g2,g3,bb3,g4,bb4,d5,g5,bb5,d6], ~@3 g4@3 ~@3 [bb4,bb5]@3 ~@3 [d5,d6]@11 ~@6, ~@4 [g2,g3,g5]@4 ~@16 [f2,c4,c6]@7 ~]/2", // Bb C G D Gm G Bb C …
})).s("gm_piano").gain(0.26)

stack(piano)

More by Jackson 5