Strudelify

Country Feedback

R.E.M.

KeyC majorTempo150 bpm
0:00/0:00
// Country Feedback — R.E.M.
// 150 bpm, 3/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 170 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(150/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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.

// bass · synth bass 2
const bass = note(`<
  A B C@2 D@4 E@2 F@2 G H I@2 J@2 K@2 ~ L M@2 N@2 O@2 P@3 ~ A B C@2 D@4 E@2 F@2 G H I@2 Q R@4 L M@2 N@2 O@2 P@3 ~ A B
  C@2 D@4 E@2 F@2 G H I@2 Q R@4 L M@2 N@2 O@2 P@3 ~ A B C@2 D@4 E@2 F@2 G H I@2 Q R@4 L M@2 N@2 O@2 P@3 ~ A B C@2 D@4
  E@2 F@2 G H I@2 Q R@4 L M@2 N@2 O@2 P@3 ~ A B C@2 S@4 T@2
>`.pickRestart({
  A: "e1@11 e1@5", B: "f#1@5 g1@11", C: "[g1@5 e1@5 ~ d1@10 c1@11]/2", D: "[c1@11 d1@10 g1@17 ~@5 d1@21]/4",
  E: "[c1@25 ~@7]/2", F: "[~@11 e1@10 e1@5 ~ f#1@5]/2", G: "g1@11 g1@5", H: "e1@5 d1@11", I: "[c1@11 c1@10 d1@11]/2",
  J: "[g1@15 g1@6 d1@11]/2", K: "[d1@11 e1@20 ~]/2", L: "~@5 e1@11", M: "[e1@5 f#1@5 ~ g1@10 g1@5 ~ e1@5]/2",
  N: "[d1@11 c1@10 c1@11]/2", O: "[d1@11 g1@17 ~@4]/2", P: "[d1@21 c1@25 ~@2]/3", Q: "g1",
  R: "[~@5 d1@21 ~ c1@25 ~@12]/4", S: "[c1@11 d1@10 g1@15 g1@7 d1@10 d1@11]/4", T: "[e1@5 ~@3]/2",
})).s("gm_synth_bass_2").gain(0.51)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@4 A B C D ~ E F ~@4 G ~@10 H ~ I ~ J K ~@4 A B C D ~ E F ~@4 G ~ L@2 ~ M ~@5 H ~ I ~ J K ~@4 A B C D ~ E F ~@4 G ~
  L@2 ~ M ~@5 H ~ I ~ J K ~@4 A B C D ~ E F ~@4 G ~ L@2 ~ M ~@5 H ~ I ~ J K ~@4 A B C D ~ E F ~@4 G ~ L@2 ~ M ~@5 H ~ I
  ~ J K ~@4 A B ~@4
>`.pickRestart({
  A: "~@11 d4@2 e4@3", B: "g4@5 ~@11", C: "~@11 f#3@2 g3@3", D: "f#3@11 ~@5", E: "~@5 b4@4 ~@2 b4@2 c5@3",
  F: "b4 c5 ~ b4@4 ~@9", G: "~@5 d4@3 e4@3 g4@5", H: "d4@3 e4@2 g4@5 ~@6", I: "f#3@3 g3@2 f#3@11", J: "~@11 b4@4 ~",
  K: "b4@3 c5@2 b4 ~ c5 b4@4 ~@4", L: "[~@5 f#3@3 g3@3 f#3@11 ~@10]/2", M: "b4@4 ~ b4@3 c5@3 b4 c5 b4@3",
})).s("gm_distortion_guitar").gain(0.51)

stack(bass, distortion_guitar)

More by R.E.M.