Strudelify

Big Bang Baby

Stone Temple Pilots

KeyG majorTempo120 bpm
0:00/0:00
// Big Bang Baby — Stone Temple Pilots
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 90 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): Fill Guitar.
setcpm(120/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 · overdriven guitar · "Guitar 1"
const overdriven_guitar = note(`<
  A B A C D E A F A G A F A H@3 I J K@2 L M A B A C A B A C A G A H@3 I J K@2 L M ~@12 A G A F A G A H@3 I J K@2 L M
  ~@10 N O A B A C A B A P
>`.pickRestart({
  A: "[e2,b2]!2 [g2,d3] [g#2,d#3] [a2,e3]!2 [d3,a3] [c#3,g#3]", // E5 G5 G#5 A5 D5 C#5
  B: "[c3,g3]!2 [b2,f#3] [a#2,f3] [g2,d3]!2 [a2,e3] [d3,a3]", // C5 B5 A#5 G5 A5 D5
  C: "[c3,g3]!2 [b2,f#3] [a#2,f3] [a2,e3]!2 [b2,f#3] [e3,b3,e4]", // C5 B5 A#5 A5 B5 E5
  D: "[e2,b2]!2 [g2,d3] [g#2,d#3] [a2,e3]!2 [d3,a3,d4] [c#3,g#3,c#4]", // E5 G5 G#5 A5 D5 C#5
  E: "[c3,g3]!2 [b2,f#3] [a#2,f3] [g2,d3,g3]!2 [a2,e3] [d3,a3,d4]", // C5 B5 A#5 G5 A5 D5
  F: "[c3,g3,c4]!2 [b2,f#3] [a#2,f3] [a2,e3]!2 [b2,f#3] [e3,b3,e4]", // C5 B5 A#5 A5 B5 E5
  G: "[c3,g3,c4]!2 [b2,f#3] [a#2,f3] [g2,d3]!2 [a2,e3] [d3,a3,d4]", // C5 B5 A#5 G5 A5 D5
  H: "[[c3,g3]!2 [b2,f#3] [a#2,f3] [b2,f#3] [e3,b3] [a2,e3] [g2,c3,g3,c4]@2 [c3,g3,c4]!5 a2 [a2,e3,a3]@2 [a2,e3,a3]!6 d3]/3", // C5 B5 A#5 B5 E5 A5 C5 A5
  I: "g#3 [a3,b3] g#3 [b3,e4] g#3 a3 [b3,e4] g#3", J: "[a3,b3] g#3 [b3,e4] g#3 a3 e4 a3 g3",
  K: "[[c3,g3,c4]!6 a2 [a2,d3,a3,d4]@2 [a2,d3,a3,d4] [a2,d3,a3,d4]@2 [a2,d3,a3] a2 [a2,d3,a3]!2]/2", // C5 D5
  L: "[b3,e4]@2 [b3,e4]@2 a#3 [b3,e4]@2 a3", M: "[b3,e4]@2 a#3@2 [b3,e4]@2 a#3@2 a3@2 [b3,e4]@5 ~",
  N: "[e2,b2]@2 [e2,b2,e3]@2 [e2,b2,e3]!2 [e2,b2] e2", O: "e2@2 e2@2 a3@4 [d3,g3,b3] ~ [a2,d3] ~ [d3,g3]@2 [e2,d3]@2",
  P: "[c3,g3]@2 [c3,g3,c4]@3 ~@11", // C5
})).s("gm_overdriven_guitar").gain(0.64)

// chords · electric guitar clean · "Guitar 2"
const electric_guitar_clean = note("<~@42 A@2 B@2 C@2 A@2 B@2 D E ~@16 A@2 B@2 C@2 A@2 B@2 D E ~@8>".pickRestart({
  A: "[[e2,b3,e4,g#4,b4]@4 [e2,b3,e4,g#4,b4]@4 [e2,b3,e4,g#4,b4]@2 [e2,b3,e4,g#4,b4]@2 [e2,a2,d3,g#3,b3,e4] ~ [b3,e4,g4,c5]@4 [e2,b3]@2 [b3,e4,g4,c5]@4 [b3,e4,g4,c5]@2 [b3,e4,g4,c5]@2 e4@2 [e4,g#4]@2]/2", // E E7 Cmaj7 E5 Cmaj7 E
  B: "[[e2,b3,e4,g#4,b4]@4 [b3,e4,g#4,b4]@4 [e4,g#4,b4]@4 e2@2 [e2,b3,e4,g4,c5]@5 ~ [e4,g4,c5]@4 [e4,g4,c5]@2 b3@2 [e4,g4,c5]@2 [e2,a2]@2]/2", // E Cmaj7 C A5
  C: "[[a2,e4,a4,c5]@2 [e4,a4,c5]@2 [e4,a4,c5]@2 [e2,a2] [e4,f#4,a4,c5]@2 [e4,f#4,a4,c5] a2 [e4,f#4,a4,c5]@2 [e4,f#4,a4,c5]!2 [e2,a2]]/2", // Am A5 F#m7b5 A5
  D: "[e2,b3,e4,g#4,b4]@2 [e2,b3,e4,g#4,b4]@2 e2 [b3,e4,g#4,b4]!3", E: "[b3,e4,g#4,b4]!2 [e4,g#4,b4]@2 [e4,g#4,b4]!3 ~",
})).s("gm_electric_guitar_clean").gain(0.64)

// chords · distortion guitar · "Guitar 3"
const distortion_guitar = note("<~@16 A@2 ~@2 B@2 ~@14 A@2 ~@2 B@2 ~@22 A@2 ~@2 B@2 ~@12 C D C E C D C F>".pickRestart({
  A: "[[e2,b2,e3]@2 [e2,b2,e3]@3 ~ [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@3 ~ [e2,b2,e3]@4 [e2,b2,e3]@2 [e2,b2,e3]@4 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2]/2", // E5
  B: "[[e2,b2,e3]@2 [e2,b2,e3]@3 ~ [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@3 ~ [e2,b2,e3]@4 [e2,b2,e3]@2 [e2,b2,e3]@4 [e2,b2,e3]@2 [e2,b2,e3]@2 d4@4]/2", // E5
  C: "[e3,b3,e4]!2 [d#3,a#3,d#4] [d3,a3,d4] [c#3,g#3,c#4]!2 [d3,a3] [c#3,g#3]", // E5 D#5 D5 C#5 D5 C#5
  D: "[c3,g3]!2 [b2,f#3] [a#2,f3] [g2,d3]!2 [a2,e3] [d3,a3,d4]", // C5 B5 A#5 G5 A5 D5
  E: "[c3,g3]!2 [b2,f#3] [a#2,f3] [a2,e3]!2 [b2,f#3] [e3,b3,e4]", F: "[c3,g3]@2 [c3,g3,c4]@3 ~@11",
})).s("gm_distortion_guitar").gain(0.64)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B A C A B A C A B A C A D@3 E@2 F@2 G@2 A B A C A B A C A B A D@3 E@2 F@2 G@2 H@2 I@2 J@2 H@2 I@2 K L A B A C A B A
  D@3 E@2 F@2 G@2 H@2 I@2 J@2 H@2 I@2 K L A B A C A B A M
>`.pickRestart({
  A: "e1!2 g1 g#1 a1!2 d2 c#2", B: "c2!2 b1 a#1 g1!2 a1 d2", C: "c2!2 b1 a#1 a1!2 b1 e2",
  D: "[c2@2 c2@2 b1@2 a#1@2 b1@2 e2@2 a1@2 c2@4 c2@2 c2@4 c2@2 g1 a1 c2@2 a1@4 a1@2 a1@4 a1@2 d2 e2 g2@2 d2@2]/3",
  E: "[e2@2 e2@3 ~ e2@2 e2@2 e2@3 ~ e2@4 e2@2 e2@2 ~ b1 e2@2 b1@2 e2@2 d2@2]/2",
  F: "[c2@4 c2@4 c2@2 g1 a1 c2@2 d2@4 d2@2 d2@4 d2@2 a1 b1 d2@2 b1@2]/2",
  G: "[e2@2 e2@3 ~ e2@2 e2@2 e2@3 ~ e2@4 e2@2 e2@2 ~ b1 e2@2 b1@2 g2@4]/2",
  H: "[e2@4 e2@2 ~ b1 e2@2 g#2@2 b2@2 c3@4 c3@2 c3@2 ~ g#2 c3@2 c3@2 g#2@4]/2",
  I: "[e2@4 e2@2 ~ b1 e2@2 g#2@2 b2@2 c3@4 c3@2 c3@2 ~ g2 c3@2 c3@2 g2@2 g#2@2]/2",
  J: "[a2@4 a2@2 ~ e2 a2@2 a2@2 a2@2 d3@4 d3@2 d3@2 a2@4 a2@2 a2@4]/2", K: "e2@2 e2@2 e2!4", L: "e2!6 g2@2",
  M: "c2!2 ~@6",
})).s("gm_electric_bass_finger").gain(0.64)

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

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

// drums · clap
const clap = s("cp").struct(`<
  [~@2 x ~@3 x!2]!14
  ~@8
  [~@2 x ~@3 x!2]!12
  ~@20
  [~@2 x ~@3 x!2]!8
  ~@20
  [~@2 x ~@3 x!2]!7
  [x!2 ~@6]
>`).gain(0.64)

// drums · pedal hat
const pedal_hat = s("hh").struct("<[x!8]!42 ~@12 [x!8]!16 ~@12 [x!8]!7 ~>").gain(0.64)

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

// drums · ride bell
const ride_bell = s("rd").struct("<~@16 A@2 ~@2 A@2 ~@14 A B ~@2 A B ~@22 A B ~@2 A B ~@20>".pickRestart({
  A: "x!4", B: "~ x!3",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  A ~@4 A ~@8 A@2 B@2 A@2 B@2 A ~@11 A@2 B@2 A@2 C B A ~@3 A ~ A ~@3 B@2 A ~@7 A@2 B@2 A@2 C B A ~@3 A ~ A ~@3 B D A ~@7
>`.pickRestart({
  A: "x", B: "x!4", C: "x!2 ~ x", D: "x!2 ~@2",
})).gain(0.64)

stack(
  overdriven_guitar, electric_guitar_clean, distortion_guitar, bass, kick, snare, clap, pedal_hat, open_hat, ride_bell,
  crash
)

More by Stone Temple Pilots