Strudelify

I Got a Woman

The Beatles

KeyC majorTempo110 bpm
0:00/0:00
// I Got a Woman — The Beatles
// 110 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: duplicate parts dropped: ch 5 "I GOTTA WOMAN" electric guitar jazz (copy of ch 3 "GUITAR" electric guitar clean)
// note: Full arrangement: all 61 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(110/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 · acoustic guitar steel · "GUITAR"
const acoustic_guitar_steel = note(`<
  A B C D@2 E F G H I@4 J H K@2 E F D@2 E L M H N O P Q R S T U E V W X Y X ~ Z ~ X AA@3 AB@3 AC AD AE@2 E AF AG@4 AH ~
>`.pickRestart({
  A: "c3 ~@5 c3 [g3,c4,e4], ~ [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 ~, ~ c3!2 ~", // C
  B: "~@6 g2 [g3,b3,d4], g2@7 g2@8 ~ g2@8 ~@8, ~@3 [g3,b3]@9 [g3,b3,d4]@8 [g3,b3,d4]@8 ~@4, ~ d4@2 ~@5", // G
  C: "c3@4 [g3,c4,e4]@4 c3@4 [g3,c4,e4]@3 ~ f2@4 [f3,a3,c4]@4 f2@4 [f3,a3,c4]@4", // C F
  D: "c3 [g3,c4,e4] c3 [g3,c4,e4] c3 [g3,c4,e4] c3 [g3,c4,e4]", // C
  E: "g2 [g3,b3,d4] g2 [g3,b3,d4] g2 [g3,b3,d4] g2 [g3,b3,d4]", // G
  F: "c3@4 [g3,c4,e4]@4 c3@4 [g3,c4,e4]@3 ~ f2@4 [f3,a3,c4]@4 f2@4 [f3,a3,c4]@3 ~", // C F
  G: "~@4 [g3,c4,e4]@4 c3@4 [g3,c4,e4]@4 c3@4 [g3,c4,e4]@4 c3@4 [g3,c4,e4]@3 ~, c3 ~@3", // C
  H: "f2 [f3,a3,c4] f2 [f3,a3,c4] f2 [f3,a3,c4] f2 [f3,a3,c4]", // F
  I: "[f2@4 [f3,a3,c4,d#4]@4 f2@4 [f3,a3,c4]@4 f2@4 [f3,a3,c4]@4 f2@4 [f3,a3,c4]@3 g2@5 [g3,b3,d4]@4 ~@4 g3@4 g2@4 ~@3 g2@5 ~@3 g2@5 ~@3 g2@5 [g3,b3,f4]@4 g2@4 [g3,b3,f4]@4 ~@3 [g3,b3,f4]@3 ~ c3@5 [c4,e4,g4]@4 c3@4 [c4,e4,g4]@4 c3@4 [c4,e4,g4]@4 c3@4 [c4,e4,g4]@4, ~@40 g2@5 ~@43 g2@5 ~@35, ~@43 [b3,d4]@5 ~@4 [g3,b3,d4]@5 ~@3 [g3,b3,d4]@5 ~@3 [g3,b3,f4]@6 ~@26 b3 ~@27]/4", // F7 F G G7 C Bm G G7
  J: "c3@4 ~@3 c3@4 [c4,e4,g4]@4 c3@4 [c4,e4,g4]@4 c3@4 ~ [c4,g4]@4, ~@4 [c4,e4,g4,a#4]@6 ~@17 e4@4 ~", // C C5 C7
  K: "[f2@4 ~@3 f2@5 ~@3 f2@5 ~@3 f2@4 ~ [f3,c4]@3 c3@5 [g3,c4,e4]@4 c3@4 ~@3 c3@5 [g3,c4,e4]@4 c3@4 [g3,c4,e4]@4, ~@4 [f3,a3,c4,d#4]@6 ~@2 [f3,a3,c4,d#4]@6 ~@2 [f3,a3,c4]@5 ~@2 a3@3 ~@14 [g3,c4,e4]@5 ~@15]/2", // F5 C F7 F C
  L: "c3 [g3,c4,e4] c3 [g3,c4,e4] f2 [f3,a3,c4] f2 [f3,a3,c4]", // C F
  M: "~@4 [g3,e4]@4 ~@3 [g3,c4,e4]@4 c3@5 [g3,c4,e4]@4 c3@4 [g3,c4,e4]@3 ~, c3@5 ~@3 c3@5 ~@19, ~@3 c4@5 ~@24", // C
  N: "f2 [f3,a3,c4,d#4] f2 [f3,a3,c4] f2 [f3,a3,c4] f2 [f3,a3,c4]", // F7 F
  O: "g2@4 ~@3 g2@5 [g3,b3,d4]@4 g2@4 ~@3 g2@5 [g3,b3,d4]@4, ~@4 [g3,b3,d4]@5 ~@11 [g3,b3,d4]@5 ~@7", // G
  P: "g2 ~ g2 [g3,b3,f4] g2 [g3,b3,f4] g2 [g3,b3,f4], ~@4 [g3,b3,f4]@7 ~@21", // G7
  Q: "c3@4 [c4,e4,g4]@4 c3@4 [c4,e4,g4]@4 c3@4 ~@3 c3@4 ~ [c4,e4]@4, ~@20 [c4,e4,g4]@5 ~@2 g4@5", // C
  R: "c3@4 ~@3 c3@5 ~@3 c3@5 [c4,e4,g4,a#4]@4 ~@4 [g4,a#4]@3 ~, ~@4 [c4,e4,g4,a#4]@6 ~@2 [c4,e4,g4,a#4]@5 ~@7 c3@5 ~@3, ~@27 [c4,e4]@4 ~", // C7 Gm C7 C
  S: "~@3 [f3,a3,c4]@4 f2@5 [f3,a3,c4]@4 f2@4 [f3,a3,c4]@4 f2@4 [f3,a3,c4]@4, f2@5 ~@27", // F
  T: "f2@4 [f3,a3]@4 f2@4 ~@3 f2@5 [f3,a3,c4]@4 f2@4 [f3,a3,c4]@3 ~, ~@6 [f3,a3,c4]@3 ~@7", // F
  U: "c3@4 ~@3 c3@5 [g3,c4,e4]@4 c3@4 [g3,c4,e4]@4 c3@4 [g3,c4,e4]@4, ~@2 [g3,c4,e4]@3 ~@11", // C
  V: "~@4 e4@4 c3@4 [g3,c4,e4]@3 ~ f2@4 [f3,a3,c4]@4 f2@4 [f3,a3,c4]@4, c3@5 ~@27, ~@3 [g3,c4]@6 ~@23", // C F C5
  W: "c3@4 [g3,c4,e4]@4 ~@8 c3@3 g3@5 c3@4 g3@2 ~@2, ~@8 c3@4 g3@7 ~@13, ~@11 [c4,e4]@7 ~ [c4,e4]@9 ~@4", // C
  X: "[c3,g3,c4,e4] ~@15", Y: "~@20 [f2,f3,a3,c4]@8 g3 ~@3", Z: "[c3,g3,c4,e4] ~@31",
  AA: "[~@4 [c4,e4,g4]@3 [c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4,a#4]@3 ~ [c4,e4,g4,a#4]@4 c3@5 [c4,e4,g4]@3 f2@5 [f3,a3,c4]@4 f2@4 ~@4 f2@4 [f3,a3,c4]@4 f2@4 ~@3 f2@5 ~@4 f2@4 [f3,a3,c4]@4 f2@2 ~@2 [f3,a3,c4,d#4]@4 f2@4 [f3,a3,c4,d#4]@4, ~@15 c3@4 ~@25 [f3,a3,c4]@7 ~@9 [f3,a3,c4]@7 ~ [f3,a3]@7 ~@21]/3", // C C7 C F F7 F
  AB: "[g2@4 a3@2 ~@2 g2@4 [g3,b3,d4]@4 g2@4 [g3,b3,d4]@4 g2@4 ~@3 g2@5 ~@4 g2@4 [g3,b3,f4]@4 g2@4 [g3,b3,f4]@4 g2@4 [g3,b3,f4]@3 c3@4 [g3,c4,e4]@5 c3@4 [g3,c4,e4]@4 c3@4 [g3,c4,e4]@4 c3@4 [g3,c4,e4]@4, ~@4 [g3,b3,d4]@7 ~@17 [g3,b3,d4]@5 ~@3 [g3,b3,f4]@7 ~@53, ~@4 c4 ~@91]/3", // G G7 C G G7
  AC: "c3@4 [g3,c4,g4]@4 c3@4 [g3,c4,g4]@4 ~@4 [g3,g4]@4 c3@3 ~ g3@4, ~@16 c3@5 ~@11, ~@19 c4@6 ~@2 [c4,g4]@4 ~", // C5 G C5
  AD: "f2@4 ~@3 f2@5 [f3,a3,c4]@4 f2@4 [f3,a3,c4]@4 f2@4 [f3,a3,c4]@4, ~@2 [f3,a3,c4]@3 ~@11", // F
  AE: "[f2@4 ~@3 f2@5 [f3,a3,c4,d#4]@4 ~@4 [f3,c4,d#4]@4 ~@4 f3@3 c3@5 [g3,c4,e4]@4 ~@7 c3@4 ~ g3@4 ~@4 g3@4, ~@4 [f3,a3,c4,d#4]@6 ~@6 f2@5 ~@3 f2@5 ~@11 c3@4 [g3,c4]@6 ~@6 c3@5 ~@3, ~@19 a3@5 ~@3 [a3,c4]@4 ~@12 e4@6 ~@2 [c4,e4]@6 ~@2 [c4,e4]@4 ~]/2", // F7 C F7 C5 Am C
  AF: "~@4 g3@4 c3@4 [g3,c4,e4]@3 ~ f2@4 [f3,a3,c4]@4 f2@4 [f3,a3,c4]@4, c3@5 ~@27, ~@3 [c4,e4]@6 ~@23", // C F C
  AG: "[c3@4 ~@3 c3@5 ~@4 c3@4 [g3,c4,e4]@3 ~@3 g3 ~ [g3,c4]@3 f2@6 ~@3 f2@4 [f3,a3,c4]@2 ~ [f2,f3,a3,c4]@5 ~ [f3,c4]@2 [a3,c4] ~@2 [a3,c4] ~ b3 ~@2 [g2,b3,d4]@5 ~@3 g2@6 ~@2 g2@6 ~@5 [g3,b3,d4] ~ d4 [g3,b3]@2 ~ [c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4]@2 ~ [g3,c4,e4] ~@2 [g3,c4,e4] ~ [g3,c4,e4] ~@2 [f3,a3,c4] ~ [f3,a3,c4] ~@2 [f3,a3]@2 [f3,a3] ~@2 [f3,a3,c4] ~@5 f#2, ~@4 [g3,c4,e4]@6 ~@2 [g3,c4,e4]@7 ~@4 c3@5 ~@9 [f3,a3,c4]@6 ~@9 a3@2 ~ f2@6 ~@26 g2@7 ~@2 c3@6 ~ c3@5 ~@3 f2@5 ~@2 f2@5 ~@3 c3@2, ~@55 f3@3 ~@2 g3@7 ~ [g3,b3,d4]@8 ~ [g3,b3,d4]@7 ~ [g3,b3,d4]@4 ~@6 g3@2 ~@18 c4@2 ~ c4@2 ~@3 [g3,c4,e4]@5]/4", // C C5 F F5 Am G C F …
  AH: "~@4 g3@2 [g2,g3,c4]@2 ~@4 f#2 ~@19, ~@11 [c3,g3,c4,e4]@21", // C5 C
})).s("gm_acoustic_guitar_steel").gain(0.36)

// bass · electric bass finger · "BASS"
const bass = note(`<
  ~@7 A@2 B C D@2 E F G H I J K L M N O P Q R S T L U V W X Y Z AA ~ AB ~ AB ~ AC ~ AD AE AF I AG AH AI AJ AK AL AM AN
  AO@2 AP@3
>`.pickRestart({
  A: "[~@31 f2@4 ~@3 a2@5 ~ c3@2 ~@2 f2@4 ~@2 a2@6 c3@2 ~@2]/2", B: "f2@4 ~@2 a2@5 ~ c3@2 ~@2 f2@5 ~ a2@5 ~ c3@4",
  C: "g2@4 ~@2 b2@5 ~ d3@3 ~ g2@4 ~@2 b2@5 d3@2 ~@3",
  D: "[g2@4 ~@2 b2@5 ~ d3@2 ~@2 g2@5 ~ b2@5 ~ d3@2 ~ c3@4 ~@3 e3@5 g3@2 ~@3 c3@3 ~@3 e3@5 g3@2 ~@3]/2",
  E: "c3@3 ~@3 e3@5 g3@2 ~@3 c3@5 ~ e3@5 g3 ~@4", F: "f2@3 ~@3 a2@5 c3@2 ~@3 f2@3 ~@3 a2@6 c3@2 ~@2",
  G: "f2@5 ~@2 a2@5 c3@2 ~@2 f2@4 ~@2 a2@5 ~ c3 ~@3", H: "c3@3 ~@3 e3@5 ~ g3@2 ~@2 c3@5 ~ e3@5 ~ g3 ~@3",
  I: "g2@4 ~@2 b2@5 ~ d3@2 ~@2 g2@4 ~@2 b2@5 ~ d3@2 ~@2",
  J: "c3@3 ~@3 e3@5 ~ g3 ~@3 f2@5 ~@2 a2@5 c3 ~@3, ~@16 g2 ~@15", K: "c3@3 ~@4 e3@5 g3@2 ~@2 c3@4 ~@2 e3@5 ~ g3@2 ~@2",
  L: "c3@4 ~@2 e3@5 ~ g3@2 ~@2 c3@4 ~@2 e3@5 ~ g3 ~@3", M: "g2@3 ~@3 b2@5 ~ d3@2 ~@2 g2@3 ~@3 b2@6 d3@2 ~@2",
  N: "c3@4 ~@2 e3@4 ~ g3 ~@4 f2@4 ~@2 a2@5 ~ c3@2 ~@2", O: "c3@3 ~@3 e3@5 ~ g3@2 ~@2 c3@4 ~@2 e3@5 ~ g3 ~@3",
  P: "f2@4 ~@3 a2@5 c3@2 ~@2 f2@3 ~@3 a2@6 c3@2 ~@2", Q: "f2@3 ~@3 a2@5 ~ c3@2 ~@2 f2@4 ~@2 a2@5 ~ c3@2 ~@2",
  R: "g2@3 ~@3 b2@5 ~ d3@2 ~@2 g2@3 ~@3 b2@5 ~ d3@2 ~@2", S: "g2@3 ~@4 b2@5 d3@2 ~@2 g2@3 ~@4 b2@5 d3 ~@3",
  T: "c3@2 ~@5 e3@5 g3@2 ~@2 c3@3 ~@3 e3@5 ~ g3@2 ~@2", U: "f2@3 ~@3 a2@6 c3@2 ~@2 f2@4 ~@2 a2@5 ~ c3@2 ~@2",
  V: "f2@3 ~@3 a2@5 ~ c3@2 ~@2 f2@4 ~@3 a2@5 c3@2 ~@2", W: "c3@3 ~@3 e3@6 g3@2 ~@2 c3@4 ~@2 e3@5 ~ [e3,g3] ~@3",
  X: "g2@4 ~@2 b2@5 ~ d3@2 ~@2 g2@4 ~@2 b2@5 ~ d3 ~@3",
  Y: "c3@3 ~@3 e3@5 ~ g3@2 ~@3 f2@4 ~@2 a2@5 c3 ~@3, ~@17 g2 ~@14",
  Z: "c3@4 ~@2 e3@5 ~ g3@2 ~@2 c3@4 ~@2 e3@5 g3@2 ~@3", AA: "c3 ~@7", AB: "c3 ~@15", AC: "[c2,c3] ~@31",
  AD: "f2@4 ~@2 a2@5 c3@2 ~@3 f2@3 ~@3 a2@6 c3@2 ~@2", AE: "f2@2 ~ a2@3 c3 ~ f2@2 ~ a2@3 c3 ~",
  AF: "g2@4 ~@2 b2@5 ~ d3@2 ~@2 g2@3 ~@3 b2@5 ~ d3@2 ~@2", AG: "c3@3 ~@3 e3@5 ~ g3@2 ~@2 c3@4 ~@2 e3@5 ~ g3@2 ~@2",
  AH: "c3@5 ~ e3@5 ~ g3@2 ~@2 c3@5 ~ e3@5 ~ g3 ~@3", AI: "f2@4 ~@2 a2@5 ~ c3@2 ~@2 f2@3 ~@3 a2@5 ~ c3@2 ~@2",
  AJ: "f2@4 ~@2 a2@5 ~ c3@2 ~@2 f2@4 ~@2 a2@5 ~ c3 ~@3", AK: "c3@3 ~@3 e3@5 ~ g3@2 ~@2 c3@4 ~@2 e3@5 g3 ~@4",
  AL: "g2@4 ~@2 b2@5 ~ d3@2 ~@2 g2@4 ~@2 b2@5 d3@2 ~@3", AM: "c3@4 ~@2 e3@5 ~ g3 ~@3 f2@4 ~@2 a2@5 c3 ~@4",
  AN: "c3@4 ~@2 e3@5 ~ g3@2 ~@2 c3@4 ~@3 e3@5 c3 ~@3",
  AO: "[f2@4 f2@2 ~ a2@4 ~@2 a2@2 ~ a#2@4 ~ a#2@2 ~ b2@4 ~ b2@2 g2@4 ~@2 g2 ~ b2@4 ~ b2@2 ~ c3@4 ~ c3@2 ~@2 d3@4 ~ d3 ~@2]/2",
  AP: "[~ c2@3 ~ c2 ~@2 e2@4 ~ e2@2 f2@4 ~ f2@2 ~ f#2@3 ~@2 f#2@2 ~ g2@4 ~@4 b1@3 ~@2 c2@23 ~@29]/3",
})).s("gm_electric_bass_finger").gain(0.41)

// chords · electric guitar clean · "GUITAR"
const electric_guitar_clean = note("<~@12 A B C@5 D@3 E F@5 G H@7 I ~ J ~ K ~ L M N@5 O@5 P@3 Q R@2 ~>".pickRestart({
  A: "~@3 c4@5 ~@2 a#3@5 ~ [g3,c4]@5 ~ a#3@4 g3 ~ g3@3 ~, ~@3 g3@12 ~@17", // C5
  B: "g3@3 ~ [g3,c4]@6 [g3,a#3]@6 [g3,c4]@5 a#3@5 g3@6", // C5 Gm C5
  C: "[~@4 [g3,c4]@5 a#3@6 ~ [g3,c4]@5 ~ a#3@5 g3@8 c4@5 ~@2 a#3@5 ~ [g3,c4]@5 ~ a#3@5 g3@8 ~ c4@5 a#3@5 ~@2 c4@5 ~@15 c4@5 ~ a#3@5 ~ c4@5 ~ g3 ~@13 c4@5 ~ a#3@5 ~ c4@5 ~ a#3@6 g3@3 ~, ~@35 g3@12 ~@20 g3@12 ~@7 a#3@13 ~@19 a#3@13 ~@29, ~@91 g3@26 ~@7 g3@14 g3@12 ~@10]/5", // C5
  D: "[[g3,c4]@6 ~@10 c4@20 d#4@6 c4@5 ~ c3@4 ~@2 [c3,d#4]@4 g4@4 ~@4 a#3 b3@3 ~ g3@3 ~@2 g3 ~@5 g3@2 a#3@3 ~ b3@3 ~ [g3,d4]@2 ~@2, ~@6 a#3@9 ~@32 d#4@4 ~ c4@9 ~ c4@2 ~@6 d4@8 ~@6 d4 ~@11, ~@11 g3@20 ~@32 g2@16 ~ g2@14 ~@2, ~@37 b3@2 [g3,b3,f4]@2 ~@7]/3", // C5 Cm G5 G7
  E: "c3@4 ~@3 c3@3 c4@2 c3@2 g#3@2 a3@3 ~ [f3,c4]@3 ~ [a#3,c4] ~ d4 ~ f2@2 f3@2, e4@3 ~ g4@8 ~@12 d#4@2 ~@2 c4@4, d#4 ~@3 c4@5 ~@7 f2@7 ~ [f2,f3]@4 ~@4", // F5 A#sus2 F
  F: "[~@2 d#4 e4@2 ~ g4@2 a#4@2 a4 ~@3 c4@2 [d#4,e4]@2 [c4,g4]@3 ~ [c4,d#4,e4,g4]@2 c3@2 [c4,e4,g4]@2 c3@2 ~ a3@3 ~@2 [f3,c4]@4 f2@2 ~@2 f2@2 c4 d#4@3 ~@2 [f3,d4]@3 ~ [f3,c4]@2 g#3@2 ~@2 g#3 a3@2 ~ [f3,c4]@8 [f3,d4]@2 c4@2 ~@2 a3@3 ~ [f3,c4]@4 f2@2 [f3,d4]@2 f2@2 a#3 g2@4 ~ d4@4 g2@2 [g3,f4]@2 g2 ~ e4 ~ f4@2 e4 ~ [g2,d4]@3 ~ b3@2 d4@2 a#3@2 f3 ~@5 g2@2 [a#3,d4] ~ [g3,b3]@2 g3 ~ g3@2 f4 ~ g2@3 ~ g2@2 ~@10, c3@23 ~@7 g#3@2 ~@4 b3 ~@5 d4@2 ~@19 g#3 ~@14 f3@5 ~@12 a#3 ~@3 g3@5 ~@6 g3@10 a#3 ~@5 d4@8 ~@4 d4@4 ~@18, ~@12 g4@5 ~@14 f2@8 ~@4 f3@3 ~@6 g3 ~@10 f2@11 ~@6 g#3 ~@14 b3@3 ~@14 g2@4 ~@4 g2@7 ~ g2@4 ~@4 g2@8 ~@16, ~@130 g3@5 ~@7 [g3,g4]@5 g3@3 ~@10]/5", // Emaj7 C5 C F5 Dm F5 Dm F5 …
  G: "~@4 c4@5 ~ [g3,a#3]@5 ~ [g3,c4]@6 ~@5 g3@4 ~, ~@11 a#3@5", // Gm C5
  H: "[~@3 c4@6 a#3@5 ~ [g3,c4]@6 ~@6 g3@8 ~ c4@5 ~ a#3@5 ~ [g3,c4]@5 ~@6 g3@8 ~ c4@5 ~ a#3@5 ~ [g3,c4]@6 ~@6 g3@7 ~ c4@5 ~ a#3@4 ~@2 c4@5 ~@15 c4@5 ~ a#3@5 ~ [g3,c4]@6 ~@5 g3@8 ~ c4@5 ~ a#3@4 ~@2 [g3,c4]@6 ~@6 g3@8 c4@5 ~ a#3@5 ~ c4@5 ~@6 g3@5, g3@10 ~@11 a#3@14 g3@12 ~@7 a#3@13 ~ g3@12 ~@6 a#3@12 ~ g3@12 ~@6 a#3@13 ~@20 a#3@12 ~@20 a#3@12 ~@20 a#3@10, ~@123 g3@14 ~@27 g3@11 ~@21 g3@12 g3@10 ~@6]/7", // C5
  I: "[g3,a#3]@7 ~@25, c4@3 ~@29", J: "[g3,a#3,d4] ~@15", K: "[g3,a#3,c4] ~@31", L: "[g3,a#3,c4] ~@15",
  M: "~@4 c4@5 a#3@5 ~ c4@5 ~ a#3@5 g3@6",
  N: "[g3@4 c4@6 a#3@5 ~ [g3,c4]@5 ~@6 g3@5 ~@4 c4@5 ~ a#3@5 ~ c4@5 ~@15 c4@6 a#3@5 ~ [g3,c4]@6 c4 ~@5 c4 ~@7 c4@6 a#3@5 ~@21 c4@6 a#3@5 ~@12 g3@5, ~@4 g3@11 ~@18 g3@14 g3@7 ~@5 g3@20 ~@13 g3@26 a#3@12 ~@20 a#3@10, ~@10 c4 ~@10 a#3@14 ~@19 a#3@13 ~@19 a#3@13 ~@13 c4@18 ~@8 c4 ~@4 c4@17, ~@123 g3@27 ~@10]/5", // C5
  O: "[~@10 a#3@4 ~@2 c4@5 ~@21 a#3@5 ~@27 a#3@5 ~@27 a#3@5 ~ g3@6 ~@5 g3@8 c4@7 a#3@5 ~ g3@6 ~@5 g3@5, ~@3 g3@19 a#3@13 ~@19 a#3@13 ~@19 a#3@12 ~@20 a#3@12 ~@20 a#3@10, ~@4 c4@11 ~@6 c4@13 ~ c4@11 ~@2 c4@19 ~ c4@10 ~@2 c4@18 ~ c4@11 ~@2 c4@18 ~@14 c4@16, ~@27 g3@28 ~@4 g3@27 ~@5 g3@20 ~@20 g3@12 ~@17]/5",
  P: "[~@10 a#3@4 ~ [g3,c4]@7 ~@14 c4@6 a#3@5 ~@25 c4@12 ~@3 c4@5 ~@4, ~@3 [g3,c4]@11 ~@8 [a#3,c4]@13 ~@13 c4@17 ~@31, ~@27 g3@30 ~@3 g3@26 ~@10, ~@54 a#3@11 ~@31]/3", // C5 A#sus2
  Q: "~@4 a#3@3 b3@3 d4@2 g3@2 ~@2 f4@4 ~ e4@3 d4@6 ~@2, ~@16 g3 ~@15",
  R: "[~@2 d#4 e4@2 g4@2 ~ a4@3 ~@4 a#4@3 ~@2 a4@2 ~@2 g4@2 ~@2 d#4@2 ~ c4@3 ~@4 d#4@4 ~ c4@12 ~@9]/2",
})).s("gm_electric_guitar_clean").gain(0.41)

// chords · electric guitar clean · "GUITAR" · soft notes
const electric_guitar_clean_2 = note("<~@13 A B ~ C ~ D ~ E ~ F ~ G ~@3 D ~@2 D H I ~@11 J ~@9 K L M ~@3>".pickRestart({
  A: "~@21 g3 ~@10", B: "~@9 g3@6 ~@17", C: "~@15 g3@5 ~@2 g3 ~@9", D: "~@22 g3 ~@9", E: "~@27 c3@3 ~@2",
  F: "~@28 f3 ~@3", G: "~@14 f3@5 ~@5 d#4@2 ~@6", H: "~@16 g3@6 g3 ~@9", I: "~@10 g3@5 ~@17", J: "~@4 a#3 ~@27",
  K: "~@13 c4 ~@18", L: "~@21 c4 ~@10", M: "~@12 d4@2 ~@2 e4 ~@7 e4 ~@7",
})).s("gm_electric_guitar_clean").gain(0.2)

// drums · kick
const kick = s("bd").struct("<~@12 [~ x!3] [x!4]!46 [x!2 ~@2] ~>").gain(0.41)

// drums · snare
const snare = s("sd").struct("<~@12 [~ x ~ x ~ x ~ x]!47 [~ x ~ x ~@4] ~>").gain(0.36)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~@12 A B C D@2 E C D@3 C E D@5 F D@2 G D C D H D@9 C D E I D@2 A D C D J K L M ~
>`.pickRestart({
  A: "~@3 x ~ x ~@6 x ~@7 x ~ x ~@5 x ~@3", B: "~@4 x ~ x ~@4 x ~@7 x ~ x ~@5 x ~@4",
  C: "~@3 x ~@2 x ~@5 x ~@7 x ~ x ~@5 x ~@3", D: "~@2 x!2 ~@2 x ~@3 x!2 ~@2 x ~",
  E: "~@4 x ~ x ~@5 x ~@6 x ~@2 x ~@5 x ~@3", F: "~@4 x ~ x ~@5 x ~@6 x ~ x ~@5 x ~@4",
  G: "~@3 x ~@2 x ~@5 x ~@6 x ~@2 x ~@5 x ~@3", H: "~@2 x!3 ~ x ~ x ~ x!2 ~@2 x ~",
  I: "~@3 x ~ x ~@6 x ~@6 x ~@2 x ~@5 x ~@3", J: "~@3 x ~ x ~@5 x ~@8 x ~ x ~@5 x ~@3",
  K: "~@4 x ~ x ~@5 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x", L: "~@5 x ~@2 x ~@4 x ~@2 x ~@4 x ~ x ~@4 x ~@2 x",
  M: "~@4 x ~ x ~@4 x ~@20",
})).gain(0.51)

// drums · ride
const ride = s("rd").struct(`<
  ~@12 A B C@2 D E D C D C F C D B G B E C@4 H G E B@2 C D C D@3 B E C H C B@2 D C E C D C E B I ~
>`.pickRestart({
  A: "~@2 x!3 ~ x ~ x ~ x ~ x ~ x!2", B: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x!2", C: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2",
  D: "x!8", E: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~", F: "x ~ x ~ x ~ x ~ x!3 ~ x ~ x!2", G: "x ~ x!3 ~ x ~ x!3 ~ x ~ x!2",
  H: "x ~ x!3 ~ x ~ x!3 ~ x ~ x ~", I: "x ~ x!3 ~ x ~@9",
})).gain(0.36)

stack(acoustic_guitar_steel, bass, electric_guitar_clean, electric_guitar_clean_2, kick, snare, pedal_hat, ride)

More by The Beatles