Strudelify
Lucy in the Sky With Diamonds cover art

Sgt. Pepper's Lonely Hearts Club Band

Lucy in the Sky With Diamonds

The Beatles

KeyD majorTempo130 bpm
0:00/0:00
// Lucy in the Sky With Diamonds — The Beatles
// 130 bpm, 3/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (3/4 at bar 1, 4/4 at bar 35, 3/4 at bar 50, 4/4 at bar 81, ...) are rendered on a constant 3/4 grid of one bar per cycle
// note: Full arrangement: all 148 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/3)

// 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.

// other · distortion guitar · "Electric Guitar (P31)"
const distortion_guitar = note(`<
  ~@36 A B@2 C@2 D@2 E@2 F@2 G@2 H ~@32 I@2 J K L M N O@2 P@2 Q@2 ~@18 R S@2 T@2 U@2 V@2 W X Y Z AA AB@2 AC@2 AD@2 AE@2
  AF@2 AG@2 AH@2 AI ~@6
>`.pickRestart({
  A: "~@19 g2@4 ~", B: "[g2@4 ~@2 a2@4 ~ b2@4 ~ c3@4 ~@2 d3@4 ~ e3@4 ~ c3@4 ~@2 d3@4 ~ d3@4 ~]/2",
  C: "[d3@4 ~@2 d3@4 ~ d3@4 ~@2 d3@4 ~ d3@4 ~ d3@4 ~@2 g2@4 ~ g2@4 ~ a2@4 ~]/2",
  D: "[~ b2@4 ~ c3@4 ~ d3@4 ~@2 e3@4 ~ c3@4 ~@2 d3@4 ~ d3@4 ~ d3@4 ~@2 d3@4]/2",
  E: "[~ d3@4 ~ d3@4 ~@2 d3@4 ~ d3@4 ~ g2@4 ~@2 g2@4 ~ a2@4 ~@2 b2@4 ~ c3@4]/2",
  F: "[~ d3@4 ~@2 e3@4 ~ c3@4 ~ d3@4 ~@2 d3@4 ~ d3@4 ~ d3@4 ~@2 d3@4 ~ d3@4]/2",
  G: "[~ d3@4 ~@2 d3@4 ~ d3@4 ~@2 a2@4 ~ d3@4 ~ a2@4 ~@2 d3@4 ~ a2@4 ~ d3@4]/2", H: "~ a2@2 ~@9",
  I: "[~@2 g2@4 ~ g2@4 ~@2 a2@4 ~ b2@4 ~ c3@4 ~@2 d3@4 ~ e3@4 ~@2 c3@4 ~ d3@3]/2",
  J: "~@2 d3@4 ~@2 d3@4 ~ d3@4 ~ d3@4 ~@2", K: "d3@4 ~ d3@4 ~ d3@4 ~@2 g2@4 ~ g2@3",
  L: "~@2 a2@4 ~@2 b2@4 ~ c3@4 ~@2 d3@4 ~", M: "e3@4 ~ c3@4 ~@2 d3@4 ~ d3@4 ~ d3@3",
  N: "~@3 d3@4 ~ d3@4 ~ d3@4 ~@2 d3@4 ~", O: "[d3@4 ~@2 g2@4 ~ g2@4 ~ a2@4 ~@2 b2@4 ~ c3@4 ~ d3@4 ~@2 e3@4 ~ c3@4 ~]/2",
  P: "[d3@4 ~@2 d3@4 ~ d3@4 ~ d3@4 ~@2 d3@4 ~ d3@4 ~@2 d3@4 ~ d3@4 ~ d3@4 ~]/2",
  Q: "[~ a2@4 ~ d3@4 ~ a2@4 ~@2 d3@4 ~ a2@4 ~ d3@4 ~@2 a2@4 ~@11]/2", R: "~@9 g2@4 ~ g2@4 ~@2 a2@4",
  S: "[~ b2@4 ~@2 c3@4 ~ d3@4 ~ e3@4 ~@2 c3@4 ~ d3@4 ~ d3@4 ~@2 d3@4 ~ d3@4]/2",
  T: "[~ d3@4 ~@2 d3@4 ~ d3@4 ~ d3@4 ~@2 g2@4 ~ g2@4 ~@2 a2@4 ~ b2@4 ~ c3@4]/2",
  U: "[~@2 d3@4 ~ e3@4 ~ c3@4 ~@2 d3@4 ~ d3@4 ~ d3@4 ~@2 d3@4 ~ d3@4 ~@2 d3@3]/2",
  V: "[~@2 d3@4 ~ d3@4 ~@2 g2@4 ~ g2@4 ~ a2@4 ~@2 b2@4 ~ c3@4 ~ d3@4 ~@2 e3@3]/2",
  W: "~@2 c3@4 ~@2 d3@4 ~ d3@4 ~ d3@4 ~@2", X: "d3@4 ~ d3@4 ~ d3@4 ~@2 d3@4 ~ d3@3",
  Y: "~@2 d3@4 ~@2 f#3@4 ~ a3@4 ~ f#3@4 ~@2", Z: "d3@4 ~ f#3@4 ~@2 a3@4 ~ f#3@4 ~ a2@3",
  AA: "~@3 c#3@4 ~ e3@4 ~ c#3@4 ~@2 a2@4 ~",
  AB: "[c#3@4 ~ e3@4 ~@2 c#3@4 ~ g2@4 ~@2 g2@4 ~ a2@4 ~ b2@4 ~@2 c3@4 ~ d3@4 ~]/2",
  AC: "[e3@4 ~@2 c3@4 ~ d3@4 ~ d3@4 ~@2 d3@4 ~ d3@4 ~ d3@4 ~@2 d3@4 ~ d3@4 ~]/2",
  AD: "[~ d3@4 ~ g2@4 ~ g2@4 ~@2 a2@4 ~ b2@4 ~ c3@4 ~@2 d3@4 ~ e3@4 ~ c3@4 ~]/2",
  AE: "[~ d3@4 ~ d3@4 ~@2 d3@4 ~ d3@4 ~ d3@4 ~@2 d3@4 ~ d3@4 ~ d3@4 ~@2 g2@4]/2",
  AF: "[~ g2@4 ~ a2@4 ~@2 b2@4 ~ c3@4 ~@2 d3@4 ~ e3@4 ~ c3@4 ~@2 d3@4 ~ d3@4]/2",
  AG: "[~ d3@4 ~@2 d3@4 ~ d3@4 ~ d3@4 ~@2 d3@4 ~ d3@4 ~@7 f#3@4 ~ a3@4]/2",
  AH: "[~@2 f#3@4 ~ d3@4 ~ f#3@4 ~@2 a3@4 ~ f#3@4 ~ a2@4 ~@2 c#3@4 ~ e3@4 ~ c#3@4]/2",
  AI: "~@2 a2@4 ~ c#3@4 ~@2 e3@4 ~ c#3@4 ~@2",
})).s("gm_distortion_guitar").gain(0.11)

// other · distortion guitar · "Electric Guitar (P31)" · soft notes
const distortion_guitar_soft = note("<~@138 A ~@2 B@2 C D E F G>".pickRestart({
  A: "~@9 d3@4 ~@11", B: "[~@23 g2@4 ~@2 g2@4 ~ a2@4 ~ b2@4 ~@2 c3@3]/2", C: "~@2 d3@4 ~ e3@4 ~@2 c3@4 ~ d3@4 ~@2",
  D: "d3@4 ~ d3@4 ~ d3@4 ~@2 d3@4 ~ d3@3", E: "~@2 d3@4 ~@2 d3@4 ~ g2@4 ~ g2@4 ~@2",
  F: "a2@4 ~ b2@4 ~ c3@4 ~@2 d3@4 ~ e3@3", G: "~@3 c3@4 ~@17",
})).s("gm_distortion_guitar").gain(0.06)

// bass · fretless bass · "Bass Guitar (P36)"
const bass = note(`<
  ~@4 A B C D E B C F G E B C D E B H I J K L M K N O K P Q K N R S T@2 U@2 V@2 W@2 X@2 Y@2 Z@2 AA AB AC AD AE AB AC
  AF@3 AB AC AD AE AB AG@8 AH@8 AI@2 AJ@2 AK AL AM AN AO AP@2 AQ@2 AR AS@8 AT AU@8 AV AW@2 AX@2 AY@2 AZ@2 BA@2 BB BC BD
  BE BF BG@2 BH@2 BI@2 BJ@2 BK@2 BL@2 BM@2 BN ~@6
>`.pickRestart({
  A: "a2@19 ~@5", B: "g2@19 ~@5", C: "f#2@19 ~@5", D: "f2@19 ~@5", E: "e2@19 ~@5", F: "f2@3 ~ c2@3 ~ f2@3 ~",
  G: "c2@10 ~@2 c2@3 ~ d2@6 ~@2", H: "f#2@3 ~ a2@3 ~ f#2@3 ~", I: "a2@3 ~ f#2@3 ~ a2@3 ~", J: "d2@3 ~ d2@3 ~ d2@3 ~",
  K: "c2@3 ~ c2@3 ~ c2@3 ~", L: "a#1@3 ~ a#1@3 ~ a#1@3 ~", M: "f2@3 ~ f2@3 ~ f2@3 ~", N: "g2@3 ~ g2@3 ~ g2@3 ~",
  O: "f1@3 ~ f1@3 ~ f1@3 ~", P: "a#1@3 ~ d2@3 ~ f2@3 ~", Q: "a#2@3 ~ f2@3 ~ a#1@3 ~", R: "g1@3 ~ b1@3 ~ d2@3 ~",
  S: "g2@3 ~ f#2@3 ~ e2@3 ~", T: "[d2@9 ~@2 [d1,d2]@9 ~ [d1,d2]@9 ~@2 [d1,d2]@9 ~@2 g1@4 ~]/2",
  U: "[g1@4 ~@2 a1@4 ~ b1@4 ~ c2@4 ~@2 d2@4 ~ e2@4 ~ c2@4 ~@2 d2@4 ~ d2@4 ~]/2",
  V: "[d2@4 ~@2 d2@4 ~ d2@4 ~@2 d2@4 ~ d2@4 ~ d2@4 ~@2 g1@4 ~ g1@4 ~ a1@4 ~]/2",
  W: "[~ b1@4 ~ c2@4 ~ d2@4 ~@2 e2@4 ~ c2@4 ~@2 d2@4 ~ d2@4 ~ d2@4 ~@2 d2@4]/2",
  X: "[~ d2@4 ~ d2@4 ~@2 d2@4 ~ d2@4 ~ g1@4 ~@2 g1@4 ~ a1@4 ~@2 b1@4 ~ c2@4]/2",
  Y: "[~ d2@4 ~@2 e2@4 ~ c2@4 ~ d2@4 ~@2 d2@4 ~ d2@4 ~ d2@4 ~@2 d2@4 ~ d2@4]/2",
  Z: "[~ d2@4 ~@2 d2@4 ~ d2@4 ~@2 a1@4 ~ d2@4 ~ a1@4 ~@2 d2@4 ~ a1@4 ~ d2@4]/2", AA: "~@2 a1@4 ~ a2@17",
  AB: "~@7 g2@17", AC: "~@7 f#2@17", AD: "~@7 f2@17", AE: "~@7 e2@17",
  AF: "[~@7 f2@6 ~@2 c2@6 ~@2 f2@6 ~@2 c2@10 ~@2 c2@3 ~ d2@6 ~@2 e2@17]/3",
  AG: "[~@7 f#2@6 ~@2 a2@6 ~@2 f#2@6 ~@2 a2@6 ~@2 f#2@6 ~@2 a2@6 ~@2 d2@6 ~@2 d2@6 ~@2 d2@6 ~@2 c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 a#1@6 ~@2 a#1@6 ~@2 a#1@6 ~@2 f2@6 ~@2 f2@6 ~@2 f2@6 ~@2 c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 g2@6 ~@2 g2@6 ~@2 g2]/8",
  AH: "[~@7 f1@6 ~@2 f1@6 ~@2 f1@6 ~@2 c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 a#1@6 ~@2 d2@6 ~@2 f2@6 ~@2 a#2@6 ~@2 f2@6 ~@2 a#1@6 ~@2 c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 g2@6 ~@2 g2@6 ~@2 g2@6 ~@2 g1@6 ~@2 b1@6 ~@2 d2@6 ~@2 g2@6 ~@2 f#2@6 ~@2 e2]/8",
  AI: "[~@7 d2@9 ~@2 [d1,d2]@9 ~@2 [d1,d2]@9 ~ [d1,d2]@9]/2", // D
  AJ: "[~@2 g1@4 ~ g1@4 ~@2 a1@4 ~ b1@4 ~ c2@4 ~@2 d2@4 ~ e2@4 ~@2 c2@4 ~ d2@3]/2",
  AK: "~@2 d2@4 ~@2 d2@4 ~ d2@4 ~ d2@4 ~@2", AL: "d2@4 ~ d2@4 ~ d2@4 ~@2 g1@4 ~ g1@3",
  AM: "~@2 a1@4 ~@2 b1@4 ~ c2@4 ~@2 d2@4 ~", AN: "e2@4 ~ c2@4 ~@2 d2@4 ~ d2@4 ~ d2@3",
  AO: "~@3 d2@4 ~ d2@4 ~ d2@4 ~@2 d2@4 ~",
  AP: "[d2@4 ~@2 g1@4 ~ g1@4 ~ a1@4 ~@2 b1@4 ~ c2@4 ~ d2@4 ~@2 e2@4 ~ c2@4 ~]/2",
  AQ: "[d2@4 ~@2 d2@4 ~ d2@4 ~ d2@4 ~@2 d2@4 ~ d2@4 ~@2 d2@4 ~ d2@4 ~ d2@4 ~]/2",
  AR: "~ a1@4 ~ d2@4 ~ a1@4 ~@2 d2@4 ~ a1@2",
  AS: "[~@3 d2@4 ~@2 a1@4 ~ a2@19 ~@5 g2@19 ~@5 f#2@19 ~@5 f2@19 ~@5 e2@19 ~@5 g2@19 ~@5 f#2@19 ~@5 f2@6 ~@2 c2@2]/8",
  AT: "~@3 f2@3 ~ c2@5",
  AU: "[~@2 c2@3 ~ d2@6 ~@2 e2@19 ~@5 g2@19 ~@5 f#2@19 ~@5 f2@19 ~@5 e2@19 ~@5 g2@19 ~@5 f#2@6 ~@2 a2@6 ~@2 f#2@6 ~@2 a2@10]/8",
  AV: "~@2 f#2@3 ~ a2@6 ~@2 d2@9 ~", AW: "[~ [d1,d2]@9 ~@2 [d1,d2]@9 ~ [d1,d2]@9 ~@2 g1@4 ~ g1@4 ~@2 a1@4]/2",
  AX: "[~ b1@4 ~@2 c2@4 ~ d2@4 ~ e2@4 ~@2 c2@4 ~ d2@4 ~ d2@4 ~@2 d2@4 ~ d2@4]/2",
  AY: "[~ d2@4 ~@2 d2@4 ~ d2@4 ~ d2@4 ~@2 g1@4 ~ g1@4 ~@2 a1@4 ~ b1@4 ~ c2@4]/2",
  AZ: "[~@2 d2@4 ~ e2@4 ~ c2@4 ~@2 d2@4 ~ d2@4 ~ d2@4 ~@2 d2@4 ~ d2@4 ~@2 d2@3]/2",
  BA: "[~@2 d2@4 ~ d2@4 ~@2 g1@4 ~ g1@4 ~ a1@4 ~@2 b1@4 ~ c2@4 ~ d2@4 ~@2 e2@3]/2",
  BB: "~@2 c2@4 ~@2 d2@4 ~ d2@4 ~ d2@4 ~@2", BC: "d2@4 ~ d2@4 ~ d2@4 ~@2 d2@4 ~ d2@3",
  BD: "~@2 d2@4 ~@2 f#2@4 ~ a2@4 ~ f#2@4 ~@2", BE: "d2@4 ~ f#2@4 ~@2 a2@4 ~ f#2@4 ~ a1@3",
  BF: "~@3 c#2@4 ~ e2@4 ~ c#2@4 ~@2 a1@4 ~",
  BG: "[c#2@4 ~ e2@4 ~@2 c#2@4 ~ g1@4 ~@2 g1@4 ~ a1@4 ~ b1@4 ~@2 c2@4 ~ d2@4 ~]/2",
  BH: "[e2@4 ~@2 c2@4 ~ d2@4 ~ d2@4 ~@2 d2@4 ~ d2@4 ~ d2@4 ~@2 d2@4 ~ d2@4 ~]/2",
  BI: "[~ d2@4 ~ g1@4 ~ g1@4 ~@2 a1@4 ~ b1@4 ~ c2@4 ~@2 d2@4 ~ e2@4 ~ c2@4 ~]/2",
  BJ: "[~ d2@4 ~ d2@4 ~@2 d2@4 ~ d2@4 ~ d2@4 ~@2 d2@4 ~ d2@4 ~ d2@4 ~@2 g1@4]/2",
  BK: "[~ g1@4 ~ a1@4 ~@2 b1@4 ~ c2@4 ~@2 d2@4 ~ e2@4 ~ c2@4 ~@2 d2@4 ~ d2@4]/2",
  BL: "[~ d2@4 ~@2 d2@4 ~ d2@4 ~ d2@4 ~@2 d2@4 ~ d2@4 ~@7 f#2@4 ~ a2@4]/2",
  BM: "[~@2 f#2@4 ~ d2@4 ~ f#2@4 ~@2 a2@4 ~ f#2@4 ~ a1@4 ~@2 c#2@4 ~ e2@4 ~ c#2@4]/2",
  BN: "~@2 a1@4 ~ c#2@4 ~@2 e2@4 ~ c#2@4 ~@2",
})).s("gm_fretless_bass").gain(0.41)

// bass · fretless bass · "Bass Guitar (P36)" · soft notes
const bass_soft = note("<~@138 A ~@2 B@2 C D E F G>".pickRestart({
  A: "~@9 d2@4 ~@11", B: "[~@23 g1@4 ~@2 g1@4 ~ a1@4 ~ b1@4 ~@2 c2@3]/2", C: "~@2 d2@4 ~ e2@4 ~@2 c2@4 ~ d2@4 ~@2",
  D: "d2@4 ~ d2@4 ~ d2@4 ~@2 d2@4 ~ d2@3", E: "~@2 d2@4 ~@2 d2@4 ~ g1@4 ~ g1@4 ~@2",
  F: "a1@4 ~ b1@4 ~ c2@4 ~@2 d2@4 ~ e2@3", G: "~@3 c2@4 ~@17",
})).s("gm_fretless_bass").gain(0.21)

// chords · rock organ · "Organ (P19)"
const rock_organ = note(`<
  ~@37 A B C@3 D E F G H I@2 ~@33 J K L M N O@3 P Q R@3 ~@18 F G H S@5 K L T U@4 P Q V W B X Y@2 Z AA@2 ~ AB@2 ~@6
>`.pickRestart({
  A: "~@2 [g4,b4,d5]@3 ~@3", B: "~ [g4,c5,e5]@3 ~@4",
  C: "[[c5,d5,f#5]@9 ~@13 [c5,d5,f#5]@9 ~@12 [g4,b4,d5]@9 ~@13 [g4,c5,e5]@7]/3", D: "~@14 [c5,d5,f#5]@9 ~",
  E: "~@4 [c5,d5,f#5]@3 ~", F: "~@3 [g4,b4,d5]@3 ~@2", G: "~@7 [g4,c5,e5]@9 ~@8", H: "~@4 [c5,d5,f#5]@9 ~@11",
  I: "[~ [c5,d5,f#5]@9 ~@2 [a4,d5,f#5,a5]@34 ~@2]/2", J: "~@13 [g4,b4,d5]@9 ~@2", K: "~@10 [g4,c5,e5]@9 ~@5",
  L: "~@8 [c5,d5,f#5]@9 ~@7", M: "~@5 [c5,d5,f#5]@9 ~@10", N: "~@2 [g4,b4,d5]@9 ~@13",
  O: "[[g4,c5,e5]@9 ~@12 [c5,d5,f#5]@9 ~@13 [c5,d5,f#5]@9 ~@12 [g4,b4,d5]@8]/3", P: "~@14 [g4,c5,e5]@9 ~",
  Q: "~@11 [c5,d5,f#5]@9 ~@4", R: "[~@9 [c5,d5,f#5]@9 ~ [a4,d5,f#5,a5]@34 ~@19]/3",
  S: "[~ [c5,d5,f#5]@2 ~ [c5,d5,f#5]@4 ~ [c5,d5,f#5]@2 ~ [c5,d5,f#5]@4 ~ [c5,d5,f#5]@4 ~@2 [g4,b4,d5]@9 ~@12 [g4,c5,e5]@9 ~@13 [c5,d5,f#5]@9 ~@12 [c5,d5,f#5]@2 ~ [c5,d5,f#5]@4 ~ [c5,d5,f#5]@2 ~ [c5,d5,f#5]@4 ~ [c5,d5,f#5]@4 ~@2 [g4,b4,d5]@9 ~@2]/5", // D7 G C D7 G
  T: "~@5 [c5,d5,f#5]@2 ~ [c5,d5,f#5]@4 ~ [c5,d5,f#5]@2 ~ [c5,d5,f#5]@4 ~ [c5,d5,f#5]@3", // D7
  U: "[~@2 [d5,f#5,a5]@34 ~@9 [c#5,e5]@34 ~@9 [g4,b4,d5]@8, ~@2 a4@77 ~@17]/4", // D C#m G
  V: "~@8 [c5,d5,f#5]@2 ~ [c5,d5,f#5]@4 ~@2 [c5,d5,f#5]@2 [c5,d5,f#5]@4 ~", W: "~ [c5,d5,f#5]@4 ~ [g4,b4,d5]@9 ~@9",
  X: "~ [c5,d5,f#5]@9 ~@12 [c5,d5,f#5]@2", // D7
  Y: "[~ [c5,d5,f#5]@4 ~ [c5,d5,f#5]@2 ~ [c5,d5,f#5]@4 ~ [c5,d5,f#5]@4 ~@2 [g4,b4,d5]@9 ~@12 [g4,c5,e5]@7]/2", // D7 G C
  Z: "~@5 [c5,d5,f#5]@3", // D7
  AA: "[~@12 [c5,d5,f#5]@2 ~ [c5,d5,f#5]@2 [c5,d5,f#5]@2 ~ [c5,d5,f#5]@2 ~ [c5,d5,f#5]@2 [c5,d5,f#5]@2 ~ [c5,d5,f#5]@2 ~ [c5,d5,f#5]@2 ~@15]/2", // D7
  AB: "[~@2 [c#5,e5]@17 ~@5]/2", // C#m
})).s("gm_rock_organ").gain(0.13)

// chords · rock organ · "Organ (P19)" · soft notes
const rock_organ_soft = note("<~@138 A@7 B C ~>".pickRestart({
  A: "[~@9 [d5,f#5,a5]@34 ~@52 [g4,b4,d5]@9 ~@13 [g4,c5,e5]@9 ~@12 [c5,d5,f#5]@9 ~@13 [c5,d5,f#5]@2 [c5,d5,f#5]@4 ~@2, ~@9 a4@77 ~@82]/7", // D G C D7
  B: "[c5,d5,f#5]@2 [c5,d5,f#5]@4 ~@2 [c5,d5,f#5]@4 ~ [g4,b4,d5]@9 ~@2", C: "~@10 [g4,c5,e5]@9 ~@5",
})).s("gm_rock_organ").gain(0.06)

// other · synth strings 2 · "Strings (P52)"
const synth_strings_2 = note(`<
  ~@4 A B C D E B C F G E B C D E B H I J K L M K N O K P Q K N R S ~@14 T U V W X U V Y@3 U V W X U Z@8 AA@8 ~@14 AB@8
  AC AD@8 AE ~@36
>`.pickRestart({
  A: "a3@19 ~@5", B: "g3@19 ~@5", C: "f#3@19 ~@5", D: "f3@19 ~@5", E: "e3@19 ~@5", F: "f3@3 ~ c3@3 ~ f3@3 ~",
  G: "c3@10 ~@2 c3@3 ~ d3@6 ~@2", H: "f#3@3 ~ a3@3 ~ f#3@3 ~", I: "a3@3 ~ f#3@3 ~ a3@3 ~", J: "d3@3 ~ d3@3 ~ d3@3 ~",
  K: "c3@3 ~ c3@3 ~ c3@3 ~", L: "a#2@3 ~ a#2@3 ~ a#2@3 ~", M: "f3@3 ~ f3@3 ~ f3@3 ~", N: "g3@3 ~ g3@3 ~ g3@3 ~",
  O: "f2@3 ~ f2@3 ~ f2@3 ~", P: "a#2@3 ~ d3@3 ~ f3@3 ~", Q: "a#3@3 ~ f3@3 ~ a#2@3 ~", R: "g2@3 ~ b2@3 ~ d3@3 ~",
  S: "g3@3 ~ f#3@3 ~ e3@3 ~", T: "~@7 a3@17", U: "~@7 g3@17", V: "~@7 f#3@17", W: "~@7 f3@17", X: "~@7 e3@17",
  Y: "[~@7 f3@6 ~@2 c3@6 ~@2 f3@6 ~@2 c3@10 ~@2 c3@3 ~ d3@6 ~@2 e3@17]/3",
  Z: "[~@7 f#3@6 ~@2 a3@6 ~@2 f#3@6 ~@2 a3@6 ~@2 f#3@6 ~@2 a3@6 ~@2 d3@6 ~@2 d3@6 ~@2 d3@6 ~@2 c3@6 ~@2 c3@6 ~@2 c3@6 ~@2 a#2@6 ~@2 a#2@6 ~@2 a#2@6 ~@2 f3@6 ~@2 f3@6 ~@2 f3@6 ~@2 c3@6 ~@2 c3@6 ~@2 c3@6 ~@2 g3@6 ~@2 g3@6 ~@2 g3]/8",
  AA: "[~@7 f2@6 ~@2 f2@6 ~@2 f2@6 ~@2 c3@6 ~@2 c3@6 ~@2 c3@6 ~@2 a#2@6 ~@2 d3@6 ~@2 f3@6 ~@2 a#3@6 ~@2 f3@6 ~@2 a#2@6 ~@2 c3@6 ~@2 c3@6 ~@2 c3@6 ~@2 g3@6 ~@2 g3@6 ~@2 g3@6 ~@2 g2@6 ~@2 b2@6 ~@2 d3@6 ~@2 g3@6 ~@2 f#3@6 ~@2 e3]/8",
  AB: "[~@14 a3@19 ~@5 g3@19 ~@5 f#3@19 ~@5 f3@19 ~@5 e3@19 ~@5 g3@19 ~@5 f#3@19 ~@5 f3@6 ~@2 c3@2]/8",
  AC: "~@3 f3@3 ~ c3@5",
  AD: "[~@2 c3@3 ~ d3@6 ~@2 e3@19 ~@5 g3@19 ~@5 f#3@19 ~@5 f3@19 ~@5 e3@19 ~@5 g3@19 ~@5 f#3@6 ~@2 a3@6 ~@2 f#3@6 ~@2 a3@10]/8",
  AE: "~@2 f#3@3 ~ a3@6 ~@12",
})).s("gm_synth_strings_2").gain(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~@35 A B C D E F G H I J K L M N ~@31 O P Q R O C S E T G U V W K ~@18 X F Y H Z J O AA AB N AC AD AE AF W C D AG AH
  AI U AJ AK K L AL H ~@9
>`.pickRestart({
  A: "~@11 x ~@9 x ~@2", B: "~@8 x ~@10 x ~@4", C: "~@2 x", D: "~@7 x ~@4", E: "~@11 x ~@12", F: "~@3 x ~@4",
  G: "~ x ~@2", H: "~ x ~@4", I: "~ x ~@20 x ~", J: "~@5 x", K: "~@17 x ~@6", L: "~@5 x ~@2", M: "~ x", N: "~@5 x ~@6",
  O: "~@3 x", P: "~@5 x ~@9 x ~@8", Q: "~@2 x ~@20 x", R: "~@7 x", S: "~@13 x ~@10", T: "~ x ~", U: "~ x ~@6",
  V: "x ~@10 x", W: "~@19 x ~@4", X: "~ x ~@10 x ~@9 x ~", Y: "~@7 x ~@16", Z: "~ x ~@21 x",
  AA: "~@4 x ~@5 x ~@4 x ~@5 x ~@2", AB: "~@2 x ~@4 x ~@5 x ~@10", AC: "~@4 x ~@4 x ~@2",
  AD: "x ~@4 x ~@4 x ~@5 x ~@4 x ~@2", AE: "~ x ~@10", AF: "x ~@6 x", AG: "~@11 x ~@10 x ~",
  AH: "~@3 x ~@4 x ~@5 x ~@4 x ~@4", AI: "~ x ~@4 x ~@17", AJ: "~ x ~@10 x ~@4 x ~@4 x ~",
  AK: "~@4 x ~@4 x ~@4 x ~@5 x ~@3", AL: "~ x ~@5 x ~@4 x ~@4 x ~@5 x",
})).gain(0.48)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@138 A B C D E F G H I ~>".pickRestart({
  A: "~@3 x ~@4", B: "~@7 x ~@16", C: "~ x ~@4", D: "~@2 x ~@20 x", E: "~@7 x", F: "~@3 x", G: "~@2 x",
  H: "~@13 x ~@10", I: "~@5 x ~@6",
})).gain(0.24)

// drums · snare
const snare = s("sd").struct(`<
  ~@35 A B C D E F G H I J K L M N ~@31 O P Q R B S T U F V H W J C D ~@17 X N G Y I R K L Z AA O V Q W B S D E F G H I
  J C L M ~@10
>`.pickRestart({
  A: "~@11 x ~@9 x ~@2", B: "~ x ~", C: "~ x ~@2", D: "~ x ~@6", E: "x ~@10 x", F: "~@19 x ~@4", G: "~@17 x ~@6",
  H: "~@7 x ~@4", I: "~ x", J: "~@3 x ~@4", K: "~@7 x ~@16", L: "~ x ~@4", M: "~ x ~@21 x", N: "~@5 x", O: "~@3 x",
  P: "~@5 x ~@9 x ~@8", Q: "~@13 x ~@10", R: "~@5 x ~@6", S: "~@5 x ~@18", T: "~ x ~@10", U: "x ~@6 x", V: "~@2 x",
  W: "~@11 x ~@12", X: "~ x ~@10 x ~@9 x ~", Y: "~@5 x ~@2", Z: "~@2 x ~@20 x", AA: "~@7 x",
})).gain(0.48)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@138 A B C D E F G H I ~>".pickRestart({
  A: "~@5 x", B: "~@3 x", C: "~@5 x ~@2", D: "~@13 x ~@10", E: "~@5 x ~@6", F: "~@7 x ~@16", G: "~@5 x ~@18",
  H: "~ x ~@10", I: "x ~@6 x",
})).gain(0.24)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@11 A@2 ~@23 B C D E F G H I J K J L M N ~@6 O@2 ~@24 P Q R S T U V C D C F G W ~@6 X Y Z ~@9 AA K J K M AB AC P AD R
  S R U V AE D C D G F I H AF J K AG ~@9
>`.pickRestart({
  A: "x!3", B: "~@19 x ~@4", C: "x ~@5 x ~@4 x ~@4 x ~@5 x ~", D: "~@3 x ~@4 x ~@5 x ~@4 x ~@4",
// … 81 more lines

More by The Beatles