Strudelify
Bus Stop cover art

15 Classic Tracks: The Hollies

Bus Stop

The Hollies

KeyE minorTempo125 bpm
0:00/0:00
// Bus Stop — The Hollies
// 125 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 4 "Nylon-stGt" acoustic guitar nylon (copy of ch 3 "Steel-stGt" acoustic guitar steel)
// note: Full arrangement: all 98 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(125/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.

// other · flute
const flute = note(`<
  ~@12 A B C D ~@4 E F@2 G H@4 E I J K@5 ~@8 A B C D ~@12 E F@2 G H@4 E I J K@5 ~@8 A B C D ~@10
>`.pickRestart({
  A: "e5@3 ~ g5@3 ~ f5 ~ a5@3 ~ g5@2", B: "~@2 f5@3 ~ e5@3 ~ e5@3 ~@3", C: "g5@3 ~ f5@3 ~ e5@3 ~ d5@2 c5 ~", D: "d5 ~",
  E: "g5@3 ~ g5 ~ g5@3 ~ g5@3 ~ g5@2", F: "[f#5@3 ~ f#5@3 ~ g5 ~ a5@3 ~ b5@5 ~ a5@3 ~ g5 ~ f#5@3 ~ e5 ~]/2",
  G: "~@4 f#5@3 ~ g5@3 ~ b5@3 ~", H: "[a5@3 ~ g5@3 ~ f#5 ~ e5@3 ~ d#5@5 ~ d#5@3 ~ b4 ~ d#5@3 ~ e5@26 ~@8]/4",
  I: "f#5@3 ~ f#5@3 ~ g5 ~ a5@3 ~ a5@2", J: "b5@3 ~ a5@3 ~ g5 ~ f5@3 ~ e5 ~",
  K: "[~@4 f#5@3 ~ g5 ~ b5@3 ~ a5@5 ~ g5@3 ~ f5 ~ e5@3 ~ d#5@5 ~ d#5@3 ~ d#5 ~ e5@3 ~ e5@26 ~@8]/5",
})).s("gm_flute").gain(0.33).pan(0.3)

// chords · acoustic guitar steel · "Steel-stGt"
const acoustic_guitar_steel = note(`<
  A B A B C@7 D E F G H C@2 I J K L H M N O P@2 M L Q K F R H P C@7 D E F G H C@2 I J S T U V W X Y Z K L H M N O P@2 M
  L Q K F R H P C@7 D E F G H C@2 I J AA T U V AB AC
>`.pickRestart({
  A: "[e5,c6] ~ [e5,b5] ~ [e5,a5] ~ [e5,g5] ~ [e5,a5]@3 ~ [e5,a5] ~ d5 f5", B: "[d5,a5]@5 ~@3 [d5,g5]@5 ~@3",
  C: "[c4,e4,a4]@3 ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~", // Am
  D: "[c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4]@3 ~ [d4,f4,g4,b4]@3 ~", // Am G7
  E: "[e4,g4,c5]@3 ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~", // C G
  F: "[c4,e4,a4]@3 ~ [c4,e4,a4]@3 ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~", // Am
  G: "[d4,f4,a4]@3 ~ [d4,f4,a4] ~ [d4,f4,a4] ~ [d4,f4,a4] ~ [d4,f4,a4] ~ [d4,f4,a4] ~ [d4,f4,a4] ~", // Dm
  H: "[e4,g4,b4]@3 ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~", // Em
  I: "[c4,e4,a4]@3 ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~", // Am Em
  J: "[c4,e4,a4]@3 ~ [c4,e4,a4] ~ [c4,e4,a4]!3 ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~", // Am
  K: "[e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~", // C
  L: "[d#4,f#4,b4]@3 ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~", // B
  M: "[e4,g4,c5]@3 ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~", // C
  N: "[c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~", // Am
  O: "[d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~", // B
  P: "[e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~", // Em
  Q: "[e4,g4,b4]@3 ~ [e4,g4,b4]@3 ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~", // Em
  R: "[d#4,f#4,b4]@3 ~ [d#4,f#4,b4]@3 ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~", // B
  S: "[a5,c6]@3 ~ [a5,c6]@3 ~ b5@3 ~ b5@3 ~", T: "c6 ~ b5 ~ a5 ~ g5 ~ e5@3 ~ e5@3 ~",
  U: "a5 ~ g#5 ~ a5 ~ b5 ~ c6 ~ b5 ~ c6@3 ~", V: "c6 ~ a5 ~ g#5@3 ~ e5@5 ~@3",
  W: "c6 ~ b5 ~ a5 ~ g5 ~ e6 ~ d6 ~ c6 ~ e6 ~", X: "e6 ~ f6 ~ d6 ~ e6 ~ c6 ~ b5 ~ a5@3 ~",
  Y: "g#5 ~@3 e5 ~ g#5 ~ c6 ~ a5 ~ g5@3 ~", Z: "a5 ~@3 e5@3 ~ a5@5 ~@3", AA: "c6@3 ~ c6@3 ~ c6 ~ d6 ~ e6@3 ~",
  AB: "c6 ~ b5 ~ a5 ~ g6 ~ e6 ~ d6 ~ c6 ~ e6 ~", AC: "d6@3 ~@13",
})).s("gm_acoustic_guitar_steel").gain(0.31).pan(0.1)

// bass · fretless bass · "FretlsBass"
const bass = note(`<
  ~@4 A B A B A B A C D E F G H I J K L M N O P Q R S T Q N U V W X Y A B A B A B A C D E F G H I J K Z@5 AA@2 AB L M N
  O P Q R S T Q N U V W X Y A B A B A B A C D E F G H I J K V AA V AC AD AE
>`.pickRestart({
  A: "a1@4 ~@2 b1 c2 e2 ~ e2@3 ~ e2 ~", B: "a1@4 ~@2 e2 ~ g1@3 ~ g1@3 ~", C: "a1@4 ~@2 e2 ~ e1@3 ~ g1@3 ~",
  D: "c2@3 ~@3 c2 ~ g1@3 ~@3 g1 ~", E: "a1@3 ~@3 a1 ~ a1@3 ~@5", F: "d2@3 ~@3 d2 ~ d2@3 ~@3 d2 ~",
  G: "e1@3 ~@3 e2 ~ e1@3 ~ e1@3 ~", H: "a1@4 ~@2 b1 c2 e2 ~ e2@3 ~ a1 ~", I: "a1@4 ~@2 e2 ~ e1 ~ e1 ~ e1@3 ~",
  J: "a1@4 ~@2 b1 c2 e2 ~ e1@3 ~ g1 ~", K: "a1@3 ~@3 a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", L: "c2@3 ~@3 c2 ~ g1 ~ g1@3 ~ c2 ~",
  M: "b1@3 ~@3 b1 ~ f#1@3 ~ a1@3 ~", N: "e1@5 ~@3 d2@5 ~@3", O: "c2@3 ~@3 c2 ~ c2 ~ c2@3 ~ c2 ~",
  P: "a1@3 ~@3 a1 ~ a1 ~ a1@3 ~ a1 ~", Q: "b1@3 ~@3 b1 ~ b1 ~ b1@3 ~ b1 ~", R: "e1@3 ~ e1@3 ~ d2@3 ~ d2@3 ~",
  S: "e1@3 ~ e1@3 ~ b1@3 ~ b1@3 ~", T: "c2@3 ~@3 c2 ~ g1@5 ~@3", U: "c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~",
  V: "a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~", W: "b1@3 ~ b1@3 ~ b1@3 ~ b1@3 ~", X: "e1@3 ~@3 e2 ~ e1 ~ e1@3 ~ e1 ~",
  Y: "e1@3 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~", Z: "a1@3 ~ a1@3 ~ b1@3 ~ e1@3 ~", AA: "a1@3 ~ a1@3 ~ e2@3 ~ e1@3 ~",
  AB: "a1@3 ~ e2@3 ~ a1@3 ~ a1@3 ~", AC: "a1@4 ~@2 a1 ~ e2@3 ~ e1@3 ~", AD: "a1@4 ~@2 e2 ~ e1@3 ~ e1@3 ~",
  AE: "a1@3 ~@13",
})).s("gm_fretless_bass").gain(0.4)

// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note("<~@20 A B@2 C D E@3 F G H I@5 ~@24 A B@2 C D E@3 F G H I@5 ~@22>".pickRestart({
  A: "e5@3 ~ c5 ~ e5@3 ~ c5@3 ~ e5@2", B: "[d#5@3 ~ b4@3 ~ b4 ~ f#5@3 ~ g5@5 ~ f#5@3 ~ e5 ~ d5@3 ~ c5 ~]/2",
  C: "~@4 d5@3 ~ e5@3 ~ e5@3 ~", D: "e5@3 ~ e5@3 ~ d#5 ~ c5@3 ~ b4@2",
  E: "[a4@3 ~ a4 ~ f#4 ~ f#4 ~ b4@3 ~ b4@26 ~@8]/3", F: "c5@3 ~ c5 ~ c5@3 ~ c5@3 ~ c5@2",
  G: "b4@3 ~ b4@3 ~ c#5 ~ d#5@3 ~ d#5@2", H: "e5@3 ~ d5@3 ~ e5 ~ d5@3 ~ c5 ~",
  I: "[~@4 e5@3 ~ e5 ~ e5@3 ~ e5@5 ~ d5@3 ~ c5 ~ e5@3 ~ d#5@5 ~ d#5@3 ~ d#5 ~ e5@3 ~ e5@26 ~@8]/5",
})).s("gm_string_ensemble_1").gain(0.36).pan(0.7)

// drums · kick
const kick = s("bd").struct("<~@4 A@7 B A@15 B A@7 B A@7 B A@15 ~ A@7 B A@7 B A@7 B A@13 B>".pickRestart({
  A: "x!2", B: "x",
})).gain(0.37)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@35 [~@3 x!2 ~@3] ~@39 [~@3 x!2 ~@3] ~@22>").gain(0.37)

// drums · crash
const crash = s("cr").struct("<~@12 A ~@7 A ~@7 A ~@15 A ~@15 A ~@7 A ~@15 A ~@13>".pickRestart({
  A: "x",
})).gain(0.37)

// drums · tambourine
const tambourine = s("tb").struct("<~@52 [~ x ~ x]!7 ~@39>").gain(0.32)

stack(flute, acoustic_guitar_steel, bass, string_ensemble_1, kick, snare, hihat, low_tom, crash, tambourine)

More by The Hollies