Strudelify
Wannabe cover art

1996 · Spice

Wannabe

Spice Girls

KeyB majorTempo114 bpm
0:00/0:00
// Wannabe — Spice Girls
// 114 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 1 "Bass" named as a bass, played on electric bass finger (its reed organ patch is not one)
// note: Full arrangement: all 75 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(114/4)

// 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.

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@6 A B A C A B A B ~@4 A B A B A B A B D B A B A B A B ~@5 B A B A B A B ~@8 A B A B A B A B A B A B A B A B ~@5
>`.pickRestart({
  A: "f#1 ~@2 f#1 g#1 ~@2 g#1", B: "e1@2 ~@4 e1@2 b1 f#2@2 b1 f#2@2 b1@2", C: "e1@3 ~@3 e1@2 b1 f#2@2 b1 f#2@2 b1@2",
  D: "[f#1,f#2]@3 ~", // F#
})).s("gm_electric_bass_finger").gain(0.51)

// bass · marimba
const bass_2 = note("<~@46 A ~ A ~ A ~ A ~@17 A ~ A ~@2>".pickRestart({
  A: "~@8 d1 d2@2 d1 d2@2 d1@2",
})).s("gm_electric_bass_finger").gain(0.51).pan(1)

// other · piano
const piano = note("<A B A B A C ~@8 A B A B ~@16 A B A B ~@8 A B A B A B A D ~@16 A B A B ~>".pickRestart({
  A: "[b1,b2]@3 ~@3 [b1,b2]@2 [d2,d3]@3 ~@3 [d2,d3]@2", // B D
  B: "[e2,e3]@3 ~@3 [e2,e3]@2 [a1,a2] ~@2 [a1,a2] ~@2 [a#1,a#2]@2", // E A A#
  C: "[e2,e3]@3 ~@3 e2@2 [a1,a2]@2 ~ [a1,a2]@2 ~ a#2@2, ~@6 e3 ~@7 a#1 ~", D: "[e2,e3] ~@7",
})).s("gm_piano").gain(0.51).pan(0.4)

// chords · epiano2 · "EPiano"
const epiano2 = note(`<
  ~@6 A B A B A B A B ~@4 A B A B A B A B ~ B A B A B A B ~@5 B A B A B A B ~@8 A B A B A B A B A B A B A B A B ~@5
>`.pickRestart({
  A: "[f#3,a#3,c#4]@3 [g#3,b3,d#4]@5", B: "[e3,g#3,b3]@3 [f#3,b3,d#4]@5",
})).s("gm_epiano2").gain(0.46).pan(0.7)

// other · tremolo strings · "String jab"
const tremolo_strings = note("<~@18 A@8 ~@13 A@2 B A@4 ~@8 A@16 ~@5>".pickRestart({
  A: "f#5 ~ f#5 ~ f#5 ~ f#5 ~", B: "f#5@2 ~@2 f#5@2 ~@2 f#5 ~@3 f#5@2 ~@2",
})).s("gm_tremolo_strings").gain(0.26).pan(0.1)

// chords · vibraphone · "Harmony"
const vibraphone = note("<~@18 A ~ B ~ C ~ D ~@13 E ~ B ~ E ~ B ~@9 F ~ B ~ C ~ D ~ A ~@3 G ~@7 F>".pickRestart({
  A: "[c#4,a#4]!5 ~ [d#4,b4]@2 [c#4,a#4]@2 ~@6", B: "[c#4,a#4] ~ [c#4,a#4] ~ [c#4,a#4]@2 [d#4,b4]@2 [c#4,a#4]@2 ~@6",
  C: "[c#4,a#4]!5 ~ [d#4,b4] ~ [c#4,a#4]@2 ~@6", D: "[c#4,a#4] ~ [c#4,a#4] ~ [c#4,a#4] ~ [d#4,b4]@2 [c#4,a#4]@2 ~@6",
  E: "[c#4,a#4]!4 [c#4,a#4]@2 [d#4,b4]@2 [c#4,a#4]@2 ~@6", // F# G#m F#
  F: "[c#4,a#4]!4 c#4@2 [d#4,b4]@2 [c#4,a#4]@2 ~@6, ~@4 a#4 ~@11", G: "a#4!5 ~ a#4 g#4@2 a#4 g#4 g4 f#4@3 ~",
})).s("gm_vibraphone").gain(0.36).pan(1)

// drums · kick
const kick = s("bd").struct("<[x!2]!5 x [x!2]!32 [~@5 x ~@2] [x!2]!14 x [x!2]!20 x>").gain(0.51)

// drums · clap
const clap = s("cp").struct("<[~ x ~ x]!5 [~@3 x] [~ x ~ x]!32 [~@3 x] [~ x ~ x]!14 [~@3 x] [~ x ~ x]!20 ~>").gain(0.51)

// drums · snare
const snare = s("sd").struct("<A@5 B A@28 C@4 B A@14 B A@20 ~>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~ x!3 ~ x!3",
})).gain(0.51)

// drums · hihat
const hihat = s("hh").struct("<A@5 B C@8 D@4 C@16 D@4 E C@7 D@7 B C@16 D@4 ~>".pickRestart({
  A: "x!4", B: "x ~@6 x", C: "x!2 ~ x!5", D: "x!8", E: "~@6 x!2",
})).gain(0.51)

// drums · open hat
const open_hat = s("oh").struct("<[~@15 x]!57 ~ x!17>").gain(0.51)

// drums · crash
const crash = s("cr").struct(`<
  A ~ A ~ A ~ A ~@7 A ~ A ~ A ~@7 A ~@7 A ~ A ~ A@2 ~@6 A ~ A ~ A ~ A ~ A ~@7 A ~@7 A ~ A ~ A
>`.pickRestart({
  A: "x",
})).gain(0.51)

// drums · tambourine
const tambourine = s("tb").struct("<A@5 ~@9 A@4 ~@16 A@4 ~@8 A@7 ~@17 A@4 ~>".pickRestart({
  A: "x!16",
})).gain(0.51)

// drums · triangle
const triangle = s("triangles:35").struct(`<
  ~@18
  [~ x ~ x ~ x ~ x]!8
  ~@13
  [~ x ~ x ~ x ~ x]!7
  ~@8
  [~ x ~ x ~ x ~ x]!16
  ~@5
>`).gain(4.46)

stack(
  bass, bass_2, piano, epiano2, tremolo_strings, vibraphone, kick, clap, snare, hihat, open_hat, crash, tambourine,
  triangle
)

More by Spice Girls