Strudelify
All the Small Things cover art

1999 · Enema of the State

All the Small Things

blink-182

KeyC majorTempo152 bpm
0:00/0:00
// All the Small Things — blink-182
// 152 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 "Vocals" lead 2 sawtooth (copy of ch 1 "Vocals" tenor sax); ch 12 "Bass" fretless bass (copy of ch 11 "Bass" electric bass pick)
// note: Full arrangement: all 102 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Guitar.
setcpm(152/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 · "Guitar"
const distortion_guitar = note("<~@65 A@4 ~@33>".pickRestart({
  A: "[c3,g3,c4]/4", // C5
})).s("gm_distortion_guitar").gain(0.4).pan(0.6)

// chords · overdriven guitar · "Guitar"
const overdriven_guitar = note(`<
  A B C D E B C D F B D G D B D G D B D G D B D G D H@4 B@2 D G B@2 D G B I D F B I D F B D G D B D G D H@4 B@2 D G B@2
  D G ~@4 J@2 K L J@2 K L J@2 K L B@2 D G B@2 D G B@2 D G B@2 D G@2 M@4
>`.pickRestart({
  A: "~@5 [g2,d3,g3] [f2,c3,f3]@2", B: "[c3,g3,c4]!8", C: "[f3,c4,f4]!8", D: "[g2,d3,g3]!8",
  E: "[g2,d3,g3]@2 [g2,d3,g3]!5 [f2,c3,f3]", F: "[g2,d3,g3]!7 [f2,c3,f3]", G: "[f2,c3,f3]!8", H: "[c3,g3,c4]/4",
  I: "[c3,f3,c4]!4 [c3,e3,c4]!4", J: "[c3,g3,c4] [c3,g3] [g3,c4] [c3,g3] [g3,c4] [c3,g3] [g3,c4] [c3,g3]",
  K: "[f2,c3,f3] [f2,c3] [c3,f3] [f2,c3] [c3,f3] [f2,c3] [c3,f3] [f2,c3]", // F5
  L: "[g2,d3,g3] [g2,d3] [d3,g3] [g2,d3] [d3,g3] [g2,d3] [d3,g3] [g2,d3]", M: "[[c2,g2,c3]@31 ~]/4",
})).s("gm_overdriven_guitar").gain(0.55).pan(0.4)

// bass · electric bass pick · "Bass"
const bass = note(`<
  A B@2 C D B@2 C E B C F C B C F C B C F C B C F C B@2 C F B@2 C F B@2 C F B@2 C G B@2 C G B C F C B C F C B@2 C F B@2
  C F B@2 C F B@2 F C B@2 F C B@2 F C B@2 F C B@2 C F B@2 C F B@2 C F B@2 C F@2 H@4
>`.pickRestart({
  A: "~@5 g2 f2@2", B: "c2!8", C: "g1!8", D: "g1 ~@4 g2!2 f2", E: "g1 ~@4 g2 g2@2", F: "f1!8", G: "g1 ~@4 g1!2 f1",
  H: "[c2@31 ~]/4",
})).s("gm_electric_bass_pick").gain(0.78)

// drums · kick
const kick = s("bd").struct("<A B@24 C@4 B@24 C@4 B@8 D@12 E@4 B@17 D ~@3>".pickRestart({
  A: "~@5 x ~@2", B: "x!2 ~@2 x!2 ~@2", C: "x!2", D: "x", E: "x!4",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct("<A B@24 A@4 B@24 A@4 B@8 C@12 D@4 B@17 C ~@3>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "x", D: "x!16",
})).gain(0.8)

// drums · low tom
const low_tom = s("lt").struct("<~@25 A B C D ~@24 A B C D ~@23 E ~@21>".pickRestart({
  A: "~@2 x!2 ~ x!2 ~", B: "~ x ~@3 x!2 ~", C: "~ x ~@3 x ~@2", D: "~ x!2 ~@2 x!2 ~", E: "~@10 x!3 ~ x ~",
})).gain(0.8)

// drums · hihat
const hihat = s("hh").struct("<~@9 A@16 B A@3 ~@16 A@8 B A@3 ~@8 A@12 ~@25>".pickRestart({
  A: "x!8", B: "~ x!7",
})).gain(0.8)

// drums · mid tom
const mid_tom = s("mt").struct("<~@26 A B C ~@25 A B C ~@23 D ~@21>".pickRestart({
  A: "~@2 x ~@4 x", B: "~@2 x!2 ~@2 x!2", C: "~@3 x ~@3 x", D: "~@10 x!3 ~ x ~",
})).gain(0.8)

// drums · open hat
const open_hat = s("oh").struct("<A B@8 ~@20 C B@11 C B@3 ~@12 B@8 ~@16 B@17 ~@4>".pickRestart({
  A: "~@5 x ~@2", B: "x!8", C: "~ x!7",
})).gain(0.8)

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

// drums · ride bell
const ride_bell = s("rd").struct("<~@65 [x!3 ~ x ~ x!2]!12 ~@25>").gain(0.8)

stack(distortion_guitar, overdriven_guitar, bass, kick, snare, low_tom, hihat, mid_tom, open_hat, crash, ride_bell)

More by blink-182