Strudelify

What's the Frequency, Kenneth? (radio version)

R.E.M.

KeyD majorTempo96 bpm
0:00/0:00
// What's the Frequency, Kenneth? (radio version) — R.E.M.
// 96 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 92 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(96/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.

// chords · overdriven guitar · "Guitar 1"
const overdriven_guitar = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V S W X E F G H I J K L M N O P Q R S T U V S W Y Z AA AB AC Z AC AD AE AF E
  F G H I J K L M N O P Q R S T U V S W AG AH S AI AG AH S AI AG AH S AI AG AH S AI AJ
>`.pickRestart({
  A: "[d4,a4,d5,f#5]@4 [d4,a4,d5,f#5]@3 [d4,a4,d5,f#5]@2 [d4,a4,d5,f#5] [d4,a4,d5,f#5]@2 [d4,a4,d5,f#5]@2 [a3,d4,g4]@2", // D Dsus4
  B: "[g3,b3,d4,g4]@4 [g3,b3,d4,g4,d5,g5]@3 [g3,b3,d4,g4,d5,g5]@2 [g3,b3,d4,g4,d5,g5] [g3,b3,d4,g4,d5,g5]@2 [g3,b3,d4,g4,d5,g5]@2 [g3,b3,d4,g4,d5,g5]@2", // G
  C: "[d4,a4,d5,f#5]@4 [d4,a4,d5,f#5]@3 [d4,a4,d5,f#5]@2 [d4,a4,d5,f#5] [d4,a4,d5,f#5]@2 [a3,e4]@2 [d4,g4]@2", // D A5 G5
  D: "[g3,b3,d4,g4]@4 [g3,b3,d4,g4,d5,g5]@3 [g3,b3,d4,g4,d5,g5]@2 [g3,b3,d4,g4,d5,g5] [g3,b3,d4,g4,d5,g5]@2 [g3,b3,d4,g4]@2 [a3,d4,g4]@2", // G Dsus4
  E: "[a3,e4]@2 a4 [a3,d4] [d4,a4,d5,f#5]@2 [d4,a4,d5,f#5] a3", // A5 D5 D
  F: "[b3,f#4,b4,d5]@4 [b3,f#4,b4,d5]@2 [a3,d4,g4,b4]@2 [g3,d4,g4]@4 [g3,d4,g4,d5,g5]@2 a3!2", // Bm G G5
  G: "[a3,e4]@4 [a3,e4]@3 b4 a3 d4 [d4,a4,d5,f#5]@2 [d4,a4,d5,f#5]@2 [d4,g4,b4]@2", // A5 D G
  H: "[a3,e4]@4 [a3,e4]@5 [d4,g4,b4]!3 [b3,d4,g4,b4]!2 [a3,d4]@2", // A5 G D5
  I: "[a3,e4]@4 a4@2 a3@2 [a3,d4,a4,d5]@4 [d4,a4,d5,f#5]@2 [g4,b4] ~", // A5 D5 D G
  J: "[b3,f#4,b4]@2 [b3,f#4,b4,d5] [a3,d4,g4] [g3,d4,g4] [g3,b3,d4,g4,d5,g5]!2 g4", // B5 Bm Dsus4 G5 G
  K: "[a3,e4]@4 [a3,e4,a4]@2 a3!3 [d4,a4,d5,f#5] [d4,a4,d5,f#5]@2 [d4,a4,d5,f#5]@2 a3!2", // A5 D
  L: "[b3,f#4,b4]@4 [b3,f#4,b4,d5]@2 a3!2 [e3,b3,e4,g#4] ~ [e3,b3]@4 a3@2", // B5 Bm E E5
  M: "[g3,d4,g4]@4 [g3,d4,g4,d5,g5]@3 [g3,d4,g4,d5,g5] d4 e4 [g3,d4,g4]@4 b3@2", // G5
  N: "[a3,e4]@4 [a3,e4,a4,c#5]@3 [a4,c#5] [e4,a4,c#5] f#4 [a3,e4,a4,c#5]@2 [a3,e4]@2 [a4,c#5]@2", // A5 A A5 A
  O: "[g3,b3,d4,g4,d5,g5]@4 [g3,b3,d4,g4,d5,g5]@3 [g3,b3,d4,g4,d5,g5] d4 e4 [g3,d4,g4]@4 b3@2", // G G5
  P: "a3@4 [a3,e4,a4]@3 [a4,c#5] [a3,e4,a4] f#4 [a4,c#5]@2 [a3,e4]@2 [a3,d4,g4]@2", // A5 A A5 A A5 Dsus4
  Q: "[a3,d4,a4,d5,f#5]@2 [a3,d4,a4,d5,f#5]!2 [a3,e4]@2 [a3,e4]!2", // D A5
  R: "[a3,d4,a4,d5,f#5]@2 [d4,a4,d5,f#5] [d4,a4,d5,g5] [g3,d4,g4]@2 [g3,d4,g4,d5,g5] a3", // D Dsus4 G5
  S: "[a3,e4]@4 [a3,e4]@3 [a3,e4] [a3,e4]@2 [a3,e4]@2 [a3,e4]@2 [g4,b4]!2", // A5 G
  T: "[g3,d4,g4,d5,g5]@2 [g3,d4,g4,d5,g5]@2 [g3,d4,g4,d5,g5]@2 [a3,e4,a4]@4 [a3,e4,a4]@2 a3@2 a3 [a3,d4]", // G5 A5 D5
  U: "[a3,d4,a4,d5,f#5]@4 [a3,d4,a4,d5,f#5]@2 [a3,d4,a4,d5,f#5]!2 [a3,e4]@4 [a3,e4]@2 a3 [a3,e4]", // D A5
  V: "[a3,d4,a4,d5,f#5]!3 [d4,a4,d5,g5]@2 [g3,d4,g4,d5,g5] b3 [d4,g4]", // D Dsus4 G5
  W: "[g3,b3,d4,g4]@2 [g3,b3,d4,g4] [b3,d4,g4] [a3,e4,a4]@2 [a3,e4,a4] [a3,d4,g4,d5,g5]", X: "[d4,a4,d5,f#5]@7 [a3,e4]",
  Y: "~@12 e4 f#4 a4@2, [d4,d5,f#5], a4@13 c#4@3", Z: "[b3,f#4]@7 f#5@2 d5 b4@4 [a3,e4]@2",
  AA: "[a3,e4]@8 e4 f#4 a4@2 e4@2 d4@2, ~@3 b3", AB: "[b3,f#4,a4]@7 f#5@2 d5 ~@2 d4@2 [a3,e4]@2, ~@5 b4@2 ~",
  AC: "[a3,e4]@8 e4 f#4 a4@2 e4@2 d4@2", AD: "~@8 e4 f#4 a4@2 e4@2 d4@2, [a3,e4] ~, ~@3 d4@2 ~@3",
  AE: "[g3,d4,g4]@2 [g3,d4,g4,d5,g5] a3 [a3,e4]@4", AF: "[a3,d4,a4,d5,f#5]@7 [a3,e4]",
  AG: "[a3,d4,a4,d5,f#5]@4 [a3,d4,a4,d5,f#5]@2 [a3,d4,a4,d5,f#5]!2 [a3,e4]@4 [a3,e4]@2 a3 [a3,d4]", // D A5 D5
  AH: "[a3,d4,a4,d5,f#5]!3 [g3,d4,g4,d5,g5]@2 [g3,d4,g4,d5,g5] b3 [d4,g4]", // D G5
  AI: "[g3,d4,g4,d5]@4 [g3,d4,g4,d5]@2 [a3,e4]@4 [a3,e4,a4,c#5]@2 a3@2 [a3,d4]!2", AJ: "[a3,d4,a4,d5,f#5]",
})).s("gm_overdriven_guitar").gain(0.47)

// chords · overdriven guitar · "Guitar 3"
const overdriven_guitar_2 = note(`<
  ~@16 A ~ A ~ A ~ A ~@14 A ~ A ~ A ~ A ~@23 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@2
>`.pickRestart({
  A: "~@8 [a2,e3,a3]!8", // A5
})).s("gm_overdriven_guitar").gain(0.54)

stack(overdriven_guitar, overdriven_guitar_2)

More by R.E.M.