Strudelify
Walking Contradiction cover art

1995 · Insomniac

Walking Contradiction

Green Day

KeyA majorTempo159 bpm
0:00/0:00
// Walking Contradiction — Green Day
// 159 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: duplicate parts dropped: ch 2 overdriven guitar (copy of ch 1 "Billy J. A." distortion guitar); ch 5 "Mike D. 2" electric bass pick (copy of ch 4 "Mike D." electric bass pick)
// note: Full arrangement: all 96 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(159/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · distortion guitar · "Billy J. A."
const distortion_guitar = note(`<
  A B C@2 D E F E G E F E G E F E G E F E H E F E G E F E G E F E G E F E G E F E H I J I J I J I J E F E G E F E G E F
  E G E F E G E F E H I J I J I J I J I J I J I J I J E F E G E F E K@4
>`.pickRestart({
  A: "~@2 [a2,e3,a3]@2 [e3,a3]@2 ~ [e3,a3] ~ [e3,a3] ~@2 [e3,a3] ~@2 [e3,a3]", // A5
  B: "~ [e3,a3] ~@2 [e3,a3] ~ [e3,a3] ~@2 [e3,a3] ~ [e3,a3] ~@2 [e3,a3] ~", // A5
  C: "[[e3,a3]@2 ~ [e3,a3]@2 [e3,a3]@2 ~ [d3,g3]@2 [a2,e3,a3]@2 ~ [a2,e3,a3]@2 [a2,e3,a3]@2 ~ [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 ~ [a2,e3,a3]@2 [a2,e3,a3]@2 ~ [a2,e3,a3]@2]/2", // A5 G5 A5
  D: "[a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 ~ [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 ~ [a2,e3,a3]@2", // A5
  E: "[a2,e3,a3]@3 ~ [a2,e3,a3] ~ [d3,a3,d4] ~ [d3,a3,d4]@3 ~ [e2,b2,e3] ~ [g2,d3,g3] ~", // A5 D5 E5 G5
  F: "~@2 [g2,d3,g3]@3 ~ [a2,e3,a3] ~ [a2,e3,a3]@3 ~ [a2,e3,a3] ~ [g2,d3,g3] ~", // G5 A5 G5
  G: "~@2 [g2,d3,g3]@3 ~ [a2,e3,a3] ~ [a2,e3,a3]@4 ~@2 [g2,d3,g3] ~", // G5 A5 G5
  H: "~@2 [g2,d3,g3]@3 ~ [a2,e3,a3] ~ [a2,e3,a3]@5 ~@3", // G5 A5
  I: "[d3,a3,d4]@3 ~ [d3,a3,d4] ~ [e2,b2,e3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [a2,e3,a3]@2", // D5 E5 G5 A5
  J: "~@2 [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~", // A5
  K: "[~@2 [g2,d3,g3]@3 ~@2 [a2,e3,a3]@2 [a2,e3,a3]@40 ~@15]/4", // G5 A5
})).s("gm_distortion_guitar").gain(0.49).pan(0)

// bass · electric bass pick · "Mike D."
const bass = note(`<
  A B C@2 D E F G H I F J K E F G H I F J K E F G H I F J K E F G H I F J K E F G H L M L M L M L N E F G H I F J K E F
  G H I F J K E F G H L M L M L M L M L M L M L M L N I F J K I F G O@4
>`.pickRestart({
  A: "~@2 a1@2 a1@2 ~ a1 ~ a1 ~@2 a1 ~@2 a1", B: "~ a1 ~@2 a1 ~ a1 ~@2 a1 ~ a1 ~@2 a1 ~",
  C: "[a1@2 ~ a1@2 a1@2 ~ g1@2 a2@2 ~ a2@2 a2@2 ~ a2@2 a2@2 a2@2 ~ a2@2 a2@2 ~ a2@2]/2",
  D: "g2@2 ~@2 f#2@2 ~@3 e2@2 d2@2 ~ c#2@2", E: "a1@3 ~ c2 ~ e2 ~ d2@3 ~ e1 ~ g1 ~",
  F: "~@2 g1@3 ~ a1 ~ a1@3 ~ a1 ~ g1 ~", G: "a1@3 ~ a1 ~ e2 ~ d2@3 ~ e1 ~ g1 ~", H: "~@2 g1@3 ~ a1 ~ a2@4 ~@2 g1 ~",
  I: "a1@3 ~ a1 ~ d2 ~ d2@3 ~ e1 ~ g1 ~", J: "a1@3 ~ a1 ~ e2 ~ d2@3 ~ e2 ~ g2 ~",
  K: "g2 ~ g2 ~ f#2 ~ f#2 ~ e2 ~ e2 ~ d2 ~ g#1 ~", L: "d2@3 ~ d2 ~ e1 ~ g1 ~ g1 ~ g1 ~ a1@2",
  M: "~@2 a1 ~ b1 ~ b1 ~ c#2 ~ c#2 ~ e2 ~ e2 ~", N: "~@2 a1 ~ a2 ~ a1 ~ a1 ~ a2 ~ a2 ~ a1 ~",
  O: "[~@2 g1@3 ~@2 a1@2 a1@40 ~@15]/4",
})).s("gm_electric_bass_pick").gain(0.52).pan(0)

// drums · kick
const kick = s("bd").struct(`<
  A B C D E F G F G F G F G F G F G F G F H F G F G F G F G F G F G F G F G F G F I J K J K J K J L F G F G F G F G F G
  F G F G F G F G F L J K J K J K J K J K J K J K J L F G F G F G F M ~@3
>`.pickRestart({
  A: "~@4 x ~@2 x ~ x ~@2 x ~@2 x", B: "~ x ~@2 x ~ x ~@2 x ~ x ~@2 x ~", C: "x ~@2 x ~ x ~@2 x ~@4 x ~ x",
  D: "~@2 x ~ x ~ x ~@2 x ~ x ~@2 x ~", E: "x ~ x ~ x ~@2 x ~@8", F: "x ~@2 x!2 ~@2 x", G: "~ x ~ x!2 ~@2 x",
  H: "~ x ~@6", I: "~ x ~@2 x ~ x ~", J: "x ~@3 x!2 ~ x", K: "~ x ~ x!3 ~ x", L: "~ x ~ x!2 ~ x ~",
  M: "~@2 x ~@4 x ~ x ~@6",
})).gain(0.76)

// drums · snare
const snare = s("sd").struct("<~@4 A B@15 C B@19 D B@7 D B@19 C B@15 D B@7 E ~@3>".pickRestart({
  A: "~@9 x!3 ~ x!3", B: "~ x ~ x", C: "~@4 x ~@5 x!6", D: "~@4 x ~@3 x!8", E: "~@5 x ~@10",
})).gain(0.76)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@2 A ~@2 B C@2 D B C@2 D B C@2 D B C@2 E B C@2 D B C@2 D B C@2 D B C@2 D B C@2 E ~@8 B C@2 D B C@2 D B C@2 D B C@2 D
  B C@2 E ~@16 B C@2 D B C@2 ~@4
>`.pickRestart({
  A: "~@5 x ~@10", B: "~ x!3", C: "x!4", D: "x!3 ~", E: "x!2 ~@2",
})).gain(0.76)

// drums · crash
const crash = s("cr").struct(`<
  A ~ B C D E ~@2 F E ~@2 F E ~@2 F E ~@2 G E ~@2 F E ~@2 F E ~@2 F E ~@2 F E ~@3 H ~ H ~ H ~ H ~ E ~@2 F E ~@2 F E ~@2
  F E ~@2 F E ~@2 G H ~ H ~ H ~ H ~ H ~ H ~ H ~ H ~ E ~@2 F E ~@2 I ~@3
>`.pickRestart({
  A: "~ x ~@6", B: "~@5 x ~@2", C: "~@7 x", D: "~@7 x ~@8", E: "x", F: "~@3 x", G: "~ x", H: "x ~@6 x", I: "~@9 x ~@6",
})).gain(0.76)

// drums · ride bell
const ride_bell = s("rd").struct("<~@41 [~ x!3]!7 [~ x ~@2] ~@20 [~ x!3]!15 [~ x ~@2] ~@11>").gain(0.76)

stack(distortion_guitar, bass, kick, snare, open_hat, crash, ride_bell)

More by Green Day