Strudelify

Dream Baby

The Beatles

KeyC majorTempo150 bpm
0:00/0:00
// Dream Baby — The Beatles
// 150 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 85 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(150/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 · electric bass finger · "BASS"
const bass = note(`<
  A B C D E F G D H I J K A L M N O@2 P O Q P O Q R S T S P@2 Q U V W G D A X Y Z H I AA K Y AB J K Q O P@2 Q P@2 AC S R
  AD T O Q AE AF V B C AG Y B Y Z AH I J K A X AA AI AJ X AK AL ~
>`.pickRestart({
  A: "c2@5 ~ c2 ~ g1@4 c2@3 ~", B: "a#1@5 ~ a#1@2 f2@5 ~ f2 ~", C: "c2@5 ~ c2@2 g2@5 ~ g2 ~",
  D: "c2@5 ~ c2@2 g2@4 c2 ~ c2 ~", E: "c2@3 g1 c2@2 c2 ~", F: "a#1@5 ~ a#1 ~ f1@4 a#1@3 ~", G: "c2@5 ~ c2 ~ g2@8",
  H: "f2@5 ~ f2 ~ c2@4 f2@3 ~", I: "d#2@5 ~ d#2@2 a#2@5 ~ a#2@2", J: "f2@5 ~ f2 ~ c2@8",
  K: "f2@5 ~ f2@2 c2@4 f2 ~ f2 ~", L: "a#1@3 f2 a#1@2 a#1 ~", M: "f2@5 ~ f2 ~ c2@5 ~ c2 ~",
  N: "f2@5 ~ f2 ~ c2@5 ~ f2 ~", O: "c2@5 ~ c2 ~ c2@6 c2 ~", P: "c2@5 ~ c2 ~ c2@5 ~ c2 ~", Q: "c2@6 c2 ~ c2@6 c2 ~",
  R: "f2@5 ~ f2 ~ f2@6 f2 ~", S: "f2@6 f2 ~ f2@6 f2 ~", T: "f2@5 ~ f2 ~ f2@5 ~ f2 ~", U: "f2@6 f2 ~ f2@6 d2 ~",
  V: "c2@3 g1 c2@2 e2 ~", W: "a#1@3 f2 a#1@2 b1 ~", X: "a#1@5 ~ a#1@2 f2@5 ~ f2@2", Y: "c2@5 ~ c2@2 g1@5 ~ g1@2",
  Z: "c2@5 ~ c2@2 a2@2 g2@2 e2@2 c2 ~", AA: "f2@5 ~ f2@2 c3@5 ~ c3 ~", AB: "a#1@6 f1@2 a#1 ~ a#1 ~ a#1@2 f1@2",
  AC: "c2@5 ~ c2 ~ c2 ~ c2@3 ~ c2 ~", AD: "f2@5 ~ f2 ~ f2 ~ f2@3 ~ f2 ~", AE: "c2@6 c2 ~ c2@6 e2 ~",
  AF: "f2@6 f2 ~ f2@6 f1 ~", AG: "c2@5 ~ c2@2 g2@6 c2!2", AH: "f2@5 ~ f2@2 c2@5 ~ c2@2", AI: "f2@5 ~ f2@2 c2@6 f2!2",
  AJ: "c2@5 ~ c2@2 g1@5 ~ g1 ~", AK: "f2@5 ~ f2 ~ f2 ~ f2@2 ~@2 f2 ~", AL: "f2 ~ c2 ~ d2 ~@3 f2@3 ~@5",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · acoustic guitar steel · "GUITAR"
const acoustic_guitar_steel = note(`<
  A B@4 C D E F G H@2 D I J K L M N O P Q R S@2 T@2 U V W@2 X Y@4 Z AA@6 AB@2 AC@3 AD AE@3 AF@2 AG@7 AH@6 AI@4 AJ@6 AK@3
  AL AM@2 AN ~
>`.pickRestart({
  A: "~@4 [c4,e4]@11 ~", // C
  B: "[[a#2,d4]@7 [c3,e4]@10 ~@2 c4@4 ~@3 [c4,e4]@6, ~@7 c4@12 ~@4 c4@3 ~@6, ~@34 c3@13 ~ c3@16]/4", C: "[a#2,d4]",
  D: "[c3,c4,e4]", E: "~@3 e4@5, c3, ~@2 c4@13 ~", F: "[f3,f4,a4]", G: "[d#3,d#4,g4]",
  H: "[f4@16 ~@6 f4@9 ~, a4@31 ~, f3@15 ~ f3@15 ~, ~@18 c4@13 ~]/2", I: "[a#2,a#3,d4]@6 ~@2 [g#2,g#3]@2 [g#2,g#3]@5 ~",
  J: "[f2,f3]@12 [d#2,d#3]@3 ~", K: "~@3 [a#2,a#3], [f2,f3]@15 ~", L: "[c3,c4]@3 [a#2,a#3]",
  M: "~@7 [a#2,a#3], [c3,c4]", N: "[c3,c4]@7 [a#2,a#3]", O: "[c3,c4]@5 ~ [a#2,a#3]@2 ~@2 [g2,g3]@4 [a#2,a#3]@2",
  P: "[c3,c4]@12 [a#2,a#3]@3 ~", Q: "[c3,c4]@11 ~ [a#2,a#3]@4", R: "[c3,c4]@11 ~ [a#2,a#3]@3 ~",
  S: "[[c3,c4]@4 ~@2 [a#2,a#3]@2 ~@2 [g2,g3]@3 ~ [f2,f3]@9 ~@5 [d#2,d#3]@3 ~]/2", // C A# G F D#
  T: "[[f2,f3]@10 ~@2 d#3@2 ~ [f2,f3]@11 ~@2 [d#2,d#3]@3 ~, g2 ~@10 d#2@3 ~@18]/2", // F D#
  U: "[f2,f3]@4 ~@2 [d#2,d#3]@3 ~ [c2,c3]@2 ~@4", V: "~@2 [c3,c4]@3 [a#2,a#3]@3",
  W: "[[c3,c4]@10 [a#2,a#3]@4 c3@7 ~@3 [g#2,g#3]@3 ~ [g#2,g#3]@4, ~@14 c4@5 ~@13]/2", X: "[f2,f3]@13 ~@3",
  Y: "[[c3,e4]@15 ~ d4@15 ~ e4 ~@15 [c5,e5,g5]@16, ~@15 [a#2,a#3]@16 c3@32 ~, ~@31 c4@2 g4@31]/4", // C A#
  Z: "~@2 e4@13 [d4,f4], ~ c3@15, ~ c4@3 ~@12", // Dm
  AA: "[[a#2,a#3]@15 e4 c3@15 [c4,c5,e5]@16 a4 [f3,f4,a4]@15 g4 g4@14 a4 ~ f3@16, d4 ~@14 g4@16 ~@16 c5@16 ~@16 [a4,c5]@17, ~@16 e4 ~@46 [d#3,d#4,a#4]@16 ~@17]/6", // A# C F Am D#5
  AB: "[[a5,c6]@15 [c3,e4]@16 ~]/2", AC: "[[a#2,a#3,d4,f4]@7 ~ [g#2,g#3] ~ [g#2,g#3]@3 ~ [f2,f3]@32 ~@2]/3",
  AD: "~ [a#2,a#3], ~ [c3,c4]@3", AE: "[~@4 [a#2,a#3]@9 [a#2,a#3]@2 ~ [c3,c4]@8, [c3,c4]@2 ~, ~@5 [a#2,a#3]@3]/3",
  AF: "[~@11 [a#2,a#3]@5, c3 [c3,c4], ~ e4@7, ~ c4@3 ~@4, ~@5 [a#2,a#3]@6 ~@5]/2", // A# C A#
  AG: "[~@12 [g#2,g#3] ~@21 [c3,c4]@2 ~@8 [d#3,d#4] ~@8 [a#2,a#3]@3, ~@2 [c3,c4]@6 [c3,c4]@16 ~@12 [c3,c4]@3 [c3,c4]@8 [c3,c4]@9, ~@5 [a#2,a#3]@16 [d#2,d#3]@16 [a#2,a#3]@16 ~@3, ~@26 [g#2,g#3]@32 ~@3 [g#2,g#3]@32 ~@19, ~@16 [f2,f3]@8 [f2,f3]@16 ~@5 [d#3,d#4]@11]/7", // G# C D# A# C A# D# A# …
  AH: "[~@24 [g#2,g#3]@2 ~@38 [a#2,d4]@15 [c3,e4,g4]@16 ~, [c3,c4]@16 [c3,c4]@32 ~@4 f4@27 ~@17, ~@10 [a#2,a#3]@32 ~ d#2@32 ~@21, ~@13 [g#2,g#3]@13 d4@6 ~@16, ~@30 [f2,f3]@26 e4@23 ~@17]/6", // G# A# C A# G# F
  AI: "[[c4,c5]@15 [e4,f4,g#4] e4 ~@13 d4!2 ~@13 g4 e4 [c3,e4]@17, e5@3 ~@12 [c3,g4]@16 [a#2,f4]@15 g4@17 ~]/4", // C E C C5 A#5
  AJ: "[[c4,e5]@14 a4 f3@16 ~@15 c5 ~@17 [f5,a5]@14 g4 ~ [c3,c4]@16, c5@13 ~ c5@17 ~ [d#3,a#4]@15 a4@32 g4@17, ~@15 a4 ~@15 d#4@17 [f3,f4,c5]@32 ~@16]/6", // C F C D#5 F5
  AK: "[[a#2,a#3,d4]@7 ~ [g#2,g#3]@2 [g#2,g#3]@3 [f2,f3]@32 ~@3]/3", AL: "[c3,c4,g4]",
  AM: "[[a#2,a#3,d4]@7 ~ [g#2,g#3]@2 [g#2,g#3]@3 ~ [f2,f3]@17 ~]/2", AN: "~ [f3,f4]",
})).s("gm_acoustic_guitar_steel").gain(0.4)

// chords · acoustic guitar steel · "GUITAR" · soft notes
const acoustic_guitar_steel_2 = note("<~@32 A ~@3 B C@2 D ~ E@2 F@2 G ~@18 H@3 I@4 J@3 K@3 ~@5 L@2 ~>".pickRestart({
  A: "c4", B: "~@14 f4 ~", C: "[~@14 g4 c4@16 ~]/2", D: "~@14 c5 ~", E: "[~@15 f4@17]/2",
  F: "[f5@14 e4 [c4,g4]@16 ~]/2", G: "~@8 d#4 ~@7", H: "[~@4 c3@27 c4@16 ~]/3", I: "[~@14 g4 c4@16 a#3@16 c4@17]/4",
  J: "[~@13 c5 ~@2 a4@15 g4@17, ~@15 f4@16 ~@17]/3", K: "[~@4 c4@27 e4@17]/3", L: "[~@15 c3@8 ~ [a3,c4]@8]/2",
})).s("gm_acoustic_guitar_steel").gain(0.23)

// chords · acoustic guitar steel · "GUITAR"
const acoustic_guitar_steel_3 = note(`<
  A B C@3 B D@4 E@2 F B E@2 G@8 H@2 I J K@4 F B L@3 B M@3 N O@3 P@5 Q@6 R@4 S@3 T F B U@3 V W X@2 Y Z AA F AB AC@2 AD AE
  AF AG@2
>`.pickRestart({
  A: "c3@2 ~@2 c4 ~@2 [c4,e4,g4], ~@2 g4@5 ~, ~@2 e4@3 ~@3, ~@2 c4@2 ~ [c4,e4]@2 ~, ~@5 c3@7 c3@4", // C
  B: "~@4 a#3 ~ a#2 [a#3,d4,f4], a#2@3 a#2@3 ~@2, ~@2 [d4,f4]@3 ~@3, ~@2 a#3@2 ~ [a#3,d4,f4]@2 ~", // A# Dm A#
  C: "[~@4 c4 ~@7 c4 ~ c3 ~@5 c4 ~ c3 [c4,e4,g4], c3@3 c3@3 c3@2 c3@3 c3@3 ~@2 c3@3 c3@3 ~@2, ~@2 g4@5 ~@17, ~@2 e4@3 ~@5 [e4,g4]@3 ~@5 [e4,g4]@3 ~@3, ~@2 c4@2 ~ [c4,e4]@2 [c4,e4,g4]@3 c4@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 c4@2 ~ [c4,e4,g4]@2 ~]/3", // C Em C
  D: "[c3@2 ~@2 c4 ~@7 c4 ~@7 c4 ~@3 d#3@2 ~@2 d#4 ~@2 [d#4,g4,a#4], ~@2 [e4,g4]@3 ~@5 [e4,g4]@3 [e4,g4]@3 ~@2 [f4,a4]@3 ~@5 [g4,a#4]@3 ~@3, ~@2 c4@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 c4@2 ~ c4@2 c4@3 c4@2 ~ [c4,f4,a4]@2 [c4,f4,a4]@3 d#4@2 ~ [d#4,g4,a#4]@2 ~, ~@3 c3@3 c3@2 c3@3 c3@3 c3@2 f2@3 f2@3 f2@4 ~ d#3@3 d#3@2]/4", // D# Em F Gm C F D#
  E: "[~@4 c4 ~@7 c4 ~ f2 [c4,f4,a4], f2@3 f2@3 f2@2 f2@3 f2@3 ~@2, ~@2 [f4,a4]@3 ~@5 [f4,a4]@3 ~@3, ~@2 c4@2 ~ [c4,f4,a4]@2 [c4,f4,a4]@3 c4@2 ~ [c4,f4,a4]@2 ~]/2", // F
  F: "~@4 c4 ~@2 [c4,e4,g4], c3@3 c3@3 c3@2, ~@2 [e4,g4]@3 ~@3, ~@2 c4@2 ~ [c4,e4,g4]@2 ~", // C Em C
  G: "[~@4 c4 ~@3 c3@2 ~@2 c4 ~ c3 ~@5 c4 ~ c3 ~@5 c4 ~ c3 [e4,g4,a#4] ~@4 c4 ~@3 c3@2 ~@2 c4 ~ c3 [e4,g4,a#4] ~@4 c4 ~ c3 ~@5 c4 ~ c3 [c4,e4,g4], c3@3 c3@3 c3@2 ~@3 c3@3 ~@2 c3@3 c3@3 ~@2 c3@3 c3@3 ~@2 c3@3 c3@3 c3@2 ~@3 c3@3 ~@2 c3@3 c3@3 ~@2 c3@3 c3@3 ~@2, ~@2 [e4,g4]@3 ~@5 [e4,g4,a#4]@3 ~@5 [e4,g4]@3 ~@5 [e4,g4,a#4]@3 ~@5 [e4,g4]@3 ~@5 [e4,g4,a#4]@3 ~@5 [e4,g4]@3 ~@5 [e4,g4,a#4]@3 ~@3, ~@2 c4@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 c4@2 ~ [c4,e4,g4,a#4]@2 [c4,e4,g4]@3 c4@2 ~ [c4,e4,g4]@2 [c4,e4,g4,a#4]@3 c4@2 ~ [c4,e4,g4,a#4]@2 c4@3 c4@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 c4@2 ~ [c4,e4,g4,a#4]@2 c4@3 c4@2 ~ [c4,e4,g4]@2 [c4,e4,g4,a#4]@3 c4@2 ~ [c4,e4,g4,a#4]@2 ~]/8", // Edim C Em Edim Em Edim Em Edim …
  H: "[f2@2 ~@2 c4 ~@3 f2@2 ~@2 f3 ~ f2 [f3,a3,c4,d#4], ~@2 [f4,a4]@3 ~@5 f3@2 ~ [f3,a3,c4,d#4]@2 ~, ~@2 c4@2 ~ [c4,f4,a4]@2 [c4,f4,a4]@3 [a3,c4,d#4]@3 ~@3, ~@3 f2@3 f2@2 ~@3 f2@3 ~@2]/2", // F7 F F7 F Adim
  I: "f2@2 ~@4 f2 [c4,f4,a4], ~@2 [c4,f4,a4]@3 [c4,f4,a4]@2 ~, ~@3 f2@3 ~@2", // F
  J: "f2@2 [f3,c4] ~ f3 ~ f2 [f3,a3,c4,d#4], ~@2 a3@3 [f3,a3,c4,d#4]@2 ~, ~@4 d#4 ~ f2@6 ~@4", // F5 F7
  K: "[~@4 c4 ~ c3 ~@5 c4 ~@4 c4 [c4,e4,g4] ~@3 c3 [e4,g4] f2@2 ~@2 c4 ~@2 [c4,f4,a4], c3@3 c3@3 ~@2 c3@3 c3@3 c3@2 c3@4 c3@2 ~@5 f2@3 f2@2, ~@4 [e4,g4]@6 ~@4 a#4@17 ~@33, ~@2 c4@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 [e4,g4]@3 ~@2 [e4,g4]@3 ~@8 [f4,a4]@3 ~@3, ~@10 c4@2 ~ [c4,e4,g4]@2 c4@2 ~@2 [c4,e4,g4]@2 [c4,e4,g4]@2 c4@3 c4@2 ~ [c4,f4,a4]@2 ~]/4", // C Em F Em C Em F C …
  L: "[c3@2 ~@2 c4 [c4,e4,g4] ~@2 c3@2 ~@2 c4 ~ c3 ~@5 c4 ~ c3 [c4,e4,g4], ~@2 [e4,g4]@3 ~@5 [e4,g4]@3 ~@5 [e4,g4]@3 ~@3, ~@2 c4@2 ~@3 [c4,e4,g4]@3 c4@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 c4@2 ~ [c4,e4,g4]@2 ~, ~@3 c3@3 c3@2 ~@3 c3@3 ~@2 c3@3 c3@3 ~@2]/3", // C Em C
  M: "[c3@2 ~@2 c4 ~@7 c4 ~ c3 [e4,g4] ~@4 c4 ~ f2 [c4,f4,a4], ~@2 [e4,g4]@3 ~@5 [e4,g4]@3 ~@5 [f4,a4]@3 ~@3, ~@2 c4@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 c4@2 ~ [c4,e4,g4]@2 c4@3 c4@2 ~ [c4,f4,a4]@2 ~, ~@3 c3@3 c3@2 c3@3 c3@3 ~@2 f2@3 f2@3 ~@2]/3", // Em F Em F C F
  N: "~@4 d#4 ~ d#3 [d#4,g4,a#4], d#3@3 d#3@3 ~@2, ~@2 [g4,a#4]@3 ~@3, ~@2 d#4@2 ~ [d#4,g4,a#4]@2 ~", // D# Gm D#
  O: "[f2@2 ~@2 c4 ~ f2 ~@3 [c4,f4] ~ c4 ~ f2 [f4,a4] ~@4 c4 ~@2 [c4,e4,g4], ~@2 [f4,a4]@3 ~@5 a4@3 ~@5 c4@2 ~ [c4,e4,g4]@2 ~, ~@2 c4@2 ~ [c4,f4,a4]@2 [c4,f4,a4]@3 ~@3 [c4,f4,a4]@2 c4@3 [e4,g4]@3 ~@3, ~@3 f2@3 ~@2 f2@3 f2@3 ~@2 c3@3 c3@3 c3@2]/3", // F5 F C F C F Em
  P: "[~@4 a#3 ~@3 f2@2 ~@2 c4 ~ f2 ~@5 c4 ~@2 f4 ~@4 c4 ~ c3 ~@5 c4 ~ c3 [c4,e4,g4], a#2@3 a#2@3 a#2@4 ~ f2@3 ~@2 f2@3 f2@3 f2@2 c3@2 c4 c3@3 ~@2 c3@3 c3@3 ~@2, ~@2 [d4,f4]@3 ~@5 [f4,a4]@3 ~@5 [f4,a4]@3 ~@2 a4@8 ~@3 c4@2 ~ [c4,e4,g4,a#4]@2 ~, ~@2 a#3@2 ~ [a#3,d4,f4]@2 [a#3,d4,f4]@3 c4@2 ~ [c4,f4,a4]@2 [c4,f4,a4]@3 c4@2 ~ [c4,f4,a4]@2 c4@3 g4@5 g4@6 ~@3, ~@26 e4@3 [c4,e4]@2 [c4,e4,a#4]@3 [e4,a#4]@3 ~@3]/5", // C Dm F C7 A# F C C7 …
  Q: "[~@4 c4 ~ c3 ~@5 c4 ~ c3 ~@5 c4 ~ c3 ~ c3@2 ~@2 c4 ~ c3 ~@5 c4 ~ c3 [c4,g4,a#4] ~@4 c4 ~@2 [c4,e4,g4], c3@3 c3@3 ~@2 c3@3 c3@3 ~@2 c3@3 c3@3 ~@5 c3@3 ~@2 c3@3 c3@3 ~@2 c3@3 c3@3 c3@2, ~@4 [e4,g4]@6 ~@10 g4@10 ~@54 a#4@11 ~, ~@2 c4@2 ~ [c4,e4,g4]@2 [c4,e4,g4,a#4]@3 [e4,a#4]@3 ~@5 [e4,g4]@3 ~@5 [e4,g4,a#4]@3 ~@5 [e4,g4]@3 ~@2 e4@3 e4@3 ~@3, ~@10 c4@2 ~ [c4,e4,a#4]@2 [c4,e4,g4]@3 c4@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 c4@2 ~ [c4,e4,g4,a#4]@2 [c4,e4,g4]@3 c4@2 ~ [c4,e4,g4]@2 ~@3 c4@2 ~ [c4,e4,g4]@2 ~]/6", // C7 C Em C C7 Edim Em Edim …
  R: "[f2@2 ~@2 f3 ~ f2 ~@5 f3 ~ f2 c4 ~@4 f3 ~ f2 ~@5 f3 ~ f2 [f3,a3,c4], ~@2 [a3,c4]@3 ~@5 [a3,c4,d#4]@3 ~@5 [a3,c4]@3 ~@5 [a3,c4,d#4]@3 ~@3, ~@2 f3@2 ~ [f3,a3,c4]@2 [f3,a3,c4,d#4]@3 f3@2 ~ [f3,a3,c4,d#4]@2 [f3,a3]@3 f3@2 ~ [f3,a3,c4]@2 [f3,a3,c4,d#4]@3 f3@2 ~ [f3,a3,c4,d#4]@2 ~, ~@3 f2@3 ~@2 f2@3 f2@3 ~@2 f2@3 f2@3 ~@2 f2@3 f2@3 ~@2]/4", // F Am Adim Am Adim F F7 F …
  S: "[~@4 c4 ~ c3 ~@5 c4 ~ c3 c4 ~ c4 [c4,e4,g4,a#4] [c4,e4,g4] ~@2 c3 [c4,e4,g4], c3@6 c3@6 ~@4 c3@6 c3@6 ~@4 c3@7 ~ c3@4 ~@4, ~@2 [e4,g4]@3 ~@5 [e4,g4,a#4]@3 ~@2 [e4,g4]@3 ~@6, ~@2 c4@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 c4@2 ~ [c4,e4,g4,a#4]@2 ~@6 [c4,e4,g4]@2 ~]/3", // C7 C Em Edim Em C C7 C
  T: "~@4 f3 ~ f2 [f3,a3,c4], f2@3 f2@3 ~@2, ~@2 [a3,c4]@3 ~@3, ~@2 f3@2 ~ [f3,a3,c4]@2 ~", // F Am F
  U: "[~@4 c4 ~@2 [c4,e4] ~ c4 ~@2 c4 ~ c3 ~@5 c4 ~ c3 [c4,e4,g4], c3@3 c3@3 c3@2 c3@3 c3@3 ~@2 c3@3 c3@3 ~@2, ~@2 [e4,g4]@3 ~@2 g4@3 [e4,g4]@3 ~@5 [e4,g4]@3 ~@3, ~@2 c4@2 ~ [c4,e4,g4]@2 ~@3 c4@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@2 ~ c4@2 ~ [c4,e4,g4]@2 ~]/3", // C Em C
  V: "a#2@2 [a#3,d4,f4] ~ a#3 ~ a#2 [a#3,d4,f4], ~@3 a#2@3 ~@2, ~@5 [a#3,d4,f4]@2 ~", // A#
  W: "c3@2 ~@2 c4 ~ c3 [c4,e4,g4], ~@2 [e4,g4]@3 ~@3, ~@2 c4@2 ~ [c4,e4,g4]@2 ~, ~@3 c3@3 ~@2", // C Em C
  X: "[~ c4 ~@2 c4 ~ c3 [c4,a4] ~ c4 ~@2 c4 ~@2 [c4,f4,a4], c3@6 c3@6 ~@2 b4 ~@5 c4@4 ~@2 [c4,f4,a4]@4 ~@2, ~@2 [e4,g4]@3 ~@2 f4@3 [f4,a4]@3 ~@3, ~@4 c4@4 ~@2 [c4,e4,g4]@5 ~ f2@6 f2@6 f2@4]/2", // F Em F C
  Y: "~@4 d#4 ~@2 [d#4,g4,a#4], d#3@3 d#3@3 d#3@2, ~@2 [g4,a#4]@3 ~@3, ~@2 d#4@2 ~ [d#4,g4,a#4]@2 ~", // D# Gm D#
  Z: "~@4 c4 ~@2 [c4,f4,a4], f2@3 f2@3 f2@2, ~@2 [f4,a4]@3 ~@3, ~@2 c4@2 ~ [c4,f4,a4]@2 ~", // F
  AA: "~ c4 ~@2 c4 ~@2 [c4,f4,a4], f2@3 f2@3 f2@2, ~@2 [f4,a4]@3 ~@3, ~@2 c4@2 ~ [c4,f4,a4]@2 ~", // F
  AB: "~@4 a#3 ~@2 [a#3,d4,f4], a#2@3 a#2@3 a#2@2, ~@2 [d4,f4]@3 ~@3, ~@2 a#3@2 ~ [a#3,d4,f4]@2 ~", // A# Dm A#
  AC: "[~@4 f3 ~ f2 [f3,c4] ~ f3 ~@2 f3 ~ f2 [f3,a3,c4], f2@3 f2@3 ~@2 f2@3 f2@3 ~@2, ~@2 [a3,c4]@3 ~@2 a3@8 ~, ~@2 f3@2 ~ [f3,a3,c4]@2 ~@3 c4@3 ~@3, ~@10 f3@2 ~ [f3,c4]@2 ~]/2", // F5 F Am F F5
  AD: "c3@2 ~@2 c4 ~ c3 [c4,e4,g4], ~@2 e4@5 ~, ~@2 g4@3 ~@3, ~@2 c4@2 ~ [c4,g4]@2 ~, ~@3 c3@3 ~@2", // C C5
  AE: "a#2@2 ~@2 a#3 ~@2 [a#3,f4], ~@2 f4@5 ~, ~@2 d4@3 d4@3, ~@2 a#3@2 ~ a#3@2 ~, ~@3 a#2@3 a#2@2", // A#5
  AF: "~@4 f3 ~@2 [f3,a3], f2@3 f2@3 f2@2, ~@2 a3@5 ~, ~@2 c4@3 c4@3, ~@2 f3@2 ~ f3@2 ~", // F
  AG: "[~@2 a3@2 [f2,f3,a3,c4]@5 ~@7, f2 ~@3, ~ f3@3 ~@12]/2", // F
})).s("gm_acoustic_guitar_steel").gain(0.33)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A B A B A B A B A B A C@2 A C A C A C A C A C A C A C@2 A B A B A B A B A B A B A B A D C A C A C A C A C A C
  A C A C@2 A B A B A B A B A B A B A B A E A B@2 F ~
>`.pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "x ~@2 x!3 ~ x", C: "x ~@2 x!2 ~@3", D: "~@5 x ~ x", E: "~@4 x!2 ~@2", F: "~ x!2 ~ x ~@3",
})).gain(0.44)

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

// drums · clap
const clap = s("cp").struct("<~@55 [~@2 x!2 ~@4] ~@29>").gain(0.5)

// drums · low tom
const low_tom = s("lt").struct("<~@42 A ~@4 B ~@7 C ~@10 A ~@18>".pickRestart({
  A: "~@5 x ~@2", B: "~ x!4 ~ x ~", C: "~@3 x",
})).gain(0.44)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C A D A E A@3 F A@2 G H A@3 E A E A E A@5 E A E A D A@4 I E A J E D K L A@3 M N F A O P Q A@3 E A E A E A@3 E A@3
  D A E A D A@8 R ~
>`.pickRestart({
  A: "x!8", B: "x ~ x ~ x ~ x ~ x!3 ~ x ~ x ~", C: "x ~ x ~ x!5 ~ x ~ x ~ x ~", D: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~",
  E: "x!3 ~ x ~ x ~ x ~ x ~ x ~ x ~", F: "x!3 ~ x!7 ~ x ~ x ~", G: "x ~ x ~ x!7 ~ x!4",
  H: "x!3 ~ x ~ x!3 ~ x ~ x ~ x ~", I: "x ~ x ~ x!7 ~ x ~ x ~", J: "x ~ x ~ x ~ x!10", K: "x ~ x ~ x!7 ~ x ~ x!2",
  L: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~", M: "x ~ x ~ x ~ x ~ x ~ x ~ x!3 ~", N: "x ~ x!9 ~ x ~ x ~",
  O: "x ~ x ~ x ~ x ~ x ~ x ~ x!4", P: "x!3 ~ x ~ x ~ x ~ x ~ x!3 ~", Q: "x!3 ~ x!3 ~ x ~ x ~ x ~ x ~",
  R: "x!3 ~ x ~@3",
})).gain(0.5)

// drums · mid tom
const mid_tom = s("mt").struct("<~@31 [~@12 x!4] ~@53>").gain(0.44)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@3 A ~ A B ~ C A ~@8 D ~ D ~@4 A ~@3 A ~@9 A ~@2 E A ~@7 A ~@5 A ~ A ~@2 B ~@2 A ~@3 A ~@3 A ~ A ~ A ~@3 A ~@3
>`.pickRestart({
  A: "~@7 x", B: "~@15 x", C: "~ x ~@13 x", D: "~@5 x ~@2", E: "~ x ~@14",
})).gain(0.37)

// drums · crash
const crash = s("cr").struct("<A ~@15 A ~@15 A ~@14 A@2 ~@15 A ~@15 A ~ A B ~>".pickRestart({
  A: "x", B: "~ x!2 ~",
})).gain(0.44)

// drums · tambourine
const tambourine = s("tb").struct("<~@17 A ~ A ~ A ~ A ~ A ~ A ~ A ~@19 A ~ A ~ A ~ B ~ A ~ A ~ A ~@23>".pickRestart({
  A: "~@3 x", B: "~@10 x!3 ~@3",
})).gain(0.56)

stack(
  bass, acoustic_guitar_steel, acoustic_guitar_steel_2, acoustic_guitar_steel_3, kick, snare, clap, low_tom, hihat,
  mid_tom, open_hat, crash, tambourine
)

More by The Beatles