Strudelify
Ebony and Ivory cover art

All The Best

Ebony and Ivory

McCartney

KeyE majorTempo81 bpm
0:00/0:00
// Ebony and Ivory — McCartney
// 81 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 86 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(81/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 · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  ~ A B C D E F G H G I J E K L M N O P Q F R S T U V W X Y Z AA AB AC AB AD AE AF AG AH AI AJ AA AK AL AM AN AO AP AQ
  AR AS@2 AT AU AV AW AX AY AZ AY AQ BA BB U BC BD BC U BC U BC U BE BF BG BH BI BJ ~@8
>`.pickRestart({
  A: "~ [c#4,e4,g#4] [b3,d#4,f#4] [b3,d#4,g#4]", B: "[b2,c#4,e4,a4]@3 a3@3 b3@2, ~@3 [b2,c#4,f#4]@5", C: "[g#3,b3,e4]",
  D: "[a3,b3,e4]@10 [c#4,e4,a4]@5 ~", E: "[b3,e4,g#4]@15 ~", F: "[a3,c#4,f#4]", G: "[b3,e4,g#4]",
  H: "[a3,c#4,f#4]@10 [c#4,e4,a4]@5 ~", I: "~ [c#4,e4,g#4] [b3,d#4,f#4] [b3,d#4,g#4], b2",
  J: "[b2,c#4,e4,a4]@3 [b2,a3,c#4,f#4]@5", K: "[c#4,e4,g#4]@7 ~ [b3,d#4,f#4]@7 ~",
  L: "[a3,c#4]@4 a4@2 b3@5 ~ b3@2 ~@2, e4@3 [e4,g#4]@5", M: "~@12 b3@3 ~, [g#3,e4], b3@11 ~@5, ~@8 g#4@7 ~",
  N: "[b3,d#4,f#4]", O: "[d4,f#4,a4]@7 ~ [b3,d4,f4,g#4]@8", P: "g#4 b4 [c#4,f#4,a4]@2, [c#4,f4]@7 ~@9",
  Q: "[a3,c#4,e4]@11 ~ [a3,c#4,e4]@4", R: "[g#3,b3,e4]@11 ~ [b3,e4,g#4]@4", S: "f#4@12 a4@3 ~, [a3,c#4]@15 ~",
  T: "[b3,e4,g#4]@12 [b3,e4]@3 ~", U: "[a3,c#4,e4]@11 ~ [c#4,e4,a4]@3 ~", V: "b3@11 ~ b3@3 ~, [e4,g#4]@15 ~",
  W: "[a3,c#4,e4]@11 ~ [c#4,e4,a4]@4", X: "b3@11 ~ b3@4, [e4,g#4]",
  Y: "[b3,d#4,f#4]@4 [b3,d#4,f#4]@3 ~ [b3,c#4,f4]@8, c#4 ~@15", Z: "[a#3,c#4,f4]@13 [a#3,c#4,f4]@2 ~",
  AA: "[b3,d#4,f#4]@11 ~ [b3,d#4,f#4]@3 ~", AB: "[a#3,c#4,f4]@12 ~ [a#3,c#4,f4]@2 ~",
  AC: "[b3,d#4,f#4]@7 ~ [d#4,f#4,b4]@8", AD: "[b3,d#4,f#4]@11 ~ [d#4,f#4,b4]@3 ~",
  AE: "[a#3,c#4,f4]@11 ~ [a#3,c#4,f4]@3 ~", AF: "[a3,c#4]@8 [a3,c#4]@4 [a3,b3,d#4]@3 ~, b2, e4@3 ~",
  AG: "[b3,e4,g#4]@7 e4, ~@14 b3 ~", AH: "[g#3,c#4,e4] [b3,d#4,f#4]",
  AI: "[c#4,a4]@2 [b3,g#4]@2 [a3,c#4] ~ [b3,e4]@8 e4@2, ~@2 e4 g#3@5, ~@14 b3 ~", // F#m E A E5
  AJ: "[e4,g#4,b4]@10 [e4,g#4,b4]@2 ~ [e4,g#4,b4]@2 ~, f#4 ~@12 f#4 ~@2", AK: "[a3,d4,f#4]@7 ~ [b3,d4,f4]@7 ~",
  AL: "~@4 b4@3 ~ [c#4,f#4,a4]@7 ~, [c#4,f4]@7 ~@9", AM: "~@8 f#4@7 ~, [a3,c#4]@15 ~",
  AN: "[a3,c#4,e4]@11 ~ [a3,c#4,e4]@3 ~", AO: "[b3,e4,g#4]@9 ~ [b3,e4,g#4]@2 b3@2 [e4,g#4]@2",
  AP: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@5 ~ [a3,c#4,f#4]@3 ~", AQ: "[b3,e4,g#4]@12 [b3,e4,g#4]@3 ~",
  AR: "[a3,c#4,e4]@5 ~ [a3,c#4,e4]@5 ~ [a3,c#4,f#4]@3 ~", // A F#m
  AS: "[[b3,e4,g#4]@11 ~ [b3,e4,g#4] ~ [a3,c#4,e4]@8 [a3,c#4,e4]@6 [a3,c#4,f#4]@3 ~]/2", // E A F#m
  AT: "[b3,d#4,f#4]@3 ~ [b3,e4,g#4] ~ [b3,e4,g#4]@9 ~", AU: "[c#4,d#4,f#4]@7 ~ [b3,c#4,f4]@7 ~",
  AV: "[a3,c#4,e4]@14 [a3,e4] ~, ~@7 c#4", AW: "[a3,c#4,e4]@7 ~ [a3,c#4,e4]@3 ~ [a3,d#4,f#4]@3 ~",
  AX: "[a3,d#4,f#4]@3 ~ [b3,e4,g#4] ~ [b3,e4,g#4]@9 ~", AY: "[a3,c#4,f#4]@5 ~ [a3,c#4,e4]@9 ~",
  AZ: "~@2 [b3,e4,g#4]@3 ~ [b3,e4,g#4]@9 ~", BA: "[a3,c#4,e4]@11 ~ [a3,e4] ~ [d#4,f#4]@2, ~@12 c#4@2 b3 ~",
  BB: "[b3,e4,g#4]@5 ~ [b3,e4,g#4]@9 ~", BC: "[b3,e4,g#4]@11 ~ [b3,e4,g#4]@3 ~",
  BD: "[a3,c#4,e4]@10 [a3,c#4,e4] ~ [c#4,e4,a4]@3 ~", BE: "[b3,e4,g#4]@9 ~ [b3,e4,g#4] ~@3 [b3,e4,g#4] ~",
  BF: "[a3,c#4,e4]@10 b4@2 [e4,f#4,g#4] ~ [f#4,b4] ~, ~@10 f#4 ~@5", // A E B5
  BG: "[b3,e4,g#4]@7 ~ [b3,e4,g#4] ~ [b3,e4,g#4]@2 ~@2 [b3,e4,g#4]@2", // E
  BH: "[a3,c#4,f#4]@9 ~ [c#4,e4,a4]@2 ~@2 [c#4,f#4,a4]@2, ~@10 f4 ~@5", // F#m A F#m
  BI: "[b3,e4,g#4,b4]@8 ~@2 [b3,e4,g#4]@2 ~@2 [a3,c#4,e4] ~", BJ: "[a3,c#4,e4] ~@7",
})).s("gm_epiano2").gain(0.25).pan(0.6)

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

// chords · piano · "A.PIANO 1"
const piano = note("<~ A@2 B C D E B F G H I J K L@2 M N O P Q ~@65>".pickRestart({
  A: "[b1,b2]/2", B: "[g#3,b3,e4]@15 ~", C: "[a3,c#4]", D: "[g#3,b3]@2 ~ [e3,g#3,b3], ~ e2",
  E: "f#2@4 ~@8 e4@3 ~, [a3,c#4]@15 ~", F: "[a3,c#4]@15 ~", G: "~@3 e4, [g#3,b3]",
  H: "~@4 [c#4,e4]@3 ~ [b3,d#4]@3 ~ [b3,d#4]@4, [b1,b2]", I: "[a3,c#4,e4]@2 ~ [a3,c#4,e4]@5, b1, b2@3 ~ b2@12",
  J: "~@3 [g#3,b3], [g#3,b3]@3 ~, ~ e2", K: "[c#3,g#3,c#4,e4] [b2,b3,d#4]",
  L: "[[a3,c#4]@6 ~@4 e3 ~@5 [g#3,b3]@10 ~@4 [g#3,b3,e4]@2, ~@3 [g#3,b3,e4]@5 e4@7 ~, ~@11 e3@5 e3@12 e3@4, ~@3 e2@5, ~@13 [g#3,b3]@2 ~]/2", // A G#m E G#m
  M: "b3@3 b3 [b3,d#4]@2 [b2,f#3,b3]@2, b2@3 ~, d#4 ~", N: "[d3,a3,d4,f#4]@8 [b3,d4,f4]@7 ~",
  O: "[g#3,c#4,f4]@8 [a3,c#4]@4 [a3,c#4]@3 ~, ~@8 f#2@7 ~", P: "[a3,c#4]@2 [a3,c#4] [a3,c#4,e4], f#2",
  Q: "[a3,c#4,e4]@11 ~ c#4@2 ~@2, ~@12 b3 ~@3", // A
})).s("gm_piano").gain(0.28).pan(0.3)

// chords · acoustic guitar steel · "A.PIANO 1"
const acoustic_guitar_steel = note(`<
  ~@21 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT
  AU AV AW AX AY AZ BA BB BC BD ~@9
>`.pickRestart({
  A: "[g#3,b3,e4]@2 ~@2 [b3,e4,g#4] ~ [b3,e4] [b3,e4,g#4]!2 ~ [b3,e4] e4 [g#3,b3,e4] [a3,b3,e4]!3", // E E5 E E5 E Asus2
  B: "[c#4,e4,a4] ~@2 e4 [c#4,e4,a4] ~ [c#4,e4,a4]!3 ~ [e4,a4] [c#4,e4,a4] [e4,a4,c#5]!4", // A A5 A
  C: "[e4,g#4,b4] g#4 ~@2 [b3,e4,g#4] ~ [b3,e4,g#4] b3 [b3,e4,g#4] ~ [b3,e4,g#4]!3 [b3,e4] [b3,e4,g#4]!2", // E E5 E
  D: "[a3,c#4,e4] ~ [a3,e4] [a3,c#4,e4]!2 ~ [a3,c#4,e4]!2 [c#4,e4,a4] ~ [c#4,e4,a4] [e4,a4] [e4,a4,c#5]!4", // A A5 A A5 A
  E: "[b3,e4,g#4] ~ [b3,e4,g#4]!3 ~ [b3,e4,g#4]!3 [b3,e4] [b3,e4,g#4] ~ [b3,e4,g#4] [b3,e4] [b3,e4,g#4]!2", // E E5 E E5 E
  F: "[a3,c#4,e4] ~ [a3,c#4,e4]!3 ~ [a3,c#4,e4]!3 ~ [a3,e4]!2 [a3,c#4,e4] ~ [b3,e4] ~", // A A5 A E5
  G: "[b3,e4,g#4] ~ [b3,e4,g#4] [b3,e4] [b3,e4,g#4] ~ [b3,e4,g#4]!2 [e4,g#4] [b3,e4] [b3,e4,g#4] [e4,g#4] [b3,e4,g#4] [e4,g#4] [b3,e4]!2", // E E5 E E5 E E5
  H: "[b3,c#4,f#4] ~ [c#4,f#4]!6 [c#4,f4] ~ [c#4,f4]!2 [g#3,c#4,f4] ~ [g#3,c#4,f4] [c#4,f4]", // Bsus2 F#5 C#
  I: "[a#3,c#4] ~ [a#3,c#4] a#3 [a#3,c#4,f#4] ~ [a#3,c#4,f#4]!3 ~ [a#3,c#4,f#4]!3 ~ [a#3,c#4,f#4]!2", // A#m F#
  J: "[b3,d#4,g#4] ~ [b3,d#4,g#4] b3 [b3,d#4,g#4] g#4 [b3,d#4,g#4]!3 ~ [b3,d#4,g#4]!2 [b3,d#4,f#4]!4", // G#m B
  K: "[a#3,c#4,f4] ~ [a#3,c#4,f4]!3 ~ [a#3,c#4,f4]!7 ~ [a#3,c#4,f4]!2", // A#m
  L: "[b3,d#4] ~ [b3,d#4]!2 [b3,d#4,g#4] ~ [b3,d#4,g#4]!10", // B G#m
  M: "[a#3,c#4,f4] ~ [a#3,c#4,f4]!3 ~ [a#3,c#4,f4]!3 ~ [a#3,c#4,f4] [a#3,f4] [a#3,c#4,f4]!4", // A#m A#5 A#m
  N: "[b3,d#4,f#4] ~ [b3,d#4]!2 [b3,d#4,g#4]!4 [f#4,c#5] [f#4,g#4,c#5]!3 [b3,d#4,g#4]!4", // B G#m F#5 F#sus2 G#m
  O: "[a#3,c#4,f4] ~ [a#3,c#4,f4]!7 ~ [a#3,c#4,f4]!6", // A#m
  P: "[b2,a3,c#4,e4]@2 [a3,c#4,e4]!7 ~ [a3,c#4,e4] [c#4,e4,a4]!3 [e4,a4,c#5]!2", // A
  Q: "[e3,g#3,b3,e4] ~ [e3,g#3,b3]!3 ~ [e3,g#3,b3]!2 [e3,g#3,b3,e4] ~ [e3,g#3,b3,e4] ~ [e3,g#3,b3] e3 [g#3,b3,e4] e3", // E
  R: "[c#3,g#3,c#4,e4] ~ [c#4,e4] g#3 [g#3,c#4,e4]@2 ~ [g#3,c#4,e4] [f#3,b3,d#4] ~ [f#3,b3,d#4]!6", // C#m B
  S: "[a2,a3,c#4] ~ [a3,c#4] ~ [a2,a3,c#4] ~ [e3,g#3,b3,e4] ~ [g#3,b3,e4]@2 [g#3,b3,e4]!6", // A E
  T: "[g#3,b3,e4] ~ [e3,b3] [e3,g#3,b3]!2 [e3,g#3] g#3 [e3,g#3,b3] [g#3,b3,e4] ~ e3!2 [g#3,b3] e3 [g#3,b3,e4] e3", // E E5 E G#m E
  U: "[f#3,b3,d#4] ~ [b3,d#4] f#3 [f#3,b3,d#4] ~ [f#3,b3,d#4] [f#3,b3,d#4]@2 ~ [f#3,b3,d#4] f#3 [b2,f#3,b3,d#4]@2 [f#3,b3,d#4]!2, ~@4 b2@2 ~@3 b2@2 ~@5", // B
  V: "[d3,f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f3,g#3] ~ f3!3 ~ [b3,f4] d4", // D Fm Bdim
  W: "[g#3,c#4,f4] ~ [c#4,f4] c#4 [g#3,c#4,f4] ~ [g#3,f4] [c#4,f4] [a3,c#4] ~ [a3,c#4] a3!2 c#4 [c#4,a4] a3", // C# A F#m
  X: "[a3,c#4] ~ [a3,c#4] a3 [f#3,a3,c#4] [a3,c#4]!2 [f#2,f#3,a3,c#4] [f#3,a3,c#4]!2 f#3!2 [f#3,a3,c#4] ~ [f#3,a3,c#4]!2", // A F#m A F#m
  Y: "[b2,a3,c#4,e4] ~ [a3,c#4] b2 [a3,c#4,e4]!3 b2 [b2,a3,c#4,e4] ~ [a3,c#4,e4] b2 [a3,c#4,e4]!4", // A
  Z: "[g#3,b3,e4] ~@3 [g#3,b3,e4]@2 e3 [e3,g#3,b3]@2 e3 ~ g#3 [e3,g#3,b3,e4] [g#3,b3,e4] e3 [g#3,b3,e4], ~@5 [g#3,b3,e4] ~@2", // E
  AA: "[f#2,a3,c#4] ~ [a3,c#4] e3 [f#2,e3,a3,c#4] [e3,a3,c#4] e3 [e3,a3] [a3,c#4]@2 [a3,c#4]!2 [a3,b3,e4] [b3,e4]!3", // F#m A F#m7 A A5 A Asus2 E5
  AB: "[g#3,b3,e4] ~ [b3,e4]!2 [g#3,b3,e4] g#3 [g#3,b3,e4] [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4] g#3 [g#3,b3,e4] g#3 [g#3,b3,e4] g#3", // E E5 E G#m E
  AC: "[a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]!6 [f#3,c#4,e4] [f#3,a3,c#4,e4] [f#3,c#4,e4] [a3,c#4,e4]!3", // A F#7 F#m7 F#7 A
  AD: "[g#3,b3,e4] ~ [e3,g#3,b3,e4]!2 [b2,e3,g#3,b3,e4] [e3,g#3] [g#3,b3] [e3,g#3,b3,e4] ~ [g#3,b3] [g#3,b3,e4] b3 [g#3,b3,e4] [b3,e4] [g#3,e4] [g#3,b3,e4]", // E G#m E G#m E E5 C#m E
  AE: "[a3,c#4,e4] ~ [a3,c#4,e4] [a3,c#4]!2 ~ [a3,c#4]!2 [g#3,b3]@2 [f#3,b3]!4 [g#3,b3] [g#3,b3,e4]", // A G#m B5 G#m E
  AF: "[g#3,b3,e4] ~ [g#3,e4]!2 [g#3,b3,e4] ~ [b3,e4] ~ [g#3,b3,e4] [g#3,b3] [e3,g#3,b3,e4] [b3,e4] [g#3,b3,e4]!4", // E C#m E E5 E G#m E E5 …
  AG: "[g#3,c#4,f#4] ~ [c#4,f#4] f#4 [g#3,c#4,f#4] ~ [c#4,f#4]!2 [g#3,c#4,f4] ~ [g#3,c#4,f4]!6", // C#sus4 F#5 C#sus4 F#5 C#
  AH: "[a3,c#4] ~ [a3,c#4] a3 [a3,c#4] f#3 [f#3,a3,c#4]!3 f#3 [f#3,a3,c#4] [a3,c#4] [f#3,a3,c#4] f#3 [a3,c#4] f#3", // A F#m A F#m A
  AI: "[b2,a3,c#4] ~@2 b2 b2@2 [b3,d#4]@2 [b2,b3,e4] ~ [b3,e4] b2 [b3,e4]!2 ~ b2, ~ [a3,c#4] ~@5 [b3,d#4]", // F#m B E5 A B
  AJ: "[g#3,b3,e4]@2 e4 b3 [g#3,b3,e4] ~ g#3 [g#3,b3,e4]!2 ~ [g#3,b3] [g#3,b3,e4] [e3,g#3,b3,e4] [e3,b3,e4] [e3,g#3,b3,e4] [e3,b3,e4]", // E G#m E E5 E E5
  AK: "[f#2,a3,c#4]@2 [a3,c#4]!3 ~ [a3,c#4]!5 ~ a3 [b2,a3,c#4] ~ [a3,c#4], ~@4 f#3@2 ~@5 b2@2 ~ b2@2", // F#m A F#m A
  AL: "[b3,e4]@2 b3 e3 [g#3,b3,e4]@2 g#3 [e3,g#3,b3,e4]!2 [g#3,b3,e4]!2 [e3,g#3,b3,e4]!5, [e3,g#3] ~@15", // E5 E
  AM: "[f#2,a3,c#4]@2 [a3,c#4] ~ [e3,f#3,a3,c#4] ~ [a3,c#4] b3 [b2,f#3,b3,d#4] [f#3,b3,d#4]!3 [f#3,b3,e4]!2 [f#3,b3,d#4]!2", // F#m A F#m7 A B Esus2 B
  AN: "[f#3,b3,d#4] ~ [g#3,b3,e4] e3 [g#3,b3,e4] ~ [b3,e4] [g#3,b3,e4] [e3,g#3,b3,e4] [b3,e4] [g#3,b3,e4]!2 [e3,g#3,b3,e4] [b3,e4] [g#3,b3,e4]!2", // B E E5 E E5 E E5 E
  AO: "[e3,a3,c#4]@2 [a3,c#4] ~ [a3,c#4]!3 [f#3,a3,c#4]!4 ~ f#3 b3 ~ b3, ~@11 b2@3 b2@2", // A F#m
  AP: "[g#3,b3] ~ [g#3,b3,e4]!5 [e3,g#3,b3] [g#3,b3,e4] [e3,b3] [e3,g#3,b3,e4]!3 [g#3,b3,e4] [e3,g#3,b3,e4] [b3,e4]", // G#m E E5 E E5
  AQ: "[e3,a3,c#4,e4] ~ [a3,c#4,e4] f#3 [f#3,a3,c#4,e4] f#2 [f#3,a3,c#4,e4]!2 b2 [a3,c#4,e4]!6 [b2,a3,c#4,e4]", // A F#m7 A
  AR: "[g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] g#3 [g#3,b3,e4]!2 g#3 [g#3,b3,e4]!3 [e3,g#3,b3,e4] b3 ~ b3, ~@7 [g#3,e4]", // E C#m
  AS: "[f#2,a3,c#4] ~ [a3,c#4] e3 [e3,a3,c#4] [a3,c#4]!2 [f#3,a3,c#4]!2 [a3,c#4,e4] [f#3,a3,c#4] [f#3,a3,c#4,e4]!5", // F#m A F#m A F#m F#m7
  AT: "[g#3,b3,e4] ~ [g#3,b3,e4]!7 [g#3,b3]!2 e3 [g#3,b3] [b3,e4,g#4] [b3,e4] b3", // E G#m E E5
  AU: "[f#3,a3,c#4] ~ [a3,c#4] f#3 [a3,c#4] [a3,c#4,e4] [a3,c#4] b2 ~ [a3,c#4,e4] ~ [a3,c#4,e4] [b2,a3,c#4,e4] [a3,c#4,e4] [b2,a3,c#4,e4]!2, ~@4 f#3@3 ~ b2@2 b2@2 ~@4", // F#m A
  AV: "[g#3,b3,e4]@2 [g#3,b3,e4]!2 [e3,g#3,b3,e4] [g#3,b3,e4] [g#3,b3] [g#3,b3,e4] e3 [g#3,b3] [g#3,b3,e4] ~ [g#3,b3,e4]!2 [e3,g#3] [g#3,b3,e4]", // E G#m E G#m E
  AW: "[b2,a3,c#4,e4] ~ [a3,c#4,e4] ~ [b2,a3,c#4,e4] [a3,c#4,e4] [b2,a3,c#4,e4] [a3,c#4,e4] [b2,a3,c#4,e4]!6 [a3,c#4,e4] e4", // A
  AX: "[e2,b2,g#3,b3,e4] ~ [b3,e4]!2 [g#3,b3,e4] [b3,e4] [g#3,b3,e4] [e3,g#3,b3,e4] [b3,e4] [g#3,b3,e4] [e3,g#3,b3,e4] g#3 [e3,g#3,b3,e4] [e3,b3,e4] [e3,g#3,b3,e4] [e3,b3,e4]", // E E5 E E5 E E5 E E5 …
  AY: "[a3,c#4,e4] ~ [a3,c#4,e4]!4 [f#3,a3,c#4] [a3,c#4,e4] [a3,e4] [b2,a3,c#4,e4]!7", // A F#m A A5 A
  AZ: "[e3,g#3,b3,e4] ~ [e3,g#3,b3,e4]!4 [g#3,b3] [e3,g#3,b3,e4] [b3,e4]!2 [e3,g#3,b3,e4] [b3,e4] [e3,g#3,b3,e4]!4", // E G#m E E5 E E5 E
  BA: "[a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] [c#4,e4] [a3,c#4,e4]!2 [b2,a3,c#4,e4]!8, ~@3 f#3@3 ~@10", // A C#m A
  BB: "[g#3,b3,e4] ~ [g#3,b3,e4] e3 [e3,g#3,b3,e4] [e3,g#3,b3] [e3,g#3,b3,e4] [e3,g#3,b3]!3 [e3,g#3,b3,e4] [e3,g#3,b3] [e3,g#3,b3,e4] [e3,g#3,b3] [e3,g#3,b3,e4] [e3,g#3,b3]", // E
  BC: "[a3,c#4,e4] ~ [a3,c#4,e4] [a3,c#4] [f#3,a3,c#4,e4] [c#4,e4] [f#3,a3,c#4,e4]!2 [b2,a3,b3,d#4] [b2,b3,d#4] [b2,b3,c#4,e4] [b2,a3,c#4,e4]!5", // A F#m7 C#m F#m7 B7 B C#m7 A
  BD: "[e3,g#3,b3,e4] ~ [g#3,b3,e4]!2 [e3,g#3,b3,e4] [e3,g#3,b3] [e3,g#3,b3,e4]!3 [b3,e4] [e3,g#3,b3,e4] [e3,b3,e4] [e3,g#3,b3,e4] [e3,b3,e4] ~@2", // E E5 E E5 E E5
})).s("gm_acoustic_guitar_steel").gain(0.14)

// other · english horn · "ENG.HORN"
const english_horn = note(`<
  ~@3 A B C D E@3 ~@2 F G H I@2 ~@5 J K L M@3 ~@10 N O ~ P Q R S T U V C W X@3 Y Z@4 AA ~@9 AB AC ~ AD AB AC AE AF AG
  ~@9
>`.pickRestart({
  A: "~@2 g#4@2 f#4@2 g#4@5 ~ b4@4", B: "a4@3 ~ b4@2 e5@5 ~ f#5@2 g#5 ~", C: "g#5@2 b4 ~ b4 ~ b4@3 ~ b4@5 ~",
  D: "c#5@3 ~ d#5@2 e5@4 ~@2 f#5@2 g#5 ~",
  E: "[g#5@2 b4 ~ b4 ~ b4@3 ~ e5@2 ~@2 c#5@4 d#5@3 ~ e5@4 f#5@2 ~@2 f#5@4 g#5@3 ~ g#5@10]/3",
  F: "~@2 g#4 ~ g#4@2 g#4@5 ~@3 b4 ~", G: "c#5 ~ c#5@2 d#5 ~ e5 ~ d#5@4 c#5@2 b4@2",
  H: "c#5@2 b4 ~ b4 ~ b4@5 ~ e4 ~ f#4 ~", I: "[g#4@2 g#4@5 ~@7 e5 d#5@3 c#5 b4@5 ~@8]/2", J: "~@12 f#5@2 g#5 ~",
  K: "g#5@2 b4@2 b4 ~ b4@3 ~ b4@4 ~@2, ~@2 c5 ~@13", L: "c#5@4 d#5 ~ e5@5 ~ f#5@2 g#5 ~",
  M: "[g#5@2 b4 ~ b4 ~ b4@4 e5@2 ~@2 c#5@4 d#5@2 ~@2 e5@4 f#5@3 ~ f#5@4 g#5@3 ~ g#5@10]/3",
  N: "e5@2 e5 ~ f#5@2 g#5@2 f#5@4 e5@2 d#5@2", O: "a5 g#5 e5 e5@3 ~@2", P: "~@15 b3", Q: "b4@2 ~ b4@2 b4@4 ~@5 a4 b4",
  R: "c#5@2 ~ d5 c#5 ~ b4 b4@2 ~ a4@2 f#4@2 g#4 ~", S: "a4 b4 g#4 a4@3 ~@2", T: "a4@2 b4@2 c#5@2 c#5@9 ~",
  U: "~@2 g#4@2 f#4 ~ g#4@5 ~ b4@3 ~", V: "a4@4 b4 ~ e5@5 ~ f#5@2 g#5 ~", W: "c#5@4 d#5 ~ e5@5 ~ f#5@2 g#5@2",
  X: "[g#5@2 b4 ~ b4 ~ b4@4 e5@2 ~@2 c#5@4 d#5@3 ~ e5@4 f#5@3 ~ f#5@4 g#5@3 ~ g#5@10]/3", Y: "~@12 f5@2 f#5 ~",
  Z: "[g#5@2 c#5 ~ c#5 ~ c#5@4 d#5@2 ~@2 c#5@4 d#5@2 ~@2 e5@4 f#5@2 ~@2 f#5@4 g#5@3 ~ g#5@8 f#5@4 e5@4 c#5@6 ~@2 c#5@2]/4",
  AA: "b4@11 ~@5", AB: "~@12 c#5@2 ~ d#5", AC: "e5 ~", AD: "~@2 c#6@4 b5 b5@3 ~@6", AE: "~@12 f#4 ~ g#4 a4",
  AF: "b4 c#5@2 b4 ~ b4@4 ~@7", AG: "[f#5,g5] e5 f#5 ~ g#5@2 e5 e5@2 ~@7",
})).s("gm_english_horn").gain(0.45).pan(0.4)

// other · muted trumpet · "ENG.HORN"
const muted_trumpet = note(`<
  ~@33
  [f5@2 f#5 f5 ~@4 f5@2 f#5 f5 ~@4]
  [d#5!2 f5 ~ d#5 ~ f5 ~ d#5 ~ f5 f#5 ~@4]
  [f5@2 f#5 f5 ~@4 f5@2 f#5 f5 ~@4]
  ~@50
>`).s("gm_muted_trumpet").gain(0.5).pan(0.4)

// other · muted trumpet · "HARMONICA"
const muted_trumpet_2 = note(`<
  ~@33
  [c#5@2 d#5 c#5 ~@4 c#5@2 d#5 c#5 ~@4]
  [b4!2 c#5 ~ b4 ~ c#5 ~ b4@2 c#5 d#5 ~@4]
  [c#5@2 d#5 c#5 ~@4 c#5@2 d#5 c#5 ~@4]
  [f#5@15 ~, f5 ~@15]
  ~@49
>`).s("gm_muted_trumpet").gain(0.5).pan(0.6)

// … 217 more lines

More by McCartney