Strudelify

Summertime Blues

The Who

KeyG majorTempo160 bpm
0:00/0:00
// Summertime Blues — The Who
// 160 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 82 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · electric guitar clean · "Guitar"
const electric_guitar_clean = note(`<
  A@2 B@2 C D C D B@2 C D C D B@2 C D B@2 C E F@2 ~@2 F@2 G H B@2 C D C D B@2 C D B@2 C D F@2 ~@2 F@2 G ~ B@2 C D C D
  B@2 C D B@2 C D F@2 ~@2 F@2 G ~ B@2 C D B@2 C D
>`.pickRestart({
  A: "f#2 g2!2 g2@2 g2!3", B: "f#2 g2!3 f#2 g2!3", C: "~ [g2,b2,d3]!3 [g2,c3,e3]@2 ~@2",
  D: "~ [f#2,a2,d3]!3 [g2,b2,d3]@2 ~@2", E: "~ [f#2,a2,d3]!3 [g2,b2,d3]@2 a2 b2", F: "b2 c3!3 b2 c3!3", G: "[b2,d3,g3]",
  H: "~@4 f#2 g2!3",
})).s("gm_electric_guitar_clean").gain(0.26)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@3 A B C B C D@2 B C B C D@2 B C D@2 B E F@2 ~@2 F@2 ~ G D@2 B C B C D@2 B C H@2 I C F@2 ~@2 F@2 ~ J H@2 I C I C H@2
  I C H@2 I C F@2 ~@2 F@2 ~ A D@2 B C D@2 B K
>`.pickRestart({
  A: "~@5 d1 e1 f#1", B: "g1!4 c2!4", C: "d2!4 g1!4", D: "g1!8", E: "d2!4 g1!2 a1 b1", F: "c2!8",
  G: "d2@2 d2@2 g2 d1 e1 f1", H: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~",
  I: "g1 ~ g1 ~ g1 ~ g1 ~ c2@2 c2@2 c2@2 c2@2", J: "d2@2 d2@2 g1 d1 e1 f#1", K: "d2!4 g1 ~@3",
})).s("gm_electric_bass_finger").gain(0.26)

// drums · kick
const kick = s("bd").struct("<~@4 A@20 ~@2 A@2 B ~ A@16 ~@2 A@2 ~@2 A@16 ~@2 A@2 B ~ A@7 C>".pickRestart({
  A: "x!2 ~ x!3 ~ x", B: "x", C: "x!2 ~ x!2 ~@3",
})).gain(0.46)

// drums · snare
const snare = s("sd").struct("<~@3 A B@20 ~ A B@2 C A B@13 D B@2 ~ A B@2 ~ A B@15 D ~ A B@2 C A B@7 E>".pickRestart({
  A: "~@5 x!3", B: "~ x ~ x", C: "x", D: "~@2 x ~@2 x!3", E: "~ x!2 ~",
})).gain(0.46)

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

// drums · crash
const crash = s("cr").struct(`<
  ~@4 A ~ A ~@3 A ~ A ~@3 A ~@3 A ~@5 A ~ A ~ A ~ A ~ A ~@9 A ~@3 A ~@5 A ~ A ~@11 A ~ A ~ A ~@3 A ~@3 A B
>`.pickRestart({
  A: "x", B: "x!2",
})).gain(0.46)

stack(electric_guitar_clean, bass, kick, snare, hihat, crash)

More by The Who