Strudelify
Geek Stink Breath cover art

1995 · Insomniac

Geek Stink Breath

Green Day

KeyF majorTempo131 bpm
0:00/0:00
// Geek Stink Breath — Green Day
// 131 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 3 overdriven guitar (copy of ch 2 "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 74 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(131/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 · distortion guitar · "Billy J. A."
const distortion_guitar = note("<~ A@4 B@11 C D@4 E@3 C B@9 C D@4 E@3 C A@8 F@7 C D@4 E@3 C A@6 G>".pickRestart({
  A: "[g2,d3,g3] ~ [g2,d3,g3]@2 ~ [f2,c3,f3]!2 ~ [f2,c3,f3] ~ [c3,g3,c4] ~ [c3,g3,c4] ~ [f2,c3,f3] ~", // G5 F5 C5 F5
  B: "[g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3]@3 ~ [f2,c3,f3] ~ [f2,c3,f3] ~ [f2,c3,f3]@3 ~", // G5 F5
  C: "[g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~", // G5
  D: "[bb2,f3,bb3] ~ [bb2,f3,bb3] ~ [bb2,f3,bb3] ~ [f2,c3,f3]@3 ~ [f2,c3,f3] ~ [f2,c3,f3] ~ [f2,c3,f3] ~", // Bb5 F5
  E: "[g2,d3,g3] ~ [g2,d3,g3]@3 ~ [f2,c3,f3]@3 ~ [f2,c3,f3] ~ [f2,c3,f3] ~ [f2,c3,f3] ~", // G5 F5
  F: "[g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [d2,a2,d3] ~ [f2,c3,f3] ~ [f2,c3,f3] ~ [f2,c3,f3] ~ [d2,a2,d3] ~", // G5 D5 F5 D5
  G: "[g2,d3,g3] ~ [g2,d3,g3]@2 ~@12", // G5
})).s("gm_distortion_guitar").gain(0.36).pan(0.2)

// bass · electric bass pick · "Mike D."
const bass = note("<~ A@4 B@11 C D@3 E F@3 G B@9 C D@3 E F@3 G H@8 B@8 D@3 E F@3 G H@4 A@3>".pickRestart({
  A: "g1 ~ g1 ~@13", B: "g1 ~ g1 ~ b1 ~ c2 ~ f1 ~ f1 ~ c2 ~ b1 ~", C: "g1 ~ g1 ~ g2 ~ g1 ~ g1 ~ g2 ~ g1 ~ a1 ~",
  D: "bb1 ~ f2 ~ e1 ~ f1@3 ~ f1 ~ g1 ~ a1 ~", E: "bb1 ~ f2 ~ e1 ~ f1@3 ~ f1 ~ f1@3 ~",
  F: "g1 ~ g1 ~ e1 ~ f1@3 ~ f1 ~ f1 ~ f1 ~", G: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~",
  H: "g1 ~ g2@2 ~ f1!2 ~ f1 ~ c2 ~ c2 ~ f1 ~",
})).s("gm_electric_bass_pick").gain(0.41).pan(0.2)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B@3 C B@5 C B D E@3 F E@3 G B@7 C B D E@3 F E@3 H B@7 I B@7 D E@3 F E@3 H B@4 ~@3
>`.pickRestart({
  A: "~@10 x!2 ~@2 x ~", B: "x!2 ~ x!3 ~ x", C: "x!2 ~ x!3 ~@2", D: "x!2 ~ x!2 ~@2 x", E: "x!2 ~ x ~ x ~ x",
  F: "x!2 ~ x ~ x ~@2", G: "x!2 ~ x ~@4", H: "x!2 ~ x ~@3 x", I: "x ~ x ~@3 x ~ x ~ x!2 ~@2 x ~",
})).gain(0.46)

// drums · snare
const snare = s("sd").struct(`<
  ~ A@3 B C@3 D C@2 E C@2 D C F C@3 F C@3 G C@4 E C@2 D C F C@3 F C@3 H C@8 E C@3 D C@2 F C@3 F C@3 H C@4 A@3
>`.pickRestart({
  A: "x!2 ~@6", B: "x!2 ~@4 x ~", C: "~ x ~ x", D: "~@4 x ~@2 x ~@4 x ~@3", E: "~@4 x ~@7 x ~@2 x",
  F: "~@2 x ~@2 x!2 ~", G: "~@4 x ~@7 x!4", H: "~ x ~@2",
})).gain(0.46)

// drums · low tom
const low_tom = s("lt").struct("<~@20 A ~@3 B ~@13 A ~@3 A ~@19 A ~@3 A ~@7>".pickRestart({
  A: "~@5 x!2 ~", B: "~@5 x ~@2",
})).gain(0.46)

// drums · hihat
const hihat = s("hh").struct("<[x!4] [~ x!3]!3 [~ x!2 ~] ~@66 [~ x!3]!2 ~>").gain(0.46)

// drums · mid tom
const mid_tom = s("mt").struct("<~@24 [~@3 x!2 ~@3] ~@17 [~@3 x!2 ~@3] ~@23 [~@3 x!2 ~@3] ~@7>").gain(0.46)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@5 A B@2 C A B@3 A B D A E@3 F ~@4 A B A B@3 A B D A E@3 F ~@4 G@7 H G@2 A@4 I J E@3 F ~@4 G@4 ~@3
>`.pickRestart({
  A: "~ x!7", B: "x!8", C: "x!6 ~ x", D: "x!7 ~", E: "~ x!3", F: "~ x!2 ~", G: "~@2 x!6", H: "~@2 x!3 ~@3",
  I: "~ x!3 ~ x!3", J: "~ x ~ x ~ x!3",
})).gain(0.46)

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

stack(distortion_guitar, bass, kick, snare, low_tom, hihat, mid_tom, open_hat, splash)

More by Green Day