Strudelify

american woman

The Guess Who (original)

KeyC majorTempo85 bpm
0:00/0:00
// american woman — The Guess Who (original)
// 85 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5931603; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 48 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(85/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.

// other · lead 8 bass lead · "Flauta"
const lead_8_bass_lead = note("<~@15 A B A B A B A B ~@4 C B C B ~@8 A D E F G H I J K>".pickRestart({
  A: "~@6 a4!2", B: "a4 g4@3 ~@12", C: "~@14 a4 ~", D: "a4 ~ a#1 c2 ~ d#2 ~ f2 ~ f2 g2 a#2 c3 g2 a#2 c3, ~ g4@3 ~@12",
  E: "~ d#2 ~ f2 ~ f#2 g2 a#2 c3 g2 a#2 c3 ~ d#2 ~ f2, ~@6 a4!2",
  F: "a4 f#2 g2 a#2 c3 g2 a#2 c3 ~ d#2 ~ f2 ~ f#2 g2 a#2, ~ g4@3 ~@12",
  G: "c3 g2 a#2 c3 ~ d#2 ~ f2 ~ f#2 g2 a#2 c3 g2 a#2 c3, ~@6 a4!2",
  H: "a4 g4@2 f2 ~ f#2 g2 a#2 c3 g2 a#2 c3 ~ d#2 ~ f2, ~ d#2 ~@14",
  I: "~ f#2 g2 a#2 c3 g2 a#2 c3 ~ d#2 ~ f2 ~ f#2 g2 a#2, ~@6 a4!2",
  J: "[c3,a4] g2 a#2 c3 ~ d#2 ~ f2 ~ f#2 g2 a#2 c3 g2 a#2 c3, ~ g4@3 ~@12", K: "~ d#2 ~ f2 ~ f#2 g2 a#2 c3 ~@7",
})).s("gm_lead_8_bass_lead").gain(0.35).pan(1)

// other · slap bass 1 · "Xilòfon"
const slap_bass_1 = note("<~@8 A ~ A ~ A ~ A ~ A@8 ~@4 A@4 B@8 A@7 C>".pickRestart({
  A: "c6!4 c6@2 a#5@2 c6@4 ~@4", B: "b5!4 b5@2 a5@2 b5@4 ~@4", C: "c6!4 c6@2 a#5@2 c6@2 ~@6",
})).s("gm_lead_8_bass_lead").gain(0.3).pan(0.6)

// other · vibraphone · "Metalòfon"
const vibraphone = note("<~@8 A ~ A ~ A ~ A ~ A@8 ~@4 A@4 B@8 A@7 C>".pickRestart({
  A: "c5!4 c5@2 a#4@2 c5@4 ~@4", B: "b4!4 b4@2 a4@2 b4@4 ~@4", C: "c5!4 c5@2 a#4@2 c5@2 ~@6",
})).s("gm_vibraphone").gain(0.3).pan(0.8)

// drums · kick
const kick = s("bd").struct("x ~@2 x!2 ~@3").gain(0.35)

// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!47 [~ x ~@2]>").gain(0.3)

// drums · clap
const clap = s("cp").struct("<[~ x ~ x]!47 [~ x ~@2]>").gain(0.45)

// drums · hihat
const hihat = s("hh").struct("<[x!8]!47 [x!5 ~@3]>").gain(0.3)

// drums · open hat
const open_hat = s("oh").struct("<~@8 [x!8]!39 [x!4 ~@4]>").gain(0.3)

// drums · crash
const crash = s("cr").struct("<A ~@3 A ~@3 A ~@3 A ~@11 A ~@7 A ~@7 A ~@6 B>".pickRestart({
  A: "x", B: "~ x",
})).gain(0.35)

// drums · tambourine
const tambourine = s("tb").struct("<[~ x ~ x]!47 [~ x ~@2]>").gain(0.35)

// drums · rim
const rim = s("rim").struct("<[~ x ~ x]!47 [~ x ~@2]>").gain(0.4)

stack(lead_8_bass_lead, slap_bass_1, vibraphone, kick, snare, clap, hihat, open_hat, crash, tambourine, rim)