Strudelify
KeyG majorTempo60 bpm
0:00/0:00
// Creep — Stone Temple Pilots
// 60 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 75 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/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 · acoustic guitar steel · "Dean (Acoustic)"
const acoustic_guitar_steel = note(`<
  A@2 B C@2 D E F E F E F E G F H I H I H J ~@8 D K D E F E F E F E G F H I H I H J ~@8 L@4 H I H I H J ~@10
>`.pickRestart({
  A: "[[c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4] ~ [b2,d#3,a3,b3,f#4] [b2,d#3,a3,b3,f#4]@2 [b2,d#3,a3,b3,f#4]@3 ~ [e2,b2,e3,g3]@4 [e2,b2,e3,g3,d4,g4]@3 [e2,b2,e3,g3,d4,g4] ~ [e2,b2,e3,g3,d4,g4] [e2,b2,e3,g3,d4,g4]@3 [e2,b2,e3,g3,d4,g4]!3, ~@15 [b3,e4]@5 ~@12]/2", // C B7 Em Em7 E5
  B: "[e2,b2]@2 [e2,b2]@2 [e2,b2,e3,g3,d4,g4]@3 [e2,b2,e3,g3,d4,g4] ~ [e2,b2,e3,g3,d4,g4] [e2,b2,e3,g3,d4,g4]@3 [e2,b2,e3,g3,d4,g4]!2 [d3,g3,b3,e4], [e3,g3,d4,g4] ~@3", // E5 Em7
  C: "[[c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4] ~ [b2,d#3,a3,b3,f#4] [b2,d#3,a3,b3,f#4]@2 [b2,d#3,a3,b3,f#4]@3 ~ [e2,b2,e3,g3]@16, ~@15 [d#4,g4]@17]/2", // C B7 Em D#
  D: "[e2,b2,e3,g3,d4,g4]@4 [e2,b2,e3,g3,d4,g4]@3 [e2,b2,e3,g3,d4,g4] ~ [e2,b2,e3,g3,d4,g4] [e2,b2,e3,g3,d4,g4]@3 [e2,b2,e3,g3,d4,g4]!2 [d3,g3,b3,e4]", // Em7
  E: "[c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4] ~ [b2,d#3,a3,b3,f#4] [b2,d#3,a3,b3,f#4]@2 [b2,d#3,a3,b3,f#4]@4", // C B7
  F: "[e2,b2,e3,g3,b3,e4]@4 [e2,b2,e3,g3,d4,g4]@3 [e2,b2,e3,g3,d4,g4] ~ [e2,b2,e3,g3,d4,g4] [e2,b2,e3,g3,d4,g4]@3 [e2,b2,e3,g3,d4,g4]!2 [d3,g3,b3,e4]", // Em Em7
  G: "[e2,b2,e3,g3,b3,e4]@2 [e2,b2]!2 [e2,b2,e3,g3,d4,g4]@3 [e2,b2,e3,g3,d4,g4] ~ [e2,b2,e3,g3,d4,g4] [e2,b2,e3,g3,d4,g4]@3 b2 [d3,g3] [d3,g3,d4,g4]", // Em E5 Em7 G5
  H: "[g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]!2 ~ [a2,e3,a3,b3,e4] [a2,e3,a3,b3,e4]@2 [a2,e3,a3,b3,e4]@3 ~", // G5 Asus2
  I: "[e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4] [e2,b2,e3,g3,d4,g4]@3 [e2,b2,e3,g3,d4,g4] ~ [e2,b2,e3,g3,d4,g4] [e2,b2,e3,g3,d4,g4]@3 [e2,b2,e3,g3,d4,g4]!2 [d3,g3,b3,e4]", // Em Em7
  J: "[c3,d3,g3,d4,g4]@4 [c3,d3,g3,d4,g4]@3 [c3,d3,g3,d4,g4] ~ [d3,a3,d4,f#4] [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@4", // Csus2 D
  K: "[e2,b2,e3,g3,b3,d4]@4 [e2,b2,e3,g3,d4,g4]!3 [e2,b2,e3,g3,d4,g4]@8 ~", L: "[e2,b2,e3,g3,d4,e4]@15 ~",
})).s("gm_acoustic_guitar_steel").gain(0.56)

// other · piano · "Dean (Acoustic)"
const piano = note("<~@21 A B A B A B A B ~@18 A B A B A B A B ~@10 A B A B A B A C@2 ~>".pickRestart({
  A: "e3@4 f#3@4 g3@3 g3 a3 b3 d4 e4", B: "e3@4 f#3@4 g3@3 g3 a3 a#3 b3@2", C: "[e3@4 f#3@4 g3@3 g3 a3 a#3 b3@17 ~]/2",
})).s("gm_piano").gain(0.4)

// chords · electric guitar clean · "Dean (Electric)"
const electric_guitar_clean = note("<A@6 B@7 C@2 D@8 ~@52>".pickRestart({
  A: "[~@16 [e2,b2,e3,g3]@15 ~@27 [a3,b3,f#4]!2 ~@4 e3@16 ~@14 g3@2, c3@11 b3 f#4@20 [b2,e3,g3]@16 c3@15 [d#4,g4]@32 ~, ~@2 e3@6 b2 d#3@22 b3@19 e3@4 c4@10 [e2,b2]@32, ~@4 g3@6 a3@22 e2@24 b2 d#3@7 g3@16 e3@2 g3@2 d4@2 g3@2 e3@8, ~@6 c4@9 [b3,e4]@16 e4@21 g3@8 [a3,b3,f#4]@30 g3@2 d4@4]/6", // Em B7 Em D# E5 B7
  B: "[~@55 g3, e3@7 g3 e3@3 g3 e3@3 g3 e3@7 g3 e3@3 g3 e3@3 g3 e3@7 g3 e3@3 g3 e3@3 g3 e3@8, ~ g3@2 g3@2 g3 b3@15 g3 b3@15 g3 b3@15 g3 b3@2, ~@2 d4@7 g3 d4@3 g3 d4@3 g3 d4@7 g3 d4@3 g3 d4@3 g3 d4@7 g3 d4@3 g3 d4@3 g3 d4@6, ~@4 f#3@15 g3 f#3@15 g3 f#3@15 g3 f#3@4]/7",
  C: "[~@6 g3@2 ~@4 g3 ~@2 g3 [e3,g3,d4,e4]@16, e3 ~, ~@2 g3@4 ~@2 f#3@2 b3@3 g3 b3@18, ~ d4@3 ~@4, ~@9 g3@2 f#3@21]/2", // Em7
  D: "[[g2,d3,g3,d4,g4]@7 [g2,d3,g3,d4,g4] ~ [a2,e3,a3,b3,e4] [a2,e3,a3,b3,e4]@2 e3@3 ~@17 [g2,d3,g3,d4,g4]@7 [g2,d3,g3,d4,g4] ~ [a2,e3,a3,b3,e4] [a2,e3,a3,b3,e4]@2 e3@3 ~@17 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4] ~@2 [a2,e3,a3,b3,e4] [a2,e3,a3,b3,e4]@2 ~@4 [c3,d3,g3,d4,g4]@4 [c3,d3,g3,d4,g4]@3 [d3,d4]@2 [d3,a3,d4,f#4] [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@32 ~@4, ~@12 [a2,a3,b3,e4]@27 ~@5 [a2,a3,b3,e4]@27 [d3,g3,d4,g4]@5 a3@13 ~@39, ~@15 [g3,d4]@17 ~@15 [g3,d4]@17 ~@7 g2@32 ~@25, ~@16 [e2,b2,e3]@23 ~@9 [e2,b2]@32 ~@7 [c3,g3,g4]@32 ~@9, ~@48 e3@25 ~@3 [a2,e3,b3,e4]@32 ~@20]/8", // G5 Asus2 G5 Asus2 G5 Asus2 Csus2 D …
})).s("gm_electric_guitar_clean").gain(0.48)

// chords · piano · "Dean (Electric)"
const piano_2 = note("<~@21 A B A B A C@8 D@5 E@2 F@2 G@8 H@6 I@2 F@2 G@8 J@6>".pickRestart({
  A: "~@15 e4, e3@2 d4@3 a3@5 d4@2 a3 b3 d4@2, ~ b3@6 f#3@9, ~@3 e3@13, ~@4 f#3@2 d4@2 g3 b3@2 g3@5",
  B: "~@7 b3, e3@2 d4@3 a3@5 d4@2 a3 a#3@3, ~ b3@6 f#3@9, ~@3 e3@13, ~@4 f#3@2 d4@2 g3 b3@2 g3@5",
  C: "[~@7 b3 ~@55 g3, e3@2 d4@3 a3@5 d4@3 a#3@27 g3 b3 d4@4 b3@26 e4@6 c4@28 g3@2 b3@20, ~ b3@6 f#3@9 e3 b3@5 d4 f#3@6 b3 d4 e4@12 g3@30 d#4@6 b3 e3@2 g3@2 d4@2 g3@2 e3@2 g3@2 d4@2 g3@2 e3@14 g3@2 e3@6 g3@2 e3@8, ~@3 e3@9 a3@6 d4 e3@9 a3@4 e3 b3@3 f#3 a3 d4 f#3@6 a#3@30 d4@2 a3@25 g3@2 f#3@24, ~@4 f#3@2 d4@2 g3 b3@2 g3@9 f#3 a3@3 g3 b3 d4 g3@7 d4 e3@9 a3@30 b3@2 c#4@22 g3@2 d4@14 g3@2 d4@6 g3@2 d4@4]/8",
  D: "[~@39 g3, e3@7 g3 e3@3 g3 e3@3 g3 e3@7 g3 e3@3 g3 e3@3 g3 e3@8, ~ g3@2 g3@2 g3 b3@15 g3 b3@15 g3 b3@2, ~@2 d4@7 g3 d4@3 g3 d4@3 g3 d4@7 g3 d4@3 g3 d4@3 g3 d4@6, ~@4 f#3@15 g3 f#3@15 g3 f#3@4]/5",
  E: "[~@6 g3@2 ~@4 g3 ~@2 g3 [e3,g3,d4,e4]@16, e3 ~, ~@2 g3@4 ~@2 f#3@2 b3@3 g3 b3@18, ~ d4@3 ~@4, ~@9 g3@2 f#3@21]/2", // Em7
  F: "[[g2,d3,g3,d4,g4]@7 [g2,d3,g3,d4,g4] ~ [a2,e3,a3,b3,e4] [a2,e3,a3,b3,e4]@2 e3@3 ~ [e2,b2,e3]@16, ~@3 [a2,a3,b3,e4]@5, ~@15 [g3,d4]@17]/2", // G5 Asus2 E5 Asus2 G5
  G: "[[g2,d3,g3,d4,g4]@7 [g2,d3,g3,d4,g4] ~ [a2,e3,a3,b3,e4] [a2,e3,a3,b3,e4]@2 e3@3 ~@17 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4] ~@2 [a2,e3,a3,b3,e4] [a2,e3,a3,b3,e4]@2 ~@4 [c3,d3,g3,d4,g4]@4 [c3,d3,g3,d4,g4]@3 [d3,d4]@2 [d3,a3,d4,f#4] [d3,a3,d4,f#4]@2 ~@34 b3@2 ~@30 b3@2, ~@12 [a2,a3,b3,e4]@27 [d3,g3,d4,g4]@5 [e3,b3]@11 g3@5 [a3,d4]@4 e3 b3 d4 e3@5 g3 b3 d4 g3@7 d4 e3@8 g3@7 d4 e3@9 a3@4 e3 b3@3 f#3 a3 d4 f#3@4 g3 a3 a#3@3, ~@15 [g3,d4]@17 ~@7 g2@21 [d3,f#4]@26 d4 f#3@6 a#3@27 g3 b3 d4@6, ~@16 [e2,b2]@28 a3@11 [c3,g4]@25 e3 b3@3 f#3 a3@3 g3 b3 d4@2 a3@4 e3 b3@3 f#3 a3 d4 f#3@6 b3 d4 e4@17, ~@16 e3@25 ~@3 [a2,e4]@24 f#3 a3 d4 f#3@5 a3 b3 d4 e4@25 g3 b3 d4 g3@7 d4 e3@13]/8", // G5 Asus2 G5 Asus2 Csus2 D Asus2 G5 …
  H: "[~@30 b3@2 ~@36 d4@2 ~@4 g3@5 ~@8 f#3@8 [g3,d4], e3@2 d4@3 a3@5 d4@2 a3@6 d4 e3@8 g3@7 d4 e3@9 a3@4 e3 b3@3 f#3 a3 d4 f#3@15 e4@26, ~ b3@6 f#3@9 e3 b3@5 d4 f#3@6 a#3@27 g3 b3 d4 g3@2 a#3@18 g3 [e2,b2,e3]@16, ~@3 e3@10 b3 d4 e4@25 g3 b3 d4 g3@7 d4 e3@11 b3@22 f#3 g3@10 ~, ~@4 f#3@2 d4@2 g3 b3@2 g3@9 f#3 a3@3 g3 b3 d4@2 a3@4 e3 b3@3 f#3 a3 d4 f#3@6 b3 d4 e4@13 a3@11 d4@8 d4@16 ~]/6", // G5 E5
  I: "[~ [e2,b2,e3], [e2,b2,e3] ~, ~@4 g3@11 [g3,d4]@17, ~@5 d4@10 ~@17, ~@7 f#3@25]/2", // E5 G5
  J: "[~@15 b3 ~@15 b3@16 ~, e3@2 d4@3 a3@5 d4@2 a3@6 d4 e3@8 g3@7 d4 e3@9 a3@4 e3 b3@3 f#3 a3 d4 f#3@6 a#3@32 ~@3, ~ b3@6 f#3@9 e3 b3@5 d4 f#3@6 a#3@27 g3 b3 d4@32 ~@6, ~@3 e3@10 b3 d4 e4@25 g3 b3 d4 g3@7 d4 e3@9 a3@32 ~@4, ~@4 f#3@2 d4@2 g3 b3@2 g3@9 f#3 a3@3 g3 b3 d4@2 a3@4 e3 b3@3 f#3 a3 d4 f#3@6 b3 d4 e4@12 g3@32 ~@5]/6",
})).s("gm_piano").gain(0.56)

// bass · fretless bass · "Robert (Bass)"
const bass = note(`<
  A B C A D E F E F E F E F B G H G H G H I J K J K J K J K D@2 E F E F E F E F B G H G H G H I J K J K J K J K D@4 H G
  H G H I J K J K J K J L@2 ~
>`.pickRestart({
  A: "c3@3 ~ c3@3 c3 ~ b2 b2@2 b2@3 ~", B: "e2@7 e2 ~ e2 e2@3 e2 a2 b2", C: "e2@7 e2 ~ e2 e2@3 e2!2 b2", D: "e2@15 ~",
  E: "e2@7 e2 ~ e2 e2@5 b2", F: "c3@7 c3 ~ b2 b2@2 b2@3 ~", G: "e2@7 e2 ~ e2 e2@3 e2!2 f#2",
  H: "g2@3 ~ g2@3 g2 ~ a2 a2@2 a2@3 ~", I: "c3@3 ~ c3@3 c3 ~ d3 d3@2 d3@3 ~",
  J: "e2@3 e2 f#2@3 f#2 g2@3 g2 a2 b2 d3 e3", K: "e2@3 e2 f#2@3 f#2 g2@3 g2 a2 a#2 b2@2",
  L: "[e2@3 e2 f#2@3 f#2 g2@3 g2 a2 a#2 b2@17 ~]/2",
})).s("gm_fretless_bass").gain(0.48)

// drums · kick
const kick = s("bd").struct(`<
  A@2 B C D A@9 B E B E B E B F@8 A D A@9 B E B E B E B F@8 D@4 E B E B E B F@8 D ~
>`.pickRestart({
  A: "x ~@8 x!2 ~@5", B: "x ~@8 x!2 ~@2 x ~ x", C: "x ~@6 x!2 ~@7", D: "x", E: "x ~ x ~@6 x!2 ~@5",
  F: "x ~@2 x ~@4 x ~@2 x ~@2 x ~",
})).gain(0.56)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@2 A B C ~@9 A ~ A ~ A ~ A ~@19 A ~ A ~ A ~ A ~@13 A ~ A ~ A ~@10>".pickRestart({
  A: "~@7 x", B: "~@12 x!4", C: "x ~@6 x",
})).gain(0.56)

// drums · open hat
const open_hat = s("oh").struct("<~@21 [x!8]!8 ~@18 [x!8]!8 ~@10 [x!8]!8 ~@2>").gain(0.56)

// drums · high tom
const high_tom = s("ht").struct("<~@2 A ~ B ~@9 A ~ A ~ A ~ A ~@19 A ~ A ~ A ~ A ~@13 A ~ A ~ A ~@10>".pickRestart({
  A: "~@3 x", B: "~@13 x ~@2",
})).gain(0.56)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  A B C D ~ B A@8 C B C B C B C ~@8 B E B A@8 C B C B C B C ~@8 F G F ~ B C B C B C ~@10
>`.pickRestart({
  A: "x!8", B: "~ x!7", C: "~ x!5 ~@2", D: "~ x!3 ~@4", E: "x!4 ~@4", F: "~@3 x!2 ~ x!2 ~@2 x!2 ~ x ~ x",
  G: "~@4 x!2 ~@2 x!2 ~@4 x!2",
})).gain(0.56)

// drums · splash
const splash = s("cr").struct(`<
  ~ A@2 B A@2 ~@8 A@8 ~ A ~ A ~ A ~ A ~ A ~@8 A@8 ~ A ~ A ~ A ~ A@11 ~ A ~ A ~ A ~ A ~
>`.pickRestart({
  A: "x", B: "x!2",
})).gain(0.56)

stack(
  acoustic_guitar_steel, piano, electric_guitar_clean, piano_2, bass, kick, snare, mid_tom, open_hat, high_tom,
  ride_bell, splash
)

More by Stone Temple Pilots