Strudelify

Lady Picture Show

Stone Temple Pilots

KeyE majorTempo80 bpm
0:00/0:00
// Lady Picture Show — Stone Temple Pilots
// 80 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 79 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/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 · piano · "Dean (lead)"
const piano = note("<A@4 B@6 C@5 D@8 B@6 C@5 E@8 F@6 G@2 H I J@7 K@2 C@5 E@8 L@5>".pickRestart({
  A: "[b3@6 [f#3,b3,d#4]@6 [f#3,b3,d#4] ~@3 [e3,a3]@6 [e3,a3,c#4]@6 ~@4 b3@6 [f#3,b3,d#4]@6 f#3@4 [f#3,a3,d4]@4 [f#3,a3,d4]@4 [f#3,a3,d4]@4 [f#3,a3,d4]@2 [f#3,a3,d4]!2, [g#3,e4]@7 [e3,c#4]@8 ~, ~@13 [f#3,d#4]@19 [g#3,e4]@32, ~@13 b3@15 a3@16 [b3,d#4]@20, ~ a2@2 ~]/4", // B A5 A B D C#m D#m C#m …
  B: "[b3@6 [f#3,b3,d#4]@6 [f#3,b3,d#4] ~@3 [e3,a3]@6 [e3,a3,c#4]@6 ~@4 b3@6 [f#3,b3,d#4]@6 [f#3,b3,d#4] ~@3 [e3,a3]@6 [e3,a3,c#4]@6 ~@4 b3@6 [f#3,b3,d#4]@6 [f#3,b3,d#4] ~@3 [e3,a3]@6 [e3,a3,c#4]@6 [e3,a3,c#4]@4, [g#3,e4]@28 c#4@20 a2@29 [f#3,b3,d#4]@19, ~@13 [f#3,d#4]@19 [g#3,e4]@28 c#4@26 ~@10, ~@13 b3@15 [e3,a3]@17 [f#3,d#4]@19 [g#3,e4]@32, ~@16 a2@29 b3@15 [e3,a3]@20 a2@16]/6", // B A5 A B A5 A B A5 …
  C: "[b3@6 [f#3,b3,d#4]@6 [f#3,b3,d#4] ~@3 [e3,a3]@6 [e3,a3,c#4]@6 ~@4 [g#3,b3,f4]@2 [g#3,b3,f4]@2 [g#3,b3,f4,g#4]@4 [g#3,b3,f4,g#4]@4 ~@4 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4,a4]@4 [a3,c#4,f#4,a4]@4 ~@8 [f#3,b3,d#4,a4]@4 [f#3,b3,d#4,a4]@4 [f#3,b3,d#4,a4]@4, [g#3,e4]@7 e3@8 [a3,c#4,f#4]@5, ~@13 [f#3,d#4]@19 g#4@4 ~@8 [g#3,f4,g#4]@32 ~@4, ~@13 b3@15 [a3,c#4]@16 b3@20 [f#3,b3,d#4]@2 b2@14, ~@4 a2@8 a4 ~@2 a4@2 ~@3]/5", // B A5 A Fdim F#m B7 C#m F#m …
  D: "[[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 g#4@4 [d#3,f#3,c4,d#4,g#4]@2 [d#3,f#3,c4,d#4,g#4]@2 g#4@4 [g#3,b3,f4]@2 [g#3,b3,f4]@2 [g#3,b3,f4,g#4]@4 [g#3,b3,f4,g#4]@4 ~@4 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4,a4]@4 [a3,c#4,f#4,a4]@4 ~@8 [f#3,b3,d#4,a4]@4 [f#3,b3,d#4,a4]@4 b3@4 b3@6 [f#3,b3,d#4]@6 [f#3,b3,d#4] ~@3 [e3,a3]@6 [e3,a3,c#4]@6 ~@4 b3@6 [f#3,b3,d#4]@6 f#3@4 [f#3,a3,d4]@4 [f#3,a3,d4]@4 [f#3,a3,d4]@4 [f#3,a3,d4]@2 [f#3,a3,d4]!2, ~@4 e4@28 a4@4 ~@8 a4@6 b2@27 b3@15 [e3,c#4]@32 ~@4, ~ [g#3,b3]@3 g#4 ~@2 [g#3,f4,g#4]@8 a4@5 a2@7 [b3,d#4]@5, ~@12 [d#3,f#3,c4,d#4]@32 [a3,c#4,f#4]@32 ~ [f#3,d#4]@19 [g#3,e4]@32, ~@7 b3@5 [f#3,b3,d#4] ~@2 [f#3,d#4] [g#3,e4]@7 a3@5 ~@4]/8", // E G#7 Fdim F#m B7 B A5 A …
  E: "[[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 g#4@4 [d#3,f#3,c4,d#4,g#4]@2 [d#3,f#3,c4,d#4,g#4]@2 g#4@4 [g#3,b3,f4]@2 [g#3,b3,f4]@2 [g#3,b3,f4,g#4]@4 [g#3,b3,f4,g#4]@4 ~@4 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4,a4]@4 [a3,c#4,f#4,a4]@4 ~@8 [f#3,b3,d#4,a4]@4 [f#3,b3,d#4,a4]@4 b3@4 b3@6 [f#3,b3,d#4]@6 [f#3,b3,d#4] ~@3 [e3,a3]@6 [e3,a3,c#4]@6 ~@4 b3@6 [f#3,b3,d#4]@6 ~@4 [e3,a3]@6 [e3,a3,c#4]@6 [e3,a3,c#4]@4, ~@4 e4@28 a4@4 ~@8 a4@6 b2@27 b3@15 c#4@26 ~@10, ~ [g#3,b3]@3 g#4 ~@2 [g#3,f4,g#4]@8 a4@5 a2@7 [f#3,b3,d#4]@5, ~@12 [d#3,f#3,c4,d#4]@32 [a3,c#4,f#4]@32 ~ [f#3,d#4]@19 [g#3,e4]@32, ~@7 b3@5 [f#3,b3,d#4] ~@2 [f#3,d#4] [g#3,e4]@7 [e3,a3]@5 a2@4]/8", // E G#7 Fdim F#m B7 B A5 A …
  F: "[b3@3 [f#3,b3,d#4]@3 ~@2 [e3,a3]@3 [e3,a3,c#4]@3 ~@2 b3@3 [f#3,b3,d#4]@3 ~@2 [d3,a3,c#4,f#4]@2 [d3,a3,c#4,f#4]@2 c#4@4 [a2,g#3,c#4,e4]@3 [a2,g#3,c#4,e4]@5 [a2,g#3,c#4,e4]@3 [a2,g#3,c#4,e4]@5, [g#3,e4]@7 e3@8 ~@9, ~@3 [f#3,d#4]@5 [g#3,e4]@8 ~@8, ~@3 b3@4 [a3,c#4]@4 [f#3,b3,d#4]@8 ~@5, ~@2 a2@4 ~ [d3,a3,f#4]@4 ~]/6", // B A5 A B Dmaj7 Amaj7 C#m D#m …
  G: "[a2,g#3,c#4,e4]@3 [a2,g#3,c#4,e4]@5", H: "[e3,g#3,b3,e4,g#4]!4", I: "[c#3,g#3,c#4,e4,g#4]!4",
  J: "[[f#2,c#3,f#3,a#3,c#4,f#4]@4 [f#2,c#3,f#3,a#3,c#4,f#4]@4 [f#2,c#3,f#3,a#3,c#4,f#4]@4 c#4 c#4@3 [a2,e3,a3,c#4]@6 [a2,e3,a3,c#4]@8 ~@2 b3@16 b3@6 [f#3,b3,d#4]@6 [f#3,b3,d#4] ~@3 [e3,a3]@6 [e3,a3,c#4]@6 ~@4 b3@6 [f#3,b3,d#4]@6 [f#3,b3,d#4] ~@3 [e3,a3]@6 [e3,a3,c#4]@6 [e3,a3,c#4]@4, ~@12 [f#2,c#3,a#3,f#4]@20 [f#3,d#4]@22 ~@7 [f#3,d#4]@19 [g#3,e4]@32, ~@12 f#3@18 [a2,e3,a3,c#4]@31 b3@15 c#4@26 ~@10, ~@13 [g#2,d#3,g#3,g#4]@32 ~@3 [g#3,e4]@28 [e3,a3]@17 [f#3,b3,d#4]@19, ~@13 d#4@19 b2@32 a2@32 a2@16]/7", // F# A B A5 A B A5 A …
  K: "[b3@6 [f#3,b3,d#4]@6 [f#3,b3,d#4] ~@3 [e3,a3]@6 [e3,a3,c#4]@6 [e3,a3,c#4]@4, [g#3,e4], ~@13 [f#3,b3,d#4]@19, ~ a2]/2", // B A5 A C#m B
  L: "[b3@3 [f#3,b3,d#4]@3 ~@2 [e3,a3]@3 [e3,a3,c#4]@3 ~@2 b3@3 [f#3,b3,d#4]@3 ~@2 [d3,a3,c#4,f#4]@16, [g#3,e4]@7 e3@8 ~@5, ~@3 [f#3,d#4]@5 [g#3,e4]@8 ~@4, ~@3 b3@4 [a3,c#4]@4 [f#3,b3,d#4]@8 ~, ~ a2@2 ~@2]/5", // B A5 A B Dmaj7 C#m D#m C#m …
})).s("gm_piano").gain(0.56)

// bass · fretless bass · "Robert (bass)"
const bass = note(`<
  A B A C A B A B A B A B D E F G D E F A B A C A B A B A B A B D E F G D E F A B A B A B A H I@4 J K L M N A B A B A B
  A B D E F G D E F A B A B A B A O ~
>`.pickRestart({
  A: "e3@6 d#3@6 c#3 b2@3", B: "a2@6 g#2@6 f#2 e2@3", C: "c#3 ~ c#3@2 c#3 ~ c#3@2 c#3 ~ c#3@2 b2 c#3 e3 c#3",
  D: "g#2 ~ g#2@2 g#2 ~ g#2@2 g#2 ~ g#2@2 g#2 ~ g#2@2", E: "a2 ~ a2@2 a2 ~ a2@2 a2 ~ a2@2 a2 ~ a2@2",
  F: "f#2 ~ f#2@2 f#2 ~ f#2@2 f#2 ~ f#2@2 f#2 ~ f#2@2", G: "b2!4 a#2!4", H: "c#3 ~ c#3@2 c#3 ~ c#3@2 c#3@7 ~",
  I: "a2@6 a2@6 a2 c#3 e3 c#3", J: "e3 ~ e3@2 e3 ~ e3@2 e3 ~ e3@2 e3 ~ e3@2",
  K: "c#3 ~ c#3@2 c#3 ~ c#3@2 c#3 ~ c#3@2 c#3 ~ c#3@2", L: "f#2 ~ f#2@2 f#2 ~ f#2@2 f#2 ~ f#2@2 f#2 g#2@3",
  M: "a2@6 a2@7 ~ a2@2", N: "b2@15 ~", O: "c#3@15 ~",
})).s("gm_fretless_bass").gain(0.56)

// other · electric guitar clean · "Dean (solo)"
const electric_guitar_clean = note("<~@15 A ~@18 A ~@11 B C D E F@2 G H@2 ~@11 A ~@12>".pickRestart({
  A: "f#3 b3 d#4 f#3 g#3 b3 d#4 f#3", B: "f#3 e3 c#4 b3 g#4 f#4 c#5 b4", C: "c#5@4 c#5@2 b4@6 a4 b4 [g#4,a4] a4",
  D: "g#4 f#4 g#4@3 a4 g#4@4 f#4 g#4 [e4,f#4] f#4!2 e4", E: "g#4@2 b4 g#4@2 b4 g#4@7 ~@2 e5",
  F: "d#5 e5 c#5 e5 b4 e5 c#5 e5 b4 e5 c#5 e5 d#5 e5 b4 e5", G: "g#4 c#5 g#4 b4 c#5!2 b4 g#4!3 b4 g#4!2 e4@3",
  H: "[g#4 b4 e5@2 g#5@7 ~ g#5 f#5 [c#5,e5] b4@16 ~]/2", // C#m
})).s("gm_electric_guitar_clean").gain(0.8)

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

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

// drums · hihat
const hihat = s("hh").struct(`<
  A B C ~ A B D B D B D B ~@7 A B C ~ A B D B D B D B ~@7 A B D B A B C ~@10 A B D B D B D B ~@7 A B D B A B C ~@2
>`.pickRestart({
  A: "~ x!2 ~@2 x!3", B: "x!3 ~@2 x!2 ~", C: "~ x!2 ~@2 x!2 ~", D: "x!3 ~@2 x!3",
})).gain(0.72)

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

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

// drums · vibraslap
const vibraslap = s("vibraslap:0").struct("<~@13 A ~@3 A ~@14 A ~@3 A ~@27 A ~@3 A ~@10>".pickRestart({
  A: "~ x ~@3 x ~@2",
})).gain(8.46)

// drums · ride
const ride = s("rd").struct(`<
  ~@12 A B C@2 A B C ~@12 A B C@2 A B C ~@8 D C@3 A@2 E A ~@9 A B C@2 A B C ~@9
>`.pickRestart({
  A: "~ x!7", B: "x ~ x!3 ~ x!2", C: "x!8", D: "~ x!2 ~ x!4", E: "~ x!6 ~",
})).gain(0.72)

stack(piano, bass, electric_guitar_clean, kick, snare, hihat, open_hat, splash, vibraslap, ride)

More by Stone Temple Pilots