Strudelify
I Want You To Want Me cover art

1979 · In Color

I Want You To Want Me

Cheap Trick

KeyA majorTempo180 bpm
0:00/0:00
// I Want You To Want Me — Cheap Trick
// 180 bpm, 4/4, key A major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 251 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(180/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 · overdriven guitar · "Rhythm"
const overdriven_guitar = note(`<
  A@4 B C D@2 E@3 F G@3 H I@3 J K@2 L F G@3 H I@3 M N@3 O P Q R S T@2 U V@2 ~ W X Y Z AA X AB ~ AC@2 AD AE AF AG AB F
  E@3 F G@3 H I@3 M K@2 L O E@3 F E@3 F P Q R S T@2 U V@2 ~ W X Y Z AA X AB ~ AC@2 AD AE AF AG AB ~ W X Y Z AA X AB ~
  AC@2 AD AE AF AG AB F E@3 F G@3 H I@3 M K@2 L AH E@3 F E@3 F P Q R S T@2 U V@2 ~ W X Y Z AA X AB ~ AC@2 AD AE AF AG AB
  F E@3 F G@3 H I@3 M K@2 L O E@3 F E@3 F P Q R S AI AJ U V@2 ~ W X Y Z AA X AB ~ AC@2 AD AE AF AG AB F E@3 F G@3 H I@3
  M K@2 L AK A@4 B C AL
>`.pickRestart({
  A: "[[e4,a4,c#5]@10 b4 a4 [e4,c#5]@2 c#5 a4@13 c#5 b4 a4@2, ~@7 e4@7 e4@2]/4", B: "[b3,d4,g4]", C: "[a3,d4,f#4]",
  D: "[[a3,c#4,e4]@7 a4]/2", E: "[c#5@8 b4@6 b4 b4@3 a4@6, [e4,a4]@2 ~]/3", F: "~@3 a4",
  G: "[c#5@8 b4@6 b4 b4@3 a4@6, [f#4,a4]@2 ~]/3", H: "~@3 e5", I: "[f#5@8 e5@6 e5 d5@3 d5@6, a4@2 ~]/3",
  J: "~ [a4,c#5,f#5]", K: "[e5@3 e5 d5@3 d5, [a4,c#5]]/2", L: "c#5 c#5@3, [e4,a4]", M: "~ f#5",
  N: "[e5@8 d5@6 d5 c#5@3 c#5@6, a4@2 ~, c#5@5 ~@3]/3", O: "~@7 f#4", P: "a4 a4@2 a4 b4@2 f#4@2, c#4",
  Q: "a4@4 ~@3 a4, d#4", R: "b4 b4@2 a4 b4@2 a4@2, d4", S: "b4@2 c#5@2 ~@3 f#4, e4",
  T: "[a4 a4@3 b4!2 f#4 ~@5 f#4 c#5@3, c#4 d#4, ~@7 a4@3 ~@6]/2", U: "[d4,b4]",
  V: "[~@4 b4@2 c#5 b4@3 [c#4,a4]@6, ~ d4 ~@2]/2", W: "a4!2 a4@2 c#5!2 c#5@2, e4 a4",
  X: "e5!2 e5@2 f#5@2 a5@2, [a4,c#5]!2", Y: "f#5 e5@2 ~, [g#4,b4]", Z: "~@2 c#5 b4, ~ g#4",
  AA: "a4!2 a4@2 c#5!2 c#5@2, f#4 a4", AB: "a5 f#5@2 ~, c5", AC: "[f#5 e5!7 f#5 e5!3 e5@2 c#5@2, [a4,c#5]@3 ~]/2",
  AD: "f#5 ~ a4@2, ~ e5@2 ~", AE: "f#4@2 c#5 b4, ~ a4", AF: "a4!2 a4@2 c#5!2 c#5@2, c#5 a4",
  AG: "e5!2 e5@2 f#5@2 a5@2, c5", AH: "~@3 f#4", AI: "a4 a4@3 b4!2 f#4 a4, c#4", AJ: "a4@2 ~@2 f#4 c#5@3, d#4",
  AK: "g3", AL: "[a3,c#4,e4,a4]",
})).s("gm_overdriven_guitar").gain(0.36).pan(0.3)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A@4 B C A@5 D E@3 F C@3 G A@3 D E@3 F C@3 G A@3 D E H B I E H B@2 E@2 A@2 F@2 E@2 C J A@2 F@2 E@2 C J A@3 D E@3 F C@3
  G A@3 D K ~@3 K ~@3 E H B I E H B@2 E@2 A@2 F@2 E@2 C J A@2 F@2 E@2 C J A@2 F@2 E@2 C J A@2 F@2 E@2 C J A@3 D E@3 F
  C@3 G A@3 D K ~@3 K ~@3 E H B I E H B@2 E@2 A@2 F@2 E@2 C J A@2 F@2 E@2 C J A@3 D E@3 F C@3 G A@3 D K ~@3 K ~@3 E H B
  I E H B@2 E@2 A@2 F@2 E@2 C J A@2 F@2 E@2 C J A@3 D E@3 F C@3 G A@3 B A@4 B C L
>`.pickRestart({
  A: "a2!4", B: "g2!4", C: "d2!4", D: "g#2!4", E: "f#2!4", F: "e2!4", G: "c#2!4", H: "b2!4", I: "a2!2 g#2!2",
  J: "d2 c#2 c2 b1", K: "a2 ~", L: "a2",
})).s("gm_electric_bass_finger").gain(0.36).pan(0.8)

stack(overdriven_guitar, bass)

More by Cheap Trick