Strudelify
Stop, Stop, Stop cover art

1967

Stop, Stop, Stop

The Hollies

KeyD majorTempo204 bpm
0:00/0:00
// Stop, Stop, Stop — The Hollies
// 204 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 5/4 at bar 3, 4/4 at bar 5) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 144 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(204/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, A@4 for four bars: edit a riff to change every repeat.

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@3 A@6 B@6 C@8 D@8 E@2 F G@4 H@5 I@4 J@2 K L M@2 N@2 O@4 P@8 Q@8 J@2 R S T@2 U@2 V@8 D@8 J@2 K L M@2 N@2 W@8 Q@8 J@2
  R S T@2 U@2 A@6 X@6 ~
>`.pickRestart({
  A: "[[a3,c4]!3 [a3,c4,f#4]@2 [a3,c4]!3 [a3,c4]!3 [a3,c4,f#4]@2 [a3,c4]!2 a3 a3 [a3,c4]!3 [a3,c4]!3 [a3,c4,f#4], ~ f#4@2 ~@2 f#4@2 f#4@2 f#4@2 ~@2 f#4@2 [c4,f#4]@2 [d3,f#4]@2 d3@4 ~, ~@19 f#4@2 f#4@2 ~]/6", // Am F#dim Am F#dim Am F#dim Cdim D
  B: "[[a3,c4] [a3,c4,f#4]!2 [a3,c4,f#4]@2 a3!2 [a3,c4] [a3,c4] a3!2 c4 c4 a3!2 [a3,c4] [a3,c4] a3!2 [a3,c4,f#4]@2 [c4,f#4]@2 [d3,a3,c4,f#4], ~ d3@4 d3@5 ~ d3@6 d3@6 ~, ~@5 [c4,f#4]@2 f#4@2 [c4,f#4]@2 [a3,f#4]@2 [c4,f#4]@2 f#4@2 [c4,f#4]@2 ~@2 a3 ~@2]/6", // Am F#dim Am F#dim Cdim D7 Cdim D …
  C: "[[d3,a3,c4]!3 [a3,c4] [a3,c4] [d3,a3] a3!2 [d3,a3]!2 a3!2 a3!3 d3 d3 [d3,a3,f#4] a3 [a3,c4,f#4] [a3,c4,f#4] [a3,c4] [d3,a3,c4] [d3,a3] [d3,a3] [a3,c4]!2 [a3,c4,f#4]@2 [d3,a3,c4] [a3,c4] [a3,c4,f#4], ~ f#4@2 [d3,f#4]@2 [c4,f#4]@2 [c4,f#4]@2 [c4,f#4]@2 [c4,f#4]@2 ~@2 [a3,c4,f#4]@2 c4@2 ~@2 f#4@2 [c4,f#4]@2 ~@4 f#4@2 ~, ~@6 d3@2 ~@2 d3@2 ~ [d3,c4,f#4]@2 ~@3 d3@4 ~@3 [d3,f#4]@2 ~@3 d3@2]/8", // D7 Am D5 D F#dim Am D7 D5 …
  D: "[[a3,c4] a3!2 [a3,c4] [d3,a3,c4] [a3,c4,f#4] [a3,c4] [d3,a3] [d3,a3] a3!2 [a3,c4] [a3,c4] [d3,a3]!2 [a3,c4] [a3,c4]!3 [c4,f#4] c4 [a3,c4]!2 [d3,a3,c4] [d3,a3,c4] [a3,c4]!2 [d3,c4] c4 [a3,c4]!2 [d3,a3,c4,f#4], ~ d3@3 ~ d3@2 ~@3 d3@2 ~@3 [d3,f#4]@2 ~@2 a3@2 [d3,f#4]@2 ~@2 [d3,f#4]@2 [a3,f#4]@2 ~@3, ~ [c4,f#4]@2 f#4@2 ~@2 [c4,f#4]@2 [c4,f#4]@2 f#4@2 [c4,f#4]@2 ~@2 f#4@2 ~@4 f#4@2 ~@4 f#4@2 ~]/8", // Am D7 F#dim Am D5 Am D5 Am …
  E: "[[a3,c4]!2 [d3,a3,c4] [a3,c4] [a3,c4]!2 [d3,a3,c4] [d3,a3,c4,f#4], d3 ~@3, ~ f#4@2 f#4@2 f#4@2 ~]/2", // Am D7 Am D7
  F: "[a3,c4] a3!2 [d3,a3,c4], d3@3 ~, ~ [c4,f#4]@2 ~", // Am D7 Cdim
  G: "[[a3,c4]!4 [a3,c4] [a3,c4,f#4]!2 [a3,c4] [a3,c4] [a3,c4,f#4]!2 a3 a3 [a3,c4] [d3,a3,c4] [a3,c4,f#4], d3@3 d3@5 ~@8, ~ f#4@2 f#4@2 ~@2 f#4@2 ~@2 [c4,f#4]@2 f#4@2 ~]/4", // Am F#dim Am F#dim Am D7 F#dim Cdim
  H: "[[a3,c4] [a3,c4,f#4]!2 [a3,c4] [a3,c4]!2 [d3,a3,c4]!2 [a3,c4] [a3,c4,f#4] [d3,a3,c4]!2 [d3,a3,c4] [a3,c4]!3 [d3,a3,c4]!3 [d3,a3,c4,f#4], ~@3 f#4@2 f#4@2 f#4@2 ~@2 f#4@2 f#4@2 f#4@2 f#4@2 ~, ~@4 d3@2 ~@2 d3@2 ~@3 d3@3 ~@4]/5", // Am F#dim Am D7 Am F#dim D7 Am …
  I: "[[a3,c4] [a3,c4,f#4]!2 [a3,c4] [a3,c4] [a3,c4,f#4]!2 [a3,c4] [a3,c4]!4 [a3,c4] [a3,c4,f#4]!3, d3@7 d3@4 d3@3 d3@2, ~@3 f#4@2 ~@2 f#4@2 f#4@2 f#4@2 ~@3]/4", // Am F#dim Am F#dim Am F#dim
  J: "[[b3,d4] [g3,b3] [d3,g3,b3] [g3,b3] [g3,b3] [g3,b3,d4] [d3,g3,b3,d4] [g3,b3,d4,g4], ~ [d4,g4]@2 [d4,g4]@2 g4@2 ~, ~@2 d3 ~]/2", // Bm G G5
  K: "[e3,a3,c#4,e4,a4] [a3,c#4,e4,a4] [e3,a3,c#4,e4,a4] [a3,c#4,e4,a4]", // A
  L: "[a3,c#4,e4,a4] [e3,a3,c#4]!2 [a3,c#4,e4,a4], ~ [e4,a4]@2 ~", // A A5
  M: "[[g3,b3,d4]!2 [d3,g3,b3,d4] [g3,b3] [d3,g3,b3] [d3,g3,b3,d4] [g3,b3,d4] [g3,b3,d4,g4], ~ g4@2 [d4,g4]@2 g4@2 ~, ~@3 d3]/2", // G G5
  N: "[[e3,a3,c#4,e4] [a3,c#4] [e3,a3,c#4]!2 [a3,c#4] [a3,c#4,e4,a4]!2 [e3,a3,c#4,e4,a4], ~ [e4,a4]@2 [e4,a4]@2 ~@3, ~@16 e3@7 ~@9]/2", // A A5
  O: "[[a3,c4] a3!2 c4 c4 a3!2 [a3,c4] [a3,c4] a3!2 [a3,c4,f#4]@2 [c4,f#4]@2 [d3,a3,c4,f#4], ~ [c4,f#4]@2 d3@6 d3@6 ~, ~@3 [a3,f#4]@2 [c4,f#4]@2 f#4@2 [c4,f#4]@2 ~@2 a3 ~@2]/4", // Am F#dim Cdim D7 Cdim D Cdim
  P: "[[d3,a3,c4]!3 [a3,c4] [a3,c4] a3!3 a3 [d3,a3] a3!2 a3!3 d3 d3 [d3,a3,f#4] a3 [a3,c4,f#4] [a3,c4,f#4] [a3,c4] [d3,a3,c4] [d3,a3] a3 [a3,c4]!2 [a3,c4,f#4]@2 [d3,a3,c4] [a3,c4] [a3,c4,f#4], ~ f#4@2 [d3,f#4]@2 [c4,f#4]@2 [c4,f#4]@2 [c4,f#4]@2 [c4,f#4]@2 ~@2 [a3,c4,f#4]@2 c4@2 ~@2 f#4@2 [c4,f#4]@2 f#4@2 ~@2 f#4@2 ~, ~@6 d3@2 ~@5 [d3,c4,f#4]@2 ~@3 d3@4 ~@8 d3@2]/8", // D7 Am D5 D F#dim Am D7 D5 …
  Q: "[[a3,c4] a3!2 [a3,c4] [a3,c4] [a3,c4,f#4] [a3,c4] a3 a3!3 [a3,c4] [a3,c4] [d3,a3] a3 [a3,c4] [a3,c4]!3 [c4,f#4] c4 [a3,c4]!2 [d3,a3,c4] [d3,a3,c4] [a3,c4]!2 c4 c4 [a3,c4]!2 [d3,a3,c4,f#4], ~ d3@3 ~ d3@2 ~@3 d3@2 ~@3 [d3,f#4]@2 ~@2 a3@2 [d3,f#4]@2 ~@2 [d3,f#4]@2 [a3,f#4]@2 ~@3, ~ [c4,f#4]@2 f#4@2 ~@2 [c4,f#4]@2 [c4,f#4]@2 f#4@2 [c4,f#4]@2 ~@2 f#4@2 ~@4 f#4@2 ~@4 f#4@2 ~]/8", // Am F#dim Am D5 Am Cdim Am D7 …
  R: "[e3,a3,c#4,e4,a4] [a3,c#4,e4,a4] [a3,c#4,e4] [a3,c#4,e4,a4]", // A
  S: "[a3,c#4,e4] [e3,a3,c#4]!2 [a3,c#4,e4,a4], ~ [e4,a4]@2 ~", // A A5
  T: "[[g3,b3,d4]!2 [d3,g3,b3,d4] [g3,b3] [d3,g3,b3] [g3,b3,d4]!2 [g3,b3,d4,g4], ~ g4@2 [d4,g4]@2 g4@2 ~, ~@3 d3]/2", // G G5
  U: "[[e3,a3,c#4,e4] [a3,c#4] [e3,a3,c#4]!2 [a3,c#4] [a3,c#4,e4,a4] [a3,c#4,e4] [a3,c#4,e4,a4], ~ [e4,a4]@2 [e4,a4]@2 ~@3, ~@16 e3@7 ~@9]/2", // A A5
  V: "[[a3,c4] [d3,a3,c4]!2 [a3,c4] [a3,c4] [d3,a3] a3!2 [d3,a3]!2 a3!2 a3!3 d3 d3 [d3,a3,f#4] a3 [a3,c4,f#4] [a3,c4,f#4] [a3,c4] [d3,a3,c4] [d3,a3] [d3,a3] [a3,c4]!2 [a3,c4,f#4]@2 [d3,a3,c4] [a3,c4] [a3,c4,f#4], ~ f#4@2 [d3,f#4]@2 [c4,f#4]@2 [c4,f#4]@2 [c4,f#4]@2 [c4,f#4]@2 ~@2 [a3,c4,f#4]@2 c4@2 ~@2 f#4@2 [c4,f#4]@2 ~@4 f#4@2 ~, ~@6 d3@2 ~@2 d3@2 ~ [d3,c4,f#4]@2 ~@3 d3@4 ~@3 [d3,f#4]@2 ~@3 d3@2]/8", // Am D7 Am D5 D F#dim Am D7 …
  W: "[[a3,c4] [d3,a3,c4]!2 [a3,c4] [a3,c4] a3!3 a3 [d3,a3] a3!2 a3!3 d3 d3 [d3,a3,f#4] a3 [a3,c4,f#4] [a3,c4,f#4] [a3,c4] [d3,a3,c4] [d3,a3] a3 [a3,c4]!2 [a3,c4,f#4]@2 [d3,a3,c4] [a3,c4] [a3,c4,f#4], ~ f#4@2 [d3,f#4]@2 [c4,f#4]@2 [c4,f#4]@2 [c4,f#4]@2 [c4,f#4]@2 ~@2 [a3,c4,f#4]@2 c4@2 ~@2 f#4@2 [c4,f#4]@2 f#4@2 ~@2 f#4@2 ~, ~@6 d3@2 ~@5 [d3,c4,f#4]@2 ~@3 d3@4 ~@8 d3@2]/8", // Am D7 Am D5 D F#dim Am D7 …
  X: "[[a3,c4] [a3,c4,f#4]!2 [a3,c4,f#4]@2 a3!2 [a3,c4] [a3,c4] a3!2 c4 c4 a3!2 [a3,c4] [a3,c4] a3!2 [a3,c4,f#4]@2 ~@3, ~ d3@4 d3@5 ~ d3@6 d3@6 ~, ~@5 [c4,f#4]@2 f#4@2 [c4,f#4]@2 [a3,f#4]@2 [c4,f#4]@2 f#4@2 [c4,f#4]@2 ~@5]/6", // Am F#dim Am F#dim Cdim D Cdim
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.2)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@3 A B A B ~ C@2 ~ D ~@6 E ~@2 F E ~ G H ~ I@2 ~ J F K ~@3 L@3 ~@8 M F N O ~@4 D ~@4 H P E ~@2 Q E ~ R B D I@2 F J M
  F S T ~ H ~ U ~@3 E ~@2 F E ~ G H ~ I@2 ~ J M F N O ~@5 H P E ~@2 Q E ~ R B D I@2 F J M F S T ~ H ~ U A B A B ~ C@2 ~
  D ~@4
>`.pickRestart({
  A: "d3!2", B: "d3!2 ~@2", C: "[~@3 d3@2 ~@3]/2", D: "~@2 d3 ~", E: "d3 ~@3", F: "~@3 d3", G: "~@2 f#4 ~",
  H: "~ d3 ~@2", I: "[~ d3 d3@3 ~@3]/2", J: "d3@2 d3 ~", K: "d3 ~", L: "[~@2 d3@4 ~ d3@2 d3@2 d3]/3",
  M: "[g3,g4] ~@2 d3", N: "~ e3 ~@2", O: "e3 ~@2 e3", P: "d3 ~ d3@2", Q: "d3 d3@2 d3", R: "d3 ~ f#4 d3",
  S: "~ e3 [e3,a4] ~", T: "[e3,a4] ~@2 e3", U: "~@2 a4 e3",
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.2)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@2 A B@43 C D@2 E@2 D@2 E F G B H I B@15 C D@2 E@2 D@2 E J B I B I B@9 I B K D@2 E@2 D@2 E L B@15 K D@2 E@2 D@2 E M
  B@11 ~@2
>`.pickRestart({
  A: "~@3 a2", B: "d2 ~ a1 ~", C: "d2@4 ~@4 e2@3 ~ f#2@3 ~", D: "g2 ~ d2 ~", E: "a2@5 ~@3 e2@4 ~@4",
  F: "a2@4 ~@4 a2@2 e2 ~ a2@4", G: "d2@5 ~@3 a1@4 ~@4", H: "d2@4 ~@4 a1@5 ~@3", I: "d2@4 ~@4 a2@2 ~@2 f#2@3 ~",
  J: "a2@2 ~@6 a2@2 e2 ~ a2@3 ~", K: "d2@2 ~@2 d2@4 e2@4 f#2@3 ~", L: "a2@3 ~@5 a2 ~@3 a2@3 ~",
  M: "a2@2 ~@6 a2@2 e2@2 g2@3 ~",
})).s("gm_acoustic_bass").gain(0.38)

// chords · banjo
const banjo = note(`<
  A B C D E F@2 D E D G H@16 I@2 J@2 H@16 K L M N K L O P Q@4 H R@12 S T U K L M N K L O P D E F@2 D E D V W X Y Z AA E
  F@2 K L M N K L O P H@16 K L M N K L O P Q@4 AB@4 AC@4 ~
>`.pickRestart({
  A: "~@13 d3@2 g4, ~@6 f#4 ~", B: "[d3,a4]@4 d3@3 ~ d3@2 ~@2 [d3,f#4]@3 g4", C: "d3@3 ~ d3@3 ~ d3@3 ~@5, a4@3 ~@5",
  D: "~@4 d3@3 ~ [d3,c4]@4 [d3,b3]@4, ~@4 c4 ~@11", E: "[d3,c4]@3 b3 [d3,c4]@3 b3 [d3,a3]@4 d3@4, ~@12 b3 ~@3",
  F: "[~@4 d3@3 ~ [d3,c4]@4 b3@4 c4@3 b3 [d3,c4]@3 b3 [d3,a3]@4 d3@4, ~@4 c4 ~@7 d3@7 ~@9 b3 ~@3]/2", // D7 D5
  G: "[d3,c4]@3 b3 [d3,c4]@3 b3 [d3,a3]@4 d3@3 ~, ~@12 b3 ~@3", H: "~@2 [a3,c4,f#4] ~@3 [a3,c4,f#4] ~",
  I: "[d3,c4]@3 d4 [d3,f#4]@3 ~ d3@3 ~ [d3,f#4]@3 ~, ~@8 a3@2 ~ c4@2 ~@3", // D7 D
  J: "[d3,c4]@3 d4 [d3,f#4]@3 ~ [d3,a3]@3 ~ [d3,f#4]@3 ~, ~@11 c4@2 ~@3", K: "g3 ~ g4 ~ g3 f#4 ~ g3",
  L: "e4@2 ~@2 g3@2 d4@3 ~ g3@2 b3@2 ~@2", M: "~@4 c#4@3 ~ a3 ~ d4@3 ~ a3 ~", N: "e4@3 ~ a3 ~ d4@2 c#4@2 b3@2 a3 ~@3",
  O: "~@4 c#4@4 ~@2 d4@3 ~ a3 ~", P: "c#4@3 ~ a3 ~ b3@5 ~ a3@2 ~@2", Q: "c4@2 ~ d4 f#4@2 ~@2 a3@3 c4 f#4@2 ~@2",
  R: "~@4 [a3,c4,f#4]@3 ~@5 [a3,c4,f#4]@3 ~", S: "~ [a3,c4,f#4] ~ [a3,c4,f#4]",
  T: "~@4 [a3,c4,f#4]@4 ~@4 [a3,c4,f#4]@3 ~", U: "~@4 a4@2 ~@2 f#4@2 ~@2 d4@2 ~ c4, ~@3 a3@2 ~@2 a3@2 ~@2 a3@2 ~@3",
  V: "[d3,c4]@3 b3 [d3,c4]@3 b3 [d3,a3]@4 d3@2 [d#4,e4] [f4,f#4,g4], ~@12 b3 ~@3", // D7 D5 Emaj7
  W: "[d3,a4]@3 ~ [d3,a4]@3 ~ d3@5 d4 [d#4,e4] [f4,f#4,g4], g#4 ~@7 a4@2 ~@6", // D5 Emaj7
  X: "[d3,a4]@3 ~ [d3,a4]@3 ~ d3@5 [d4,d#4] [e4,f4] [f#4,g4,g#4], g#4 ~@7 a4@2 ~@6", // D5 D#maj7 Fmaj7
  Y: "d3@5 ~ [d4,d#4] [e4,f4,f#4] [g4,g#4] ~@4 d4 [d#4,e4] [f4,f#4,g4], a4@2 ~@6 d3@5 ~@3, ~@4 a4 ~@3", // D#maj7 G#maj7 Emaj7
  Z: "d3@5 ~ d#4 [e4,f4,f#4,g4] d3@5 ~@3, a4@2 ~@6 a4@3 ~@5, g#4 ~@7 g#4 ~@7",
  AA: "d3@3 ~ d3@3 ~ [d3,c4]@4 [d3,b3]@4, ~@4 c4 ~@11", AB: "c5@2 ~ d5 f#5@2 ~@2 a4@2 c5 ~ f#5@2 ~@2",
  AC: "[~@2 f#5@2 ~@2 f#5@2 ~@2 f#5@2 ~ c5@2 ~@3 f#5@2 ~@2 f#5@2 ~@2 f#5@2 ~ c5@2 ~@3 f#5@2 ~@2 f#5@2 ~@2 f#5@2 ~ c5@2 f#5@2 ~@15, a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~@9, ~ c5@2 ~@2 c5@2 ~@2 c5@2 ~@4 f#5@2 c5@2 ~@2 c5@2 ~@2 c5@2 ~@4 f#5@2 c5@2 ~@2 c5@2 ~@2 c5@2 ~@21]/4",
})).s("gm_banjo").gain(0.33).pan(0.7)

// other · piccolo
const piccolo = note(`<
  ~@19 A B C D A E C F ~@12 A E C D A E G D H I C D H I C F J@3 ~@9 A E C D K E C D H I C D H I C F L@4 ~@12 H I C F H I
  C M ~@8 A E C D A E C D N@2 C D H I C F O@4 A P A Q R@3 ~@2
>`.pickRestart({
  A: "a4@3 g4 f#4@2 g4@2", B: "a4!3 b4 a4@2 a4@2", C: "a4!2 f#4 g4", D: "a4@3 ~", E: "a4!3 c5 a4@2 a4@2", F: "a4",
  G: "a4@2 a4@2 f#4!2 g4@2", H: "g4 ~ g4 ~", I: "g4@2 a4!2 a4@2 a4@2", J: "[f#4@11 ~@5]/3", K: "a4@5 g4@2 f#4@5 g4@4",
  L: "[f#4@25 ~@7]/4", M: "a4@13 ~@3", N: "[g4@4 ~@4 g4@4 ~@3 g4@4 ~ a4@2 a4@2 a4@4 a4@4]/2", O: "[f#4 g4]/4",
  P: "a4@2 g4@2 f#4@3 ~", Q: "a4 b4 c5 b4", R: "[a4@11 ~@5]/3",
})).s("gm_piccolo").gain(0.28).pan(0.6)

// drums · kick
const kick = s("bd").struct("<~@3 [x!2]!139 x ~>").gain(0.44)

// drums · rim
const rim = s("rim").struct("<~@3 [~ x ~ x]!139 ~@2>").gain(0.44)

// drums · crash
const crash = s("cr").struct("<~@47 A ~@3 A ~@23 A ~@3 A ~@19 A ~@3 A ~@19 A ~@3 A ~@16>".pickRestart({
  A: "~ x ~ x",
})).gain(0.38)

// drums · tambourine
const tambourine = s("tb").struct("<~@3 [x!4]!139 ~@2>").gain(0.22)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@3 [x!4]!139 x ~>").gain(1.11)

// drums · shaker
const shaker = s("sh").struct("<~@3 [x!4]!139 x ~>").gain(0.27)

stack(
  acoustic_guitar_steel, acoustic_guitar_steel_2, bass, banjo, piccolo, kick, rim, crash, tambourine, cabasa, shaker
)

More by The Hollies