Strudelify
You Spin Me Around cover art

1985 · Youthquake

You Spin Me Around

Dead Or Alive

KeyG minorTempo130 bpm
0:00/0:00
// You Spin Me Around — Dead Or Alive
// 130 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 93 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A B C D@2 B C E F B C G@2 B C G@2 H I J F B C G@2 B C G@2 H I J F K F L A M F L N O P Q@2 B C G@2 B C E F H I J F M F
  E F M A L F B C R F B C E F H I S F M A E F M A E F M A E F M A E ~
>`.pickRestart({
  A: "~ g1@3 g2@2 ~ g1@3 g2@2 ~ g1@3 g2@3 g1@3 g2@2", B: "~ g1@3 g2@3 g1@3 g2@3 g1@3 g2@3 bb1@3 bb2@2",
  C: "~ c2@3 c3@3 c2@3 c3@3 c2@3 c3@3 c2@3 c3@2",
  D: "[~ c2@2 ~ c3@3 c2@2 ~ c3@3 c2@3 c3@2 ~ c2 d2@2 c2 bb1@2 g1@3 g2@2 ~ g1@3 g2@2 ~ g1@3 g2@3 g1@3 g2@2]/2",
  E: "~ c2@3 c3@3 c2@3 c3@2 ~ f2 d2@2 c2 bb1 ~ g1 f1 ~@2 bb1, ~@11 g1",
  F: "~ g1@2 ~ g2@2 ~ g1@3 g2@3 g1@3 g2@3 g1@3 g2@2",
  G: "[~ c2@2 ~ c3@3 c2@2 ~ c3@3 c2@3 c3@2 ~ c2 d2@2 c2 bb1@2 g1@2 ~ g2@2 ~ g1@3 g2@3 g1@3 g2@3 g1@3 g2@2]/2",
  H: "~ bb1@3 bb2@3 bb1@3 bb2@3 bb1@3 bb2@3 bb1@3 bb2@2", I: "~ c2@3 c3@3 c2@3 c3@3 c2@3 c3@3 c2 bb1 ~ g1 f1",
  J: "~ d2@2 ~ d3@3 d2@3 d3@2 ~ d2@3 d3@3 d2@3 d3@2", K: "~ bb1@3 bb2@3 bb1@3 bb2 ~@2 f1@3 f2@2 ~ f1@3 f2@2",
  L: "~ c2@3 c3@3 c2@3 c3@3 d2@3 d3@3 d2@3 d3@2", M: "~ bb1@3 bb2@3 bb1@3 bb2@2 ~ f1@3 f2@2 ~ f1@3 f2@2",
  N: "~ g1@3 g2@2 ~ g1@3 g2@2 ~ f1@3 f2@3 f1@3 f2@2", O: "~ eb1@3 eb2@3 eb1@3 eb2@2 ~ d1@3 d2@2 ~ d1@3 d2@2",
  P: "~ c1@3 c2@3 c1@3 c2@3 c1@3 c2@2 ~ c1@3 c2@2",
  Q: "[~ d1@3 d2@2 ~ d1@3 d2@2 ~ f2 d2 ~@2 bb1 ~ g1 f1@2 g1 bb1@2 g1@2 ~ g2@2 ~ g1@3 g2@3 g1@3 g2@3 g1@3 g2@2, ~@8 c2 ~@15]/2",
  R: "~ c2@3 c3@3 c2@3 c3@2 ~ c2 bb1@2 g1 f1 ~ bb1@2 ~ c2@2",
  S: "~ d2@3 d3@2 ~ d2@2 ~ d3@2 ~@2 d2 ~ c2 bb1 ~ g1 f1@2 g1 bb1, ~@13 f2@2 ~@9",
})).s("gm_electric_bass_finger").gain(0.61)

// chords · vibraphone
const vibraphone = note(`<
  A@8 ~@2 A@2 ~@2 A@6 ~@2 A@2 ~@2 A B A@2 C D A@2 E@2 A B A@2 ~@6 A@2 ~@2 A@6 F G H A@4 I J ~ A E ~@2 A@7 F K L M F M F
  M A@4 N O A P
>`.pickRestart({
  A: "~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 Gm7 Eb C7 G5 Dm7 Gm7 …
  B: "~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] [f4,d5] c6 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 Gm7 Eb C7 G5 Dm7 Dm …
  C: "~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5]", // G5 Dm7 Gm7 Eb C7 G5 Dm7 Gm7 …
  D: "bb5 [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 Gm7 Eb C7 G5 Dm7 D7 …
  E: "~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 Gm7 Eb C7 G5 Dm7 D7 …
  F: "~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] c5", // G5 Dm7 D7 Gm7 Eb C7 G5 Dm7 …
  G: "[g5,bb5] [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // Gm G5 Dm7 D7 Gm7 Eb C7 G5 …
  H: "~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] [f4,c6] d5 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 D7 Gm7 Eb C7 G5 Dm7 …
  I: "~ [d4,g5]!2 ~ [f4,d5,c6] [f4,d5] c6 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] c5", // G5 Dm7 Dm Gm7 Eb C7 G5 Dm7 …
  J: "[g5,bb5] ~@23", // Gm
  K: "[g5,bb5] [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] [f4,c6] d5 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // Gm G5 Dm7 D7 Gm7 Eb C7 G5 …
  L: "~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] ~ [f4,d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] c5", // G5 Dm7 D7 Gm7 Eb C7 G5 Dm7 …
  M: "[g5,bb5] [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // Gm G5 Dm7 D7 Gm7 Eb C7 G5 …
  N: "~ [d4,g5]!2 ~ [f4,d5,c6] [f4,d5] c6 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] ~", // G5 Dm7 Dm Gm7 Eb C7 G5 Dm7 …
  O: "[c5,g5,bb5] [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5] d4 g5 [f4,d5,c6] [f4,c6] d5 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // C7 G5 Dm7 Gm7 Eb C7 G5 Dm7 …
  P: "~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5] [f5,bb5] ~ g5 ~", // G5 Dm7 Gm7 Eb C7 G5 Dm7 Gm7 …
})).s("gm_vibraphone").gain(0.32)

// bass · slap bass 1 · "SLAP BASS"
const bass_2 = note(`<
  A@2 B@2 A C D B A@2 B@2 A C B@2 E F G H A@2 B@2 A C B@2 E F G H I J I K I J I K L M N O A@2 B@2 A C D B E F G H I J I
  K I J I K A@2 B@2 A C D B E F G H I J I K I J I K I J I K I J I K ~
>`.pickRestart({
  A: "~ g2 ~@2 g3@2 ~@4 g2 ~@2 g2 g3 ~@2 g2 ~ g3@2 ~ g2 ~", B: "~ c3 ~@2 c4@2 ~@4 c3 ~@2 c3 c4 ~@2 c3 ~ c4@2 ~ c3 ~",
  C: "~ g2 ~@2 g3 ~@5 g2 ~@2 g2 g3 ~@2 g2 ~ g3 ~@2 bb2 ~", D: "~ c3 ~@2 c4 ~@5 c3 ~@2 c3 c4 ~@2 c3 ~ c4 ~@2 c3 ~",
  E: "~ g2 ~@2 g3 ~@2 g3 ~@2 g2 ~@2 g3!2 ~@2 g3 ~@2 g3 ~ g3 ~",
  F: "~ bb2 ~@2 bb3 ~@2 bb3 ~@2 bb2 ~@2 bb3 ~@2 bb2 bb3 ~@2 bb3 ~ bb3 ~",
  G: "~ c3 ~@2 c4 ~@2 c4 ~@2 c3 ~@2 c4!2 ~@2 c4 ~@2 c4 ~ c4 ~",
  H: "~ d3 ~@2 d4 ~@2 d4 ~@2 d3 ~@2 d4 ~@2 d3 d4 ~@2 d4 ~ d4 ~", I: "~ g2 ~@2 g3 ~@5 g2 ~@2 g2 g3 ~@2 g2 ~ g3 ~@4",
  J: "~ bb2 ~@2 bb3 ~@5 bb2 ~@2 f2 f3 ~@2 f2 ~ f3 ~@4", K: "~ c3 ~@2 c4 ~@5 c3 ~@2 d3 d4 ~@2 d3 ~ d4 ~@4",
  L: "~ g2@2 ~ g3 ~@2 g3 ~@2 g2 ~@2 f2 f3 ~@2 f3 ~@2 f2 ~ f3 ~",
  M: "~ eb2@2 ~ eb3 ~@2 eb3 ~@2 eb2 ~@2 d2 d3 ~@2 d3 ~@2 d2 ~ d3 ~",
  N: "~ c2@2 ~ c3 ~@2 c3 ~@2 c3 ~@2 c4!2 ~@2 c3 ~@2 c3 ~ c3 ~",
  O: "~ d3 ~@2 d3 ~@2 d3 ~@2 d3 ~@2 d4!2 ~@2 d4 ~ d3@2 ~ d4@2",
})).s("gm_slap_bass_1").gain(0.8)

// chords · lead 7 fifths · "5thSAWWAVE"
const lead_7_fifths = note(`<
  A B C D A B C E F B C D A B C D A B C D A B C D A B C D A B C G H I J K J I L K M N O P Q B C D A B C D A B C G R S J
  K J I L K ~ T C U F B C G F T C V H W X K J Y Z K J I J K J W AA K ~
>`.pickRestart({
  A: "~ [bb4,d5,g5] ~@2 [d5,g5]@2 ~@18, ~@4 bb4 ~@19", B: "~@19 [d5,g5,bb5] ~@4", C: "~ [e5,g5,c6] ~@2 [e5,g5,c6] ~@19",
  D: "~@10 [g5,bb5,d6] ~@5 [f5,c6] ~@5 [d5,g5,bb5] ~, ~@8 a5 ~@3", // Gm F5 Gm
  E: "~ d3 a3 ~ g3 d3 ~ a4 g4 ~ [a4,g5,bb5,d6] d4 ~ [e4,g4] ~ [gb4,a4] [d5,f5,c6] [e5,g5] ~ [gb5,a5] d6 ~ [d5,g5,bb5,e6,g6] [gb6,a6], ~@8 a5 ~@3", // Gm Em Gbm Dm7 Em Gbm Em7b5 Gbm
  F: "~ [bb4,d5,g5,g6,bb6] ~@2 [bb4,d5,g5] ~@19", // Gm
  G: "~ d3 a3 ~ g3 d3 ~ a4 g4 ~ [a4,g5,d6] d4 ~ [e4,g4] [gb4,a4] ~ [f5,a5,c6]@2 [e5,g5] [gb5,a5] d6 ~ [d5,g5,bb5,e6,g6] [gb6,a6], ~@10 bb5@2 ~@4 d5 ~@7", // Dsus4 Em Gbm F Em Gbm Em7b5 Gbm
  H: "~ [bb5,d6,f6,g6,bb6] [bb5,d6,f6] ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6]!2", // Gm7 Bb
  I: "~ [bb5,d6,f6]!2 ~ [bb5,d6,f6]!2 ~@7 [a5,c6,f6]!2 ~ [a5,c6,f6] ~@5 [a5,c6,f6]!2", // Bb F
  J: "~ [bb5,d6,f6]!2 ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6]!2", // Bb
  K: "~ [c6,e6,g6]!2 ~ [c6,e6,g6]!2 ~@7 [d6,gb6,a6]!2 ~ [d6,gb6,a6] ~@5 [d6,gb6,a6]!2", // C D
  L: "~ [bb5,c6,d6,f6] [bb5,d6,f6] ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6]!2", // Bb
  M: "~ [g5,bb5,d6] ~@2 [g5,bb5,d6] ~@11 [f5,a5,c6] ~@5 [f5,a5,c6] ~", // Gm F
  N: "~ [g5,bb5]@2 ~ [eb5,g5,bb5] ~@11 [d5,gb5,a5]@2 ~@4 [d5,gb5,a5] ~, ~ eb5 ~@22", // Gm Eb D
  O: "~ [c5,e5,g5] ~@2 [c5,e5,g5] ~@11 [c5,e5,g5] ~@5 [c5,e5,g5] ~", // C
  P: "~ [d3,d5,gb5,a5] a3 ~ g3 d3 ~ a4 g4 ~ a4 d4 ~ [e4,g4,d5,gb5,a5] [gb4,a4,d5,gb5,a5] ~ d5 e5 g5 [d5,gb5,a5] [d5,gb5,a5,d6] ~ [d5,gb5,a5,e6,g6] [gb5,a5], ~@2 [d5,gb5,a5] ~@9", // D Gbm D
  Q: "[d5,gb6,a6] [bb4,d5,g5,g6,bb6] ~@2 [bb4,d5,g5] ~@19", // D Gm
  R: "~ [bb5,d6,f6,g6,bb6] [bb5,d6,f6] ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6] ~", // Gm7 Bb
  S: "[bb5,d6,f6]!3 ~ [bb5,d6,f6]!2 ~@7 [a5,c6,f6]!2 ~ [a5,c6,f6] ~@5 [a5,c6,f6]!2", // Bb F
  T: "~@19 [g5,bb5]@2 ~@3, ~@19 d5 ~@4", // Gm
  U: "~ d3 a3 ~ g3 d3 ~ a4 g4 ~ [a4,g5] d4 ~ [e4,g4] [gb4,a4] ~ [a5,c6]@2 [e5,g5] [gb5,a5] d6 ~ [d5,g5,bb5,e6,g6] [gb6,a6], ~@10 [bb5,d6]@2 ~@4 [d5,f5] ~@7", // A7 Em Gbm Am Em Gbm Em7b5 Gbm …
  V: "~ d3 a3 ~ g3 d3 ~ a4 g4 ~ a4 d4 ~ [e4,g4] [gb4,a4] ~ [d5,f5,a5] [e5,g5] ~ [gb5,a5] d6 ~ [d5,g5,e6,g6] [gb6,a6], ~@5 [g5,bb5,d6] ~@2 c6 ~@2 bb5", // Em Gbm Dm Em Gbm Em7 Gbm Gm
  W: "~ [bb5,d6,f6]!2 ~ [bb5,d6,f6]!2 ~@7 [a5,c6,f6]!2 ~ [a5,c6,f6] ~@5 [a5,c6,f6] ~", // Bb F
  X: "[a5,c6,f6] [bb5,d6,f6]!2 ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6]!2", // F Bb
  Y: "~ [bb5,d6,f6]!2 ~ [bb5,d6,f6]!2 ~@7 [a5,c6,f6]!2 ~ [a5,c6,f6] ~@5 [a5,c6,f6] f6", // Bb F
  Z: "[a5,c6] [bb5,c6,d6,f6] [bb5,d6,f6] ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6]!2", // Am Bb
  AA: "[a5,c6,f6] [bb5,c6,d6,f6] [bb5,d6,f6] ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6]!2", // F Bb
})).s("gm_lead_7_fifths").gain(0.56)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A B A C A@3 D A@7 E A@3 D A@7 C A B A B A B A C A B A C A@3 D A@7 C A B A@3 B A F A@7 C A@3 G H B A@3 B A F A
  B A@3 B A F ~
>`.pickRestart({
  A: "~ x ~@11 x ~@10", B: "~ x ~@11 x ~@5 x!2 ~ x!2", C: "~ x ~@11 x!2 ~ x!2 ~@6", D: "~ x ~@11 x ~@5 x ~@4",
  E: "~ x ~@11 x!2 ~@9", F: "~ x ~@11 x!2 ~ x!2 ~ x ~@2 x ~", G: "~ x ~@11 x!2 ~ x!2 ~ x!2 ~ x ~", H: "x!2 ~@11 x ~@10",
})).gain(0.47)

// drums · snare
const snare = s("sd").struct(`<
  A@7 B A@11 B A@11 B A@7 B A@3 B A@7 B A@3 C D A@2 E A@11 B A@7 E A@7 E A@4 F
>`.pickRestart({
  A: "~@7 x ~@11 x ~@4", B: "~@7 x ~@11 x!2 ~ x!2", C: "~@7 x ~@11 x!2 ~ x ~", D: "x ~@6 x ~@11 x ~@4",
  E: "~@7 x ~@9 x ~ x!2 ~ x!2", F: "~@11 x",
})).gain(0.47)

// drums · clap
const clap = s("cp").struct("~ x ~@2 x ~@5 x ~@2 x!2 ~@2 x ~ x ~@4").gain(0.47)

// drums · low tom
const low_tom = s("lt").struct("<~@92 [~@11 x]>").gain(0.78)

// drums · hihat
const hihat = s("hh").struct("<A@23 B C A@30 B C A@18 B C A@10 B C A@3 D>".pickRestart({
  A: "~@4 x!2 ~@4 x!2 ~@4 x!2 ~@4 x!2", B: "~@4 x!2 ~@4 x!2 ~@4 x!2 ~@4 x ~", C: "x ~@3 x!2 ~@4 x!2 ~@4 x!2 ~@4 x!2",
  D: "~@4 x!2 ~@4 x!2 ~@4 x!2 ~@6",
})).gain(0.47)

// drums · cowbell
const cowbell = s("cb").struct("<A@4 B@3 C A@15 D E A@30 D E D E A@16 D E A@10 D E A@4>".pickRestart({
  A: "~ x ~@2 x ~@5 x!2 ~@2 x ~ x!2 ~ x!2 ~ x!2", B: "~@4 x!2 ~@2 x ~ x!2 ~ x!2 ~ x!2 ~ x ~@2 x ~",
  C: "~@4 x!2 ~@2 x ~ x!2 ~ x!2 ~ x!2 ~@6", D: "~ x ~@2 x ~@5 x!2 ~@2 x ~ x!2 ~ x!2 ~ x ~",
  E: "x!2 ~@2 x ~@5 x!2 ~@2 x ~ x!2 ~ x!2 ~ x!2",
})).gain(0.54)

stack(bass, vibraphone, bass_2, lead_7_fifths, kick, snare, clap, low_tom, hihat, cowbell)

More by Dead Or Alive