Strudelify
Golden Slumbers cover art

Abbey Road

Golden Slumbers

The Beatles

KeyC majorTempo96 bpm
0:00/0:00
// Golden Slumbers — The Beatles
// 96 bpm, 4/4, key C 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 (4/4 at bar 1, 2/4 at bar 12, 4/4 at bar 12, 2/4 at bar 22, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 142 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(96/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 · synth brass 1
const synth_brass_1 = note(`<
  ~@2 A@3 B C@7 D E F@6 ~@3 G@6 H@3 I ~@8 J K L M ~@10 N ~@8 J K L M ~@10 N ~@54 O@8
>`.pickRestart({
  A: "[~@30 e4@33 d4@17 e4@16]/3", B: "~ f4@17 e4@8 d4@6",
  C: "[~@3 d4@67 e4@17 d4@17 e4@51 [b3,f4]@8 [c4,e4]@8 ~ [d4,f4]@8 [b3,d4]@8 ~ [c4,e4]@34 ~]/7", // Bdim C Dm Bm C
  D: "~@11 [g3,c4,g4]@21", E: "~@13 [a3,c4,g4]@19",
  F: "[~@14 [g3,c4,g4]@21 ~@13 [g3,c4,g4]@21 ~@13 [a3,c4,g4]@21 [e4,g4]@17 [e4,g#4]@17 [e4,a4]@8 [e4,a4]@8 ~ [e4,a4]@34 ~@4]/6", // C5 Am7 Em E A5
  G: "[~ e4@34 d4@16 e4@17 f4@17 e4@8 ~ d4@8 d4@67 ~ g4@8 a4@8 e4@6]/6",
  H: "[~@3 d4@8 c4@8 ~ a3@8 f3@34 [b3,f4]@8 [c4,e4]@8 ~ [d4,f4]@8 [b3,d4]@8 ~]/3", I: "[c4,e4]",
  J: "~ [g4,c5,e5]!5 [g4,c5,e5]@2", K: "[g4,c5,e5]@3 [f4,c5,d5]@5", L: "~ [f4,b4,d5]!5 [f4,b4,d5]@2",
  M: "f5@2 e5 c5@2 [g4,c5]@3, [f4,b4]@3 e4@5", N: "[d5,g5]@2 ~@3 [e5,g5]!2 [d5,g5]",
  O: "[~@24 [e4,g4,c5]@31 [f#4,a4,d5]@31 [g4,a#4,d#5]@15 [a4,c5,f5]@15 ~ [g4,e5,g5]@138 ~]/8", // C D D# F C
})).s("gm_synth_brass_1").gain(0.39).pan(0.3)

// chords · piano · "Piano 1"
const piano = note("<A@5 B@2 C@7 D@5 E@5 F@2 G@7 H ~@108>".pickRestart({
  A: "[~@157 a3@2 d2, ~@26 [c4,g4]@8 ~ [c4,g4]@8 [c4,g4]@8 [c4,g4]@8 ~ [c4,g4]@8 [c4,g4]@8 ~ [c4,g4]@8 [c4,g4]@8 ~ a2@34 ~@32, ~@30 a3@8 ~ a3@8 a3@8 ~ a3@8 a3@8 a3@8 ~ a3@8 a3@8 ~ a3@8 a3@8 ~ a3@8 a3@8 ~ a3@8 a3@8 a3@8 ~@4, ~@94 [c4,g4]@8 [c4,g4]@8 [c4,g4]@8 ~ [c4,g4]@8 [d4,f4]@8 ~ [d4,f4]@8 [e4,g4]@8 ~ [e4,g4]@7]/5", // C5 Dm Em
  B: "[~@33 g2@2 ~@25 [b3,f4]@4, ~ d2@32 ~@2 g2@29, ~ [f4,a4]@8 ~ [f4,a4]@8 [e4,g4]@8 [e4,g4]@8 ~ [b3,f4]@8 [b3,f4]@8 ~ [b3,f4]@8 ~@4, ~@5 a3@8 ~ a3@8 a3@8 ~ a3@8 g3@8 ~ g3@8 g3@8]/2", // Bdim F Em Bdim
  C: "[~@3 g2@2 ~@46 g3@4 ~@13 b3@4 ~@13 a3@4 ~@30 f3@4 [g3,b3,f4]@8 [a3,c4,f4]@8 ~ [b3,d4,f4]@8 [g3,b3,f4]@8 ~@64 g3@4, g3@8 ~ g3@8 g3@8 ~ g3@8 g3@8 ~ g3@8 ~@4 e3@17 a2@17 ~@34 g2@34 ~@67, ~@5 g2@33 [c4,e4,g4]@8 ~ [c4,e4,g4]@8 [d4,g#4]@8 ~ [d4,g#4]@8 ~@4 a3@8 ~@5 [a3,e4]@8 [a3,e4]@8 ~ [a3,e4]@8 [a3,e4]@8 ~@35 [c4,e4,g4]@8 [c4,e4,g4]@8 [c4,e4,g4]@8 ~ [c4,e4,g4]@8 [c4,e4,g4]@8 ~ [c4,e4,g4]@8 [c4,e4,g4]@8 ~@9, ~@5 [b3,f4]@8 [b3,f4]@8 ~ [b3,f4]@8 [b3,f4]@8 [c2,c3]@17 e2@34 [d2,d3]@34 ~@34 [c2,c3]@33 [c2,c3]@25 ~ [c2,c3,c4,e4,g4]@8, ~@59 b3@8 ~@5 [c4,e4]@8 ~ [c4,e4]@8 ~@4 f3@8 ~ f3@8 f3@8 ~@43 g3@8 g3@8 ~ g3@8 g3@8 ~ g3@8 g3@8 g3@8 ~@5]/7", // G7 F Bdim G7 C Ddim A5 C …
  D: "[~@131 a3@4 ~@13 g3@4 ~@4 b3@4, [f2,f3]@34 [c2,c3]@34 [c2,c3]@25 [c2,c3,c4,e4,g4]@8 [f2,f3]@34 [c2,c3,c4,e4,g4]@8 ~ [c2,c3,c4,e4,g4]@8 [b1,b2,d4,g#4]@8, [c4,f4,g4]@8 [c4,f4,g4]@8 ~ [c4,f4,g4]@8 [c4,f4,g4]@8 ~ [c4,e4,g4]@8 [c4,e4,g4]@8 ~ [c4,e4,g4]@8 [c4,e4,g4]@8 ~ [c4,e4,g4]@8 [c4,e4,g4]@8 [c4,e4,g4]@8 ~@9 [c4,f4,g4]@8 ~ [c4,f4,g4]@8 [c4,f4,g4]@8 ~ [c4,f4,g4]@8 ~@25, ~@4 a3@8 ~ a3@8 a3@8 ~ a3@8 g3@8 g3@8 ~ g3@8 g3@8 ~ g3@8 g3@8 ~ g3@8 g3@8 ~ a3@8 a3@8 a3@8 ~@9 g3@8 ~@13]/5", // F C F C G#dim Csus4 C Csus4
  E: "[~@5 b3@4 ~@13 a3@4 ~@29 f3@4 [g3,b3,f4]@8 ~ [a3,c4,f4]@8 [b3,d4,f4]@8 ~ [g3,b3,f4]@8 ~@64 a3@3, [b1,b2,d4,g#4]@8 ~ [a2,c4,e4]@8 [a2,c4,e4]@8 ~ [d2,d3]@34 ~@33 [c2,c3]@34 ~@33, ~@13 a3@8 ~@5 [a3,e4]@8 [a3,e4]@8 ~ [a3,e4]@8 [a3,e4]@8 ~@34 [c4,e4,g4]@8 ~ [c4,e4,g4]@8 [c4,e4,g4]@8 ~ [c4,e4,g4]@8 [c4,g4]@8 [c4,g4]@8 ~ [c4,g4]@8 [c4,g4]@8, ~@30 f3@8 f3@8 ~ f3@8 ~@4 g2@34 ~@4 g3@8 ~ g3@8 g3@8 ~ g3@8 a3@8 ~ a3@8 a3@8 ~@4]/5", // G7 F Bdim G7 G#dim Am D C …
  F: "[~@15 [e4,g4], ~ a2@34 ~@29, ~ [c4,g4]@8 [c4,g4]@8 ~ [c4,g4]@8 [c4,g4]@8 ~ [d4,f4]@8 [d4,f4]@8 [e4,g4]@8 ~@5, ~@5 a3@8 a3@8 ~ a3@8 a3@8 ~ a3@8 a3@8 ~ a3@8]/2", // Em C5 Dm Em
  G: "[~@2 d2@2 ~@32 g2@2 ~@32 g2@2 ~@46 g3@4 ~@13 b3@4 ~@13 a3@4 ~@30 f3@4 [g3,b3,f4]@8 [a3,c4,f4]@8 ~ [b3,d4,f4]@8 [g3,b3,f4]@8 ~, a3@8 a3@8 ~ a3@8 a3@8 ~ a3@8 g3@8 ~ g3@8 g3@8 ~ g3@8 g3@8 g3@8 ~ g3@8 g3@8 ~ g3@8 ~@4 e2@34 [d2,d3]@34 ~@34, ~@4 d2@32 ~@2 g2@32 ~@2 g2@34 [c2,c3]@16 [d4,g#4]@8 ~ [d4,g#4]@8 ~@5 a3@8 ~@4 [a3,e4]@8 ~ [a3,e4]@8 [a3,e4]@8 ~ [a3,e4]@8 ~@34, ~@4 [f4,a4]@8 ~ [f4,a4]@8 [e4,g4]@8 ~ [e4,g4]@8 [b3,f4]@8 [b3,f4]@8 ~ [b3,f4]@8 [b3,f4]@8 ~ [b3,f4]@8 [b3,f4]@8 ~ [b3,f4]@8 [b3,f4]@8 ~ [c4,e4,g4]@8 [c4,e4,g4]@8 e3@17 a2@17 ~@34 g2@34, ~@127 b3@8 ~@4 [c4,e4]@8 ~ [c4,e4]@8 ~@4 f3@8 ~ f3@8 f3@8 ~@39]/7", // G7 F Bdim G7 D C Ddim A5 …
  H: "~@7 g3, [c2,c3], [c4,e4,g4]!4, ~ g3@2 g3@2 g3@2 ~", // C
})).s("gm_piano").gain(0.64).pan(0.2)

// bass · fretless bass
const bass = note("<~@2 A@5 B@7 C D@4 E@4 F G@4 H@5 I ~@108>".pickRestart({
  A: "[~@30 g2 a2@66 c2 d2@33 ~@29]/5",
  B: "[~@5 f2 g2@32 c2@17 e2@17 a2@17 d2@34 g2@8 a2@8 ~ b2@8 g2@8 ~ c2@33 c2@4 ~@9 c2@12 ~ g1@2 a1@2 c2@3 ~]/7",
  C: "f2@4 ~@9 f2@12 g1@2 a1@2 ~ c2@2",
  D: "[~@2 c2@4 ~@8 c2@12 ~ g1@2 a1@2 c2@3 ~@2 c2@4 ~@8 c2@12 ~ g1@2 a1@2 c2@3 ~ f2@4 ~@9 f2@12 ~ g1@2 a1@2 c2@3 ~ c2@8 ~ c2@8 b1@8]/4",
  E: "[b1@8 ~ a1@8 a1@8 ~ d2@33 g2@8 ~ a2@8 b2@8 ~ g2@8 c2@34 g2]/4", F: "a2", G: "[~ g2 a2@66 c2 d2@33 ~@26]/4",
  H: "[~@8 f2 g2@33 c2@16 e2@17 a2@17 d2@34 g2@8 a2@8 ~ b2@8 d3@8 ~]/5", I: "c2",
})).s("gm_fretless_bass").gain(0.45).pan(0.6)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@2 A@3 B C@8 D E@8 ~ F@2 G@7 H I J@2 I@2 J@2 K L M N O P Q R@2 S N O P Q R T I J@2 I@2 J@2 K L M N O P Q R@2 S N O P
  Q R T I J@2 I@2 J@2 U V U W ~@42 X@4 Y@5
>`.pickRestart({
  A: "[~@30 [a3,c4,g4]@33 [d4,f4]@17 [e4,g4]@16]/3", B: "~ [f4,a4]@17 [e4,g4]@8 [d4,f4]@6",
  C: "[~@3 [g3,b3,f4]@34 [g3,b3,f4]@33 [c4,e4,g4]@17 [b3,d4,g#4]@17 c4@8 ~ b3@8 ~@17 c4@17 [g3,b3,f4]@8 [a3,c4,f4]@8 ~ [b3,d4,f4]@8 [g3,b3,f4]@8 ~ [g3,c4,e4]@33 [c4,e4,g4]@34, ~@104 a4@51 ~@101, ~@52 a3@17 ~@59]/8", // G7 C G#dim G7 F Bdim G7 C
  D: "[a3,c4,f4]", // F
  E: "[~@2 [c4,e4,g4]@34 [c4,e4,g4]@33 [a3,c4,f4]@34 [c4,e4,g4]@17 [b3,d4,g#4]@17 [e4,a4]@8 [e4,g4,a4]@8 ~ e4@17 d4@16 [b3,f4]@8 ~ [c4,f4]@8 [d4,f4]@8 ~ [b3,f4]@8 [c4,e4]@34 ~, ~@77 [f4,a4]@17 ~@34]/8", // C F C G#dim A5 A7 Bdim F5 …
  F: "[~ [a3,c4,g4]@34 ~@4 a3@4 d4@4 e4@2 f4@2 e4@4 ~ d4@4 e4@4]/2", // Am7
  G: "[f4@4 a4@4 f4@4 ~ e4@4 a3@4 d4@4 e4@2 f4@2 ~ d4@4 c4@4 b3@17 ~@2 g3@2 b3@2 c4@2 b3@4 ~ g3@4 [g2,g3]@34 [c4,e4,g4]@16 [b3,d4,g#4]@17 c4@8 ~ b3@8 ~@17 c4@17 [g3,b3,f4]@8 [a3,c4,f4]@8 ~ [b3,d4,f4]@8 [g3,b3,f4]@8 ~, ~@139 a4@51 ~@34, ~@139 a3@34 ~@51]/7", // G C G#dim G7 F Bdim G7
  H: "[g3,c4,e4]", I: "[c4,e4,g4]@31 ~", J: "[[b3,d4,g4]@63 ~]/2",
  K: "[c4,e4,g4]@7 ~ [c4,e4,g4]@7 ~ [b3,e4,g4]@7 ~ [b3,e4,g4]@7 ~", L: "[a3,e4,g4]@31 ~",
  M: "[a3,d4,g4]@11 ~ [a3,d4,f4]@19 ~", N: "[g3,b3,d4]@31 ~", O: "[g3,b3,f4]@11 ~ [g3,c4,e4]@19 ~",
  P: "[a3,c4,f4]@31 ~", Q: "[b3,d4,f4]@11 ~ [g#3,b3,e4]@19 ~", R: "[a3,c4,e4]@31 ~",
  S: "[a3,c4,e4]@11 ~ [a3,c4,d4]@19 ~", T: "[b3,d4]@7 ~@13 [c4,e4]@3 ~ [c4,e4]@3 ~ [b3,d4]@3 ~",
  U: "[c4,e4,g4]@11 ~ [b3,d4,g4]@11 ~ [b3,d4,g4]@7 ~", V: "[a3,c#4,a4]@11 ~ [a3,c#4,a4]@19 ~",
  W: "[a3,c#4,a4]@11 ~ [a3,c#4,a4]@3 ~@17", // A
  X: "[~@26 f4@4 e4@3 d4@4 c4@4 b3@8 g3@7 [c2,g2]@31 [c2,a2]@31 [d#2,a#2]@10, ~@26 d2@15 g2@15 ~@72]/4", // C5 F D#5
  Y: "[~@5 [f2,c3]@15 ~ [c2,c3,g3]@138 ~]/5", // F5 C5
})).s("gm_string_ensemble_1").gain(0.32).pan(0.8)

// other · synth brass 2 · "Flute"
const synth_brass_2 = note("<~@43 A B C ~@20 A B C ~@73>".pickRestart({
  A: "d3@3 d3@2 e3 f3@2", B: "g3", C: "f3@3 e3@5",
})).s("gm_synth_brass_2").gain(0.45).pan(0.7)

// chords · overdriven guitar · "Piano 1"
const overdriven_guitar = note(`<
  ~@46 A B C ~@20 A B C ~@15 D E D F G@4 ~ H I@3 ~@5 J@2 K L M@2 N O@2 ~ P@2 ~ Q@2 ~ R@2 S T U ~ V ~@2 W ~ X ~@9
>`.pickRestart({
  A: "a3@4 c4@2 a3@2 d#4 d4 c4 a3 c4@2 d4 c4", B: "d4 e4@7 a4@4 d4 e4@7 d4@4 c4@4 d4@4", C: "c4@6 a3 g3 a3@8",
  D: "~@2 g3 ~@4 g3, c3@3 b2@5, ~ e3@3 d3@2 b3@2, ~@5 g3@2 ~", E: "~@3 c#4@5, a2, ~ e3@2 ~@5, ~ a3@3",
  F: "~@3 c#4 ~@4, a2 ~, ~ e3@2 ~@5, ~ a3 ~@2",
  G: "[~@16 [a2,e3,a3,c#4,e4,a4]@3 ~@4 [d3,a3,d4,f#4,a4]@13 ~@6 [b2,f#3,a3,d#4,f#4,b4]@3 ~@3 [e3,b3,e4,g#4,b4]@19 ~@3 [a3,c#4]@9 [a3,c#4]@3 [b3,d4]@3 ~ [c4,d#4]@3 [c4,e4]@3 [c#4,f4]@3 [d4,f#4]@16 ~@3 d3@3 c3@3 a2@3 ~@5]/4", // A D B7 E A Bm Cm C …
  H: "~@7 [a2,e3,a3,c#4,e4,a4]@3 ~@4 [d3,a3,d4,f#4,a4]@13 ~@5", // A D
  I: "[~ [b2,f#3,a3,d#4,f#4,b4]@3 ~@3 [e3,b3,e4,g#4,b4]@19 ~@3 [a3,c#4]@9 [a3,c#4]@3 ~ [b3,d4]@3 [c4,d#4]@3 [c4,e4]@3 [c#4,f4]@3 [d4,f#4]@16 ~@3 d3@3 c3@3 a2@3 ~@14]/3", // B7 E A Bm Cm C C# D
  J: "[~@28 [a2,e3,g3,c#4,g4,a4]@9 [a2,e3,g3,c#4,g4,a4]@3 ~@13 [d3,a3,c4,f#4,c5,d5]@9 [d3,a3,c4,f#4,c5,d5]@2]/2", // A7 D7
  K: "~@14 [a2,e3,g3,c#4,g4,a4]@9 ~ [a2,e3,g3,c#4,g4,a4]@3 ~@5", // A7
  L: "~@7 [d3,a3,c4,f#4,c5,d5]@9 ~ [d3,a3,c4,f#4,c5,d5]@3 ~@12", // D7
  M: "[~ [a2,e3,g3,c#4,g4,a4]@9 [a2,e3,g3,c#4,g4,a4]@3 ~@13 [d3,a3,c4,f#4,c5,d5]@9 [d3,a3,c4,f#4,c5,d5]@3 ~@13 [a2,e3,g3,c#4,g4,a4]@9 [a2,e3,g3,c#4,g4,a4]@3 ~]/2", // A7 D7 A7
  N: "~@12 [d3,a3,c4,f#4,c5,d5]@9 ~ [d3,a3,c4,f#4,c5,d5]@3 ~@7", // D7
  O: "[~@5 [a2,e3,g3,c#4,g4,a4]@9 ~ [a2,e3,g3,c#4,g4,a4]@3 ~@12 [d3,a3,c4,f#4,c5,d5]@9 ~ [d3,a3,c4,f#4,c5,d5]@3 ~@21]/2", // A7 D7
  P: "[~ [b3,c4,c#4] [d4,d#4] [e4,f4,f#4] ~ a4@2 ~ a4@2 c5 d5@12 d5@3 c5@3 a4 c5 ~ g4@3 ~@7 e4@4 d4@3 ~@5 a3@3 ~@7, ~@4 g4@3 g4@3 ~@21 a4@4 a4@5 a4@8 ~@16, ~@37 g4@5 ~@7 c4@8 ~@7]/2", // D#maj7
  Q: "[~@5 c5@3 c5@3 ~ c5@3 ~@15 e4@3 ~ d#4@3 e4@3 ~@6 a4@3 c5 d5@14, ~@15 c5@9 a3@6 ~@34, ~@9 e4@6 ~@5 a4@3 ~@9, ~@21 c4@6 c4@13 ~@3 g4@6 ~@15]/2",
  R: "[~@10 e2@3 ~@3 a2@3 ~@38 e3@2 d3 d3@4, ~@13 g2@6 c3@11 c3@17 ~ c3@6 c3@6 ~@4, ~@26 d3@9 d3@16 d3@6 ~@7]/2",
  S: "~@2 a2 ~@13, c3@5 ~@27, ~@3 d3@3 ~@26", T: "~@24 e4@3 g4@3 g4@2",
  U: "~@8 g5 a5@12 ~@4 d5@2 c5@3 ~@2, ~ a4@3 ~@8 c5 ~@3, ~@5 c5@6 ~@10 g5@9 ~@2", V: "~@29 [a2,e3,g3,c#4,g4,a4]@3",
  W: "~@3 [e4,c#5]", X: "~@11 [e4,b4]@9 ~@12",
})).s("gm_overdriven_guitar").gain(0.45).pan(0)

// chords · piano · "Piano 2"
const piano_2 = note(`<
  ~@34 A B@2 C A B@2 D E F G H I J K L M N O P Q R S A B@2 C A B@2 D E F G H I J K L M N O P Q R S A B@2 C A B@2 T U T V
  ~@51
>`.pickRestart({
  A: "[c2,c3,c4,e4,g4] [c2,c3,g3] [c2,c3,c4,e4,g4] [c2,c3,g3] [c2,c3,c4,e4,g4] [c2,c3,g3] [c2,c3,c4,e4,g4] [c2,c3,g3]", // C C5 C C5 C C5 C C5
  B: "[g1,g2,b3,d4,g4] [g1,g2,g3] [g1,g2,b3,d4,g4] [g1,g2,g3] [g1,g2,b3,d4,g4] [g1,g2,g3] [g1,g2,b3,d4,g4] [g1,g2,g3]", // G
  C: "[c2,c3,c4,e4,g4]@2 [c2,c3,g3]@2 [c2,c3,c4,e4,g4]@2 [c2,c3,g3]@2 [c2,c3,c4,e4,g4]!6 [c2,c3,c4,e4,g4]@2", // C C5 C C5 C
  D: "[c2,c3,c4,e4,g4] [c2,c3,g3] [c2,c3,c4,e4,g4] [c2,c3,g3] [c4,e4,g4] g3 [c4,e4,g4] g3, ~@2 [b1,b2]!2", // C C5 C C5 C B
  E: "[a1,a2,c3,a3,e4,g4]", F: "[d2,c3,d3,a3,e4,g4]@3 [d2,a2,d3,c4,f4]@5", G: "[g1,g2,f3,g3,b3,d4]",
  H: "[c2,c3,g3,b3,c4,e4]@3 [c2,c3,g3,b3,c4,e4]@5", // Cmaj7
  I: "[f1,f2]!2 [f1,f2,a3,e4,f4,c5] ~ [f1,f2] [f1,f2,a3,e4,f4,c5]!3, [a3,e4,f4,c5]@2 ~ [f1,f2] ~@4, ~@7 [a3,e4,f4,c5]@3 ~@6", // F Fmaj7 F Fmaj7 F Fmaj7
  J: "~ b1 [b1,a3,b3,d4,f4] ~ [e1,e2] [e1,e2,g3,b3,d4] ~ [e1,e2], b1 ~@2 [e1,e2] ~@2 [e1,e2] ~, ~ [a3,b3,d4,f4]@3 ~@3 [g3,b3,d4]@3 ~@3 [g3,b3,d4]@3", // Bm7b5 E Em7 E Bm7b5 G
  K: "[a3,c4,e4] ~@4 [a3,c4,e4]!3, [a1,a2]!4, ~ [a3,c4,e4]@2 [a3,c4,e4]@2 ~@3", // Am A Am
  L: "~ [g3,a3,c4,e4]!5 [g3,a3,c4,e4]@2, [g1,g2]", M: "[d2,d3,g3,c4,e4]@3 [d2,d3,f3,a3,c4]@5",
  N: "~ [f3,g3,b3,d4]!5 [f3,g3,b3,d4]@2, [g1,g2]", // G7 G
  O: "[f5,f6]@2 [e5,e6] [c5,c6]@2 [g4,g5]@3, [c2,e2,g2]@3 [c2,e2,g2]@5", // F E C G C
  P: "~@2 [f1,f2]@2 [f1,f2,c4,e4,f4,a4]@2 ~@2 [f1,f2]@2 [f1,f2]@2 ~ [c4,e4,f4,a4] [f1,f2,c4,e4,f4,a4]@2, [f1,f2] ~@2 [f1,f2] ~@2 [f1,f2] ~, ~ [c4,e4,f4,a4]@3 ~@3 [c4,e4,f4,a4]@6 ~@3", // F Fmaj7 F Fmaj7 F Fmaj7
  Q: "b1!3 [e1,e2] [e1,e2,b4] ~@2 [e1,e2], ~ [a3,b3,d4,f4]@3 ~ [e1,e2]!2 ~, ~@11 b5@5, ~@13 [g3,d4,e4]@3", // E E5 E Bm7b5 E Em7
  R: "[a2,a3,c4,e4] a2 [a2,a3,c4,e4] a2 [a2,a3,c4,e4] ~@2 [a1,a2], a1@2 a1@2 a1@3 ~, ~@5 a2@2 ~, ~@3 [a3,c4,e4]", // Am A Am
  S: "[g1,g2]@2 [g1,g2,e3,g3,c4]@2 ~ [g1,g2,e3,g3,c4]!2 [g1,g2,d3,g3,b3]", // G C G
  T: "[g3,c4,e4]!3 [g3,b3,d4]!5, [c2,c3]@3 [b1,b2]@3 [b1,b2]@2", // C G C B
  U: "[e3,a3,c#4] [e3,a3,c#4]@2 [a1,a2,a3,a4]@5, [a1,a2]@3 ~@5", // A
  V: "[e3,a3,c#4]!3 [a1,a2,e3,a3,c#4] ~@4, [a1,a2]@3 ~@5", // A
})).s("gm_piano").gain(0.58).pan(0.3)

// bass · electric bass finger · "Fretless Bass"
const bass_2 = note(`<
  ~@34 A B@2 C A B@2 D E F G H I J K L M N O P J Q R A B@2 C A B@2 D E F G H I J K L M N O P J Q R A B@2 C A B@2 S T S U
  ~@51
>`.pickRestart({
  A: "c3 ~ c2@2 d2 e2 g2 ~ c3 ~ c2@2 d2 e2 g2 ~", B: "g2 ~ g1@2 a1 b1 d2 ~ g2 ~ g1@2 a1 b1 d2 ~",
  C: "c2 ~ c2@2 d2 e2 g2 ~ c2 ~ c2@2 d2 e2 g2 ~", D: "c2@7 ~ c2@7 ~ b1@7 ~ b1@7 ~", E: "g2 a2@31",
  F: "g2 a2@11 d2@7 ~ e2@4 f2@4 f#2@4", G: "f#2 g2@31", H: "c2@7 ~ d2@2 ~@2 d2 e2@7 g2@4 g2@2 a2@2 c3@4",
  I: "f2@24 f2@7 ~", J: "b1 c2 d2 d#2 e2 f#2 g2 g#2", K: "a2@3 a1 a1@4", L: "a2",
  M: "g2 a2@11 d2@7 ~ d2@4 d2@2 f2@2 a2@4", N: "g2", O: "c2@7 ~ d2@4 e2@7 ~ g2@4 g2@2 a2@2 c3@4", P: "f2!2",
  Q: "a2@3 a1@5", R: "~@8 g2@7 ~@5 g2@2 g2@2 g2@2 f2@2 f2@4", S: "c2@12 b1@12 b1@7 ~", T: "a1@12 a1@4 a2@7 ~ a2@7 ~",
  U: "a2@3 a2 ~@4",
})).s("gm_electric_bass_finger").gain(0.64).pan(0.6)

// chords · overdriven guitar · "Flute"
const overdriven_guitar_2 = note(`<
  ~@91 A@2 B@2 ~ C D@3 ~@13 E@3 F G@2 H I J ~ K@2 ~ L M ~@2 N ~ O@3 P@2 Q@5
>`.pickRestart({
  A: "[~@16 g4 a4@3 ~@3 d5@12 ~@7 b4@3 ~@3 e5@16, ~@23 c5 ~@18 a4 ~@5 d5 ~@15]/2",
  B: "[~@6 [a2,c#3]@9 [a2,c#3]@3 [b2,d3]@3 ~ [c3,d#3]@3 [c3,e3]@3 [c#3,f3]@3 [d3,f#3]@16 ~@3 e3@3 e3@3 c#3@3 ~@5]/2", // A Bm Cm C C# D
  C: "~@7 g4 a4@3 ~@3 d5@12 ~@6, ~@14 c5 ~@17",
  D: "[~ b4@3 ~@3 e5@18 ~@4 [a2,c#3]@9 [a2,c#3]@3 ~ [b2,d3]@3 [c3,d#3]@3 [c3,e3]@3 [c#3,f3]@3 [d3,f#3]@16 ~@3 e3@3 e3@3 c#3@3 ~@14, ~ a4 ~@5 d5 ~@88]/3", // A Bm Cm C C# D
  E: "[~@11 [g#3,a3] [a#3,b3] [c4,c#4,d4] [c#4,e4]@2 e4 e4@3 ~@16 a4@3 g4@3 ~@2 c4@2 a3@3 ~ d4@5 c4@6 a3@2 g3@5 ~@28, ~@21 e4@12 e4@9 ~ d4@2 ~@4 c4@2 ~@45, ~@2 a4 ~@5]/3", // Amaj7 Bmaj7 C#m
  F: "~@14 [g4,b4]!2", // G
  G: "[~ [g4,b4]@2 [g4,b4]@3 ~ [g4,b4]@2 ~@2 [g4,b4] [g4,b4]@2 ~ [g4,b4]@2 ~ a4@2 [g4,b4]@2 [g4,b4] [g4,b4]@2 g4 [f4,f#4] [d4,d#4,e4] c4@3 [g3,c4,e4]@3 [g3,c4,e4]@5 [f3,f#3,a#3,b3,d4,d#4] [d3,d#3,e3,g3,g#3,a3,b3,c4,c#4] [c3,c#3,f3,f#3,a3,a#3] [b2,e3,g#3] ~@21, ~@6 a4@2 ~@6 a4@2 ~ [g4,b4]@3 ~@5 b4@3 ~@36]/2", // G F#maj7 C Bmaj7 F#maj7 E G
  H: "~@14 [c4,e4]!2, ~@27 a3@5", // C
  I: "~@4 [c4,e4]@2 [c4,e4] [c4,e4]@2 ~@2 a3@3 ~ [c4,e4]@2 [c4,e4] ~@5 [c4,e4]@3 [d4,f#4] [d#4,g4]@2 [d4,f#4]@3, [c4,e4]@4 ~@5 [c4,e4]@6 ~@3 [c4,e4]@5 ~@9, ~ a3@9 ~@4 a3@6 a3@6 ~@6", // C D D# D C
  J: "~ c4 d4 c4 g4 a4@9 ~@18",
  K: "[~@6 g3 g3@3 ~ g3 ~@3 c4@2 c4@3 c4@2 ~@3 g3 g3@3 g3@2 ~@3 c4@2 c4@3 c4 ~@5 e3@2 ~@4 a2@2 a2@3 ~@8, ~@12 g3@13 ~@6 g3@13 g3@2 ~ e3@2 ~ c3@2 ~@12, ~@22 c4@9 ~@9 c4@8 d3@8 ~@8]/2",
  L: "~ [e3,a3]@3 [g3,c4]@3 [a3,d4]@2 [g3,c4]@2 [a3,d4]@2 [g3,c4]@2 [a3,d4]@2 [g3,c4]@2 [a3,d4]@2 [g3,c4]@2 [a3,d4]@2 [g3,c4]@2 [a3,d4]@2 [g3,c4]@2 ~", // A5 C5 D5 C5 D5 C5 D5 C5 …
  M: "[a3,d4]@2 [g3,c4]@2 [a3,d4]@2 [g3,c4]@2 [a3,d4]@2 [g3,c4]@2 [a3,d4]@2 [g3,c4]@2 [a3,d4]@2 [g3,c4]@2 ~ [a3,d4]@2 [g3,c4]@2 [a3,d4]@2 [g3,c4]@2 [a3,d4]@3", // D5 C5 D5 C5 D5 C5 D5 C5 …
  N: "~@9 [e4,c#5]@7", O: "[~@4 [e4,b4]@16 a3@9 g3@9 ~ f3@9 e3@9 ~ d3@15 ~@15 d4 e4@7]/3",
  P: "[~@14 c5@2 e5@3 c5@4 g4 a4@30 ~@5 f4 g4@2 f4@2, ~@2 c3@4 g3@4 e4@6 d5 ~@6 c5@31 ~ a#3@6 ~@3, ~@4 e3@4 c4@4 g4@6 ~@36 g3@5 ~@5, ~@56 d#4@5 ~@3]/2",
  Q: "[d#4@2 ~ d4@6 c4@4 a3@4 c4@4 e4@138 ~, ~@3 c4 ~@17 d4 ~@138]/5",
})).s("gm_overdriven_guitar").gain(0.51).pan(1)

// chords · rock organ · "Choir Aahs 1"
const rock_organ = note("<~@96 A B@3 ~@9 C@2 D E@2 F G H@3 I J@2 K L@2 M N O ~@14>".pickRestart({
  A: "~@7 a5@4 ~@3 f#5@13 ~@5",
  B: "[~ b5@4 ~@2 g#5@13 ~@9 c#6@6 c#6@3 a5@3 ~ f#5@3 a5@3 a5@3 a5@3 f#5@15 ~@7 b4@3 b4@3 a4@3 ~@11, ~@54 e5 ~@41]/3",
  C: "[~ [c#5,e5,a5]@9 [c#5,e5,a5]@3 ~@13 [d5,f#5,a5]@9 [d5,f#5,a5]@3 ~@13 [c#5,e5,c#6]@9 [c#5,e5,c#6]@3 ~]/2", // A D C#m
  D: "~@12 [d5,f#5,d6]@9 ~ [d5,f#5,d6]@3 ~@7", // D
  E: "[~@5 [c#5,e5,c#6]@9 ~ [c#5,e5,c#6]@3 ~@12 [d5,f#5,d6]@9 ~ [d5,f#5,d6]@3 ~@13 [c#5,e5,a5]@8]/2", // C#m D A
  F: "~ [c#5,e5,a5]@3 ~@13 [d5,f#5,a5]@9 [d5,f#5,a5]@3 ~@3", G: "~@10 [c#5,e5,a5]@9 [c#5,e5,a5]@3 ~@10",
  H: "[~@3 [d5,f#5,a5]@9 ~ [d5,f#5,a5]@3 ~@12 [c#5,e5,a5]@9 ~ [c#5,e5,a5]@3 ~@13 [d5,f#5,a5]@9 [d5,f#5,a5]@3 ~@13 [c#5,e5,a5]@9 [c#5,e5,a5]@3 ~@5]/3", // D A D A
  I: "~@8 [d5,f#5,a5]@9 [d5,f#5,a5]@3 ~@12", // D
  J: "[~ [c#5,e5,a5]@9 ~ [c#5,e5,a5]@3 ~@12 [d5,f#5,a5]@9 ~ [d5,f#5,a5]@3 ~@12 [c#5,e5,a5]@9 ~ [c#5,e5,a5]@3]/2", // A D A
  K: "~@13 [d5,f#5,a5]@9 [d5,f#5,a5]@3 ~@7", // D
  L: "[~@6 [c#5,e5,a5]@9 [c#5,e5,a5]@3 ~@13 [d5,f#5,a5]@9 [d5,f#5,a5]@3 ~@13 [c#5,e5,a5]@8]/2", // A D A
  M: "~@2 [c#5,e5,a5]@3 ~@12 [d5,f#5,a5]@9 ~ [d5,f#5,a5]@3 ~@2", N: "~@11 [c#5,e5,a5]@9 [c#5,e5,a5]@3 ~@9",
  O: "~@4 [d5,f#5,a5]@9 [d5,f#5,a5]@3 ~@16", // D
})).s("gm_rock_organ").gain(0.64).pan(0.4)

// chords · piano · "Piano 1"
const piano_3 = note("<~@127 A B C@2 D@4 E@7>".pickRestart({
  A: "~@29 [a4,c#5,e5]@3", // A
  B: "[a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 ~ [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 ~", // A
  C: "[[a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 ~ [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 ~ [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@3 [a4,c#5,e5]@2, ~@5 a3@3]/2", // A
  D: "[~@2 [g4,b4,d5]@3 [g4,b4,d5]@3 [g4,b4,d5]@3 [g4,b4,d5]@3 [g4,b4,d5]@3 [g4,b4,d5]@3 ~ [g4,b4,d5]@3 [g4,b4,d5]@3 [g4,b4,d5]@3 [g4,b4,d5]@3 [g4,b4,d5]@3 [g4,b4,d5]@3 [g4,b4,d5]@3 ~ [g4,b4,d5]@3 [g4,b4,d5]@3 [g4,b4,d5]@3 [a4,c5]@3 [a4,c5]@3 [a4,c5]@3 [a4,c5]@3 ~ [a4,c5]@3 [a4,c5]@3 [a4,c5]@3 [a4,c5]@3 [a4,c5]@3 [a4,c5]@3 [a4,c5]@3 ~ [a4,c5]@3 [d4,f4]@4 [f4,a4]@3 [e4,g4]@4 [c4,e4]@4 [g1,g2,b3,d4]@15 [c2,c3,g3,c4,e4]@8, ~@27 a3@25 a3@9 g3@9 ~ f3@9 e3@9 ~ [d2,d3]@15 ~@23]/4", // G Am Dm F Em C G C …
  E: "[[c2,c3,g3,c4,e4]@8 [c2,c3,g3,c4,e4]@8 [c2,c3,g3,c4,e4]@7 [c2,c3,a3,d4,f#4]@8 [c2,c3,a3,d4,f#4]@8 [c2,c3,a3,d4,f#4]@7 [c2,c3,a3,d4,f#4]@8 [d#2,d#3,g3,a#3,d#4]@8 [d#2,d#3,g3,a#3,d#4]@7 [f2,f3,a3,c4,f4]@8 [f2,f3,a3,c4,f4]@8 [c2,c3,g3,c4,e4]@138 ~]/7", // C D7 D# F C
})).s("gm_piano").gain(0.51).pan(0.3)

// bass · fretless bass
const bass_3 = note("<~@91 A@4 ~ B C@3 ~@5 D@2 E@2 F@2 G@2 H I J K L@2 M N@2 O P@2 Q R S T ~@5 U@8>".pickRestart({
  A: "[~@16 a1@3 ~@4 d2@13 ~@6 b1@3 ~@3 e2@19 ~@3 a1@9 a1@3 b1@3 ~ c2@3 c#2@3 d2@3 d2@16 ~@3 d2@3 c2@3 a1@3 ~@5]/4",
  B: "~@7 a1@3 ~@4 d2@13 ~@5",
  C: "[~ b1@3 ~@3 e2@19 ~@3 a1@9 a1@3 ~ b1@3 c2@3 c#2@3 d2@3 d2@16 ~@3 d2@3 c2@3 a1@3 ~@14]/3",
  D: "[~@28 a1@3 a1@6 a1@3 ~@4 a1@6 c2@3 d2@9 d2@2]/2",
  E: "[~@5 d2@3 d2@3 c2@3 a1@3 a1@6 ~ a1@3 ~@3 a1@6 c2@3 d2@9 ~ d2@3 ~@3 d2@3 d2@3 c2@3]/2",
  F: "[~ a1@3 a1@6 a1@3 ~@3 a1@6 ~ c2@3 d2@9 d2@3 ~@4 d2@3 d2@3 c2@3 a1@3 a1@6 a1@3 ~]/2",
  G: "[~@3 a1@6 c2@3 d2@9 ~ d2@3 ~@3 d2@3 d2@3 c2@3 a1@3 a1@6 ~ a1@3 ~@3 a1@3 a1@3 c2@3 d2@2]/2",
  H: "~@2 d2@6 d2@3 ~@3 d2@3 d2@3 ~ g1@3 d2@3 d2@5", I: "~ d2@3 ~@3 d2@3 ~ d2@3 g1@3 a1@3 a1@6 a1@3 ~@3",
  J: "~ a1@3 a1@3 c2@3 d2@3 d2@6 d2@3 ~@4 d2@3 d2@3", K: "g1@3 a1@3 a1@6 ~ a1@3 ~@3 a1@3 a1@3 c2@3 d2@3 ~",
  L: "[d2@6 d2@3 ~@3 d2@3 d2@3 g1@3 ~ a1@3 a1@6 a1@3 ~@3 a1@3 a1@3 ~ c2@3 d2@3 d2@6 d2@3 ~@3 d2@2]/2",
// … 131 more lines

More by The Beatles