Strudelify
Song 2 cover art

1997 · Blur

Song 2

Blur

KeyA minorTempo130 bpm
0:00/0:00
// Song 2 — Blur
// 130 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: bank select 127 on channel 5 is ignored: the parts fit General MIDI, not the Roland MT-32 map it names
// note: ch 4 "guitar 4" named as a guitar, played on electric guitar clean (its synth bass 2 patch is not one)
// note: duplicate parts dropped: ch 2 "guitar 2" acoustic guitar steel (copy of ch 1 "guitar 1" acoustic guitar steel); ch 5 "guitar 5" overdriven guitar (copy of ch 4 "guitar 4" electric guitar clean); ch 9 "vocals" tenor sax (copy of ch 8 "vocals" alto sax)
// note: Full arrangement: all 65 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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 · acoustic guitar steel · "guitar 1"
const acoustic_guitar_steel = note("<~@4 A B A C ~@8 A B A B A B A B ~@14 A B A B A B A B ~@19>".pickRestart({
  A: "~@2 [f3,c4]@2 [f3,c4]@2 [f3,c4]!2 [d#3,a#3]@2 [d#3,a#3]@2 [d#3,a#3]@2 [d#3,a#3]!2", // F5 D#5
  B: "[g#3,d#4]!2 [a#3,f4] [c4,g4]@2 [c4,g4,c5]!3", C: "[g#3,d#4,g#4]!2 [a#3,f4,a#4] [c4,g4,c5]@2 [c4,g4,c5]!3",
})).s("gm_acoustic_guitar_steel").gain(0.8).pan(0.2)

// other · distortion guitar · "guitar 3"
const distortion_guitar = note("<~@7 A B@8 C ~@7 B@6 D B@7 ~@8 B@14 E@4 F>".pickRestart({
  A: "~@12 d#5 d#5@3", B: "[a4,a5]@2 [a4,a5]@2 [a4,a5]@2 [a4,a5]!2 [a4,a5]@2 [a4,a5]@2 [a4,a5]@2 [a4,a5]!2",
  C: "[a4,a5] ~@7", D: "~@2 [a4,a5]@2 [a4,a5]@2 [a4,a5]!2 [a4,a5]@2 [a4,a5]@2 [a4,a5]@2 [a4,a5]!2",
  E: "[c5,c6]@2 [c5,c6]@2 [c5,c6]@2 [c5,c6]!2 [c5,c6]@2 [c5,c6]@2 [c5,c6]@2 [c5,c6]!2", F: "[a4,c5,a5,c6] ~@15",
})).s("gm_distortion_guitar").gain(0.32)

// chords · electric guitar clean · "guitar 4"
const electric_guitar_clean = note(`<
  ~@8 A B A B A B A B ~@8 A B A B A B C D E@2 A B A B ~@8 A B A B A B C D E@2 A B A B A B A B F
>`.pickRestart({
  A: "[f2,c3]!4 [d#2,a#2]!4", B: "[g#2,d#3]!2 [a#2,f3] [c3,g3]@2 [c3,g3]!3", C: "[f2,c3]!8", D: "[g#2,d#3]!8",
  E: "[c#3,g#3]!8", F: "[f2,c3]@3 ~@13",
})).s("gm_electric_guitar_clean").gain(0.8).pan(0.3)

// other · distortion guitar · "guitar 6"
const distortion_guitar_2 = note("<~@34 A B A B ~@20 A B A B C ~@2>".pickRestart({
  A: "~@4 g#2@2 f2@2 g#2@2 f2@3 ~@3", B: "g#2!2 a#2 c3@3 c3@2", C: "~@2 g#2 f2 g#2@2 c3@2",
})).s("gm_distortion_guitar").gain(0.8)

// bass · electric bass pick · "bass"
const bass = note(`<
  ~@8 A B A B A B A B ~@8 A B A B A B C D E F A B A B ~@8 A B A B A B C D E F A B A B A B A B G
>`.pickRestart({
  A: "f1!4 d#1!4", B: "g#1!2 a#1 c2@2 c2!3", C: "f1!8", D: "g#1!8", E: "c#2!8", F: "c#2!4 g#2@2 c#3@2", G: "f1@3 ~@13",
})).s("gm_electric_bass_pick").gain(0.8)

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

// drums · snare
const snare = s("sd").struct(`<
  [~@2 x ~@3 x!2]!8
  [~ x ~ x]!8
  [~@2 x ~@3 x!2]!8
  [~ x ~ x]!14
  [~@2 x ~@3 x!2]!8
  [~ x ~ x]!18
  ~
>`).gain(0.8)

// drums · hihat
const hihat = s("hh").struct("<[x!8]!8 ~@8 [x!8]!8 ~@14 [x!8]!8 ~@19>").gain(0.8)

// drums · mid tom
const mid_tom = s("mt").struct("<[~@2 x ~@3 x!2]!8 ~@8 [~@2 x ~@3 x!2]!8 ~@14 [~@2 x ~@3 x!2]!8 ~@19>").gain(0.8)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@8 A B A B A B A B ~@8 A B A B A B A B A B A B A B ~@8 A B A B A B A B A B A B A B A B A B ~
>`.pickRestart({
  A: "~ x!7", B: "x!6 ~@2",
})).gain(0.8)

// drums · crash
const crash = s("cr").struct(`<
  ~@8 A B A B A B A B ~@8 A B A B A B A B A B A B A B ~@8 A B A B A B A B A B A B A B A B A B A
>`.pickRestart({
  A: "x", B: "~@3 x",
})).gain(0.8)

stack(
  acoustic_guitar_steel, distortion_guitar, electric_guitar_clean, distortion_guitar_2, bass, kick, snare, hihat,
  mid_tom, open_hat, crash
)

More by Blur