Strudelify
Every Little Thing cover art

Beatles For Sale

Every Little Thing

The Beatles

KeyA majorTempo122 bpm
0:00/0:00
// Every Little Thing — The Beatles
// 122 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 67 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/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 · acoustic guitar steel · "Rythym"
const acoustic_guitar_steel = note(`<
  A B C D E F G H C D E F G H I ~ J K I ~ J K C D E F G L C D E F G L I ~ J K I ~ J K M N O P Q R I ~ J K I ~ J K S N T
  N M N T U ~@3
>`.pickRestart({
  A: "~@5 [e4,c#5]@2 ~ [e4,c#5]@2 [d4,b4]@4 [c#4,a4]@2, ~@7 [f#4,d5]@2 ~@7", B: "[c#4,a4]@2 ~@2 [d4,b4]@11 ~",
  C: "e4@3 e4 e4@4", D: "f#4@2 g#4@2 [d4,f#4]!4", E: "[c#4,e4]@3 e4 e4@2 ~@2",
  F: "[d4,g4]@2 [d4,f#4]@2 [d4,f#4]!3 [c#4,e4]", G: "[b3,d4] ~ [b4,d5]@2", H: "[b4,d5]@3 [e4,a4]@3 e4!2",
  I: "[c#4,e4] ~@3", J: "[b3,d4]@2 ~ g4 g4@2 g4@2", K: "g4 a4@3 g4 a4@3", L: "[g#4,b4]@3 [e4,a4]@3 e4!2",
  M: "~@4 [e4,c#5]@2 [f#4,d5]@2 [e4,c#5]@3 [d4,b4]@2 [c#4,a4]@2 ~", N: "[c#4,a4]@2 [d4,b4]@2 [d4,b4]@11 ~",
  O: "~@4 [e4,c#5]@2 [f#4,c#5,d5]@2 [e4,c#5]@2 ~ [d4,b4]@2 [c#4,a4]@3", P: "b4@2 a4@2 [f#4,a4]@11 ~, d5 ~@3",
  Q: "b3@3 d4@2 b3@2 ~ a3@3 d4@2 a3@2 ~", R: "g#3@2 ~ b3@2 d4@3 [a3,c#4,e4]@8",
  S: "~@4 [e4,c#5]@2 [f#4,d5]@2 [e4,c#5]@3 [d4,b4]@2 [c#4,a4]@3", // C#m D C#m G F#m
  T: "~@4 [e4,c#5]@2 [f#4,d5]@2 [e4,c#5]@2 ~ [d4,b4]@2 [c#4,a4]@3", U: "[c#4,a4] ~@7",
})).s("gm_acoustic_guitar_steel").gain(0.56).pan(0.4)

// chords · acoustic guitar steel · "Rythym" · soft notes · G C#m D C#m G F#m G
const acoustic_guitar_steel_2 = note(`<
  ~@63
  [~@2 [d4,b4]@2 [d4,b4]@11 ~]
  [~@4 [e4,c#5]@2 [f#4,d5]@2 [e4,c#5]@3 [d4,b4]@2 [c#4,a4]@2 ~]
  [[c#4,a4]@2 [d4,b4]@2 [d4,b4]@11 ~]
  ~
>`).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.4)

// bass · fretless bass · "Bass"
const bass = note(`<
  ~@2 A B A C D E A B A C D E F G H F@2 G H F A B A C D E A B A C D E F G H F@2 G H F A I A J K L F G H F@2 G H F A M A
  M A M A M A M N
>`.pickRestart({
  A: "a1@3 a1 a1@4", B: "d1@2 e1@2 e1@3 e1", C: "g1 d1@2 c#1", D: "b0@3 b0 a0@3 a0", E: "e1@3 e1 a1@2 e1@2", F: "a1!8",
  G: "g1!7 d1", H: "g1!8", I: "d1@3 e1!3 f#1 g#1", J: "g1@2 d1@2 d2!4", K: "b1@3 b1 a1@3 a1", L: "e1@3 e1 a1!4",
  M: "d1@3 e1 e1@4", N: "a1@3 ~@5",
})).s("gm_fretless_bass").gain(0.56).pan(0.6)

// other · timpani · "Backup"
const timpani = note("<~@15 A B ~@2 A B ~@14 A B ~@2 A B ~@8 A B ~@2 A B ~@12>".pickRestart({
  A: "~@14 b2 ~", B: "c3@7 ~@9",
})).s("gm_timpani").gain(0.64)

// other · piano · "Backup"
const piano = note("<~@5 A B ~@4 A B ~@12 A B ~@4 A B ~@34>".pickRestart({
  A: "~@3 c#3", B: "b2@3 b2 a2@3 a2",
})).s("gm_piano").gain(0.64)

// chords · acoustic guitar steel · "Backup"
const acoustic_guitar_steel_3 = note(`<
  ~@2 A B A C D E@2 B A C D F G H@2 I G H@2 I A B A C D E@2 B A C D F G H@2 I G H@2 I A B A C D F G H@2 I G H@2 I A B A
  B A B A B A B J
>`.pickRestart({
  A: "[a2,e3,a3,c#4,e4,a4]@3 ~", B: "[a2,d3,a3,d4,f#4]@3 ~ [b2,e3,b3,e4,g#4]@12",
  C: "[g2,b2,g3,b3,g4]@3 ~ [a2,d3,a3,d4,f#4]@12", D: "[b2,f#3,b3,d4,f#4]@7 ~ [a2,f#3,b3,d4,f#4]@7 ~",
  E: "[[e2,e3,g#3,b3,e4]@7 ~ [a2,e3,a3,c#4,e4,a4]@12 ~@12]/2", F: "[e2,e3,g#3,b3,e4]@7 ~ [a2,e3,a3,c#4,e4,a4]@8",
  G: "[a2,e3,a3,c#4,a4]@7 ~@9", H: "[g2,d3,g3,b3,g4]@7 ~@9", I: "[g2,d3,g3,b3,g4]@2 [a2,e3,a3,c#4,a4]@7 ~@7",
  J: "c-1!3 ~@13",
})).s("gm_acoustic_guitar_steel").gain(0.47).pan(1)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@13 A ~@5 B ~@7 A ~@5 A ~@5 B ~@27>".pickRestart({
  A: "~@14 x!2", B: "~@15 x",
})).gain(0.61)

// drums · mid tom
const mid_tom = s("mt").struct("<~@13 [~@12 x!2 ~@2] ~@13 [~@12 x!2 ~@2] ~@5 [~@12 x!2 ~@2] ~@33>").gain(0.61)

// drums · high tom
const high_tom = s("ht").struct("<~@13 [~@10 x!2 ~@4] ~@53>").gain(0.61)

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

stack(
  acoustic_guitar_steel, acoustic_guitar_steel_2, bass, timpani, piano, acoustic_guitar_steel_3, kick, snare, low_tom,
  mid_tom, high_tom, crash
)

More by The Beatles