Strudelify
The Arms Of Orion cover art

1989 · The Arms of Orion

The Arms Of Orion

Prince (With Sheena Easton)

KeyD majorTempo125 bpm
0:00/0:00
// The Arms Of Orion — Prince (With Sheena Easton)
// 125 bpm, 4/4, key D major. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (6/8 at bar 1, 4/4 at bar 11) keep their bar lengths on a constant 4/4 grid of one bar per cycle
setcpm(125/4)

const chords = arrange(
  // intro (8 bars)
  [8, "<D5!3 ~ [D@1.5 Bm7@1.5 A] [A@2 G@1.5 D@0.5] [D Em7@1.5 A7sus@1.5] [A7sus@3 ~]>"],
  // verse (19 bars)
  [19, "<Dadd9 F#m11 G6 Dadd9 G6 Dadd9 Em7 [A7sus@2 A7@2] Dadd9 F#m11 G6 D Gadd9 D Em7 C^13 Bm9 A11!2>"],
  // chorus (12 bars)
  [12, "<D [A@2 D@2] G^13 Em7 D [A@2 D@2] G^13 Em7 C^13 Bm7 A11 A>"],
  // verse (19 bars)
  [19, "<Dadd9 F#m11 G6 Dadd9 Gadd9 Dadd9 Em [A7sus@2 A7@2] Dadd9 F#m11 G6 D Gadd9 D Em7 C^13 Bm9 A11 A7>"],
  // chorus (12 bars)
  [12, "<D [A@2 D@2] G^13 Em7 D [A@2 D@2] G^13 Em7 C^13 Bm7 A11 A>"],
  // bridge (8 bars)
  [8, "<Gadd9 Bm7 F#m11 Gadd9 C^13 Bm11 A11 A>"],
  // verse (16 bars)
  [16, "<Dadd9 F#m11 G6 Dadd9 Gadd9 D Em [A7sus@2 A7@2] Dadd9 F#m11 G6 Dadd9 Gadd9 D Em [A7sus@2 A7@2]>"],
  // verse (20 bars)
  [20, "<Dadd9 F#m11 G6 Dadd9 Gadd9 Dadd9 Em [A7sus@2 A7@2] D [A@2 D@2] G^13 Em7 D [A@2 D@2] G^13 Em7 C^13 Bm7 A11 A>"],
  // verse (8 bars)
  [8, "<D [A@2 D@2] G^13 Em7 D [A@2 D@2] G^13 Em7>"],
  // fadeout (4 bars)
  [4, "<C^13 Bm7 A11 A>"],
  // verse (12 bars)
  [12, "<D [A@2 D@2] G^13 Em7 D [A@2 D@2] G^13 Em7 C^13 Bm7 A11 A>"],
)
const bassline = arrange(
  [8, "<d2!3 ~ [d2@1.5 b2@1.5 c#2] [c#2@0.5 a2@1.5 g2@1.5 f#2@0.5] [f#2 e2@1.5 a2@1.5] [a2@3 ~]>"],
  [19, "<d2 f#2 g2 d2 g2 d2 e2 a2 d2 f#2 g2 d2 g2 d2 e2 c2 b2 a2!2>"],
  [12, "<d2 [a2@2 f#2@2] g2 e2 d2 [a2@2 f#2@2] g2 e2 c2 b2 a2!2>"],
  [19, "<d2 f#2 g2 d2 g2 d2 e2 a2 d2 f#2 g2 d2 g2 d2 e2 c2 b2 a2!2>"],
  [12, "<d2 [a2@2 f#2@2] g2 e2 d2 [a2@2 f#2@2] g2 e2 c2 b2 a2!2>"],
  [8, "<g2 b2 f#2 g2 c2 b2 a2!2>"],
  [16, "<d2 f#2 g2 d2 g2 d2 e2 a2 d2 f#2 g2 d2 g2 d2 e2 a2>"],
  [20, "<d2 f#2 g2 d2 g2 d2 e2 a2 d2 [a2@2 f#2@2] g2 e2 d2 [a2@2 f#2@2] g2 e2 c2 b2 a2!2>"],
  [8, "<d2 [a2@2 f#2@2] g2 e2 d2 [a2@2 f#2@2] g2 e2>"],
  [4, "<c2 b2 a2!2>"],
  [12, "<d2 [a2@2 f#2@2] g2 e2 d2 [a2@2 f#2@2] g2 e2 c2 b2 a2!2>"],
)

// chords · gm_piano
const keys = chord(chords).voicing().s("gm_piano").gain(0.8)
// bass · gm_electric_bass_finger
const bass = note(bassline).s("gm_electric_bass_finger").gain(0.9)
// drums
const drums = s("[bd hh] [sd hh] [bd hh] [sd hh]").gain(0.8)

stack(keys, bass, drums)