Strudelify
Misery cover art

Please Please Me

Misery

The Beatles

KeyG majorTempo100 bpm
0:00/0:00
// Misery — The Beatles
// 100 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "guitar" named as a guitar, played on electric guitar clean (its piano patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 58 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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.

// bass · fretless bass · "bas"
const bass = note(`<
  ~@5 A B A B@2 C A D A B A B@2 C A@2 E F G H E I J K L M N O P Q H R E F S H T I U V L W N X Y K Z AA H AB Z AC ~
>`.pickRestart({
  A: "g1@5 ~ g1@2 g1@5 ~ g1@2", B: "c2@5 ~ c2@2 c2@5 ~ c2@2", C: "d2@5 ~ d2@2 d2@5 ~ d2@2",
  D: "e2@5 ~ e2@2 e2@5 ~ e2@2", E: "e2@5 ~@2 b1 e2@5 ~ b1 c2", F: "e2@5 ~@2 b1 e2@5 ~ f1 f#1",
  G: "g1@5 ~@2 d1 g1@5 ~ d1 g#1", H: "g1@5 ~@2 g1 g1@5 ~ d2 d#2", I: "e2@5 ~@2 e2 e2@5 ~ b2 d#2",
  J: "d2@5 ~@2 d2 d2@5 ~ e2 d#2", K: "d2@5 ~@2 a1 d2@5 ~ d2 f#1", L: "g1@5 ~@2 g1 g1@5 ~ a#1 b1",
  M: "c2@5 ~@2 c2 c2@5 ~ f1 f#1", N: "g1@5 ~@2 g1 g1@5 ~ d2 c#2", O: "c2@5 ~@2 g1 c2@5 ~ a2 g2",
  P: "c2@5 ~@2 g1 c2@5 ~ c2 c#2", Q: "d2@5 ~@2 d2 d2@5 ~ d2 f#1", R: "e2@5 ~@2 e2 e2@5 ~ b1 c2",
  S: "g1@5 ~@2 d1 g1@5 ~ d1 e1", T: "e2@5 ~@2 e2 e2@5 ~ b1 d2", U: "d2@5 ~@2 a1 d2@5 ~ a1 d#2",
  V: "d2@5 ~@2 d2 d2@5 ~ a1 f#1", W: "c2@5 ~@2 g1 c2@5 ~ f1 f#1", X: "c2@5 ~@2 c2 c2@5 ~ a#1 b1",
  Y: "c2@5 ~@2 c2 c2@5 ~ c2 c#2", Z: "g1@5 ~@2 f#1 g1@5 ~ d2 f2", AA: "e2@5 ~@2 e2 e2@5 ~ f1 f#1",
  AB: "e2@5 ~@2 e2 e2@5 ~ f1 g#1", AC: "e2@5 ~@2 e2 e2@5 ~ a#1 c#2",
})).s("gm_fretless_bass").gain(0.26)

// chords · string ensemble 2 · "strings"
const string_ensemble_2 = note("<~@5 A B@3 C@2 D@8 E@2 ~@8 A B@3 F@4 ~@8 A B@3 G@8 ~>".pickRestart({
  A: "[g4,b4,d5]@15 ~", B: "[[c4,e4,g4]@15 ~ [g4,d5]@15 [c4,e4,g4]@15 ~@2, ~@5 b4@5 ~@6]/3",
  C: "[[c4,e4,g4]@15 ~ c4@14 ~ [g4,b4,d5,f#5], ~@15 [d4,f#4,a4]@14 ~@3]/2", // C Gmaj7 D
  D: "[~@7 [g4,b4,d5]@8 ~ e4@15 [g4,b4,d5]@15 ~ [c4,e4,g4]@15 ~ [g4,b4,d5]@15 ~ [c4,e4,g4]@15 ~ [c4,e4,g4]@16 [c4,d4,f#4,a4]@16 ~, ~@15 [g4,b4]@15 ~@98]/8", // G C G C D7 G
  E: "[[g4,b4,d5,f#5]@8 [g4,b4,d5]@19 ~@5]/2", // Gmaj7 G
  F: "[[c4,e4,g4]@15 ~ c4@14 ~ [g4,b4,d5,f#5]@7 ~ [g4,b4,d5]@8 ~ e4@13 ~@3, ~@15 [d4,f#4,a4]@14 ~@18 [g4,b4]@13 ~@4]/4", // C Gmaj7 G D G
  G: "[[c4,e4,g4]@15 ~ c4@14 ~ [g4,b4,d5,f#5]@7 ~ [g4,b4,d5]@8 ~ e4@15 [g4,b4,d5,f#5]@7 ~ [g4,b4,d5]@8 ~ e4@15 [g4,b4,d5,f#5]@7 ~ [g4,b4,d5]@8 ~ e4@16, ~@15 [d4,f#4,a4]@14 ~@18 [g4,b4]@15 ~@17 [g4,b4]@15 ~@17 [g4,b4]@17]/8", // C Gmaj7 G Gmaj7 G Gmaj7 G D …
})).s("gm_string_ensemble_2").gain(0.17)

// chords · electric guitar clean · "guitar"
const electric_guitar_clean = note(`<
  ~@5 A B C D E F G H C I C D J K C@2 H L C M N L O P G B C E J Q C R N L S T U@2 V P G D C W J Q C U C X C Y Z
>`.pickRestart({
  A: "[g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5] ~@3", B: "[c4,e4,g4]@5 ~ [c4,e4,g4]@4 ~@2 [c4,e4,g4] ~@3",
  C: "[g4,b4,d5]@5 ~ [g4,b4,d5]@4 ~@2 [g4,b4,d5] ~@3", D: "[c4,e4,g4]@5 ~ [c4,e4,g4]@5 ~ [c4,e4,g4] ~@3",
  E: "[c4,e4,g4]@4 ~@2 [c4,e4,g4]@5 ~ [c4,e4,g4] ~@3", // C
  F: "[c4,d4,f#4,a4]@4 ~@2 [c4,d4,f#4,a4]@4 ~@2 [c4,d4,f#4,a4] ~@3", // D7
  G: "[g4,b4,d5]@4 ~@2 [g4,b4,d5]@5 ~ [g4,b4,d5] ~@3", H: "[e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4] ~@3",
  I: "[c4,e4,g4]@4 ~@2 [e4,g4]@5 ~ [c4,e4,g4] ~@3, ~@6 c4@3 ~@7", J: "[c4,e4,g4]@4 ~@2 [c4,e4,g4]@4 ~@2 [c4,e4,g4] ~@3",
  K: "[d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@5 ~ [d4,f#4,a4] ~@3", L: "[e4,g4,b4]@4 ~@2 [e4,g4,b4]@4 ~@2 [e4,g4,b4] ~@3",
  M: "[g4,b4,d5]@5 ~ [b4,d5]@4 ~@2 [g4,b4,d5] ~@3, ~@3 g4@3 ~@2", N: "[e4,g4,b4]@4 ~@2 [e4,g4,b4]@5 ~ [e4,g4,b4] ~@3",
  O: "[d4,f#4,a4]@5 ~ [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@2 ~@2", // D
  P: "[c4,d4,f#4,a4]@5 ~ [c4,d4,f#4,a4]@4 ~@2 [c4,d4,f#4,a4] ~@3", // D7
  Q: "[d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@4 ~@2 [d4,f#4,a4] ~@3", R: "[e4,g4,b4]@5 ~ [e4,g4,b4]@4 ~@2 [e4,g4,b4]@2 ~@2",
  S: "[g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5] ~", T: "[g4,b4,d5]@5 ~ [g4,b4,d5]@5 ~ [g4,b4,d5] ~@3",
  U: "[e4,g4,b4]@5 ~ [e4,g4,b4]@4 ~@2 [e4,g4,b4] ~@3", V: "[d4,f#4,a4]@5 ~ [d4,f#4,a4]@5 ~ [f#4,a4]@3 ~, ~@12 d4 ~@3",
  W: "[c4,e4,g4]@5 ~ [e4,g4]@4 c4 ~ [c4,e4,g4] ~@3, ~@6 c4@3 ~@7", // C Em C
  X: "[e4,g4,b4]@3 ~@3 [e4,g4,b4]@4 ~@2 [e4,g4,b4] ~@3", Y: "[e4,g4,b4]@2 ~ [g4,b4]@2 ~ g4 b4, ~@3 e4 ~ e4@2 ~",
  Z: "[g4,b4,d5,g5]@3 ~@5", // G
})).s("gm_electric_guitar_clean").gain(0.41)

// drums · kick
const kick = s("bd").struct(`<
  ~@5 A B@4 A B C A B A@2 B@2 A C A B A C A@2 B C B@2 A C A B@2 C B@2 A C B@2 A C A@3 D B@2 A@2 B@3 D ~
>`.pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "x ~@2 x!3 ~ x", C: "x ~@2 x!2 ~@3", D: "x ~@2 x!3 ~@2",
})).gain(0.3)

// drums · rim
const rim = s("rim").struct("<~@5 A@7 B A@7 B A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@7 ~@2>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.36)

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

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

// drums · open hat
const open_hat = s("oh").struct("<~@10 A ~ B ~ A ~@3 A ~@6 C ~@2 A ~@2 A ~@7 A ~@7 A ~ C ~@8>".pickRestart({
  A: "~@15 x", B: "~@7 x", C: "x",
})).gain(0.36)

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

stack(bass, string_ensemble_2, electric_guitar_clean, kick, rim, snare, hihat, open_hat, crash)

More by The Beatles