Strudelify
A Day in the Life cover art

Sgt. Pepper's Lonely Hearts Club Band

A Day in the Life

The Beatles

KeyE minorTempo75 bpm
0:00/0:00
// A Day in the Life — The Beatles
// 75 bpm, 4/4, key E minor. Source: 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 77 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(75/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 · "Bass guitar"
const bass = note(`<
  ~@3 A B ~@10 C D E F G H I H ~ C D E F G H I H ~ J K L M N O P@4 Q R S T U V@5 W X Y@2 Z AA AB AC AD AE AF AG AH AI AJ
  AK@2 ~@7
>`.pickRestart({
  A: "~@2 c2 ~ c2 ~ c2@3 ~ c2 ~ c2@4", B: "~@2 c2 ~ c2 ~ c2 ~@3 g2 c2 g2@2 g2@2",
  C: "g2 ~ g2 ~ g2 ~ g2 ~ b2 ~ b2 ~ b2 ~ b2 ~", D: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ d2 ~",
  E: "c2 ~ c2 ~ [c2,c#2] ~ c2 ~ e2 ~ e2 ~ e2 ~ e2 ~", F: "a2 ~ a2 ~ a2 ~ a2@3 ~ a2 ~ a2 ~ a2 ~",
  G: "g2 ~ g2 ~ g2 ~ g2 ~ b2 ~ b2 ~ b2@2 b2 ~", H: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~",
  I: "c2 ~ c2 ~ c2 ~ c2 ~ f2 ~ f2 ~ f2 ~ f2 ~", J: "c3 ~ c3 ~ c3 ~ c3 ~ f2 ~ f2 ~ f2 ~ f2 ~",
  K: "g2 ~ g2 ~ g2 ~ g2 ~ a2 ~ a2 ~ a2 ~ a2 ~", L: "b2 ~ b2 ~ b2 ~ b2 ~ c3 ~ c3 ~ c3 ~ c3 ~",
  M: "d3 ~ d3 ~ d3 ~ d3 ~ e3 ~ e3 ~ e3 ~ e3 ~", N: "f#3 ~ f#3 ~ f#3 ~ f#3 ~ g3 ~ g3 ~ g3 ~ g3 ~",
  O: "e1@3 ~@2 e1@3 ~@3 e1@3 ~@2 e1@3 ~@2 e1@3 ~@2 e1@3 ~@3 e1@3 ~@2 e1@3 ~@2 e1@3 ~@3",
  P: "[e1@3 ~@2 e1@3 ~@2 e1@3 ~@3 e2@3 ~@2 e2@3 ~@2 e2@3 ~@2 e2@3 ~@3 e2@3 ~@2 e2@3 ~@2 e2@3 ~@3 e2@3 ~@2 e2@3 ~@2 e2@3 ~@2 e2@3 ~@3 e2@3 ~@2 e2@3 ~@2 e2@3 ~@3 e2@3 ~@2 e2@3 ~@2 e2@3 ~@3 e2@3 ~@2 e2@3 ~@2 e2@3 ~@2 d2@3 ~@3 d2@3 a2@3 ~@4 d3@3 ~@3 d3@3 a2@3 ~@2 a2@2 d2@3 ~@2 d2@3 ~@3 e2@3 ~@2 d#2@3 ~@2 d2@3 ~@3 c#2@3 ~@2 b1@3 ~@2 b1@2, ~@136 a2@3 ~@53]/4",
  Q: "~@4 b1@3 ~@2 b1@3 ~@2 e2@3 ~@2 d#2@3 ~@3 d2@3 ~@2 c#2@3 ~@2 b1@3 ~@3 b1@3 ~@2 b1@2",
  R: "~@3 b1@3 ~@2 b1@3 ~@3 b1@3 ~@2 b1@3 ~@2 b1@3 ~@3 e2@3 ~@2 d#2@3 ~@2 c#2@3 ~@3 b1@2",
  S: "~@3 e2@3 ~@2 d#2@3 ~@2 c#2@3 ~@3 b1@3 ~@2 e2@3 ~@2 d#2@3 ~@3 c#2@3 ~@2 b1@3 ~@2 d2@3",
  T: "~@2 d2@3 ~ a2@3 ~@2 a2@2 d3@3 ~@2 d3@3 ~ a2@3 ~@2 a2@2 d2@3 ~@2 d2@3 ~@3 e2@3 ~@2 d#2@3",
  U: "~@2 d2@3 ~@2 c#2@3 ~@3 b1@3 ~@2 b1@3 ~@2 b1@3 ~@3 b1@3 ~@2 e2@3 ~@2 d#2@3 ~@2 d2@3 ~",
  V: "[~@2 c#2@3 ~@2 b1@3 ~@2 b1@3 ~@3 b1@3 ~@2 b1@3 ~@2 c2@5 ~ c2@5 e2@5 ~ e2@5 g2@5 g2@5 ~ c3@5 a2@5 ~ g2@5 g2@5 e2@5 ~ e2@5 d2@5 ~ d2@5 e2@5 ~ d2@5 f#2@5 f#2@5 ~ a2@5 a2@5 ~ d3@5 d3@5 ~ b2@5 a2@5 a2@5 ~ a2@5 e2@5 ~ e2@5 a2@5 a2@5 ~ e2@5 e2@5 ~ e2@5 e2@5 ~ e2@5 e2@5 e2@5 ~ e2@5 e2@5 ~]/5",
  W: "e2@5 c2@5 ~ c2@5 e2@5 e2@5 ~ g2@5 g2@5 ~ c3@5 a2@5", X: "g2@5 ~ g2@5 e2@5 ~ e2@5 d2@5 ~ d2@5 e2@5 d2@5 ~ f#2@4",
  Y: "[~ f#2@5 ~ a2@5 a2@5 ~ d3@5 d3@5 b2@5 ~ a2@5 a2@5 ~ a2@5 e2@5 e2@5 ~ a2@5 a2@5 ~ e2@5 e2@5 ~@14]/2",
  Z: "~@30 g2@3 ~@2 g2@3 ~@3 g2@3 ~@2 g2@2",
  AA: "~@3 b2@3 ~@2 b2@3 ~@3 b2@3 ~@2 b2@3 ~@2 e2@3 ~@3 e2@3 ~@2 e2@3 ~@2 e2@3 ~@2 e2@3",
  AB: "~@3 e2@3 ~@2 e2@3 ~@2 d2@3 ~@3 c2@3 ~@2 c2@3 ~@2 [c2,c#2]@3 ~@3 c2@3 ~@2 e2@3 ~@2 e2@3", // C#maj7
  AC: "~@2 e2@3 ~@3 e2@3 ~@2 a2@3 ~@2 a2@3 ~@3 a2@3 ~@2 a2@8 ~@2 a2@3 ~@3 a2@3",
  AD: "~@2 a2@3 ~@2 g2@3 ~@3 g2@3 ~@2 g2@3 ~@2 g2@3 ~@3 b2@3 ~@2 b2@3 ~@2 b2@5 b2@3 ~",
  AE: "~@2 e2@3 ~@2 e2@3 ~@2 e2@3 ~@3 e2@3 ~@2 e2@3 ~@2 e2@3 ~@2 e2@3 ~@3 e2@3 ~@2 c2@3 ~",
  AF: "~ c2@3 ~@3 c2@3 ~@2 c2@3 ~@2 f2@3 ~@3 f2@3 ~@2 f2@3 ~@2 f2@3 ~@2 e2@3 ~@3 e2@3 ~",
  AG: "~ e2@3 ~@2 e2@3 ~@3 e2@3 ~@2 e2@3 ~@2 e2@3 ~@2 e2@3 ~@18", AH: "~@27 c3@3 ~@2 c3@3 ~@3 c3@3 ~@2 c3@3 ~@2",
  AI: "f2@3 ~@3 f2@3 ~@2 f2@3 ~@2 f2@3 ~@2 g2@3 ~@3 g2@3 ~@2 g2@3 ~@2 g2@3 ~@3 a2@3 ~@2",
  AJ: "a2@3 ~@2 a2@3 ~@3 a2@3 ~@2 b2@3 ~@2 b2@3 ~@2 b2@3 ~@3 b2@3 ~@2 c3@3 ~@2 c3@3 ~@3",
  AK: "[c3@3 ~@2 c3@3 ~@2 d3@3 ~@2 d3@3 ~@3 d3@3 ~@2 d3@3 ~@2 e3@3 ~@3 e3@3 ~@2 e3@3 ~@2 e3@3 ~@3 f#3@3 ~@2 f#3@3 ~@2 f#3@3 ~@2 f#3@3 ~@3 g3@3 ~@2 g3@3 ~@2 g3@3 ~@3 g3@3 ~@3]/2",
})).s("gm_fretless_bass").gain(0.8)

// bass · fretless bass · "Bass guitar" · soft notes
const bass_soft = note("<~@5 A B C@2 D E F@2 G@2 ~@62>".pickRestart({
  A: "g2@11 ~ g2@4 ~ g2@6 ~ b2@10 ~ b2@5 ~@2 b2@5 ~", B: "e2@10 ~@2 e2@4 ~@2 e2@11 e2@5 ~@2 e2@2 ~ e2@2 ~ d2@5 ~",
  C: "[c2@16 ~@2 c2@5 e2@6 ~@2 e2@9 ~@2 e2@5 a2@4 ~@2 a2@5 ~@2 a2@4 ~ a2@10 ~@3 a2@4 ~ a2@6 ~ b2@5 ~]/2",
  D: "g2@16 ~@3 g2@5 ~ b2@16 ~@2 b2@5", E: "e2@16 ~@2 e2@10 ~@2 e2@4 ~@2 e2@6 d2@5 ~",
  F: "[c2@16 ~@2 c2@5 ~ f2@16 ~@2 f2@5 e2@5 ~@2 e2@4 ~@2 e2@5 b2@13 e2@4 ~ e2@5 ~@2 e2@5 ~]/2",
  G: "[c2@12 ~@5 c2@5 ~ f2@4 ~@2 f2@10 ~@2 f2@6 e2@11 ~@2 e2@4 ~@2 e2@10 ~@2 c2@5 ~ c2@5 d2@5 ~@2]/2",
})).s("gm_fretless_bass").gain(0.4)

// chords · piano
const piano = note(`<
  ~@3 A B C D E F G H I J K L M N E O P Q I R S M N E O P Q I R S T@2 U V@2 ~@2 W@3 X Y Z@2 AA AB@5 AC AD AE@2 AF@5 AG@2
  AH@2 AI@3 AJ@8
>`.pickRestart({
  A: "~@2 [c3,e3,g3] ~ [c3,e3,g3] ~ [c3,e3,g3]@4 [c3,e3,g3]@6", // C
  B: "~@2 [c3,e3,g3] ~ [c3,e3,g3] ~ [c3,e3,g3]@3 ~ [e3,g3] ~ [e3,g3] ~ [e3,g3] ~, ~@11 c3@4 ~", // C Em
  C: "[g3,b3,d4]@3 ~ [g3,b3,d4]@2 g2@2 [b3,d4,f#4]@3 ~ [b3,d4,f#4]@2 b2@2, g2 ~ b2 ~", // G Bm
  D: "[e4,g4,b4]@3 ~ [e4,g4,b4] ~ [e4,g4,b4]@3 ~ [g4,b4]@2 e4@2 d3@2, e3@7 ~", // Em G
  E: "[c4,e4,g4]@3 ~ [c4,e4,g4]@2 c3@2 [e4,g4,b4]@3 ~ [e4,g4,b4]@2 e3@2, c3 ~ e3 ~", // C Em
  F: "[a3,c4,e4]@2 ~@2 [a3,c4,e4] ~ [a3,c4,e4]@3 ~ [c4,e4,g4] ~ [c4,e4,g4]@2 c3 ~, a2 ~ a2@8 c3@2 ~@4", // Am C
  G: "[g3,b3,d4]@3 ~ [g3,b3,d4]@2 g2@2 f#4 ~ b2@2 [b3,d4,f#4]@2 b2@2, g2@6 ~@2 [b2,b3,d4]@3 ~@5, ~@9 f#4@2 ~@5", // G Bm
  H: "[e4,g4,b4]@2 ~@2 [e4,g4,b4] ~ [e4,g4,b4]@4 [g4,b4]@2 e4@2 d3@2, e3 ~ e3@8 e3@4 ~@2, ~@10 e4 ~@5", // Em G
  I: "[c4,e4,g4]@3 ~ [c4,e4,g4]@2 c3@2 [f3,a3,c4]@2 f2@2 [f3,a3,c4]@2 f2 ~, c3@4 ~@4 f2 ~@7", // C F
  J: "[e2,e3,g3,b3] [e3,g3,b3] ~ [e3,g3,b3]@2 e2 [e3,g3,b3] e2, ~@4 e2@5 ~@7", // Em
  K: "[c4,e4,g4]@2 c3@2 [c4,e4,g4]@2 c3@2 [f3,a3,c4]@2 f2@2 [f3,a3,c4]@2 f2 ~, c3 ~@7 f2 ~@7", // C F
  L: "e2 ~ e2@2 [g3,b3]@2 [e3,g3,b3]@3 ~ [e3,g3,b3] ~ [c3,e3,g3]@2 c2 ~, [e3,g3,b3]@4 [e2,e3] ~ e2@4 ~@2 c2 ~@3", // G Em C Em E
  M: "[g3,b3,d4]@3 ~ [g3,b3,d4]@2 g2@2 [b2,b3,d4,f#4]@4 [b3,d4,f#4]@2 b2@2, g2 ~@3", // G Bm
  N: "[e4,g4,b4]@3 ~ [e4,g4,b4] ~@5 e3@2 [e3,e4,g4,b4]@2 d3 ~, e3@9 ~@7, ~@3 [e4,g4,b4]@3 ~@2", // Em
  O: "~@2 [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4]@3 ~ [a3,c4,e4] ~ [a3,c4,e4,g4] ~ [a3,c4,e4,g4]@2, a2@10 ~ a2@2 ~@3", // Am Am7
  P: "g2@2 [g3,b3,d4] g2 [b2,b3,d4,f#4]@2 [b3,d4,f#4] b2", // G Bm
  Q: "[e4,g4,b4]@3 ~ [e4,g4,b4] ~ [e4,g4,b4]@4 [e4,g4,b4] ~ [e4,g4,b4]@2 e3@2, e3@13 ~@3", // Em
  R: "[e2,e3,g3,b3] e2 [e3,g3,b3] e2 [e3,g3,b3] e2 [e3,g3,b3] e2, a3 ~@15", // Em
  S: "[c4,e4,g4]@2 ~ [c4,e4,g4] [c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4] ~ [c3,c4,e4,g4]@2, c3@6 ~ c3@4 c3@2 ~@3", // C
  T: "[[c3,c4,e4,g4]@4 [c3,c4,e4,g4]@4 [b3,d4,f#4]@3 ~ [b3,d4,f#4]@2 ~@2 [b3,d4,f#4]@3 ~ [b3,d4,f#4]@2 ~@2 [b3,d4,f#4]@3 ~ [b3,d4,f#4]@2 b2@2, ~@8 b2@4 ~@2 b2@7 ~ b2@7 ~@3]/2", // C Bm
  U: "[b3,d4,f#4]@2 b2@2 [b3,d4,f#4]@2 b2@2 [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~", // Bm
  V: "[b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~", // Bm
  W: "[~@10 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@4 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@4 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@4 ~ [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@4 ~ [e4,g#4,b4]@4 ~ [e4,g#4,b4]@4 ~ d4@4 f#4@2 a4@3 d4@2 [e4,f#4]@4 ~ d4@4 f#4@2 a4@3 d4@2 [e4,f#4]@3 a4@2 [d3,d4]@4 ~ [a3,e4,a4]@4 d4@2 e4@2 ~@3 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@4 [e4,g#4,b4]@2 ~@3 [b3,d#4,f#4]@2 ~@3 [b3,d#4,f#4]@2, ~@73 d3@8 ~@7 a4@2 ~@19 f#4@2 ~@33, ~@77 d4@5 a3@8 ~@3 d4@5 a3@8 ~@38]/3", // E Esus2 D A5 E B
  X: "~@4 [b3,d#4,f#4]@2 ~@3 [b3,d#4,f#4]@2 ~@3 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@4 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@3 [b3,d#4,f#4]@2 ~@4 [b3,d#4,f#4]@2 ~@3 [b3,d#4,f#4]@2", // B E B
  Y: "~@3 [b3,d#4,f#4]@2 ~@3 [b3,d#4,f#4]@2 ~@4 [b3,d#4,f#4]@2 ~@3 [b3,d#4,f#4]@2 ~@3 [b3,d#4,f#4]@2 ~@4 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@4 [e4,g#4,b4]@2", // B E
  Z: "[~@3 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@4 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@4 [e4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@3 d4@4 ~ a4@2 ~@9 d4@4 ~ a4@4 d4@2 [e4,f#4]@3 a4@2 ~@3 f#4@2 [a3,e4,a4]@4 d4@2 g#4 g#4@2 ~@2 [e4,g#4,b4]@2 ~, ~@35 g#4@4 ~@6 d3@8 ~ d4@5 a4@5 ~@24 [e4,b4]@2 ~@6, ~@49 [d4,f#4]@5 a3@8 ~@8 a3@8 ~@18, ~@56 [e4,f#4]@5 ~@4 [d4,f#4]@5 ~@7 [d3,d4]@5 ~@14]/2", // E E5 E Esus2 A5 E E5 D …
  AA: "~@2 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@4 [b3,d#4,f#4]@2 ~@3 [b3,d#4,f#4]@2 ~@3 [b3,d#4,f#4]@2 ~@4 [b3,d#4,f#4]@2 ~@3 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@3 [e4,g#4,b4]@2 ~@2", // E B E
  AB: "[~@2 [e4,g#4,b4]@2 ~@3 [b3,d#4,f#4]@2 ~@3 [b3,d#4,f#4]@2 ~@4 [b3,d#4,f#4]@2 ~@3 [b3,d#4,f#4]@2 ~@3 [c3,c4,e4,g4]@5 ~ c3@5 [c4,e4,g4]@5 ~ c3@5 g4@5 c3@5 ~ [c4,e4,g4]@5 a2@5 ~ [g2,g3,b3,d4]@5 g2@5 [g3,b3,d4]@5 ~ g2@5 [g3,b3,d4]@5 ~ g2@5 [g3,b3,d4]@5 ~ g2@5 [d3,d4,f#4,a4]@5 d3@5 ~ [d4,f#4,a4]@5 d3@5 ~@6 d3@5 ~ [c3,d4,f#4,a4]@5 b2@5 a2@5 ~ a2@5 [a3,c#4,e4]@5 ~ a2@5 [a3,c#4,e4]@5 a2@5 ~ [a3,c#4,e4]@5 a2@5 ~ [e2,e3,g#3,b3]@5 e2@5 ~ [e3,g#3,b3]@5 e2@5 [e3,g#3,b3]@5 ~ e2@5 [e3,g#3,b3]@5 ~, ~@50 [c4,e4]@11 ~@76 [d4,f#4,a4]@11 ~@10 [a3,c#4,e4]@11 ~@71]/5", // E B C G D D7 A E …
  AC: "e2@5 c3@5 ~ c3@5 [c4,e4,g4]@5 c3@5 ~ [c4,e4,g4]@5 ~@6 [c4,e4,g4]@5 a2@5, ~@5 [c4,e4,g4]@11 ~@16 c3@11 ~@5", // C
  AD: "[g2,g3,b3,d4]@5 ~ g2@5 [g3,b3,d4]@5 ~ g2@5 [g3,b3,d4]@5 ~ g2@5 [g3,b3,d4]@5 g2@5 ~ [d3,d4,f#4,a4]@4", // G D
  AE: "[~ d3@5 ~ [d4,f#4,a4]@5 d3@5 ~ [d4,f#4,a4]@5 ~@5 [d4,f#4,a4]@5 ~ b2@5 [a2,a3,c#4,e4]@5 ~ a2@5 [a3,c#4,e4]@5 a2@5 ~ [a3,c#4,e4]@5 a2@5 ~ [a3,c#4,e4]@5 a2@5 ~@14, ~@23 d3@11 ~@62]/2", // D A
  AF: "[~@30 [g2,g3,b3,d4]@5 g2@5 ~ [g3,b3,d4]@5 g2@5 [b3,d4,f#4]@5 b2@5 ~ [b3,d4,f#4]@5 b2@5 [e3,e4,g4,b4]@5 ~ e3@5 [e4,g4,b4]@5 e3@5 [e4,g4,b4]@5 ~@6 [e4,g4,b4]@5 d3@5 ~ [c4,e4,g4]@5 c3@5 [c4,e4,g4]@5 ~ c3@5 [g4,b4]@5 e3@5 [e4,g4,b4]@5 ~ e3@5 [a3,c#4,e4]@5 a2@5 ~ [a3,c#4,e4]@5 a2@5 [a3,c#4,e4]@5 a2@5 ~ [a3,c#4,e4]@8 ~@2 [g3,b3,d4]@5 ~ g2@5 [g3,b3,d4]@5 g2@5 ~ b3@5 b2@5 [b3,d4,f#4]@5 b2@4, ~@51 b2@3 ~@45 e3@8 ~@8 c3@3 ~@18 e4@8 ~@77 [d4,f#4]@8 ~@11, ~@136 e3@3 ~@18 a2@3 ~@39 g2@3 ~@38]/5", // G Bm Em C G Em A G …
  AG: "[~@2 [e4,g4,b4]@5 e3@5 [e4,g4,b4]@5 ~ e3@5 [e4,g4,b4]@5 ~@5 [e4,g4,b4]@6 d3@5 c3@3 ~@2 c3@3 ~@3 [c4,e4,g4]@5 c3@5 [f3,a3,c4]@5 ~ f2@5 ~@5 f2@5 [e2,e3,g3,b3]@3 ~@3 [e2,e3,g3,b3]@3 ~, ~@2 e3@3 ~@23 e3@8 ~@8 [c4,e4,g4]@8 ~@13 f2@3 ~@8 [f3,a3,c4]@8 ~@12]/2", // Em C F Em C F
  AH: "[~ [e2,e3,g3,b3]@3 ~@2 [e2,e3,g3,b3]@3 ~@3 [d2,e3,g3,b3]@3 ~@2 [d2,e3,g3,b3]@3 ~@2 [d2,e3,g3,b3]@3 ~@2 [e3,g3,b3]@3 ~@11 [c4,e4,g4]@2 [c4,e4,g4]@8 [c4,e4,g4]@3 [c4,g4]@5 ~@3 [c4,e4,g4]@3 [c4,e4,g4]@5 ~@2 [c4,e4,g4]@3 ~@5 c2@6 [c4,e4,g4]@5 c2@5, ~@27 d2@5 ~ c2@37 c2@8 ~@18, ~@54 e4@8 ~@13 [c4,e4,g4]@8 ~@13]/2", // Em Em7 Em C C5 C
  AI: "[[b3,d4,f#4]@21 d4@3 ~@19 f#4@21 b3@21 f#4@21 ~@38, ~@7 b3@14 ~@27]/3", // Bm
  AJ: "[~@47 [g#3,b3,e4]@2 ~@30 [e3,g#3,b3]@267 ~@38, ~@79 [e4,g#4,b4]@262 ~@43, ~@79 [e2,g#2,b2]@246 ~@59]/8", // E
})).s("gm_piano").gain(0.44).pan(0.3)

// other · acoustic guitar nylon · "Guitar"
const acoustic_guitar_nylon = note(`<
  A B C D E F G H I J K L M N O F G H I J K N O ~ F G H I J K N O ~@25 P@2 Q@3 R S T ~@12
>`.pickRestart({
  A: "[b4,d5]@2 g4@2 [b4,d5]@2 g4@2 [b4,d5]@2 ~@2 d5@2 b4 ~, g4 ~@9 g4@5 ~", // Bm
  B: "[b4,d5]@2 g4@2 [b4,d5]@2 g4@2 [b4,d5]@2 f#4@2 [b4,d5]@2 f#4 ~, g4 ~@7 f#4 ~@7", // Bm
  C: "[g4,b4] ~@4 g4 b4 g4, e4 ~ e4@4 e4@9 ~, ~@4 [g4,b4]@5 ~@7", // G
  D: "c4@2 e4@2 [c4,g4] ~ g4@2 e4@2 g4@2 e4@2 c4 ~, ~@2 g4 ~@3 c4@7 ~@3, ~@6 e4 ~@9", // C5
  E: "[c4,e4]@2 g4 ~ [c4,e4,g4] ~ [c4,g4]@2 ~@4 g4@2 e4 ~, g4 ~@5 e4 ~ e4@4 ~@4, ~@5 c4@3", // C C5
  F: "g4 b4 d5 b4!2 d5 f#5 d5", G: "e5@2 g5@2 b5@2 g5@2 e5 ~ g5@2 b5 g5 e5@2",
  H: "c5@2 e5@2 g5@2 e5 ~ e5@2 g5@2 b5@2 e5@2", I: "a4@2 c5@2 e5@2 a4@2 c5 ~ [a4,c5]@2 e5@2 c5@2",
  J: "g4@2 b4@2 d5@2 b4 ~ b4@2 d5@2 f#5@2 d5@2", K: "f5@2 a5@2 b5 ~ g5@2 e5@2 g5@2 b5 g5 e5@2",
  L: "c5 e5 g5 e5 f4 a4 c5 a4", M: "e4 g4 b4 g4 e4 g4 b4 g4", N: "c5 e5 g5 c5 f4 a4 c5 a4",
  O: "e4@2 g4@2 b4@2 g4@3 ~ [g4,b4] ~ g4@2 e4 ~, ~@6 e4 ~@3 e4@2 ~@4", // G
  P: "[~@30 g4@5 b4@5 ~ d5@5 b4@5 b4@5 d5@5 ~ f#5@5 d5@5 e5@5 ~ g5@5 b5@5 g5@5 e5@3]/2",
  Q: "[~@3 g5@5 b5@3 g5@2 e5@5 ~ c5@5 e5@5 g5@5 ~ e5@3 ~@2 e5@5 g5@5 b5@5 ~ e5@5 a4@5 c5@5 ~ e5@5 ~@5 c5@3 ~@2 [a4,c5]@5 ~ e5@5 c5@5 g4@5 ~ b4@5 d5@5 b4@3 ~@3 b4@5 d5@5 f#5@5 d5@4, ~@77 a4@8 ~@59]/3", // Am
  R: "~@2 f5@5 a5@5 b5@3 ~@3 g5@5 e5@5 g5@5 b5@3 g5@3 e5@5 c5@4",
  S: "~ e5@5 ~ g5@5 c5@5 f4@5 ~ a4@5 c5@5 a4@5 e4@5 ~ g4@4",
  T: "~ b4@5 g4@8 ~@3 [g4,b4]@3 ~@2 g4@5 e4@3 ~@18, ~@6 e4@3 ~@8 e4@8 ~@23", // G
})).s("gm_acoustic_guitar_nylon").gain(0.12).pan(0.7)

// other · synth strings 1 · "Violins"
const synth_strings_1 = note("<~@48 A@5 B C@3 ~@20>".pickRestart({
  A: "[~@28 e5@33 d5@5 c5@5 ~ b4@32 d5@5 ~ e5@5 f#5@33 g5@5 f#5@5 e5@43 ~ e5@38]/5", B: "~@5 e5@33 d5@5 c5@5",
  C: "[b4@33 d5@5 e5@5 ~ f#5@32 g5@5 ~ f#5@11 e5@35 ~@16]/3",
})).s("gm_synth_strings_1").gain(0.33)

// other · trombone · E D C D G
const trombone = note("<~@56 [~@35 [e3,e4]@13] [~@3 [d3,d4]@3 ~@2 [c3,c4]@14 ~@3 [d3,d4]@3 ~@2 [g2,g3]@5 ~@13] ~@19>")
  .s("gm_trombone").gain(0.72)

// chords · orchestra hit · "Orch Hit"
const orchestra_hit = note("<~@34 A@2 B@3 ~@17 C D ~@9 E F@3 ~@6>".pickRestart({
  A: "[~@41 [e1,f1]@2 ~ [d1,e1]@2 ~ c1@2 d1 ~@2 f1 f1@2 [c1,d1] [f1,g1] ~@2 [f1,g1]@2 e1 ~ a1 ~@3 a1@2 ~@2 b1@2 ~ [f1,g1,a1]@2 b1@3 ~ a1@2 ~@4 b1@2 ~ [g1,a1]@2 b1@2 ~ [g1,a1]@2, ~@41 d1 ~@2 c1 ~ f1@2 ~ e1@2 [c1,d1]@2 ~@5 d1@2 ~@6 g1@2 ~@2 [f1,g1,a1]@3 ~@6 [f1,g1]@3 b1@2 g1@2 ~@2 f1@2 ~@3 f1@2 ~, ~@50 f1@2 e1@2 ~ e1@2 ~@2 [e1,a1] ~@2 [f1,g1]@2 ~ [e1,f1]@2 ~@2 e1@2 ~@3 e1 ~@8 f1@2 a1@2 ~@9]/2", // Fmaj7 Dsus2 Csus2 Fsus2 F Gsus2 Csus2 F …
  B: "[b1@2 f1@2 ~ c2@2 ~ [g1,a1,b1]@2 c2@3 ~ [a1,b1]@2 ~@2 [a1,b1]@2 [c2,d2]@2 ~ [b1,c2]@2 ~ g1 ~@2 d2@2 ~ [a1,b1,c2]@3 d2@2 ~ [b1,c2]@2 d2 ~ a1 ~ e2@2 ~@2 d2@2 e2@2 ~@2 f2 ~@3 f2@2 ~@3 g2@2 ~@3 g2 ~@2 [f2,g2,a2]@2 ~ [f2,g2]@2 a2 ~@3 b2@2 ~ [g2,a2]@2 ~@2 b2@2 c3@2 [g2,a2,b2]@2 [c3,d3]@2 b2 [g#3,b3,e4,b4]@5 ~@43, ~@4 [g1,a1,b1]@3 ~ f1 ~@4 g1@2 ~ c2@2 ~@7 d2@2 b1@2 ~@8 a1@2 ~@2 b1@2 d2@2 ~@8 [c2,d2,e2]@2 ~@2 e2@2 ~@2 [d2,e2]@3 ~ [c2,d2]@2 f2@2 ~@8 [e2,g2]@2 a2@3 ~@3 b2@2 ~@8 a2@2 ~@47, ~@17 g1@2 ~@3 [g1,a1]@2 ~@2 a1@2 c2@2 ~@10 e2@2 c2@2 ~@3 [b1,c2]@3 ~@2 b1@2 ~@2 [b1,c2,d2]@2 ~@2 c2@2 f2@3 ~ e2@2 ~@2 [d2,e2]@2 ~@2 [d2,e2] ~@3 f2@2 ~@2 [e2,f2]@2 ~@2 [f2,g2,a2]@2 ~@56]/3", // G Asus2 Csus2 Cmaj7 Am Cmaj7 F Fsus2 …
  C: "~@35 e3@11 ~@2", D: "~@3 d3@3 ~@2 c3@11 ~@6 d3@3 ~@2 g2@4 ~@14",
  E: "~@9 [d1,e1] f1@2 [d1,e1]@2 ~ c1 [d1,e1] ~ c1 [e1,f1] f1 ~ [c1,d1,e1,f1] g1 d1 [e1,f1] [g1,a1] e1 f1 a1 e1 ~ g1 a1 e1 [f1,g1,a1]@2 b1 [e1,f1] a1@2 b1@2 ~@2 b1 ~ f1, ~@12 c1 ~ f1@2 ~ f1@2 ~@9 g1@2 ~ f1@2 ~@5 g1@3 ~@2 [f1,g1]@2 ~@3, ~@9 d1 ~@12 a1 ~", // Dsus2 Fmaj7 Dm7 Fmaj7 Gsus2 F Fmaj7 Fsus2
  F: "[a1 b1@2 ~@2 b1@2 ~ [f1,g1,a1]@2 b1@2 ~@3 c2 ~ f1 ~ c2@3 ~@2 c2 ~ [a1,b1]@2 [c2,d2] ~ [b1,c2]@2 d2 ~ [g1,a1] ~ d2@2 [a1,b1,c2]@3 d2@2 [b1,c2]@2 [d2,e2] ~ [a1,b1] ~ e2@2 ~@3 e2@2 b1 c2 f2 b1 e2 f2@2 ~@3 g2 ~ [c2,d2] ~ g2 ~ [d2,f2] [g2,a2] ~ [d2,e2] g2 a2 ~ [e2,f2] b2@2 ~ [g2,a2]@2 b2 f2 ~ c3 ~ [a2,b2]@2 c3@2 [a2,b2] [e2,e3,e4,e5]@21 ~@28, g1@2 ~ f1@2 ~@7 f1@2 b1@3 ~ b1@2 ~@3 b1@2 ~@9 b1@2 ~@7 a1 ~@4 d2@2 ~@2 c2@3 ~@4 c2@2 ~@2 c2@2 f2@3 e2@2 ~@2 e2@2 ~@9 [e2,f2] ~@60, ~@4 [g1,a1]@2 ~@7 [g1,a1]@2 ~@2 [g1,a1]@2 ~@3 [g1,a1]@3 g1@2 ~@2 [g1,a1]@2 ~@4 c2@2 ~@10 c2@2 ~@2 b1@2 d2@2 ~@2 [d2,e2]@2 ~ d2@2 ~@2 [d2,e2]@2 ~@3 f2@2 ~@4 f2@2 ~@2 [g2,a2]@3 ~@5 [g2,a2,b2]@3 g2 ~ d3 ~@51]/3", // F Asus2 Csus2 Cmaj7 Gsus2 Am Cmaj7 Dsus2 …
})).s("gm_orchestra_hit").gain(0.8)

// chords · orchestra hit · "Orch Hit" · soft notes · Dsus2 Csus2 Fmaj7 Dsus2
const orchestra_hit_soft = note(`<
  ~@34
  [~@15 c1@2 ~ f1@2 c1 d1 f1@2 c1 ~ [d1,e1] ~ c1 [d1,e1] f1@2 c1 ~ f1@2 c1 [d1,e1] f1 ~ c1 ~@7, ~@17 [d1,e1]@2 ~@2 e1@2 ~@3 f1@2 ~@4 d1@2 ~@14, ~@33 e1@2 ~@13]
  ~@31
  [~@36 [d1,e1] f1 ~ c1 [d1,e1] f1 ~ c1 [d1,e1] ~ c1 d1, ~@35 c1@2 ~@7 f1@2 ~@2]
  [f1@2 [c1,d1] [e1,f1] ~ c1 [d1,e1] f1 c1 ~@39, e1 ~@47]
  ~@9
>`).s("gm_orchestra_hit").gain(0.32)

// drums · kick
const kick = s("bd").struct(`<
  ~@19 A@5 ~@4 A@7 B C@2 ~ D E F G H I J K L M N O P Q R S T U V ~@5 W X Y Z AA AB AC ~@7
>`.pickRestart({
  A: "x ~ x!3 ~ x!2", B: "x ~ x!3 ~ x ~", C: "x!4", D: "~@47 x",
  E: "~@5 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x",
  F: "~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x",
  G: "~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~",
  H: "~@4 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~",
  I: "~@3 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~",
  J: "~@3 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@2",
  K: "~@2 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@2",
  L: "~@2 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@3", M: "~@2 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@10 x ~@8",
  N: "~@2 x ~@4 x ~@5 x ~@4 x ~@5 x ~@9 x ~@10 x ~@2", O: "~@3 x ~@4 x ~@5 x ~@4 x ~@10 x ~@10 x ~@4 x ~",
  P: "~@4 x ~@9 x ~@10 x ~@10 x ~@4 x ~@5 x", Q: "~@4 x ~@5 x ~@10 x ~@9 x ~@5 x ~@4 x ~@5",
  R: "x ~@4 x ~@10 x ~@10 x ~@4 x ~@5 x ~@9", S: "x ~@10 x ~@10 x ~@5 x ~@4 x ~@10 x ~@3",
  T: "~@7 x ~@10 x ~@4 x ~@4 x ~@10 x ~@8", U: "~@2 x ~@10 x ~@10 x ~@4 x ~@5 x ~@9 x ~@2",
  V: "~@3 x ~@4 x ~@10 x ~@5 x ~@22", W: "~@11 x", X: "~ x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4",
  Y: "~ x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4",
  Z: "x ~@5 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4",
  AA: "x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5",
  AB: "x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x",
  AC: "~@5 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@5",
})).gain(0.8)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@24 A@4 ~@29 B C D E F G H ~@13>".pickRestart({
  A: "x ~ x!3 ~ x!2", B: "~@30 x ~@4 x ~@5 x ~@4 x ~", C: "~@3 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@2",
  D: "~@3 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@2",
  E: "~@2 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@5 x ~@2",
  F: "~@2 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@3",
  G: "~@2 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@3",
  H: "~ x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@9",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  ~@16 A ~ B C D C@2 E C D C F C D C@2 E C@2 G ~@3 H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI ~@10
>`.pickRestart({
  A: "~@2 x ~@4 x ~@8", B: "~@5 x ~@2", C: "~ x ~ x", D: "~@2 x ~@2 x ~ x", E: "~@2 x ~@3 x!2",
  F: "~@4 x ~@5 x ~@2 x!2 ~", G: "~@2 x!2 ~@4", H: "~@47 x",
  I: "~ x ~ x ~ x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x",
  J: "~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x",
  K: "~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~",
  L: "~@4 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~",
  M: "~@3 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~",
  N: "~@3 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@2",
  O: "~@2 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@2",
  P: "~@2 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@3", Q: "~@2 x ~@4 x ~@4 x ~@5 x ~@4 x ~@15 x ~@8",
  R: "~@13 x ~@20 x ~@13", S: "~@4 x ~@10 x ~@8", T: "~@4 x ~@20 x ~@21 x", U: "~@7 x ~@6 x ~", V: "~@8 x ~@10 x ~@4",
  W: "~@11 x ~@21 x ~@14", X: "~@7 x ~@20 x ~@19", Y: "~@2 x ~@21 x ~@20 x ~@2", Z: "~@19 x ~@15 x ~@10 x ~",
  AA: "~@8 x ~@10 x ~@10 x ~@9 x ~@7", AB: "~@3 x ~@9 x ~@10 x ~@10 x ~@9 x ~@2", AC: "~@8 x ~@9 x ~@10 x ~@9 x ~@8",
  AD: "~@2 x ~@10 x ~@9 x ~@10 x ~@9 x ~@3", AE: "~@7 x ~@10 x ~@9 x ~@10 x ~@8",
// … 133 more lines

More by The Beatles