Strudelify

How Many People

McCartney

KeyG majorTempo129 bpm
0:00/0:00
// How Many People — McCartney
// 129 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 136 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(129/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 · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~@12 A B@3 ~@6 C@4 D E F@4 G@8 H@4 I J K@2 ~@8 L@2 M@4 D N F@4 G@8 H@4 I J O@2 ~@8 P Q@3 A R@3 ~@9 S ~ T@2 U@2 ~ V@2 W
  ~ X ~ Y Z AA AB ~ AC@2 AD AE AF AG AH@3
>`.pickRestart({
  A: "[c5,e5,a5] [b4,d5,g5]", // Am G
  B: "[[a4,c5,f5]@15 ~@3 [b4,e5]@4 d5@23 ~@3 [d5,f#5]@8 ~@2 [d5,f#5] ~@5 d4@2 [d5,f#5]@3 ~ [d5,f#5] ~, ~@18 g4 ~@3 [f#4,a4]@43 ~@7]/3", // F E5 D F#m
  C: "[[d5,f#5]@16 [c5,e5]@7 [d5,f#5]@9]/4", D: "[c5,e5] [d5,f#5]", E: "[e5,g5] [f#5,a5]",
  F: "[[g5,b5]@11 [f4,a4]@13 [g4,b4]@13 ~@2 [g4,b4]@3 [a4,c5]@3 [b4,d5]@3, d5@37 ~@11]/4", // G F G Am Bm
  G: "[~@8 [b4,d5]@8 [c5,e5]@8 d5@5 [g4,b4] [a4,c5] [b4,d5], [c5,e5]@16 ~@32 b4@9 ~@7, ~@12 g5@163 ~@17]/8", // Bm C G Am Bm C
  H: "[[c5,e5] [b4,d5], g5]/4", I: "[a4,c5,e5] [g4,b4,d5]", J: "[f4,a4,c5]@8 [e4,g4,b4] ~@3",
  K: "[f5@4 f5@2 ~@2 f5 ~ f5 ~ f5@3 ~ f5@2 ~@2 f5 ~ f5 ~ f5@4 f5@3 ~ f5@2 f5 ~ f5@4 f5@3 ~ f5 ~@3, [d4,a4]]/2", // D5
  L: "[~@12 g5@4 e5@2 d5@4 b4@6 c5@3 ~@17]/2", M: "[f#5@27 ~ g#5@20 [c5,e5]@21 [d5,f#5]@27, d5@49 ~@47]/4",
  N: "~ a5, [e5,g5]@13 ~@11, ~@11 f#5@12 ~", O: "[d4,a4]/2", P: "[c5,e5,a5] [b4,d5,g5], d#5 ~@23",
  Q: "[[a4,c5,f5]@15 ~@3 [g4,b4,e5]@4 a4@49 ~, ~@22 d5@47 ~@3, ~@22 e5 ~@49]/3", // F Em
  R: "[[a4,c5,f5]@15 ~@3 [g4,b4]@3 ~ [a4,d5]@45 ~@5, ~@9 e5@2 ~@25]/3", S: "~@10 g5 ~ a#5@6 b5@4 ~@2",
  T: "[~@6 [b5,d6]@10 g5 ~ [c6,e6]@4 [b5,d6]@8 g5 ~@17, ~@6 [a#5,c6] ~@41]/2", // Bm C Bm A#sus2
  U: "[~@18 e5@4 [d5,g5]@8 [e5,a5]@4 [d5,g5] ~@13]/2", V: "[~@6 g6@24 e6@4 d6@2 b5@5 ~@7]/2",
  W: "~@10 g5 ~ a5@5 ~ b5@4 g5 ~", X: "e5@3 ~@3 g5@4 ~@2 a5@6 b5@2 ~@4", Y: "~@4 d6 c6", Z: "b5@4 g5@4 ~@2 a5@9 ~@5",
  AA: "~@22 g5 ~", AB: "d6@4 c6@4 b5@4 g5@4 ~@2 g5@4 a5 ~", AC: "[~ g6@7, ~@3 d6@20 ~]/2",
  AD: "[b5,d6]@4 [c6,e6]@3 ~ f6@3 ~ f6@4 [c6,e6]@4 [b5,d6]@3 ~, ~ d6 ~", // Bm C Bm
  AE: "~@6 [b5,d6]@4 [a5,c6]@3 ~ [g5,b5]@3 ~ [g5,b5]@4 a5@2", AF: "~@12 g5@4 d5@4 e5@3 ~", AG: "~ [b4,d5,g5]",
  AH: "[[a4,c5,f5]@15 ~@3 [b4,e5]@4 [f#4,a4]@43 ~@7, ~@18 g4 ~@3 d5@23 ~@27]/3", // F E5 F#m
})).s("gm_rock_organ").gain(0.33)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@9 A B C D E@3 F G F H I J K L M N O P Q@2 R S T U V W X Y Z AA AB AC AD AE AF AG AH AI F G F H F G F H I J K L M N O
  P Q@2 R S T U V W X Y Z AA AB AC AD AE AF AG AH AI F G F H F G F H AJ AK AL@2 AM AN@3 F G F H F G F H F G F H F G F H
  F G F H F G F H F G F H F G F H D AO@3
>`.pickRestart({
  A: "~@10 d3@2 g3@6 d3@3 ~@3", B: "g3@23 ~", C: "e3@23 ~", D: "a2 g2",
  E: "[f2@13 ~@5 e2@4 d2@38 ~@4 d2 ~ d2@4 d2 ~]/3", F: "g1@4 ~@8 g1@3 ~@9", G: "~@10 g1 ~ e1@6 d1@5 ~", H: "~@2 e1 d1",
  I: "g1@4 ~@8 g1@5 ~@5 a1@2", J: "~@4 a1 ~ a1@5 ~ a1@5 ~ b1@3 ~ a1 ~", K: "f#2@2 ~@3 b2 b1@3 ~@3",
  L: "~@10 e1 ~ e1@3 ~ e1 ~ g1@4 e1@2", M: "a1@5 ~@7 a1@3 ~@7 b1@2", N: "~@4 b1 ~ b1@6 e2@5 ~@5 b1@2",
  O: "a1@5 ~@7 b1@4 ~@4 b1 ~ b1 ~", P: "c2@5 ~@7 d2@4 ~@2 d2@6", Q: "[g1@5 ~@17 g1@4 ~@2 g1 ~ g1@4 ~@14]/2",
  R: "g1@3 ~@8 g2", S: "g1@3 ~@3 a1@3 b1@2 ~", T: "c2@3 ~@3 g1@4 ~@2 c2@4 ~@8", U: "~@10 g1 ~ c2@6 g2@6",
  V: "b1@5 ~@13 b1@6", W: "e1 ~ g1 ~", X: "a1 ~@2 a1", Y: "d2 ~ d2 ~", Z: "g1@6 ~@10 g1 ~ g1@4 g1 ~",
  AA: "~@6 g1@6 a1@5 ~ b1@6", AB: "c2@3 g1@3 c2@2 ~@4", AC: "~@10 g1@2 c2@4 ~@6 c2 ~", AD: "b1@7 ~@5 g1@5 ~@7",
  AE: "e1@3 ~@3 g1@2 ~@3 b1", AF: "a1 g1", AG: "f1@11 ~@5 e1 ~@7", AH: "d1@20 ~@2 d1 ~", AI: "d1@3 ~ d1 ~@7 d1@4 ~@8",
  AJ: "a1@5 ~ a1@5 ~ b1@6 d2@6", AK: "f2@6 g2@6 a2@6 b1@4 c2 ~",
  AL: "[d2@5 ~ d2@5 ~ d2@4 ~ d2@5 a1 d2@5 ~ d2@5 ~ d2@4 ~ a1 d2@6 ~, ~@8 a1 ~@15]/2", AM: "a1@6 a1@5 ~ g1@5 ~ g1@5 ~",
  AN: "[f1@5 ~ f1@5 ~ f1@4 ~@2 e1@4 d1@4 ~@2 d1 ~ d2@4 d1@2 ~@4 d1 ~ d2@4 d1@4 ~@2 d1 ~ d2@3 d1@2 ~@5 d1 ~ d2@5 ~]/3",
  AO: "[f2@13 ~@5 e2@4 d2@38 ~@12]/3",
})).s("gm_fretless_bass").gain(0.38)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~@8 A B C D ~@3 E F G C H I J K L M N O P Q R S T U@2 V W X Y Z AA AB AC AD AE ~@4 F G C H F G C H I J K L M N O P Q R
  S T U@2 V W X Y Z AA AB AC AD AE ~@4 F G C H F G C H ~@7 AF F G C H AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW
  G C H F G C H F G C H ~@4
>`.pickRestart({
  A: "~@6 [g3,b3]@4 g2 ~@7 [g3,b3]@4 ~@2", B: "~@3 [g3,b3]@2 ~@4 [g3,b3]@2 ~",
  C: "~@6 [g3,b3]@4 g2 ~@5 g2 ~ [g3,b3]@4 g2 ~", D: "~@4 g2 ~ [g3,b3]@4 g2 ~@5 g2 ~ [g3,b3]@4 g2 ~",
  E: "[d3,f#3]@6 d2 ~@3 [d3,f#3] ~@5 d2 ~ [d3,f#3]@3 ~ [d3,f#3] ~", F: "~@4 g2 ~ [g3,b3]@4 ~@8 [g3,b3]@3 ~@3",
  G: "~@4 a2 ~ [a3,c4]@4 ~@6 e2 ~ [a3,c4]@5 ~, ~@6 d2 ~", H: "~@6 [a3,c4]@4 ~@6 e2 ~ [a3,c4]@4 g2 ~, ~@9 d2 ~@2",
  I: "~@4 g2 ~ [g3,b3]@4 ~@6 g2 ~ [g3,b3]@4 ~@2", J: "~@6 [a3,c4]@4 ~@6 a2 ~ [a3,c4]@4 ~@2",
  K: "~@6 [b3,d4]@4 ~@6 b2 ~ [b3,d4]@4 b2 ~", L: "~@6 [g#3,b3,e4]@4 e2 ~@7 [g#3,b3,e4]@4 ~@2",
  M: "~@4 a2 ~ [a3,c4]@5 ~@5 a2 ~ [a3,c4]@4 a2 ~", N: "~@6 [b3,d4]@4 b2 ~@7 [g#3,b3,e4]@4 ~@2",
  O: "~@4 a2 ~ [a3,c4]@3 ~@7 b2 ~ [b3,d4]@4 b2 ~", P: "~@6 [c4,e4]@4 c3 ~@5 d3 ~ [a3,d4,f#4]@4 d3 ~",
  Q: "~@4 g2 ~ [g3,b3]@3 ~@9 [g3,b3]@4 ~@2", R: "~@6 [a3,c4]@4 ~@6 g2 ~ [a3,c4]@4 g2 ~",
  S: "~@4 g2 ~ [g3,b3]@4 ~@6 g2 ~ [g3,b3]@4 g2 ~", T: "~ [g2,g3,b3,d4] [a2,a3,c4] [d4,f4], ~@6 e4@2 ~ [b2,b3]@2 ~",
  U: "~@4 c3 ~ [c4,e4]@4 c3 ~@5 c3 ~ [c4,e4]@4 c3 ~", V: "~@4 g3 ~ [b3,d4]@4 g3 ~@5 g3 ~ [b3,d4]@4 g3 ~",
  W: "~@4 e3 ~ [b3,d4]@4 e3 ~@5 e3 ~ [b3,d4]@4 e3 ~", X: "~@6 [c4,e4]@4 a3 ~@5 a3 ~ [c4,e4]@4 a3 ~",
  Y: "~@4 d3 ~ [c4,e4]@4 d3 ~@5 d3 ~ [c4,e4]@4 d3 ~", Z: "~@6 [b3,d4]@4 g3 ~@5 g3 ~ [b3,d4]@4 g3 ~",
  AA: "~@4 g3 ~ [b3,d4]@4 ~@2 [c4,e4]@4 ~@2 d4@5 ~, ~@6 f4 ~", AB: "~@4 c3 ~ [c4,e4]@3 ~@7 c3 ~ [c4,e4]@4 c3 ~",
  AC: "~@4 c3 ~ [c4,e4]@4 c3 ~@5 c3 ~ [c4,e4]@4 ~@2", AD: "~@6 [b3,d4]@4 g3 ~@7 [b3,d4]@4 g3 ~",
  AE: "~@4 e3 ~ [b3,d4]@4 ~@6 e3 ~ [b3,d4]@4 e3 ~", // Bm
  AF: "~@4 [f5,d6] ~ [f#5,d6]@3 [g5,d6] ~@2 d6 ~@3 f#5@2 ~ [f5,f#5] ~ d5@2 ~, ~@11 f5@4 ~@3 d6@2 ~@4", // Dm D G5 F#maj7
  AG: "~@4 g2 ~ [g3,b3]@4 ~@6 [a4,c5]@2 [g3,b3]@2 [b4,d5]@3 ~", // G Am G Bm
  AH: "[c5,e5]@3 ~ [d5,f5]@2 [a3,c4]@4 ~@2 [d5,f5]@3 ~ [e5,g5]@2 [a3,c4]@5 ~, ~@4 a2 ~@11 e2 ~ d2@3 ~@3", // C Dm Am Dm Em Am
  AI: "[e5,g5]@3 ~@5 e5 ~ g2 ~ [c5,e5]@3 ~ d5@2 ~@2 d5@2 g2 ~, ~@6 [g3,b3]@4 ~@6 g2 ~ [g3,b3]@4 ~@2", // Em C G
  AJ: "~@4 [b4,d5]@2 [a3,c4]@4 ~@6 [a4,c5]@2 [a3,c4]@4 g2 ~, ~@16 e2 ~ d2@2 ~@4", // Bm Am
  AK: "b4@3 ~ g2 ~@3 [b4,d5]@2 ~@6 b4 ~ [g3,b3]@3 ~@3, ~@3 [g3,b3]@2 ~@7", // Bm G
  AL: "~@4 a2 ~ [a3,c4]@4 ~@6 e2 ~ d2@2 [f5,a5]@3 ~, ~@15 [e5,g5]@3 [a3,c4]@5 ~", // Am F Em Am
  AM: "[g5,b5]@3 ~ f5@2 ~@2 g5@2 g2 ~ [e5,g5]@4 f5@2 ~@2 [d5,f5]@2 g2 ~, ~@6 [g3,b3]@4 ~@6 g2 ~ [g3,b3]@4 ~@2", // G Em Dm G
  AN: "~@4 [c5,e5]@2 [a3,c4]@4 ~@2 [b4,d5]@3 ~ e2 ~ d2@2 [b4,d5]@2 g2 ~, ~@18 [a3,c4]@5 ~", // C Am Bm Am
  AO: "~@4 g2 ~ [g3,b3]@4 ~@2 [g5,b5]@3 ~ [a5,c6]@2 [g3,b3]@2 [b5,d6]@2 ~@2", // G Am G Bm
  AP: "~ [b5,d6]@3 a2 ~@3 b5@2 ~@2 [g5,b5]@4 c6@2 [a3,c4]@5 ~, ~@6 [a3,c4]@4 ~@6 e2 ~ d2@3 ~@3", // Bm G Am
  AQ: "[d6,f6]@3 ~@5 [b5,d6]@2 g2 ~ [b5,d6]@3 ~ [d6,f6]@2 [g3,b3]@4 g2 ~, ~@6 [g3,b3]@4 ~@6 g2 ~@7", // Dm Bm Dm G
  AR: "[c6,e6]@3 ~@5 [b5,d6]@3 ~ a5@3 ~ [g5,b5]@2 [a3,c4]@4 g2 ~, ~@6 [a3,c4]@4 ~@6 e2 ~ d2@2 ~@4", // C Bm G Am
  AS: "[f5,a5]@3 ~ g2 ~@3 [d5,f5]@2 ~@2 [d5,f5]@4 e5@2 [g3,b3]@3 ~@3, ~@3 [g3,b3]@2 ~@7", // F Dm G
  AT: "~@4 a2 ~ [a3,c4]@4 ~@2 [g4,b4]@3 ~ [a4,c5]@2 d2@2 [b4,d5]@2 ~@2, ~@16 e2 ~ [a3,c4]@5 ~", // Am G Am Bm Am
  AU: "[c5,e5]@3 ~@5 [c5,e5]@2 g2 ~ [d5,f5]@3 ~ g2 ~@2 [d5,f5]@2 ~ g2 ~, ~@3 [g3,b3]@2 ~@4 [g3,b3]@2 ~", // C Dm G
  AV: "[e5,g5]@4 ~@2 [a3,c4]@4 ~ [c5,e5]@4 ~ [e2,d5] ~ d2@2 [b4,d5]@2 g2 ~, ~@18 [a3,c4]@5 ~", // Em Am C E7 Bm Am
  AW: "c5@2 ~@2 [a4,c5]@2 ~@2 b4@3 ~ b4@3 ~ [a4,c5]@2 [g3,b3]@2 b4@2 ~@2, ~@4 g2 ~ [g3,b3]@4 ~@14", // Am G
})).s("gm_piano").gain(0.27).pan(0)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  ~@8 A B C ~@5 D ~ C E ~ F ~ G F H I J D K L ~@7 M N O P Q R ~@4 D ~ C E D ~ C E ~ F ~ G F H I J D K L ~@7 M N O P Q R
  ~@4 D ~ C E D ~ C E ~@8 D ~ C E D S T U V ~ W X D Y Z AA AB ~ AC AD AE ~ C E D ~ C E D ~ C E ~@4
>`.pickRestart({
  A: "~@4 g2 ~@11 g2 ~@5 g2 ~", B: "~@4 g2 ~@5 g2 ~@5 g2 ~@5 g2 ~", C: "~@4 g2 ~@19", D: "~@10 g2 ~@5 g2 ~@7",
  E: "~@4 a2 ~@5 a2 ~@13", F: "~@10 a2 ~@13", G: "~@4 e2 ~@11 e2 ~@5 e2 ~", H: "~@12 e2 ~@3 e2 ~@5 e2 ~",
  I: "a3 ~@9 a2 ~@13", J: "~@4 c3 ~@19", K: "~@4 g2 ~@5 g2 ~@13", L: "~@10 g2 ~@13", M: "~@4 g3 ~@19",
  N: "~@10 g3 ~@13", O: "~@10 c3 ~@13", P: "~@22 c3 ~", Q: "~@4 g3 ~@11 g3 ~@7", R: "~@10 e3 ~@13",
  S: "~@4 [c5,e5] ~@5 [d5,f5] ~", T: "~@4 [d5,f5]@3 ~@2 c5@2 ~@5 b4@3 ~ b4@2 ~@2, ~@4 g2 ~@19",
  U: "[a4,c5]@2 ~@2 a2 ~@3 [a4,c5]@2 a2 ~ [g4,b4]@3 ~@6 g4 ~@2", V: "g4@4 [a4,c5]@2 ~@4 g2 ~ [a4,c5]@2 ~@2 [g2,d5] ~@7",
  W: "~@4 a5@3 ~ e5@3 ~@5 d5@3 ~@5, ~@4 g2 ~@19", X: "c5@3 ~ a2 ~@3 [b4,d5]@2 a2 ~@4 [a4,c5]@3 ~@6, e5 ~@23",
  Y: "~@4 [a5,c6]@3 ~ g5@3 ~@5 a5@3 ~ g5 ~@3", Z: "~@4 [c6,e6]@3 ~@13 e6@2 ~@2, ~@4 g2 ~@15 c6 ~@3",
  AA: "~@4 c6@4 ~@2 a2 ~ c6@2 ~@10, ~@2 e6 ~@9, ~@4 a2 ~@19",
  AB: "~@4 e5@2 ~@4 g2 ~@5 g5@3 ~ d5 ~@3, ~@4 g5 ~@11 g2 ~@7", AC: "~@4 [g2,b4,d5] ~@11 [c5,e5]@2 ~@6",
  AD: "~@4 a2 ~@3 c5@2 a2 ~@6 b4@2 ~@5, ~@3 [d5,f5]@3 ~ e5@2 ~@15", AE: "a4@3 ~@5 g4@2 g2 ~ g4@4 g2 ~@3 g4@2 ~@2",
})).s("gm_piano").gain(0.16).pan(0)

// chords · pad warm · "WARM PAD"
const pad_warm = note("<~@22 A@4 B C D@4 ~@32 E@2 F@2 ~@68>".pickRestart({
  A: "[[d4,f#4]@24 [c4,e4]@11 [d4,f#4]@13]/4", B: "[c4,e4] [d4,f#4]", C: "[e4,g4] [f#4,a4]",
  D: "[[g4,b4]@11 [f4,a4]@13 [b3,g4]@15 ~@9, d4@13 ~@3]/4", E: "[~@11 [f4,a4]@13]/2", F: "[[b3,g4]@5 ~@3]/2",
})).s("gm_pad_warm").gain(0.27).pan(0.6)

// other · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note("<~@16 A ~ B ~ C D E F ~@88 A ~ B ~ C D E F A ~ B ~ C D E F ~@8>".pickRestart({
  A: "~@6 d5@2 ~@8 d5@2 d5@4 d5 ~", B: "~@4 d5@2 d5@2 ~@2 d5 ~ d5 ~ d5@2 d5 ~ d5 ~@5", C: "~@16 d5 ~ d5@2 d5@2 d5 ~",
  D: "~@6 d5@3 ~ d5 ~@9 d5@2 d5 ~", E: "d5@2 ~@2 d5 ~@3 d5 ~@3 d5 ~@3 d5@2 ~@2 d5 ~@3", F: "d5 ~@23",
})).s("gm_acoustic_guitar_nylon").gain(0.16)

// other · acoustic guitar nylon · "NYLON GTR" · soft notes
const acoustic_guitar_nylon_2 = note("<~@18 A ~@3 B ~@91 A ~@3 B ~@3 A ~@3 B ~@9>".pickRestart({
  A: "~@20 d5 ~ d5@2", B: "~@22 d5 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.11)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@9 A B@2 C D@3 E F G H I J ~ K ~ L M N ~@4 O P Q R S T U V@2 W X ~ C Y@3 E F G H E F G H I J Z@2 AA ~ M N ~@4 O P Q R
  S T U V@2 W X ~ C Y@3 E F G H E F AB AC C AD@3 C AE@3 E F G H E F G H E F G H E F G H E F G H E F G H E F G H E F G H
  C D@3
>`.pickRestart({
  A: "~@4 a#3@6 ~@7 b4 ~@6", B: "[~@11 [d4,a4]@13]/2", C: "[d4,g4]",
  D: "[[c4,f4]@13 ~@5 [b3,e4]@4 [a3,d4,d5,a5]@49 ~]/3", E: "~@3 [g4,b4] ~@5 [g4,b4] ~@2",
  F: "~@6 [g4,c5]@3 ~ g4 ~@7 [g4,c5]@3 ~ g4 ~", G: "~@6 [g4,b4] ~@11 [g4,b4]@2 ~@4",
  H: "~@6 [g4,c5]@3 ~ g4 ~@7 [g4,c5]@2 ~@2 g4 ~", I: "~@6 [g4,b4] ~@11 [g4,b4] ~@5",
  J: "~@6 [g4,c5]@3 ~ [g4,c5] ~@7 [g4,c5] ~@5", K: "~@3 c#5 [d#4,c5] [d4,b4], ~@9 e4@7 ~@8", L: "~@10 b3@2 d4@4 b4 ~@7",
  M: "~@4 g3 ~@3 g3 ~ g3 ~ g3@3 ~ g3 ~@3 g3 ~ g3 ~", N: "g3@3 ~ g3@2 ~@2 g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~",
  O: "~@4 g3 ~ c4@4 e4 ~@7 c4@4 e4 ~", P: "~@6 e4@4 a4@2 ~@6 c4@3 ~ g4 ~", Q: "~@6 b3@4 d4 ~@13, ~@6 a#3 ~@17",
  R: "~@6 b3@4 d4 ~@7 b3@4 d4 ~", S: "~@4 e3 ~ g3@4 c4 ~@7 a3@4 c4 ~", T: "~@6 c4@4 e4 ~@7 c4@4 [g3,b3] ~",
  U: "~@4 d3 ~ g3@4 b3 ~@7 b3@4 d4 ~", V: "[~@6 b3@3 ~ g4 ~@7 g4@3 ~ [c4,e4]@6 g4 ~@7 e4@4 g4 ~@7, ~@8 g3@3 ~@13]/2",
  W: "~@4 c4 ~ e4@4 a4 ~@7 c4@4 g4 ~", X: "~@6 b3@4 d4 ~@7 b3@3 ~ d4 ~",
  Y: "[[c4,f4]@13 ~@3 [b3,e4]@2 ~@6 [a3,d4]@48, ~@22 [d5,a5]@49 ~]/3", Z: "[~@6 d4@2 ~ b4@9 e4@3 d4@3, ~ e4 ~]/2",
  AA: "c4 ~@7", AB: "~@5 d4@3 b4@3 d4", AC: "c5 b4 g4 b4@2 ~ g4 ~@5, ~@5 d4@2 ~@5",
  AD: "[[c4,f4]@13 ~@5 [b3,e4]@4 [a3,d4]@25 ~ [e4,a4]@4 [e4,a4]@3 [e4,a4] ~ [e4,a4]@2 [g4,a4] ~ g4 ~ d4@3 e4@5 ~, ~@22 [d5,a5]@49 ~, ~@48 a3@10 ~ a3@11 ~@2, ~@48 d4 ~@10 d4@2 ~ e4@2 ~@8]/3", // F5 E5 D5 A5 Gsus2 D5
  AE: "[[c4,f4]@13 ~@5 [b3,e4]@4 [a3,d4,d5,a5]@44 ~@6]/3", // F5 E5 D5
})).s("gm_overdriven_guitar").gain(0.27).pan(0.9)

// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note(`<
  ~@9 A ~@7 B ~ C ~@29 B ~ C ~ B ~ C ~@29 B ~ C ~ B ~@11 B ~ C ~ B ~ C ~ B ~ C ~ B ~ C ~ B ~ C ~ B ~ C ~ B ~ C ~ B ~ C
  ~@4
>`.pickRestart({
  A: "~@11 g3@2 ~@11", B: "~@10 c5 ~@13", C: "~@10 c5 ~@11 c5 ~",
})).s("gm_overdriven_guitar").gain(0.16).pan(0.9)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
  ~@9 A ~@2 B C@3 ~@2 D ~ D ~@2 E@2 ~@3 F G@2 ~@13 B H I@3 ~ D ~@3 D ~ D ~@2 E@2 ~@3 F G@2 ~@13 B H I@3 ~ D ~@3 D J K
  L@2 M K C@3 ~@2 D ~@3 D ~@3 D ~@3 D ~@3 D ~@3 D ~@3 D ~@3 D ~ K C@3
>`.pickRestart({
  A: "a#3@6 g3@2 ~@4 b4 ~@11", B: "a2 g2, g2 ~@23", C: "[f2@16 e2@2 a2@4 d3@49 ~]/3", D: "~@16 g3@2 g3 ~ g3 ~ g3 ~",
  E: "[~@24 a2@7 ~@11 g3@2 g3@2 g3@2, ~@6 e3@3 ~@7]/2", F: "~@6 g3@4 g3 ~@7 g3@2 ~@4",
  G: "~@6 g3 ~ g3 ~ g3 ~@3 g3 ~@3 g3@3 ~ g3 ~", H: "f2@6 ~@2 e2 ~@3", I: "[d3@49 ~@23]/3", J: "~ g3", K: "a2 g2",
  L: "[f2@8 e2 a2@2 d3@13]/2", M: "d3@4 d3@3 ~ d3@3 ~ d3@8 ~@2 d3@2",
})).s("gm_overdriven_guitar").gain(0.27)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@16 A B C D C E F ~@25 A B C D A B C D C E F ~@25 A B C D A B C D ~@8 A B C D A B C D A B C D A B C D A B C D A B C D
  A B C D A B C D ~@4
>`.pickRestart({
  A: "~@6 [d4,b4] ~@11 [d4,g4,b4] ~@5", B: "~@6 [e4,g4,c5] ~@3 g4 ~@7 e4@4 [g4,c5] ~, ~@9 c5 ~@2, ~@18 g4 ~@5",
  C: "~@6 [d4,g4,b4] ~@11 [d4,g4,b4] ~@5", D: "~@6 [e4,c5]@3 ~ g4 ~@7 e4@4 g4 ~, ~@6 g4 ~@11 c5@2 ~@4, ~@18 g4 ~@5",
  E: "~@6 [e4,g4,c5]@2 ~@2 g4 ~@7 [g4,c5]@2 ~@2 g4 ~, ~@9 e4@2 ~", F: "~@6 [f#4,b4] ~@11 f#4 ~@5",
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.7)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note(`<
  ~@16 A B ~ C ~ C D ~@25 A B ~ C A B ~ C ~ C D ~@25 A B ~ C A B ~ C ~@8 A B ~ C A B ~ C A B ~ C A B ~ C A B ~ C A B ~ C
  A B ~ C A B ~ C ~@4
>`.pickRestart({
  A: "~@6 g4 ~@17", B: "~@10 c5 ~@13", C: "~@10 c5 ~@11 c5 ~", D: "~@18 b4 ~@5",
})).s("gm_electric_guitar_clean").gain(0.16).pan(0.7)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  A@3 B@3 C@6 ~@20 D@6 E@6 ~@9 F ~ G ~ H@2 I ~ I ~@6 D@6 E@6 ~@21 F ~ G ~@5 F ~ G ~@5 F ~ G ~@5 F ~ G ~ F ~ G ~@4
>`.pickRestart({
  A: "[~@8 [g2,g3,b3]@37 [d2,f#3,a3]@27, ~ d3@8]/3", B: "[~@9 [c3,e3,g3,c4]@37 [d2,d3,f#3,a3]@26]/3",
  C: "[~@11 [g2,d3,g3,d4]@133]/6", D: "[e4@2 ~ b3 [c4,e4]@2, g4, ~@48 d4@49 ~@47]/6",
  E: "[[b3,d4]@36 [c4,e4]@5 ~ d4@5 [c4,e4]@48 [b3,d4]@48 ~, ~@41 b3@6 ~@97]/6", F: "~@12 g5@11 ~, ~@11 g3@11 ~@2",
// … 134 more lines

More by McCartney