Strudelify

Lucille

The Beatles

KeyE majorTempo151 bpm
0:00/0:00
// Lucille — The Beatles
// 151 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 88 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(151/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 · piano
const piano = note(`<
  ~ A B C@2 D E F G H I J K L M N@2 O P Q R S T U V N W X Y Z AA AB AC AD T AE AF AG W X Y Z AA AB AC AD T AE AF AG M
  N@2 O P Q R S T U V N W X Y Z AA AB AC AD T AE AF AG AH AI AH AJ AK AL AM@2 AN AO AP AQ ~@2
>`.pickRestart({
  A: "~@14 e7 [g#6,b6,c7]", // G#
  B: "[e2,b2,e3,e6] ~ [e2,b2,e3,e6,g#6,b6,c7,e7] ~ [e2,c#3,e3] ~ [e2,c#3,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,c#3,e3] ~ [e2,c#3,e3] ~", // E5 E C#m E5 C#m
  C: "[[e2,b2,e3,e6,g#6,b6,e7] ~ [e2,b2,e3] ~ [e2,c#3,e3] ~ [e2,b2,e3,c7] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,f#2,c3,c#3,e3] ~ [e2,c#3,e3] b6 [e2,b2,e3,e6,g#6] ~ [e2,b2,e3,e6,g#6,b6,c7,e7] ~ [e2,c#3,e3] ~ [e2,c#3,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,c#3,e3] ~ [e2,c#3,e3] ~, ~@5 [e6,g#6,b6]@9 ~@18, ~@5 e7@7 ~@3 e7@2 ~@15]/2", // E E5 C#m Cmaj7 E5 F#7 C#m E …
  D: "[e2,b2,e3,e6,g#6,b6,e7] ~ [e2,b2,e3] ~ [e2,c#3,e3] ~ [e2,b2,e3,c7] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,c#3,e3] ~ [e2,c#3,e3] [g6,c#7,d7], ~@3 e6@5, ~@3 [g#6,b6,e7]@4 e7", // E E5 C#m Cmaj7 E5 C#m G E
  E: "[a2,e3,g3,a3] ~ [a2,e3,a3,e6,g6,c#7,d7,e7] ~ [a2,c#3,f#3,a3] ~ [a2,f#3,a3] ~ [a2,e3,a3] ~ [a2,e3,g3,a3] ~ [a2,f#3,a3] ~ [a2,e3,a3] ~", // A7 F#m D A5 A7 D A5
  F: "[a2,e3,a3,e6,a6,c#7,e7] ~ [a2,e3,a3] ~ [a2,f#3,a3] ~ [a2,f#3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,f#3,a3] ~ [a2,f#3,a3] [g#6,b6,c7], ~@6 e6@9 ~, ~@6 [g6,c#7,e7]@7 ~ e7@2", // A A5 D A5 D G# C#dim
  G: "[e2,b2,e3,e6] ~ [e2,b2,e3,e6,g#6,b6,e7] ~ [c#3,e3] ~ [e2,c#3,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,c#3,e3] ~ [e2,c#3,e3] ~", // E5 E C#m E5 C#m
  H: "[e2,b2,e3,e6,g#6,b6,e7] ~ [e2,b2,e3,e6,g#6,b6,e7] ~ [e2,c#3,e3,e6,a6,c#7,e7] ~ [e2,f2,c#3,e3,e6,a6,c#7,e7] ~ [e2,b2,e3,e6,g#6,b6,d7,e7] ~ [e2,b2,e3,e6,g#6,b6,e7] ~ [e2,f#2,c3,c#3,e3,e6,a6,c#7,e7] ~ [e2,c#3,e3,a#6] ~", // E A E7 E F#m7 A#dim
  I: "[a2,b2,f3,f#3,b3,f#6,b6,d#7] [b6,d#7] [b2,b3] [b6,d#7] [b2,f#3,b3,f#6,b6,d#7] [f#6,b6,d#7] [f#6,b6] d#7 [b2,f#3,b3,f#6,b6,c#7,d#7] [f#6,b6,d#7]!2 ~ [f#3,b3,f#6,a#6,b6,c#7,d#7] [f#6,b6,c#7,d#7] b2 [f#6,b6,c#7,d#7], ~ f#6@2 ~@9 b2@2 ~@2", // B7 B B5 B D#m7 B
  J: "[a2,e3,a3,g6,c#7,e7] [g6,c#7,e7]!2 d7 [a2,f#3,a3,g6,c#7,d7,e7] [c#7,d7,e7] [c#7,e7] d7 [a2,e3,a3,g6,c#7,d7,e7] [c#7,d7,e7] [c#7,e7] ~ [a2,e3,g6,c#7,d7,e7] g6 [b2,c3] [b6,c7], ~@5 g6@2 ~@2 g6@2 ~ a3@2 a2@2, ~@13 e7@2 ~", // A7 C#dim A7 C#m A7 C#m A7 Cmaj7
  K: "[e2,b2,e3,e6,b6,c7,e7,f7] ~ [b2,e3,e6,g#6,b6,c7,e7] ~ [c#3,e3] ~ [e2,c#3,e3] ~ [e2,b2,e3] ~ [b2,e3] ~ [c#3,e3] ~ [e6,g#6,b6,d7]@2, g#6@2 e2@2 ~@6 e2@2 ~@2 [e2,c#3,e3,c7] ~", // Cmaj7 E C#m E5 C#m E7 C
  L: "[e2,b2,d3,e3] e6 [e2,b2,e3,g#6,b6,d7] ~ [e2,c#3,e3,e6,g#6,b6,c7,d7] [e6,d7] [e2,c#3,e3,g#6] ~ [e2,c#3,e3,b6,c7,d7,e7,f7,g7] [c6,d6,e6,f6,g6,a6] [e2,c#3,e3,e5,f5,g5,a5,b5] [b4,c5,d5] [c#3,e3,e4,f4,g4,a4] d4 [e3,f3,g3,a3,b3,c4] ~, ~@6 e2 ~", // E7 C#m Em7 Dm7 A7 Bm A7 Cmaj7
  M: "[e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~", // E A E A
  N: "[e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~", // E A E A
  O: "[e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3] ~", // E A E A Esus4
  P: "[a2,e3,g3,a3,b3] ~ [a2,e3,g3,b3] ~ [a2,e3,a3,c#4] ~ [a2,e3,a3,c#4] ~ [a2,e3,g3,b3] ~ [a2,e3,g3,b3] ~ [a2,e3,a3,c#4] ~ [a2,e3,a3,c#4] ~", // Em A Em A
  Q: "[a2,e3,g3,b3] ~ [a2,e3,g3,b3] ~ [a2,e3,a3,c#4] ~ [a2,e3,a3,c#4] ~ [a2,e3,g3,b3] ~ [a2,e3,g3,b3] ~ [a2,e3,a3,c#4] ~ [a2,e3,a3,c#4] ~", // Em A Em A
  R: "[d2,e2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~", // E7 E A E A
  S: "[e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,c3,e3,a3,c#4] ~", // E A E A
  T: "[b2,f#3,b3,d#4] ~ [b2,f#3,b3,d#4] ~ [b2,f#3,b3,d#4] ~ [b2,f#3,b3,d#4] ~ [b2,f#3,b3,d#4] ~ [b2,f#3,b3,d#4] ~ [b2,f#3,b3,d#4] ~ [f#3,b3,d#4] ~, ~@7 b2", // B
  U: "[a2,e3,f3,g3,a3,b3] ~ [a2,e3,g3,b3] ~ [a2,e3,a3,c#4] ~ [a2,e3,a3,c#4] ~ [a2,e3,g3,a3,b3] ~ [a2,e3,g3,b3] ~ [a2,e3,a3,c#4] ~ [e3,g#3,b3]@2, ~@14 a2 ~", // Em A Em A E
  V: "[e2,b2] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~", // E5 E A E A
  W: "[e3,e4,e5] ~@7", X: "[e3,e4] ~@7, e5 ~@15", Y: "[e3,e4,e5] ~@15",
  Z: "e4 [e4,d5] d5 e4 [e4,d5] d5 [e4,d5] e4 [e4,d5] d5 [e4,d5] e4 [e4,d5] ~@3", // E7
  AA: "[a2,e3] ~ [a2,e3] ~ [a2,e3,g3,a3,b3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3,g3,b3] ~ [a2,e3] ~ [a2,e3] ~", // A5 Em A5 Em A5
  AB: "[a2,e3,g3,b3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3,g3,b3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3,g3,b3] ~ [a2,e3,c4] ~, ~@7 [g#3,b3]", // Em A5 Em A5 Em Am G#m
  AC: "[e2,b2] ~ [e2,b2,d3,e3,g#3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2] ~", // E5 E7 A E5 E A E5
  AD: "[e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,a3,c#4,d4] ~", // E A E A
  AE: "[a2,g3,c#4,e4] ~ [a2,g3,c#4,e4] ~ [a2,g3,c#4,e4] ~ [a2,g3,c#4,e4] ~ [a2,g3,c#4,e4] ~ [a2,g3,c#4,e4] ~ [a2,g3,c#4,e4] ~ [a2,g3,c#4,e4] ~", // A7
  AF: "[e2,b2] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,a3,c#4] ~, ~@7 e3", // E5 E A E A
  AG: "[e2,b2,a#3,b3,d4] ~ [e2,b2,e3,b3,d4] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,a3,c#4] ~ [e2,b2,e3,a3,c#4] ~", // E7 A E A
  AH: "[e2,e3,g#3,b3] ~ [e2,e3,g#3,b3] ~ [e2,e3,a3,c#4] ~ [e2,e3,a3,c#4] ~ [e2,e3,g#3,b3] ~ [e2,e3,g#3,b3] ~ [e2,e3,a3,c#4] ~ [e2,e3,a3,c#4] ~", // E A E A
  AI: "[e2,e3,g#3,b3] ~ [e2,e3,g#3,b3] ~ [e2,e3,a3,c#4] ~ [e2,e3,g3,a3,c4] ~ [e2,e3,g#3,b3] ~ [e2,e3,g#3,b3] ~ [e2,e3,a3,c#4] ~ [e2,e3,a3,c#4] ~", // E A Am7 E A
  AJ: "[e2,e3,g#3,b3] ~ [e2,e3,g#3,b3] ~ [f#2,g#3] ~ [f#2,a3,c#4] ~ [g2,e3,g#3,b3] ~ [g2,e3,g#3,b3] ~ [g#2,e3,g#3,a3,c#4] ~ [g#2,e3,a3,c#4] ~, ~@2 e3 ~@5", // E F#sus2 F#m E Amaj7
  AK: "[a2,e3,g3,b3] ~ [a2,e3,g3,b3] ~ a2 ~ [a2,e3,g3,b3] ~ a2 ~ [a2,e3,g3,b3] ~ a2 e3 [e3,b3,d4]@2, ~@14 [a2,a#3] ~", // Em E7 A#maj7
  AL: "a2 ~ [a2,e3,b3,d4] ~ [a2,e3,a3,c#4] ~ a2 ~ [a2,e3,g#3,b3] ~ a2 ~ [a2,e3,a3,c#4] ~ [e3,g#3,b3]@2, ~@14 a2 ~", // Asus4 A E A E
  AM: "[e2 ~ [e2,e3,g#3,b3] ~ [e2,e3,a3,c#4] ~ e2 ~ [e2,e3,g#3,b3] ~ e2 ~ [e2,e3,a3,c#4] ~ e2 ~ [b3,d4]@2 e2 ~ [e2,e3,a3,c#4] ~ [e2,e3,g#3,b3] ~ e2 ~ [e2,e3,g#3] ~ [e3,a3,c#4] ~ [f#3,b3,d#4]@2, ~@14 e3@5 ~@13, ~@16 [e2,a#3] ~@11 e2@2 ~@2]/2", // E A E A Bm A E A …
  AN: "b2 ~ [b2,f#3,a#3,b3,d#4] ~ [b2,f#3,b3,d#4] ~ [b2,f#3,b3,d#4] ~ [b2,f#3,b3,d#4] ~ [b2,f#3,b3,d#4] ~ [b2,f#3,b3,d#4] ~ [b2,f#3,b3,d#4] ~", // Bmaj7 B
  AO: "[a2,g3,c#4,e4] ~ [a2,b2,g3,c#4,e4] ~ [g2,a2,g3,c#4,e4] ~ [a2,g3,c#4,e4] ~ [a2,g3,c#4,e4] ~ [a2,g3,c#4,e4] ~ [a2,g3,c#4,e4] ~ [a2,g3,c#4,e4] ~", // A7
  AP: "[e2,e3,g#3,b3] ~ [e2,e3,g#3,b3] ~ [e2,e3,a3,c#4] ~ [e2,e3,c#4] ~ [e2,e3,a#3,b3,d4] ~ [e2,e3,b3,c4,d4] ~ [e2,e3,a3,b3,c#4] ~ [e2,e3,b3] ~", // E A C#m E7 A E5
  AQ: "[e2,e3,g#3,b3] ~ e2 ~ e2 ~ [e3,b3,d4] ~@5 [e2,e3,b3,d4,e4]@4, ~@3 e2 ~@4", // E E7
})).s("gm_piano").gain(0.45)

// other · baritone sax · "SAX"
const baritone_sax = note(`<
  ~@14 A ~ A ~ B ~ A ~ C D A ~ E@2 F G H ~ I ~ C D I J E@2 F G H ~ I ~ C D I J A ~ A ~ B ~ A ~ C D A ~ E@2 F G H ~ I ~ C
  D I J K L@5 M N O P Q R@3
>`.pickRestart({
  A: "e1 ~ e1@2 g#1@2 b1 ~ d2@2 c#2 ~@5", B: "a1 ~ a1@2 c#2@2 e2 ~ g2@2 f#2 ~@5", C: "b1@7 a#1", D: "a1", E: "e1 ~@7",
  F: "e2 ~@7", G: "e1@4 f#1@4 g1@4 g#1 ~@3", H: "a1 ~ a1@2 c#2@2 e2@2 g2@2 f#2 ~@5",
  I: "e1 ~ e1@2 g#1@2 b1@2 d2@2 c#2 ~@5", J: "~@2 [e2,f2] ~@3 e2 ~@3 e2@2 b1@2 e1 ~",
  K: "e1 ~ e1@2 g#1@2 b1@2 d2@2 c#2 ~@4 c#1",
  L: "[[e1,e2] ~@5 [e1,e2]@3 [a0,b0,c1,a1,b1,c2] ~@6 e1 ~ e1@2 g#1@2 b1@2 d2@2 c#2 ~@5 [e1,e2] ~@5 [e1,e2]@3 c2 ~ [e0,f0,g0] ~@4 a1 ~ a1@2 c#2@2 e2@2 g2@2 f#2 ~@5 [e1,e2] ~@5 [e1,e2]@3 b1 g0 ~@5, ~@5 [d0,e0,g0]@16 [a0,b0,c1]@16 ~@3]/5", // E Am E Em E Em7 Am
  M: "~@2 e1@2 g#1@2 b1@2 d2@2 c#2 ~@5", N: "[e1,e2] ~@5 [e1,e2]@3 b1 [f0,g0,a0,b0] [d0,e0] ~@4",
  O: "b1 ~ b1@2 ~@2 b1@2 f#2 ~ f#2@2 b1@2 a#1@2", P: "a1 ~ a1@2 c#2@2 a1@2 e2 ~ e2@2 c#2@2 a1@2",
  Q: "e1 ~ e1@2 g#1 ~ g#1@2 b1 ~ b1@2 c#2@2 ~@2", R: "[e2@2 c#2@2 b1@2 e2@2 ~@5 e1@22 ~@13, ~@6 e2@11 ~@7]/3",
})).s("gm_baritone_sax").gain(0.35).pan(0.9)

// other · baritone sax · "SAX" · soft notes
const baritone_sax_soft = note("<~@75 A@7 B ~ C ~@2 D>".pickRestart({
  A: "[~@8 d1 d2 e1@6 ~@25 [d1,d2] [g1,a1] d0 ~@29 [b0,c1,d1,a1,c2,d2] [f0,f1,g1] [d0,e0] ~@4 e1 ~@21 f1 ~@2 [c1,d1,c2,d2] [f1,g1,a1] ~ b-1 ~@3, ~@5 f1@32 a0@16 ~@3, ~@10 [f0,g1]@32 b1@31 ~@39]/7", // D Gsus2 Bm7 Fsus2 Dsus2 Csus2 F Fsus2
  B: "~@2 d#2 ~@5", C: "~@7 b1", D: "~@3 [b0,c1,d1] ~@12",
})).s("gm_baritone_sax").gain(0.2).pan(0.9)

// other · brass section · "BRASS"
const brass_section = note(`<
  ~@14 A ~ A ~ B ~ C ~ D E F ~ G H I J K ~ L ~ M N O P G H I J K ~ L ~ M N O P A ~ A ~ B ~ C ~ D E F ~ G H I J K ~ L ~ M
  N O P Q R A S B T U V W X Y Z@3
>`.pickRestart({
  A: "[e3,e4] ~ [e3,e4]@2 [g#3,g#4]@2 [b3,b4]@2 [d4,d5]@2 [c#4,c#5] ~@5", // E G# B D C#
  B: "[a3,a4] ~ [a3,a4]@2 [c#4,c#5]@2 [e4,e5]@2 [g4,g5]@2 [f#4,f#5] ~@5", // A C# E G F#
  C: "[e3,e4] ~ [e3,e4]@2 [g#3,g#4]@2 [b3,b4]@2 [d4,d5]@2 [c#4,c#5] ~@5, ~@8 c5 ~@7", // E G# B D C#
  D: "[b3,b4] ~ [b3,b4]@2 [d#4,d#5]@2 [b3,b4] ~ [f#4,f#5] ~ [f#4,f#5]@2 d#5@2 [b3,b4] ~, ~@12 e4 ~@3", // B D# B F# B
  E: "[a3,a4] ~ [a3,a4]@2 [c#4,c#5]@2 a4@2 [e4,e5] ~ [e4,e5]@2 [c#4,c#5]@2 [g3,a4] ~, ~@6 a3 ~@9", // A C# E C# Gsus2
  F: "e4 ~ [e3,e4]@2 [g#3,g#4]@2 [b3,b4]@2 [d4,d5]@2 [c#4,c#5] ~@5", // E G# B D C#
  G: "[e4,e5]@2 [c3,d3,c4,d4,d5] [b3,g4,a4,c5] f4 ~@11, e6 ~@15", // E Csus2 Cmaj7
  H: "[e5,e6]@2 [a3,b3,c4,d4] [d3,f3,g3] ~@12, [e4,d6] ~@15", // E D7 G7 E7
  I: "[e4,d6,e6] d4 [g3,a3,b3,c4,d5] [d3,e3,f3,f4,g4,a4,b4] [d4,e4] ~@11, e5 ~@7", // E7 G Em7 Dsus2
  J: "[e3,e4]@4 [f#3,f#4]@4 [g3,g4]@4 [g#3,g#4] ~@3, d3 ~@15", // E F# G G#
  K: "[a3,a4] ~ [a3,a4]@2 [c#4,c#5]@2 [e4,e5] ~ [g4,g5]@2 [f#4,f#5] ~@5", // A C# E G F#
  L: "[e3,e4] ~ [e3,e4]@2 [g#3,g#4]@2 [b3,b4] ~ [d4,d5]@2 [c#4,c#5] ~@5", // E G# B D C#
  M: "[b3,b4] ~ [b3,b4]@2 [d#4,d#5] ~ [d#4,d#5]@2 [f#4,f#5] ~ [f#4,f#5]@2 [b3,b4]@2 [a#3,a#4]@2", // B D# F# B A#
  N: "[a3,a4] ~ [a3,a4]@2 [c#4,c#5] ~ [c#4,c#5]@2 [e4,e5] ~ [e4,e5]@2 c#5@2 b4 ~, ~@12 c#4 ~@3", // A C# E
  O: "[e3,e4] ~ [e3,e4]@2 [g4,g#4] ~ [b3,b4] ~ d5@2 [c4,c#4,c#5] ~@5, ~@4 g#3@2 ~@2 d4 ~@7", // E G#maj7 B C#maj7
  P: "~@2 [e3,e4,b4,d5] ~@3 [e3,e4,b4,d5] ~@3 [e3,e4,b4,d5]@2 c5 [b2,c3,d3,d4,e4,f4,g4] [g2,a2,g3,a3,b3,c4] ~", // E7 Cmaj7
  Q: "[e3,e4] ~ [e3,e4]@2 [g#3,g#4]@2 [b3,b4]@2 [d4,d5]@2 [c#4,c#5] ~@4 b3", R: "[e3,e4]@15 a3", S: "[e2,e3]@15 ~",
  T: "[e2,e3]@14 [f#3,g#3] ~", U: "[e3,e4] ~ [e3,e4]@2 [g#3,g#4]@2 [b3,b4]@2 [d4,d5]@2 [c#4,c#5] ~@5, ~@2 d3 ~@13",
  V: "e3@13 ~ a#3 ~, e2 ~@15", W: "[b3,b4]", X: "[a3,c#5]",
  Y: "~ b3 [e4,e5]@2 ~@2 [e4,e5]@6 [c#4,c#5]@2 [b3,b4]@2, ~@6 d5 ~@9", // E C# B
  Z: "[[e4,e5]@2 ~@2 b4@2 [e4,e5]@2 ~@2 e3 [g3,a3,a#3,b3] [e4,e5]@25 ~@11, ~ [c#4,c#5] ~@22, ~@3 b3@2 ~@43]/3", // E C#
})).s("gm_brass_section").gain(0.45)

// other · brass section · "BRASS" · soft notes
const brass_section_soft = note(`<
  ~@22 A ~ B ~ C D E ~@6 F ~ G C D E ~@6 F ~ G ~@8 A ~ B ~ C D E ~@6 F ~ G ~ H I ~ J ~ K L ~@3 M ~@2
>`.pickRestart({
  A: "~@12 d#4 ~@3", B: "[d3,e3] ~@15", C: "~@2 e3 ~ g3 ~@11", D: "~@2 d5 e3 ~@12", E: "~@3 c5 c4 ~@11",
  F: "~@14 c#4 ~", G: "~@12 a4 ~@3", H: "f3@14 [f3,g#3] g3", I: "~@15 c3", J: "~@15 b2", K: "~@14 e3 b2",
  L: "~ e2 ~@12 g#3 ~", M: "~@5 f3 b4@2",
})).s("gm_brass_section").gain(0.25)

// chords · drawbar organ · "ORGAN"
const drawbar_organ = note("<~@49 A B C D E F@2 G H I J K L ~@26>".pickRestart({
  A: "~@8 [a1,b1,c2,d2,e2,f2] [g2,a2,b2,c3,d3] [e3,f3,g3,a3,b3] [c4,d4,e4,f4] [g4,a4,b4] [c5,d5,e5] [f5,g5,g#5] [a#5,b5,c6], ~@7 a5", // Dm7 G Em Dm7 G C Fm
  B: "[c2,d2,e2,c#6] ~ b5 [b5,d6] d6 b5 d6 b5 [b5,d6] d6 b5 d6 [b5,d6] b5 d6 b5, d6 ~@7", // Bm
  C: "d6 b5 e6@3 ~ e6@2 d6 ~ b5 ~ d6@2 b5 ~, ~@2 d#6 ~@3 d#6 ~@9",
  D: "[b5,e6]@3 ~ [a#5,e6]@3 ~ [a5,e6] ~ [g#5,e6] ~ [a5,e6] ~ [a#5,e6]@2, a#5 ~@15", // E5 A#dim A5 C#m A5 A#dim
  E: "~@2 [b5,e6]@3 [a5,b5] [d6,e6] ~ b5@2 e5 ~ [g5,b5]@2 e5 ~, ~@2 a#5 ~@5 e6 ~@3 g#5 ~@3", // E5 Asus2 Dsus2 G
  F: "[[g5,b5]@2 e5 ~ [a5,c#6]@2 ~@2 f#5 a#5 [d5,e5] ~ e5 ~ [g5,b5]@4 e5 ~ [a5,c#6]@2 e5 ~ [g5,b5] ~ [a5,c#6] ~@3 [b5,d6]@2, ~@4 [g5,b5] ~@11]/2", // G A Dsus2 G A G A Bm …
  G: "~@2 d#6 e6@3 g6 ~ a6@2 g6 ~ a6 ~ a#6 ~", H: "b6 ~ d7 ~ d#7 ~ e7 ~ [f#7,g7] ~ [f#7,g7] ~ [f#7,g7] ~ [f#7,g7] ~",
  I: "[c#7,d#7] ~ d7 ~ b6 ~ d7 ~ e7@2 d7 ~ b6 ~ d7@2, ~ e7@2 ~@5 d#7 ~@7", // C#sus2
  J: "e7 d7 b6 d7 b6 a6 b6 a6 g6 [a6,b6] g6 e6 g6 e6 d6 e6", K: "d6 b5 d6 b5 a5 b5 a5 g5 a5 g5 e5 g5 e5 d5 e5 d5",
  L: "[a4,b4] d5 b4 a4 b4 a4 [f4,g4] a4 g4 e4 ~ f4 e4 [b3,e4] [e3,f3,g3,a3] [f2,g2,a2,b2,c3,d3], ~@6 [c4,d4] ~", // Asus2 Fsus2 E5 Fmaj7 Dm7 Csus2
})).s("gm_drawbar_organ").gain(0.45)

// other · alto sax · "SAX"
const alto_sax = note(`<
  ~@14 A ~ A ~ B ~ A ~ C D E ~ F@2 G H I ~ A ~ C D A J F@2 G H I ~ A ~ C D A J A ~ A ~ B ~ A ~ C D E ~ F@2 G H I ~ A ~ C
  D A J K L A M I N O P Q R S T@3
>`.pickRestart({
  A: "e2!4 g#2!2 b2!2 d3!2 c#3!2 ~@4", B: "a2!4 c#3!2 e3 ~ g3!2 f#3!2 ~@4", C: "b2 b2@13 a#2!2", D: "a2 a2@15",
  E: "e2!4 g#2!2 b2 ~ d3!2 c#3!2 ~@4", F: "e2!2 ~@14", G: "e3!2 ~@14", H: "e2 e2@3 f#2 f#2@3 g2 g2@3 g#2!2 ~@2",
  I: "a2!4 c#3!2 e3!2 g3!2 f#3!2 ~@4", J: "~@2 [e3,f3]!2 ~@2 e3!2 ~@2 e3!2 b2!2 e2!2",
  K: "e2!4 g#2!2 b2!2 d3!2 c#3!2 ~@3 c#2",
  L: "[e2,e3]!2 ~@4 [e2,e3] e3@2 [a1,b1,c2,a2,b2,c3,d3] [d1,e1,f1,g1,e2] g1 ~@4, ~@7 e2 ~@8", // E D7 Em7
  M: "[e2,e3]!2 ~@4 [e2,e3] [e2,e3]@2 c3 [a1,b1,c2,b2] [d1,e1,f1,g1,b1,c2] ~@4", // E Am Cmaj7
  N: "[e2,e3]!2 ~@4 [e2,e3] [e2,e3]@2 [c2,b2,c3,d3] [g1,a1,b1,a2] [d1,e1] ~@4", O: "~@2 e2!2 g#2!2 b2!2 d3!2 c#3!2 ~@4",
  P: "[e2,e3]!2 ~@4 [e2,f2,e3] [e2,e3]@2 [c2,b2,c3] [g1,a1,b1,a2] [d1,e1,f1,g1] b0 ~@3", // E Fmaj7 E Cmaj7 G Em7
  Q: "b2!4 d#3 ~ b2!2 f#3!4 b2!2 a#2!2", R: "a2!4 c#3!2 a2!2 e3 ~ e3!2 c#3!2 a2!2", S: "e2!4 g#2!3 ~ b2!3 ~ c#3!2 ~@2",
  T: "[e3!2 c#3!2 b2!2 e3!2 ~@4 e3 e2 e2@21 ~@13, ~@13 e3@21 ~@14]/3",
})).s("gm_alto_sax").gain(0.3).pan(0.2)

// other · alto sax · "SAX" · soft notes
const alto_sax_soft = note("<~@18 A ~@5 B ~@29 A ~@5 B ~@14 C ~ D ~ E F G H I J ~@2 K>".pickRestart({
  A: "~@7 e3 ~@8", B: "~@7 b2 ~@8", C: "c#2 ~@7 d2!2 [a1,b1,c2,f2,g2,a2,b2,c3,d3] [d1,e1,f1,e2,f2,g2] ~@4",
  D: "~@9 [d2,d3] [d2,g2,a2,d3] [a1,g2,a2,b2,c3] [d1,e1,f1,g1] ~@3", // D Dsus4 Am7 Em7
  E: "~@9 d2 [f1,c2,d2,f2,g2,b2,c3,d3] [f1,g1,a1,b1,f2,g2,a2] [d1,e1] ~@3", F: "e2!2 ~@14",
  G: "~@7 f2 ~ [d2,d3] [c2,d2,f2,g2,b2,c3,d3] [a1,b1,f2,g2,a2] [d1,e1,f1] b0 ~@2", H: "~@5 d#3 ~@10", I: "~@9 e3 ~@6",
  J: "~@7 g#2 ~@3 b2 ~@2 b2!2", K: "~@3 [b1,c2,d2]!2 ~@11",
})).s("gm_alto_sax").gain(0.15).pan(0.2)

// bass · electric bass finger · "BASS"
const bass = note(`<
  ~@2 A@2 B C D E F G H I A J K A@2 L M@2 N A O M A@2 P Q P R S T U V W X A Y P Q P R S T U V W X A Y K A@2 L M@2 N A O
  M A@2 P Q P R S T U V W X A Z AA@2 B L AB M A AC W AD AA AE@3
>`.pickRestart({
  A: "e1 ~ e1@2 g#1 ~ g#1@2 b1 ~ b1@2 c#2@2 b1@2", B: "e1 ~ e1 ~ g#1 ~ g#1 ~ b1 ~ b1@2 c#2@2 b1 ~",
  C: "e1@2 e2 ~ f#1@2 f#2 ~ g1@2 g2 ~ g#1@2 g#2@2", D: "a1 ~ a1@2 [c#2,d2] ~ c#2@2 e2 ~ e2@2 f#2@2 e2@2",
  E: "g2 ~ g2@2 f#2 ~ f#2@2 e2 ~ e2@2 c#2@2 e2 ~", F: "e2 ~ e2@2 d2 ~ d2@2 c#2 ~ c#2@2 b1 ~ b1@2",
  G: "e2 ~ e2@2 d2 ~ d2@2 c#2 ~ c#2@2 e1@2 a1@2", H: "[b1,c2] ~ b1@2 d#2 ~ d#2@2 f#2 ~ f#2@2 b1@2 a#1 ~",
  I: "a1 ~ a1@2 c#2 ~ c#2@2 e2 ~ e2@2 c#2@2 a1@2", J: "e1 ~ e1@2 g#1 ~ g#1@2 b1 ~ b1@2 c#2@2 [d2,e2] ~",
  K: "e1 ~ e1@2 g#1@2 b1 ~ d2@2 c#2@2 ~@2 b1 ~, ~@2 f1 ~@13", L: "e1 e2 f#1 f#2 g1 g2 g#1 g#2",
  M: "a1 ~ a1@2 c#2 ~ c#2@2 e2 ~ e2@2 f#2@2 e2@2", N: "e1 ~ [e1,f1] ~ g#1 ~ g#1@2 b1 ~ b1@2 c#2@2 b1@2",
  O: "b1 ~ b1@2 d#2 ~ d#2@2 f#2 ~ f#2@2 g#2@2 f#2@2", P: "e1 ~@7", Q: "e2@2 ~@12 a1 b1",
  R: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1@2 f#1@2 g1@2", S: "a1 ~ a1@2 c#2 ~ e2 ~ g2@2 f#2 ~@3 e2@2, ~@8 a2 ~@7",
  T: "a1 ~ a1@2 c#2@2 e2@2 g2 ~ g2@2 f#2@2 e2@2", U: "e1 ~ e1@2 g#1@2 b1@2 d2@2 c#2 ~@3 b1@2",
  V: "e1 ~ e1@2 g#1 ~ b1@2 d2 ~ d2@2 c#2@2 b1 ~", W: "b1 ~ b1@2 d#2 ~ d#2@2 f#2 ~ f#2@2 b1@2 a#1@2",
  X: "a1 ~ a1@2 g2 ~ g2@2 e2 ~ e2@2 c#2 ~ c#2@2", Y: "d2 ~ d2@2 c#2 ~ c#2@2 b1 ~ b1@2 g#1 ~ g#1 ~",
  Z: "d2 ~ d2@2 c#2 ~ c#2@2 b1 ~ b1@2 [e1,g#1] ~ e1@2, ~@14 g#1 ~", AA: "e1 ~ e1@2 g#1 ~ g#1 ~ b1 ~ b1@2 c#2@2 b1@2",
  AB: "a1 ~ a1@2 c#2 ~ c#2@2 e2 ~ e2@2 f#2@2 e2 ~", AC: "e1 ~ e1@2 g#1 ~ g#1 ~ b1 ~ b1@2 c#2@2 b1 ~",
  AD: "a1 ~ a1@2 c#2 ~ c#2@2 e2 ~ e2@2 c#2@2 a1 ~", AE: "[e2@2 c#2@2 b1@2 g#1 ~@5 e1@21 ~@15]/3",
})).s("gm_electric_bass_finger").gain(0.4)

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

// drums · rim
const rim = s("rim").struct("<[x!2] [x!3 ~] ~@86>").gain(0.64)

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

// drums · low tom
const low_tom = s("lt").struct("<~@27 A ~ B ~@9 A ~ B ~@21 A ~ B ~@21 C>".pickRestart({
// … 38 more lines

More by The Beatles