Strudelify
Rock Show cover art

Venus And Mars

Rock Show

McCartney

KeyA majorTempo130 bpm
0:00/0:00
// Rock Show — McCartney
// 130 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 188 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano · "A.PIANO 1"
const piano = note(`<
  A B A C D@2 E@3 F G H E@5 F G H E@2 I ~ J ~ I K@2 ~ L@2 M N O P O Q R S R T U V U V U W@2 X U V U V Y Z AA AB AC AD AE
  AF AG AF AH@2 ~ L@2 AA@2 AI@11 AJ AK@4 AL AM AN@2 AO AP AQ AR AO AS AT AU O@3 AV AA AW AX AY AZ BA AZ BA AZ BB@2 ~
  BC@2 AA@2 BD BE BF BG BH O BI O BI O BI O BI O BI O BI O BI O BI O BJ ~@4 BK@2 BL BM BN BO BP BM BQ BM BL BM BL BR BL
  BR BL BR BL BR BL BR BL BR BL BR BL BR BL BR BL BR BL BR BL BR BL BS@4 ~
>`.pickRestart({
  A: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,a4]@2 [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~, ~@4 e4 ~@11", // A F#m A
  B: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [d4,f#4,a4] ~@3 [d4,f#4,a4] ~@3", // A D
  C: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4] ~ [c#4,e4] ~ [f#4,a4]@2 ~@2 [e4,a4]@2 ~@2, ~@4 a4@2 ~@2 d4 ~@3 c#4 ~@3", // A C#m F#m A5
  D: "[[b3,e4,g#4]@9 ~@7]/2", E: "[e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~",
  F: "[e5,a5] ~ [e5,a5] ~ [d5,g5] ~ [d5,g5] ~ [c#5,f#5] ~ [c#5,f#5] ~ [c5,f5] ~ [c5,f5] ~", // A5 G5 F#5 F5
  G: "[b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~", // E5
  H: "[b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [d5,g5] ~ [d#5,g#5] ~", // E5 G5 G#5
  I: "~@2 [d4,f#4,a4] ~ [d4,f#4,a4]@3 ~", J: "~@2 [d4,f#4,a4] ~ [d4,f#4,a4]@4",
  K: "[[e4,e5]@2 [f#4,f#5]@2 [g#4,g#5]@2 [a4,a5]@4 b4@2 [c5,c6]@2 [c#5,c#6]@17 ~, ~@10 b5 ~@21]/2", // E F# G# A C C#
  L: "[~@6 [e4,a4,c#5]@7 ~ [d#4,g#4,b4]@7 ~ [c#4,f#4,a4]@9 ~]/2", // A G#m F#m
  M: "[e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [a4,e5,a5] ~ [a#4,e5,a#5] ~ [b4,e5,b5] ~", // E5 A5 A#dim E5
  N: "[e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [f#5,b5,f#6] ~ [f#5,b5,f#6]!2 [g#5,b5,g#6]@2 [g#5,b5,g#6]@2", // E5 B5 G#m
  O: "[a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~", // A5
  P: "[a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,d6,f#6]@3 ~ [a5,d6,f#6]@3 ~", // A5 D
  Q: "[a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,d6,f#6]@3 ~ [a5,c#6,e6]@3 ~", // A5 D A
  R: "[d5,f#5]@4 a4@2 ~@4 a4 ~ a4@4, ~@3 [c#5,e5]@3 ~@2", S: "[b4,d5]@2 a4 ~@2 a4 a4@2, ~@6 [c#5,e5]@7 ~@3",
  T: "[b4,d5]@4 a4@2 ~@4 a4 ~ a4@2 ~@2, ~@6 [c#5,e5]@7 ~@3", U: "[d5,f#5]@2 a4 [c#5,e5]@3 a4@2",
  V: "[b4,d5]@2 a4 [c#5,e5]@3 a4@2", W: "[[b4,d5]@4 ~@2 [d5,g5]@25 ~, ~@4 b4@27 ~]/2",
  X: "[d5,b5]@5 ~ [d5,b5]@6 [e5,c#6]@3 ~", Y: "[d#4,f#4,a4,b4] ~@7", Z: "[d#4,f#4,a4,b4] ~ [f#4,a4,b4] ~@13, ~ d#4 ~@6",
  AA: "[e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~", // E5
  AB: "[e5,b5,e6] ~@15", AC: "~@10 [b3,b4]@2 c5@2 [c#4,c#5] ~, ~@12 c4 ~@3",
  AD: "[d4,a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~", // D
  AE: "[a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~", // A
  AF: "~@4 [a4,d5,f#5]@2 ~@2 [a4,d5,f#5]@7 ~", // D
  AG: "[a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,d5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,d5,f#5] ~ [a4,c#5,e5] ~, ~@2 f#5 ~@5", // A D5 A D A
  AH: "[[e4,e5]@2 [f#4,f#5]@2 [g#4,g#5]@2 [a4,a5]@4 b4@2 [c5,c6] ~ [c#5,c#6]@12 ~@6, ~@10 b5 ~@21]/2", // E F# G# A C C#
  AI: "[a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4]@2 ~@6", // A5
  AJ: "[a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4]@2 ~@2 [a#3,f4]@3 ~", // A5 A#5
  AK: "[b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ b3@2 ~@6, ~@8 f#4 ~@7", AL: "[b3,e4,g#4]@6 ~@2 [a3,d4,f#4]@7 ~",
  AM: "[g4,c5,e5]@3 ~ [f#4,b4,d#5]@3 ~", AN: "[[e4,a4,c#5]@25 ~ [d4,g4,b4]@6]/2",
  AO: "~@2 [e5,b5,e6] ~ [e5,b5,e6] ~@3 [g4,d5,g5] ~ [g4,d5,g5] ~@3 [d5,a5,d6] ~", // E5 G5 D5
  AP: "[d5,a5,d6] ~@3 [c5,g5,c6]@5 ~ [f#4,a4,d5]@4 ~@2", // D5 C5 D
  AQ: "[e4,a4] ~ a4 ~ [e4,a4] ~ [f#4,a4] ~, e5@13 ~@3, ~@4 f#4 ~@11", // A5 F#m
  AR: "[e4,a4]@2 ~@2 [f#4,a4] ~ [d7,e7,f7,g7] [e6,f6,g6,a6,b6,c7] [e5,f5,g5,a5,b5,c6,d6] [b4,c5,d5] [g4,g5,d6]@4 ~@2", // A5 F#m Em7 Cmaj7 Em7 Bm G5
  AS: "[d5,a5,d6]@2 ~@2 [c5,g5,c6]@5 ~ [a4,d5,f#5,a5]@5 ~", // D5 C5 D
  AT: "[e3,a3,e4] ~ [e3,a3,e4] ~ [a3,f#4] ~@3 [e3,a3,e4]@2 ~@2 [f#3,a3,f#4]@2 ~@2, ~@2 f#3 ~@5", // A5 D A5 F#m
  AU: "[e3,a3,e4]@2 ~@2 [f#3,a3,f#4]@2 [e3,a3,e4]@2 ~@2 [e3,a3,e4] ~ [f#3,a3]@2 ~@2, ~@12 f#4 ~@3", // A5 F#m A5 F#m
  AV: "[a5,e6,a6] ~ [a5,e6,a6] ~ [g5,c#6,g6] ~ [g5,c#6,g6] ~ [f#5,c#6,f#6] ~ [f#5,c#6,f#6] ~ [f5,c#6,f6] ~ [f5,c#6,f6] ~", // A5 Gdim F#5 C#
  AW: "[e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~@3 [e5,b5,e6] ~ [g5,d6,g6] ~ [g#5,d#6,g#6] ~", // E5 G5 G#5
  AX: "[a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6]@4 ~@2", // A5
  AY: "[a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~@5", // A5
  AZ: "~@2 [a4,d5,f#5] ~ [a4,d5,f#5]@3 ~", // D
  BA: "[e5,e6] ~ [e5,a5,e6] ~ [e5,a5,e6] ~ [e5,a5,e6] ~ [e5,a5,e6] ~ [e5,a5,e6] ~ [e5,a5,e6] ~ [e5,a5,e6] ~, a5 ~@7", // E A5
  BB: "[[c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,f#5]@25 ~, a4 ~@15]/2", // C#m A F#m
  BC: "[~@6 [e4,a4,c#5]@7 ~ [d#4,g#4,b4]@7 ~ [c#4,f#4,a4]@7 ~@3]/2", // A G#m F#m
  BD: "~@4 [f#5,a5] ~@3 [d5,f#5,a5]@5 ~@3, ~@2 d5 ~@5", // F#m D
  BE: "[a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,f#5] ~ [a4,e5,a5] ~, ~@6 a5 ~", // A5 D A5
  BF: "~@4 [f#5,a5] ~@3 [d5,f#5,a5]@4 [d5,f#5,a5]@2 a4 ~, ~@2 d5 ~@5", // F#m D
  BG: "~@2 [e4,e5]@2 [f#4,f#5]@2 [a4,a5]@3 ~ [e4,e5]@2 f#4@2 [a4,a5]@2, ~@12 f#5 ~@3", // E F# A E A
  BH: "~@2 [d5,f#5,a5] ~ [d5,f#5,a5]@4", // D
  BI: "[a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~", // D
  BJ: "[a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~@3", // D
  BK: "a1 ~ a2 ~ a1 ~ a2 ~", BL: "a1@2 ~@2 a2@2 c#4@2 a1@2 ~@2 [a2,c4]@2 c#4 ~, ~@4 c4 ~@3 e4@7 ~",
  BM: "[b3,d4,g4] ~@3 [b3,d4,g4] ~@3 a1@2 ~@2 a2@2 ~@2, a1 ~ a2 ~ [a3,d4,f#4]@3 ~", // G D
  BN: "a1@2 ~@2 [a2,c4]@2 c#4@2 a1@2 ~@2 [a2,c4]@2 c#4 ~, ~@4 e4@3 ~", // Am
  BO: "[b3,d4,g4] ~@3 [b3,d4,g4] ~@3 a1@2 ~@2 a2@2 ~ [d#3,c4], a1@2 ~@2 a2@2 ~@2 [a3,d4,f#4]@7 ~", // G Cm D
  BP: "c#4@4 a2@2 c#4@2 a1@2 ~@2 [a2,c4]@2 c#4 ~, e3@3 ~, a1@2 ~@2 c4 ~@3 e4@7 ~", // Am
  BQ: "a1@2 ~@2 [a2,c4]@2 ~@2 a1@2 ~@2 [a2,c4]@2 c#4 ~, ~ e4@3 e4@4, ~@3 c#4@3 ~@2", // Am
  BR: "[b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [d1,a3,d4,f#4]@7 ~, g1@7 ~@9", // G D
  BS: "[[b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [d1,a3,d4,f#4]@7 ~@2 a1@46 ~, g1@7 ~@8 a2@48 ~, ~@16 [e3,a3,c#4,e4]@47 ~]/4", // G D A
})).s("gm_piano").gain(0.38).pan(0.7)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A@2 B@2 C@2 D E F G H I J@2 K@2 L@2 M I N@2 O F O P O Q R S@3 T U F V W@2 X@4 Y@2 Z@2 AA AB AC@2 X@4 AD AE AF AG AH O
  P AI P O Q AJ AK@2 AL M AM AN@8 AO@3 AP AQ@2 AR AS AT AU AV@2 AW@2 AX AY AW@2 AX AZ F P BA@2 BB I BC@2 O F BD BE BD Q
  S BF@2 BG BH@2 O F O P O BI BJ BK BJ BK BL F BL BM BN F BN BO BN F BP@2 BQ@2 ~@13 BR@2 BS BT BU BT BV BT BW BT BS BT
  BX BY BW BT BZ BY CA BY BW BY BW BT CB BY CB BY CC@3 CD
>`.pickRestart({
  A: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 d2!2 d2@2]/2", B: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 d2@2 a1@2]/2",
  C: "e2/2", D: "a1@2 c2 c#2 e2!2 f#2 a2", E: "a2 a1 c2 c#2 e2!2 f#2 e2", F: "a1!2 c2 c#2 e2!2 f#2 a2",
  G: "a1!2 c#2!2 e2!2 g1 f#1", H: "e1!2 f#1 g1 g#1 b1 c#2 e2", I: "e2!2 g1 g#1 e1!2 g1 g#1",
  J: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 a1!2 e1 f#1]/2", K: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a2 c2 c#2 e2!2 f#2 e2]/2",
  L: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a2 c2 c#2 e2!2 g1 f#1]/2", M: "e1!3 g1 g#1 b1 c#2 e2",
  N: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 a1!2 b1 a1]/2", O: "d2!6 c2 b1", P: "a1!2 c2 c#2 e2!2 f#2 e2",
  Q: "a1 c#2 e2 f#2@2 f#1!3", R: "e1 f#1!2 e1 f#1!4", S: "e1 f#1!3 e1 f#1!3", T: "e1!5 f#1 g#1 b1",
  U: "c#2 e2!5 f#2 e2", V: "a2 a1 c2 c#2 d2!3 c2", W: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 d2@2 a1!2]/2", X: "d2/2",
  Y: "[d2@3 d2@13]/2", Z: "[~@3 d2@13, d3]/2", AA: "d2", AB: "d2 e2 f#2 g2@2 d2 b1@2",
  AC: "[g1@21 g1!3 g1@2 g1@2 a1@4]/2", AD: "b1 ~@3", AE: "b1@2 b1@3 ~@11", AF: "e1!3 f#1 g#1 b1 c#2!2", AG: "e2@3 ~@13",
  AH: "~@3 e1!3 b1 c#2", AI: "d2!5 c2!2 b1", AJ: "f#1!8", AK: "f#1!3 e1 f#1!3 e1", AL: "f#1!3 e1 f#1!3 f1",
  AM: "e2 g1 g#1 b1 e1!2 g1 g#1", AN: "a1!5 ~@3", AO: "a1!5 ~@2 a1", AP: "a1!6 a#1@2", AQ: "b1!5 ~@2 b1",
  AR: "b1!5 ~@3", AS: "b1!5 a1 b1@2", AT: "e2 d2", AU: "c2@8 b1@7 ~", AV: "[a1@25 ~ g1@6]/2",
  AW: "[e1@6 g1@6 d2@6 c2@7 ~ d2@6]/2", AX: "a1!8", AY: "a1@2 a1@2 a1@2 a1@3 ~ g1@5 ~", AZ: "a1!6 g#1 a1",
  BA: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 e2!2 g1 f#1]/2", BB: "e1!2 g1 g#1 b1!2 c#2 e2",
  BC: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 a1!2 c2 c#2]/2", BD: "~@2 d2@2 d2@3 ~ d2@2 d2@2 c2@2 b1@2",
  BE: "a1@2 a1@2 a1@2 c#2@3 ~ e2@2 f#2@2 a2@2", BF: "f#1!4 e1 f#1!3", BG: "f#1!3 e1@2 f#1 e1 f#1",
  BH: "[e2!7 e2@2 e1 g1 g#1 b1!2 c#2 e2]/2", BI: "a1!3 c2 c#2 e2 f#2 a2", BJ: "d2!5 f#1 g1 a1", BK: "a1!6 c2 c#2",
  BL: "d2!5 f#1 g#1 a1", BM: "a1!5 c2 c#2 e2", BN: "d2!5 c2 b1 a1", BO: "a1!2 c2 c#2 a1!2 c2 c#2",
  BP: "[d2!5 c2 b1 a1@2 a1 g1!2 f#1!2 e1!2]/2", BQ: "[d2!5 f#1 g1 a1@9]/2", BR: "[~ a2@5 a2@2, a1@7 ~@25]/2",
  BS: "a1@4 a2@3 a2", BT: "g2 d2", BU: "a1@8 a2 ~ a2@4 g#2@2", BV: "a1@4 a1@2 a2 g#2", BW: "a1@4 a2@3 g#2",
  BX: "a1@4 ~ a2@2 g#2", BY: "g2 ~ g2 ~ d2@4", BZ: "a1@9 ~ a2@4 a2@2", CA: "a1@5 ~ a2 g#2",
  CB: "a1@2 c2 c#2 e2@2 c2 c#2", CC: "[a1@47 ~]/3", CD: "a1 ~",
})).s("gm_fretless_bass").gain(0.45)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A B A C D E A F A G H I A J A K A L M I A N O A O P O Q R S@3 T U A V A W X ~@15 Y Z AA D AB O P AC P O AD AE AF@2 AG
  M AH AI@11 AJ AK@2 AL AM AN AO AP AQ AR AS AT AU AR AS AT AV A P A AW AX I A AY O A AZ BA AZ AD S BB@2 BC BD BE O A O
  P O BF BG BH BG BH BI A BG BJ BK A BK BL BK A BK BM BG ~@46
>`.pickRestart({
  A: "a2!2 c3 c#3 e3!2 f#3 a3", B: "~ a2 c3 c#3 d3 ~ d3 ~", C: "a2!2 c3 c#3 d3 ~ a2 ~", D: "e2 f2 f#2 g2 g#2 a2 a#2 b2",
  E: "c3 c#3 d3 d#3 e3 f3 f#3 d#3", F: "~ a2 c3 c#3 e3!2 f#3 e3", G: "a2!2 c3 c#3 e3!2 g2 f#2",
  H: "e2!2 f#2 g2 g#2 b2 c#3 e3", I: "e3!2 g2 g#2 e2!2 g2 g#2", J: "~ a2 c3 c#3 a2!2 e2 f#2",
  K: "~ a3 c3 c#3 e3!2 f#3 e3", L: "~ a3 c3 c#3 e3!2 g2 f#2", M: "e2!3 g2 g#2 b2 c#3 e3", N: "~ a2 c3 c#3 a2!2 b2 a2",
  O: "d3!6 c3 b2", P: "a2!2 c3 c#3 e3!2 f#3 e3", Q: "a2 c#3 e3 f#3 ~ f#2!2 e2", R: "e2 f#2!2 e2 f#2!4",
  S: "e2 f#2!3 e2 f#2!3", T: "e2!5 f#2 g#2 b2", U: "c#3 e3!5 f#3 e3", V: "a3 a2 c3 c#3 d3!3 c3",
  W: "~ a2 c3 c#3 d3 ~ a2!2", X: "d3 ~@7", Y: "b2 ~@7", Z: "b2!2 ~@6", AA: "e2!3 f#2 g#2 b2 c#3 b2",
  AB: "c3 c#3 d3 e3 e2!2 b2 c#3", AC: "d3!5 c3!2 b2", AD: "a2 c#3 e3 f#3 ~ f#2!3", AE: "f#2!8", AF: "f#2!3 e2 f#2!3 e2",
  AG: "f#2!3 e2 f#2!3 f2", AH: "e3 g2 g#2 b2 e2!2 g2 g#2", AI: "a2!5 ~@3", AJ: "a2!6 a#2 ~", AK: "b2!5 ~@2 b2",
  AL: "b2!5 ~@3", AM: "b2!5 a2 b2 ~", AN: "e3 ~@3 d3 ~@3", AO: "c3 ~@3 b2 ~@3", AP: "a2 ~@7", AQ: "~@5 g2 ~@2",
  AR: "e2 ~@2 g2 ~@2 d3 ~", AS: "~ c3 ~@3 d3 ~@2", AT: "a2!8", AU: "a2!5 g2 ~@2", AV: "a2!6 g#2 a2",
  AW: "~ a2 c3 c#3 e3!2 g2 f#2", AX: "e2!2 g2 g#2 b2!2 c#3 e3", AY: "~ a2 c3 c#3 a2!2 c3 c#3",
  AZ: "~ d3!2 ~ d3!2 c3 b2", BA: "a2!3 c#3 ~ e3 f#3 a3", BB: "f#2!4 e2 f#2!3", BC: "f#2!3 e2 ~ f#2 e2 f#2", BD: "e3!8",
  BE: "~ e2 g2 g#2 b2!2 c#3 e3", BF: "a2!3 c3 c#3 e3 f#3 a3", BG: "d3!5 f#2 g2 a2", BH: "a2!6 c3 c#3",
  BI: "d3!5 f#2 g#2 a2", BJ: "a2!5 c3 c#3 e3", BK: "d3!5 c3 b2 a2", BL: "a2!2 c3 c#3 a2!2 c3 c#3",
  BM: "~ a2 g2!2 f#2!2 e2!2",
})).s("gm_electric_guitar_muted").gain(0.38).pan(0.3)

// chords · flute
const flute = note(`<
  ~@10 A B@3 ~@4 A B@3 C ~ C ~ D ~@14 E F G H I J K@2 E F G H ~ L M@3 ~ C ~ C ~ D ~@39 A N@3 O ~ O ~ P ~@7 O ~ O ~ P ~ O
  ~ O ~ P ~ O ~ O ~ P ~ O ~ O ~ P ~@46
>`.pickRestart({
  A: "~ [e4,b4]!7", B: "[[d4,a4]@2 [d4,a4]@4 [b3,g#4]@3 ~@3 a4@2 a4@6 ~@8 e5@2 e5@6 ~@12]/3",
  C: "~@4 [d4,f#4]@2 ~@2 [d4,f#4]@5 ~@3", D: "~@4 [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]@5 ~@3", E: "~@7 f#4, ~@14 a3 ~",
  F: "[d4,a4]@4 [b3,a4]@2 [c#4,a4]@7 ~ [c#4,a4]@2", G: "[b3,g4] [b3,g4]@2 [a3,e4]@3 [a3,c#4]@2", H: "[f#3,a3,c#4]",
  I: "~@7 [a3,a4]", J: "[d4,a4]@4 [b3,a4] ~ [c#4,a4]@8 [a3,a4]@2", K: "[[b3,g4]@2 [b3,g4] [d4,b4]@13]/2",
  L: "a4@2 a4@2 a4@4 a4@3 ~ a4@2 g#4@2", M: "[a4@2 a4@3 ~ a4@4 g#4@2 a4@2 b4@19 ~@15]/3",
  N: "[[d4,a4]@2 [d4,a4]@4 [b3,g#4]@3 ~@3 a4@2 a4@6 ~@8 [c#5,e5] ~ [c#5,e5]@6 ~@12]/3", // D5 E C#m
  O: "~@4 [d4,f#4,d5]@2 ~@2 [d4,f#4,d5]@5 ~@3", P: "~@4 [d4,f#4,d5]@2 [d4,f#4,d5]@2 [d4,f#4,d5]@5 ~@3",
})).s("gm_flute").gain(0.3).pan(0.4)

// other · music box
const music_box = note("<~@38 A B C B C B C B D E ~@2 C B C B ~@134>".pickRestart({
  A: "d5@2 ~@4 c#5@2 ~@4 a4 ~@3", B: "b4@2 ~@4 c#5@2 ~@4 a4 ~@3", C: "d5@2 ~@4 c#5 ~@5 a4 ~@3",
  D: "d5 ~@5 c#5@2 ~@4 c#5@2 ~@2", E: "d5 ~ b4 g5 ~@4",
})).s("gm_music_box").gain(0.27).pan(0.4)

// other · tubular bells · "TUBULARBEL"
const tubular_bells = note("<~@30 A@2 ~@6 B C B C B C B D B E ~ F G H I H ~@134>".pickRestart({
  A: "[~@6 [e5,a5,c#6]@5 ~@3 [d#5,g#5,b5]@5 ~@3 [c#5,f#5,a5]@5 ~@5]/2", B: "d6@3 c#6@3 a5@2", C: "b5@3 c#6@3 a5@2",
  D: "b5@6 c#6@6 a5@3 ~", E: "b5@5 ~ b5@6 ~@4", F: "b5@3 ~@3 b5@2 ~@4 c#6@2 ~@2", G: "d6@5 ~ c#6@2 ~@4 a5@2 ~@2",
  H: "b5@2 ~@4 c#6@2 ~@4 a5 ~@3", I: "d6@3 ~@3 c#6 ~@5 a5@2 ~@2",
})).s("gm_tubular_bells").gain(0.22).pan(0.6)

// chords · church organ · "CHURCH ORG"
const church_organ = note("<~@83 A@5 ~@100>".pickRestart({
  A: "[[b4,f#5]@13 ~@3]/5", // B5
})).s("gm_church_organ").gain(0.16).pan(0.6)

// other · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note("<~@141 A@3 ~@20 B@2 C@2 D@2 E@2 D@2 C@2 D@2 E@2 D@2 E@2 F@3 G>".pickRestart({
  A: "[~@22 b5 [f#5,g5,a5] [c5,d5,e5] [g4,a4,b4] [d4,e4,f#4] [a#3,b3,c4] a3@4 [b3,c4] [d4,e4,f#4] [g4,a4,b4] [c5,d5,e5] a5@12, ~@7 [a1,e2,a2]@17, ~@36 f#5 ~@11]/3", // F#m C G D Cmaj7 D G C …
  B: "[[f#7,g7] [d#7,e7,f7] [c7,c#7,d7] [a6,a#6,b6] [f#6,g6,g#6] [d#6,e6,f6] [c6,c#6,d6] [a5,a#5,b5] g5@16 f#5@4 g5@2 f#5@2, ~@8 g#5 ~@23]/2", // Gmaj7
  C: "[e5@6 f#5 e5]/2", D: "[g5@12 f#5@2 g5 f#5]/2", E: "[e5@3 d5]/2", F: "[[a2,a4]@47 ~]/3", G: "[a4,a5,a6] ~",
})).s("gm_lead_2_sawtooth").gain(0.33).pan(0.6)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  A@2 B@2 C D E F G H I J K L M F G H I N K L O P O Q O R S T U@2 V@2 W X Y Z AA@8 AB@4 AC@4 AD AE AF AG AH O AI O AJ O
  AK AL AM AN@2 V@2 AO@11 AP AQ@4 AR AS AT@2 AU AV AT@2 AU AV AW@2 M AX G AY I AZ K L O BA O BB O BC BD BE BF@2 V@2 BG
  BH BI BJ O BK O BL O BM O BN O BO BI BP BI BQ BI BO BI BR BS@3 ~@11 BT BU BT BU BT BU BT BU BT BU BT BU BT BU BT BU BT
  BU BT BU BT BU BT BU BT BU BT BU BT BV@3 ~
>`.pickRestart({
  A: "[~@7 a3@4 ~ [d3,a3] ~ [d3,a3] ~, [a2,e3]@3 ~]/2", // D5 A5
  B: "[~@4 [a2,e3]@2 ~@2 [a2,e3] ~ [a2,e3]@2 ~@2 [a2,e3]@10 [d3,a3]@2 ~@2 [a2,e3]@4]/2", C: "e2 ~ f#2 ~ g#2 a2 a#2 b2",
  D: "c3 c#3 d3 d#3 e3 f3 f#3 d#3", E: "[a2,e3]@3 ~ [a2,e3,a3] ~@3 a2 ~ [a2,e3]@2 ~@4, a3 ~@15",
  F: "[a2,e3,a3] ~ [a2,e3,a3]@2 ~@2 a2@2 ~@2 [a2,e3]@2 ~@4", G: "~@4 [a2,e3,a3]@2 ~@4 [a2,e3]@2 ~@2 e3 ~",
  H: "~@2 [a2,e3,a3]@2 ~@2 [a2,e3,a3]@3 ~ e3 ~ [a2,e3,a3]@2 ~@2", I: "~@4 [e2,b2,e3]@2 ~@2 e3 ~ [e2,b2,e3]@3 ~@3",
  J: "[e2,b2,e3] ~ [e2,b2,e3]@2 ~@2 [e2,b2,e3]@2 ~@2 [e2,e3] ~@3 [e2,b2,e3]@2", // E5 E E5
  K: "~@4 [a2,e3,a3]@2 ~@2 [a2,e3,a3] ~ [a2,e3,a3]@2 ~@4", L: "a2 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@2 ~@2 [a2,e3,a3]@2 ~@4",
  M: "[a2,e3,a3]@3 ~@2 [a2,e3] ~@2", N: "[e2,b2,e3] ~ [e2,b2,e3]@2 ~@2 [e2,b2,e3]@2 ~@2 [b2,e3] ~@3 [e2,b2,e3]@2",
  O: "~@4 [d3,a3,d4]@2 ~@2 [d3,a3,d4]@5 ~@3", P: "[a2,e3,a3]@4 ~@2 [a2,e3,a3] ~@3 [a2,a3]@6",
  Q: "~@2 c#3@2 e3 ~ [a2,e3,a3]@3 ~@3 e3@2 a3 ~, a2@5 ~@5 c#3@4 ~@2", // A5
  R: "~@2 c#3@2 e3@2 [f#2,c#3,f#3]@5 ~ [a3,c#4,f#4] ~@3, a2@5 ~@11", // F#5 F#m
  S: "e2@2 f#2 ~ [a3,c#4,f#4] ~ e2@2 f#2@2 f#2 ~ [a3,c#4,f#4] ~ f#2@2", // F#m
  T: "e2@2 f#2 ~ [a3,c#4,f#4] ~ f#2@2 e2@2 f#2 ~ [a3,c#4,f#4] ~ f#2@2", // F#m
  U: "[e2@2 f#2 ~ [a3,c#4,f#4] ~ f#2@2 e2@2 f#2 ~ [a3,c#4,f#4] ~ f#2@2 e2@2 f#2 ~ [a3,c#4,f#4] ~ f#2@2 e2@2 f#2 ~@5, ~@6 [f#3,a3,c#4,e4]@4 ~@4 [f#3,g#3,b3,d#4]@5 ~@3 [f#3,c#4,f#4]@10]/2", // F#m F#m7 G#m7 F#5
  V: "[[b2,e3], e2@15 ~]/2", W: "[a2,e3,a3]@2 ~@2 [a2,e3,a3]@2 ~@2 e3 ~ [a2,e3,a3]@3 ~@3",
  X: "e3 ~ [a2,e3,a3]@2 ~@2 [a2,e3,a3] ~ [d3,a3,d4]@2 ~@2 [d3,a3,d4]@2 ~@2", // A5 D5
  Y: "a2 ~@3 [a2,e3,a3]@2 ~@2 e3 ~ [a2,e3,a3]@3 ~@3", Z: "[e3,a3] ~ [a2,e3,a3]@2 ~@4 [d3,a3,d4]@3 ~ [a2,e3,a3]@3 ~",
  AA: "[[d3,a3]@31 ~]/2", AB: "[[d3,a3]@21 ~ [g2,d3,g3]@36 ~@2 [a2,e3,a3]@3 ~]/4", AC: "[[d3,a3]@63 ~]/4",
  AD: "[b2,f#3,b3]@3 ~@13", AE: "[b2,f#3,b3] ~ [b2,f#3,b3]@3 ~@11",
// … 231 more lines

More by McCartney