Strudelify
Street Spirit cover art

1994 · The Bends

Street Spirit

Radiohead

KeyA minorTempo140 bpm
0:00/0:00
// Street Spirit — Radiohead
// 140 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 144 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): O'Brien-Acoustic Guitar.
setcpm(140/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 · electric guitar clean · "J. Greenwood-Clean Guitar"
const electric_guitar_clean = note(`<
  A B A B A B A B A B A B A B A B C D C E A B A B F G H I A B A B F G H I A B A B A B A B C D C E A B A B F G H I A B A
  B F G H I A B A B F G H I A B A B F G H I J@8 K L K M J@2 N O P@2 Q@2 N R S R T U V W N X N Y T U V Z N X S AA T U V W
  AB X S Y T U AC AD N X S AE T AF AC AD A AG@3
>`.pickRestart({
  A: "~ a3 ~ a3 ~ a3 ~ a3, a2, ~ e4 d4 e4", B: "~ a3 ~ a3 ~ a3 e3 a3, c4 e4 b3 ~",
  C: "~ e3 ~ e3 ~ e3 ~ e3, e2, ~ e4 d4 e4", D: "~ e3 ~ e3 ~ a3 e3 a3, c4 e4 b3 ~", E: "~ e3 ~ e3 ~ a3 e3!2, c4 e4 b3 ~",
  F: "~ g3 ~ g3 ~ g3 ~ g3, c3, ~ e4 d4 e4", G: "~ g3 ~ g3 ~ g3 e3 g3, c4 e4 b3 ~",
  H: "~ e3 ~ e3 ~ e3 ~ e3, b2, ~ e4 d4 e4", I: "~ e3 ~ e3 ~ e3!2 c4, c4 e4 b3 ~",
  J: "[~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 [e3,c5] a3, a2 ~, ~@4 [e4,c5]@4 b4@11 ~@13, ~@2 d4 e4 c4 [e4,a4] [b3,b4] ~]/2", // C A5 B
  K: "~ e3 ~ e3 ~ e3 ~ e3, e2, ~ [e4,c5] [d4,b4] [e4,g4]", // C G Em
  L: "~ e3 ~ e3 ~ a3 e3 a3, [c4,c5]@2 [e4,b4]@2 g4@3 ~, ~@2 b3 ~", // C E5
  M: "~ e3 ~ e3 ~ a3 e3!2, [c4,c5]@2 [e4,b4]@2 g4@3 ~, ~@2 b3 ~", // C E5
  N: "~ a3 ~ a3 ~ a3 ~ a3, a2, ~ [e4,c5] [d4,b4] [e4,a4]", O: "~ a3 ~ a3 ~ a3 [e3,c5] a3, [c4,e5] [e4,a4] [b3,b4] ~",
  P: "[~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 [e3,c5] g3, c3 ~, ~@4 [e4,c5]@4 b4@11 ~@13, ~@2 d4 e4 c4 [e4,a4] [b3,b4] ~]/2", // C A5 B
  Q: "[~ e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3 [e3,c5] c4, b2 ~, ~@4 [e4,c5]@4 b4@11 ~@13, ~@2 d4 e4 c4 [e4,a4] [b3,b4] ~]/2", // C A5 B
  R: "~ a3 ~ a3 ~ a3 [e3,a4] a3, [c4,e4] [e4,c5] [b3,b4] ~", S: "e4 a3 ~ a3 ~ a3 ~ a3, a2, ~ [e4,c5] [d4,b4] [e4,a4]",
  T: "~ g3 ~ g3 ~ g3 ~ g3, c3, ~ [e4,c5] [d4,b4] [e4,a4]", U: "~ g3 ~ g3 ~ g3 [e3,c5] g3, [c4,e4] [e4,a4] [b3,b4] ~",
  V: "~ e3 ~ e3 ~ e3 ~ e3, b2, ~ [e4,c5] [d4,b4] [e4,a4]", W: "~ e3 ~ e3 ~ e3 [e3,c5] c4, [c4,b4] [e4,a4] [b3,b4] ~",
  X: "~ a3 ~ a3 ~ a3 [e3,a4] a3, [c4,e5] [e4,c5] [b3,b4] ~", Y: "~ a3 ~ a3 ~ a3 [e3,a4] a3, [c4,g4] e4 [b3,g4] ~",
  Z: "~ e3 ~ e3 ~ e3 [e3,c5] c4, [c4,e4] [e4,a4] [b3,b4] ~", AA: "~ a3 ~ a3 ~ a3 [e3,g4] a3, [c4,e5] [e4,c5] [b3,b4] ~",
  AB: "a4 a3 ~ a3 ~ a3 ~ a3, a2, ~ [e4,c5] [d4,b4] [e4,a4]", AC: "~ e3 ~ e3 ~ e3 ~ e3, b2, ~ [e4,c5] [d4,b4] [e4,g#4]",
  AD: "~ e3 ~ e3 ~ e3 [e3,c5] c4, [c4,e4] [e4,g#4] [b3,b4] ~", // C E B
  AE: "~ a3 ~ a3 ~ a3 [e3,e4] a3, [c4,e5] [e4,c5] [b3,b4] ~", // E C B
  AF: "~ g3 ~ g3 ~ g3 [e3,c5] g3, [c4,b4] [e4,a4] [b3,b4] ~", // C Cmaj7 A5 B
  AG: "[~@2 a3@2 ~@2 a3@2 b3@3 a3@2 ~@5 a2@22 ~@8, c4@4 e4@4 ~@5 e3@27 ~@8, ~@2 a3@3 ~]/3",
})).s("gm_electric_guitar_clean").gain(0.48)

// bass · electric bass finger · "C. Greenwood-Fingered Bass"
const bass = note(`<
  ~@24 A@2 B@2 C@2 D@2 A@2 B@2 C@6 D@2 B@4 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 E@3 F E@3 F
  G@4 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 H@2 I J K L K M H@2 I J K L K M H@2 N O K L K M H@2 I@2 P@4
>`.pickRestart({
  A: "[c2@29 ~@3]/2", B: "[e1@29 ~@3]/2", C: "[a1@26 ~@2 e2@3 ~]/2", D: "[a1@13 ~ e2 d2]/2", E: "[a1@15 ~]/3",
  F: "~@12 e2@3 ~", G: "[e1@61 ~@3]/4", H: "c2@3 ~ c2@3 ~ c2@3 ~ c2@2 g1@2", I: "e1@3 ~ e1@3 ~ e1@3 ~ e1@3 ~",
  J: "e1@3 ~ e1@3 ~ e1@3 ~ e2@3 ~", K: "a1@3 ~ a1@3 ~ a1@3 ~ a1@2 e1@2", L: "a1@2 e1@2 a1@3 ~ a1@3 ~ a1@2 e1@2",
  M: "a1@2 e1@2 a1@3 ~ a1@3 ~ e2@2 d2@2", N: "e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~", O: "e2@3 ~ e2@3 ~ e2@3 ~ d2@3 ~",
  P: "[a1@7 ~]/4",
})).s("gm_electric_bass_finger").gain(0.42)

// other · string ensemble 1 · "Slow String Ensamble"
const string_ensemble_1 = note(`<
  ~@52 A@2 B@6 A@2 B@6 A@2 B@6 A@2 C@2 ~@16 A@2 B@6 A@2 B@6 A@2 B@6 A@2 C@2 D@4 A@2 C@2 D@4 A@2 C@2 ~@4
>`.pickRestart({
  A: "[f5@29 ~@3]/2", B: "[~@32 a4@61 ~@3, e5@31 ~]/6", C: "[e5@29 ~@3]/2", D: "[a4@61 ~@3]/4",
})).s("gm_string_ensemble_1").gain(0.19)

// drums · kick
const kick = s("bd").struct("<~@67 A B@12 ~@15 A B@15 A B@28 ~@4>".pickRestart({
  A: "x!8", B: "x!2 ~@2",
})).gain(0.31)

// drums · rim
const rim = s("rim").struct("<~@36 [x!4]!104 ~@4>").gain(0.24)

// drums · snare
const snare = s("sd").struct(`<
  ~@68 A@2 B A B A B A@3 B C ~@16 A@2 B A B A B A@3 B C B A B ~ A@2 B A B A B A@3 B C B A B A@3 B C B A B A@3 B C ~@4
>`.pickRestart({
  A: "~@4 x ~@2 x", B: "~ x ~@2 x ~@2 x", C: "~ x",
})).gain(0.31)

// drums · low tom
const low_tom = s("lt").struct("<~@67 [x!8] ~@27 [x!8] ~@15 [x!8] ~@32>").gain(0.28)

// drums · hihat
const hihat = s("hh").struct("<~@36 [x!8]!104 ~@4>").gain(0.24)

// drums · crash
const crash = s("cr").struct("<~@68 x ~@27 x ~@15 x ~@31>").gain(0.31)

// drums · ride bell
const ride_bell = s("rd").struct("<~@68 [x!2]!12 ~@16 [x!2]!44 ~@4>").gain(0.24)

// drums · triangle
const triangle = s("triangles:35").struct("<~@44 x ~@95 x ~@3>").gain(2.74)

stack(electric_guitar_clean, bass, string_ensemble_1, kick, rim, snare, low_tom, hihat, crash, ride_bell, triangle)

More by Radiohead