Strudelify
War cover art

1970 · War And Peace

War

Edwin Starr

KeyE♭ minorTempo108 bpm
0:00/0:00
// War — Edwin Starr
// 108 bpm, 4/4, key Eb minor. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(108/4)

const chords = arrange(
  // intro (2 bars)
  [2, "<~!2>"],
  // chorus (12 bars)
  [12, "<[Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb]>"],
  // verse (8 bars)
  [8, "<Ebm!8>"],
  // chorus (12 bars)
  [12, "<[Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb]>"],
  // verse (8 bars)
  [8, "<Ebm!8>"],
  // chorus (12 bars)
  [12, "<[Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb]>"],
  // verse (8 bars)
  [8, "<Ebm!8>"],
  // chorus (12 bars)
  [12, "<[Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb]>"],
  // verse (8 bars)
  [8, "<Ebm!8>"],
  // chorus (4 bars)
  [4, "<[Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb]>"],
  // fadeout (7 bars)
  [7, "<[Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2] [Eb5@2 Ab5 Gb] [Ebm@2 Gb@2]>"],
)
const bassline = arrange(
  [2, "<~!2>"],
  [12, "<[eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2]>"],
  [8, "<eb2!8>"],
  [12, "<[eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2]>"],
  [8, "<eb2!8>"],
  [12, "<[eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2]>"],
  [8, "<eb2!8>"],
  [12, "<[eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2]>"],
  [8, "<eb2!8>"],
  [4, "<[eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2]>"],
  [7, "<[eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2] [eb2@2 ab2 gb2] [eb2@2 gb2@2]>"],
)

// chords · gm_piano
const keys = chord(chords).voicing().s("gm_piano").gain(0.8)
// bass · gm_electric_bass_finger
const bass = note(bassline).s("gm_electric_bass_finger").gain(0.9)
// drums
const drums = s("[bd hh] [sd hh] [bd hh] [sd hh]").gain(0.8)

stack(keys, bass, drums)