Strudelify
I Don't Want To Spoil The Party cover art

1965 · Beatles For Sale

I Don't Want To Spoil The Party

The Beatles

KeyG majorTempo189 bpm
0:00/0:00
// I Don't Want To Spoil The Party — The Beatles
// 189 bpm, 4/4, key G major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 126 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(189/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 · rock organ
const rock_organ = note(`<
  ~@7 A B@3 C@3 D E F@2 G@5 H B@3 I@3 D E F@2 J@2 K@3 L@3 M N O P@3 M N Q R B@3 C@3 D E F@2 G@5 ~@16 L@3 M N O P@3 M N Q
  S B@3 I@3 D E F@2 J@2 K@3 ~@15
>`.pickRestart({
  A: "~@2 [g4,b4] [a4,c5]", // G Am
  B: "[[b4,d5]@2 [b4,d5] [b4,d5]@3 [b4,d5] [c5,e5]@3 [b4,d5]@2 [b4,d5] [a4,c5]@2 [g4,d5]@7 ~@2]/3", // Bm C Bm Am G5
  C: "[~@4 [g4,b4]@2 [a4,c5] [b4,d5]@3 [b4,d5]@2 [b4,d5] [b4,d5]@2 [b4,e5]@3 d5@4 g4@2, ~@3 b4]/3", // G Am Bm E5
  D: "[a4,d5]@3 [g4,b4] [f#4,a4]@4", E: "~@3 d5", F: "[e5@2 e5@2 e5@2 e5 d#5@5 ~@3 b4]/2",
  G: "[c5@2 d5@2 e5 g5@2 f#5@4 ~ [g4,b4] [a4,c5]@2 [b4,d5]@3 [b4,d5]@2 [b4,d5] [b4,d5]@2 [a4,e5]@3 [g4,d5]@2 [g4,d5]@2 [g4,c5] d5@4 c5 b4@4, ~@31 g4@9]/5", // G Am Bm A5 G5 C5
  H: "~@7 b4",
  I: "[~@4 [g4,b4]@2 [a4,c5] [b4,d5]@3 [b4,d5]@2 [b4,d5] [b4,d5]@2 [c5,e5]@3 [b4,d5]@2 [a4,c5]@2 [g4,b4]@2]/3", // G Am Bm C Bm Am G
  J: "[c5@2 d5@2 e5 g5@2 f#5@4 ~@4 [b4,d5]]/2", // Bm
  K: "[[b4,d5]@2 [b4,d5]@2 [b4,d5] [b4,d5]@2 [a4,e5]@3 [g4,d5]@2 [g4,d5]@2 [g4,c5] d5@4 c5 b4@4, ~@5 g4@3]/3", // Bm A5 G5 C5
  L: "[~@4 [g4,b4]@2 [a4,d5] [b4,g5]@3 [b4,g5]@2 [b4,g5]@2 [b4,a5] [b4,g5]@7 ~@2]/3", M: "[d5,g5]", N: "[g4,e5]",
  O: "[c5,g5]", P: "[[d5,f#5]@3 ~ [a4,c5] [a4,d5]@2 [b4,g5]@3 [b4,g5] [b4,g5]@3 [b4,a5] [b4,g5]@7 ~@2]/3",
  Q: "g5@5 a5 g5@2, c5", R: "[d5,f#5]@3 ~ b4@2 c5@2", S: "[d5,f#5]@3 ~@4 b4",
})).s("gm_rock_organ").gain(0.72)

// chords · acoustic guitar nylon · "Gtr 1 Nylon Bank 32"
const acoustic_guitar_nylon = note(`<
  A B C D E F G@8 H@2 I J K H G L G@8 H@2 I J K H G L G M N@2 I O P Q N@2 I O P Q G@6 H@2 I J K H G L G@8 H@2 I J K H G
  L G M N@2 I O P Q N@2 I O P Q G@6 H@2 I J K H G L G R S B C D E F T@8
>`.pickRestart({
  A: "[g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4] [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4] [g2,b2,d3,g3,b3,g4]@2", // G
  B: "~ [g3,b3,g4] ~ [g3,b3,g4], f3 e3", C: "~@2 [a3,c4,g4]@2 [a3,c4,g4]!2 [a3,c4,g4]@2, d3",
  D: "~ [a3,c4,g4] ~ [a3,c4,g4], f3 e3", E: "~@2 [a3,d4,f#4]!4 [a3,d4,f#4]@2, d3",
  F: "~ [a3,d4,f#4] ~ [a2,d3,a3,d4,f#4], e3 f#3", // D
  G: "[g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]!4", // G
  H: "[a2,d3,a3,d4,f#4]@2 [a2,d3,a3,d4,f#4]@2 [a2,d3,a3,d4,f#4]!4", I: "[e2,b2,e3,g3,b3,e4]@2 [e2,b2,e3,g3,b3,e4]!6",
  J: "[b2,d#3,a3,b3,f#4]@2 [b2,d#3,a3,b3,f#4]!6", K: "[a2,e3,a3,c4,g4]@2 [a2,e3,a3,c4,g4]!6",
  L: "[f3,a3,c4,g4]@2 [f3,a3,c4,g4]@2 [f3,a3,c4,g4]!4", M: "[g2,b2,d3,g3,b3,g4]!4",
  N: "[g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]!6", O: "[a2,e3,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4]!6",
  P: "[c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]!6", Q: "[a2,d3,a3,d4,f#4]@2 [a2,d3,a3,d4,f#4]!6",
  R: "[g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]!2 [g2,b2,d3,g3,b3,g4]@2", // G
  S: "[g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]!4 [g2,b2,d3,g3,b3,g4]@2", T: "[[g2,b2,d3,g3,b3,g4]@121 ~@7]/8",
})).s("gm_acoustic_guitar_nylon").gain(0.36).pan(0.3)

// chords · electric guitar muted · "Gtr2 Muted Electric"
const electric_guitar_muted = note(`<
  A B C D E F A@2 G@3 H G H I J ~@8 G@3 H G H I J ~@20 G@3 H G H I J ~@7 K L M N O L P Q@2 R S T U L M N V ~@12 G@3 H G
  H I J ~@7 W X B Y Z E AA AB@8
>`.pickRestart({
  A: "[g3,b3,d4]", B: "~@4 d4@3 d4, b3", C: "c4", D: "~ c4, a3", E: "a3", F: "d4 c4", G: "~ [g2,b2,d3,g3,b3,g4]@3",
  H: "[g2,b2,d3,g3,b3,g4]", I: "~@2 [a3,c4] ~@2 [a3,c4] ~@2", J: "[a3,c4] ~@2 [c4,f#4] ~@4",
  K: "~ [g3,b3] [a3,c4] [b3,d4]", L: "~@3 g3, g3@2 g3 ~, ~@2 [b3,d4]@3 [b3,d4]@3",
  M: "[a3,c4,e4] [g3,b3]!2 [a3,c4], ~ d4@2 ~", N: "~@3 b3, g3, ~@2 d4@3 d4@3, ~@3 b3@3 ~@2",
  O: "d4 [g3,b3] [a3,c4] [a#3,c#4]", P: "[a3,c4,e4] [g3,b3] [d3,g3,b3] [e3,g3,c4], ~ d4@2 ~",
  Q: "[~@8 [c4,f4]@3 [c4,f4]@2 [c4,f4] ~@2, f#3!2 ~@2, ~@2 [c4,e4]@3 [c4,e4]@3 ~@8, ~@6 a2@5 ~@5]/2", // F5 C
  R: "~@3 g3, e2, ~@2 b3@3 b3@3, ~@3 g3@3 ~@2", S: "~@7 b3, b3@3 b3@4 ~, ~ a3@4 a3@3",
  T: "~@3 a3, a2, ~@2 c4@3 c4@3, ~@3 a3@3 ~@2, ~ e3", U: "[a3,d4] [g3,b3] [a3,c4] [a#3,c#4]", V: "[b3,g4] ~@3",
  W: "[d4,g4]@3 [d4,g4]@2 [d4,g4]@3", X: "[d4,g4]", Y: "c4@6 ~ g3", Z: "~@7 g3, a3@3 ~, ~ c4", AA: "[f#3,d4] [f#3,c4]",
  AB: "[[g3,b3,d4]@121 ~@7]/8", // G
})).s("gm_electric_guitar_muted").gain(0.59).pan(0.8)

// bass · fretless bass · "Fretless E. Bass"
const bass = note(`<
  ~@6 A@8 B@2 C D E F A G A H A@6 B@2 C D E F A G A I A H J K L M A H J K L M A@6 B@2 C D E F A G A N A I A N A O B P C
  Q R S A G A N A H J K L M A H J K L M A@6 B@2 C D E F A G A N A H B P B P T@8
>`.pickRestart({
  A: "g2 d2", B: "d2 a1", C: "e2@2 b1 e2", D: "b2 f#2", E: "a2 e2", F: "d2@2 a2 d2", G: "f2@2 c2 f2", H: "g2@2 d2 g2",
  I: "g2@2 d2 f#2", J: "e2 b1", K: "a1 e2", L: "c2!2", M: "d2@2 e2 f#2", N: "g2 d2 e2 f#2", O: "g2!2 f#2 e2",
  P: "d2@2 a1 d2", Q: "b2@2 f#2 b2", R: "a2@2 e2 a2", S: "d2 c2 b1 a1", T: "[g2@15 ~]/8",
})).s("gm_fretless_bass").gain(0.49)

// drums · kick
const kick = s("bd").struct("<~@6 A@36 B@4 A@2 B@4 A@15 C A@18 B@4 A@2 B@4 A@15 D A@6 D ~@7>".pickRestart({
  A: "x!2", B: "x!4", C: "x ~ x!2", D: "x",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@6 A@36 ~@4 A@2 ~@4 A@15 B A@18 ~@4 A@2 ~@4 A@15 C A@6 ~@8>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@4 x ~ x ~ x ~ x", C: "~ x!3",
})).gain(0.4)

// drums · hihat
const hihat = s("hh").struct("<~@6 A@10 ~@4 A@12 ~@4 A@4 ~@12 A@8 ~@4 A@4 ~@28 A@8 ~@4 A@4 ~@14>".pickRestart({
  A: "x!4",
})).gain(0.45)

// drums · mid tom
const mid_tom = s("mt").struct("<~@42 A@4 ~@2 A@3 B ~@34 A@4 ~@2 A@3 B ~@30>".pickRestart({
  A: "x ~ x!2 ~ x!2 ~", B: "x ~ x ~ x!3 ~",
})).gain(0.45)

// drums · crash
const crash = s("cr").struct("<~@68 A ~@7 A ~ A ~ A ~@31 A ~ A ~ A ~ A ~@7>".pickRestart({
  A: "x",
})).gain(0.45)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~@16 A@4 ~@12 A@4 ~@4 A@2 ~@4 A@2 ~@12 A@4 ~@4 B A@7 B A B A B A@5 ~@4 A@2 ~@12 A@4 ~@4 B A B A B A ~@8
>`.pickRestart({
  A: "x!4", B: "~ x!3",
})).gain(0.45)

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

stack(
  rock_organ, acoustic_guitar_nylon, electric_guitar_muted, bass, kick, snare, hihat, mid_tom, crash, ride_bell,
  tambourine
)

More by The Beatles