Strudelify
All My Loving cover art

With The Beatles

All My Loving

The Beatles

KeyE majorTempo150 bpm
0:00/0:00
// All My Loving — The Beatles
// 150 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 81 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(150/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · electric guitar jazz · "Guitar 1"
const electric_guitar_jazz = note("<~@40 A B C D E F G H I ~@32>".pickRestart({
  A: "~ b2 e2@2 f#2@2 g#2@2", B: "a2@2 [c#4,a4]@3 [a3,e4] ~@2", C: "[e4,c#5]@2 ~ [d#4,b4] ~@2 [c#4,a4] ~",
  D: "[b3,g#4]@2 ~ [g#3,e4]@3 ~@2", E: "[e4,b4]@2 ~ [d#4,a4] ~@2 [b3,g#4] ~", F: "f#4@3 c#4@2 f#4 ~@2",
  G: "[f#4,c#5]@2 ~ [c#4,a4]@2 [f#4,c#5] ~@2", H: "[g#3,e4]@8 g3 g#3 ~ e4 g3 g#3 ~ e4", I: "e3 ~@7",
})).s("gm_electric_guitar_jazz").gain(0.72)

// chords · electric guitar jazz · "Guitar 2"
const electric_guitar_jazz_2 = note(`<
  ~ A B C D E A F G A B C H I J C K A B C D E A F G A B C H I J C K L M N O L P O K Q@2 R@2 S T U V A B C D E A F G A B
  C H I J C K L M N O L P O W X Y Z AA AB AC AD V
>`.pickRestart({
  A: "[f#3,a3,c#4,f#4]!2 ~ [f#3,a3,c#4,f#4]!3 ~ [f#3,a3,c#4,f#4]!3 ~ [f#3,a3,c#4,f#4]!3 ~ [f#3,a3,c#4,f#4]", // F#m
  B: "[f#3,b3,d#4,f#4]!2 ~ [f#3,b3,d#4,f#4]!3 ~ [f#3,b3,d#4,f#4]!3 ~ [f#3,b3,d#4,f#4]!3 ~ [f#3,b3,d#4,f#4]", // B
  C: "[g#3,b3,e4,g#4]!2 ~ [g#3,b3,e4,g#4]!3 ~ [g#3,b3,e4,g#4]!3 ~ [g#3,b3,e4,g#4]!3 ~ [g#3,b3,e4,g#4]", // E
  D: "[g#3,c#4,e4,g#4]!2 ~ [g#3,c#4,e4,g#4] [g#3,c#4,e4,f4,g#4] [g#3,c#4,e4,g#4] ~ [g#3,c#4,e4,g#4]!3 ~ [g#3,c#4,e4,g#4]!3 ~ [g#3,c#4,e4,g#4]", // C#m C# C#m
  E: "[a3,c#4,e4,a4]!2 ~ [a3,c#4,e4,a4]!3 ~ [a3,c#4,e4,f4,a4] [a3,c#4,e4,a4]!2 ~ [a3,c#4,e4,a4]!3 ~ [a3,c#4,e4,a4]", // A
  F: "[d#3,a3,d#4,f#4]!2 ~ [d#3,a3,d#4,f#4]!3 ~ [d#3,a3,d#4,f#4]!3 ~ [d#3,a3,d#4,f#4]!3 ~ [d#3,a3,d#4,f#4]", // D#dim
  G: "[b2,d#3,a3,b3,f#4]!2 ~ [b2,d#3,a3,b3,f#4]!3 ~ [b2,d#3,a3,b3,f#4]!3 ~ [b2,d#3,a3,b3,f#4]!3 ~ [b2,d#3,a3,b3,f#4]", // B7
  H: "[g#3,c#4,e4,g#4]!2 ~ [g#3,c#4,e4,g#4]!3 ~ [g#3,c#4,e4,g#4]!3 ~ [g#3,c#4,e4,g#4] [g#3,c#4,e4,f4,g#4] [g#3,c#4,e4,g#4] ~ [g#3,c#4,e4,g#4]", // C#m C# C#m
  I: "[a3,c#4,e4,a4]!2 ~ [a3,c#4,e4,a4]!3 ~ [a3,c#4,e4,a4]!3 ~ [a3,c#4,e4,f4,a4] [a3,c#4,e4,a4]!2 ~ [a3,c#4,e4,a4]", // A
  J: "[b3,d#4,f#4,b4]!2 ~ [b3,d#4,f#4,b4]!3 ~ [b3,d#4,f#4,b4]!3 ~ [b3,d#4,f#4,b4]!3 ~ [b3,d#4,f#4,b4]", // B
  K: "[g#3,b3,e4,g#4] ~@7", L: "~@2 [g#3,c#4,e4,g#4] ~@2 [g#3,c#4,e4,g#4] ~@2",
  M: "~@2 [g#3,c4,e4,g#4] ~@2 [g#3,c4,e4,g#4] ~@2", N: "~@2 [g#3,b3,e4,g#4] ~@2 [g#3,b3,e4,g#4] ~@2",
  O: "~@2 [g#3,b3,e4,g#4] ~@2 [g#3,b3,e4,f#4,g#4] ~@2", P: "~@2 [g#3,c4,e4,g#4] ~@2 [g#3,c4,e4,f#4,g#4] ~@2",
  Q: "[a2,e3,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4]@3 [a2,e3,a3,c#4,e4] ~@2", R: "~@2 [e2,b2,e3,g#3,b3,e4]@2 [e3,g#3,b3,e4]!4",
  S: "~@2 [f#2,c#3,f#3,a3,c#4,f#4] ~@2 [f#2,c#3,f#3,a3,c#4,f#4] ~@2", // F#m
  T: "~@2 [b2,d#3,a3,b3,f#4] ~@2 [b2,d#3,a3,b3,f#4] ~@2", // B7
  U: "~@2 [e2,b2,e3,g#3,b3,e4]@2 [e2,b2,e3,g#3,b3,e4] [e2,b2,c3,e3,g#3,b3,e4] [e2,b2,e3,g#3,b3,e4]!2", // E
  V: "[e2,b2,e3,g#3,b3,e4] ~@7", W: "~@2 [g#3,b3,e4,g#4] ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]",
  X: "~@2 [g#3,c#4,e4,g#4] ~ [g#3,c#4,e4,g#4]!3 ~", Y: "[g#3,c#4,e4,g#4] ~@2 [g#3,c#4,e4,g#4] ~@2 [g#3,c#4,e4,g#4] ~",
  Z: "~@2 [e4,g#4,b4,e5] ~@2 [e4,g#4,b4,e5] ~@2", AA: "[e4,g#4,b4,e5] ~@2 [e4,g#4,b4,e5]!4 ~",
  AB: "~@2 [c#4,e4,g#4,c#5] ~@2 [c#4,e4,g#4,c#5] ~@2", AC: "[c#4,e4,g#4,c#5] ~@2 [c#4,e4,g#4,c#5] ~@4",
  AD: "~@2 [e2,b2,e3,g#3,b3,e4] ~@2 [e2,b2,e3,g#3,b3,e4] ~@2", // E
})).s("gm_electric_guitar_jazz").gain(0.32).pan(0.2)

// bass · electric bass pick · "Bass"
const bass = note(`<
  ~ A B C D E F G H A B C D E I J K A B C D E F G H A B C D E I J K L M N O L M J K P Q J R A B J K A B C D E F G H A B
  C D E I J K L M N O L M N O L D N O L@2 N S
>`.pickRestart({
  A: "f#2 e2 d#2 c#2", B: "b1 a1 g#1 f#1", C: "e1 g#1 b1 g#1", D: "c#2!2 g#1 c#2", E: "a1!2 c#2 e2", F: "f#2!2 c#2 f#2",
  G: "d#2!4", H: "b1!4", I: "b1!2 f#2 b1", J: "e2 c#2 b1 g#1", K: "e1 ~@7", L: "c#2!2 g#1!2", M: "c2!2 g#1 c2",
  N: "e2!2 b1!2", O: "e2!2 b1 e2", P: "a1 c#2 e2 f#2", Q: "a2 f#2 e2 c#2", R: "e1 g#1 b1 c#2", S: "e1",
})).s("gm_electric_bass_pick").gain(0.36).pan(0.8)

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

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

// drums · ride bell
const ride_bell = s("rd").struct("<~ A@7 B A@6 B ~ A@7 B A@6 B ~ A@7 ~ A@6 B ~ A@7 B A@6 B ~ A@15 ~>".pickRestart({
  A: "x!8", B: "x!5 ~@3",
})).gain(0.36)

stack(electric_guitar_jazz, electric_guitar_jazz_2, bass, kick, snare, ride_bell)

More by The Beatles