Strudelify

My Brave Face

McCartney

KeyE majorTempo124 bpm
0:00/0:00
// My Brave Face — McCartney
// 124 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 100 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(124/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("<~@6 A@3 B@3 ~@7 C@3 ~@4 D@2 E@2 F@2 G@2 ~@27 H@2 I ~@4 D@2 E@2 F@2 G@2 ~@24>".pickRestart({
  A: "[[g#3,b3,e4]@7 ~]/3", B: "[[e3,a3]@7 ~ [e3,a3]@6 [e3,g#3]@31 ~@3]/3",
  C: "[[e3,a3]@7 ~ [e3,a3]@6 [e3,g#3]@32 ~@2]/3", // A5 E
  D: "[~@11 e5 ~@2 g#5@2, g#3 [g#3,c5] [g#3,b4] [g#3,b4,d5], e5@3 e5@4 e5@4 ~@5, ~ g#4@3 ~@2 e4@2 ~ [e4,g#4]@3 ~ d4@3, ~@2 [e4,c#5]@2 ~ [c4,g#4]@3 ~@8]/2", // G# G#m G#dim E C#m Fm
  E: "[~@3 c#5 ~@10 [g#4,e5]@2, e5@6 e5@7 e4@3, [a3,a4] [a3,c4,a4,c5] g#3@2, ~ c#4@3 ~@5 e4@2 g#4@3 ~@2, ~@2 e4@2 ~ e4@3 g#4@2 b4@6]/2", // C#m A Am
  F: "[~@3 [c#5,e5] ~@2 e5@2 g#3 ~ e5@2 ~@2 [e5,g#5]@2, g#3!2 ~@2, [c#5,e5,g#5]@6 g#5@6 g#5@7 ~ g#5@8 ~@4, ~ [c#4,g#4]@3 ~ c4@3 ~ b3@3 [a#3,a#4]@4, ~ e4 [c5,e5] ~ b4@2 ~@2]/2", // C#m E C#m C#5 A# C
  G: "[~@6 c#5@2 ~@3 [a4,c5,e5]@4 ~, a3@8 [a3,c4]@7 ~, [c#5,e5]@3 [c#5,e5]@3 e5@5 ~@5, ~ [c#4,a4]@7 ~@2 e4@5 ~, ~@4 e4@6 e4@5 ~ [a4,c5]@6 ~@10]/2", // Am C#m F#m Am
  H: "[[e3,a3]@7 ~ [e3,a3]@5 ~ [e3,g#3]@7 ~@11]/2", I: "~ [g#3,b3,e4]@2 ~",
})).s("gm_epiano2").gain(0.33).pan(0.8)

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

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@2 A@3 B C D E F G H@2 I J K L M N F O P Q R S T U V ~ W@2 ~ X Y Z AA Z AA AB AC@2 AD AE AF@2 AG@2 ~ AH AI AJ ~@4 AK
  AL AM AN AO AP F AQ AR AS AT AU AV U V ~ W@2 ~ AW AX AY AZ AY BA BB BC@2 BD BE BF@2 BG@2 ~@5 BH ~ BI BJ@2 ~
>`.pickRestart({
  A: "[d4,f#4,a4,e5] ~@2 [d4,f#4,a4,e5] ~@4", B: "[d4,f#4,a4,e5]@2 ~@4 [d4,f#4,a4,e5]@2 ~@4 a3 f#3 d#3 ~",
  C: "e3 ~ e3@2 [b3,e4]@2 ~@2 e3 ~ e3 ~ [e3,b3,e4]@2 ~@2", // E5
  D: "e3 ~ e3 ~ [b3,e4]@2 ~@2 e3 ~ e3@2 [b3,e4] [c4,c#4,f4,f#4]@2 ~", // E5 C#maj7
  E: "e3 ~ e3 ~ [b3,e4]@2 ~@2 e3 ~ d#3 ~ [b3,e4]@2 ~@2", // E5
  F: "[b3,e4] [c#4,f#4]@6 ~ [b3,e4] [c#4,f#4]@6 ~, ~ [c4,f4] ~@7 [c4,f4] ~@6", G: "~ e3 [e3,b3,e4] ~@3 [b3,e4] ~",
  H: "[~@2 e3 ~ [b3,e4] ~@5 e3@2 [b3,e4] [c#4,f#4]@5 ~@2 [a2,e3]@7 ~ [g#2,d#3,g#3]@2 ~@2, ~@13 [c4,f4] ~@18]/2", // E5 F#5 A5 G#5 F5
  I: "[f#2,c#3,f#3]@6 ~@2 [b2,f#3]@7 ~", J: "~@2 [e3,b3,e4] ~@2 e3 [e3,b3,e4] ~",
  K: "~@2 e3@2 [b3,e4]@2 ~@4 e3@2 [b3,e4] [c4,c#4,f4,f#4]@2 [c4,f4]", // E5 C#maj7 F5
  L: "b3 ~ e3@2 [e3,b3,e4]@2 ~@4 e3@2 [b3,e4]@2 ~@2", // E5
  M: "~@4 [e3,b3,e4]@2 ~@4 e3@2 [b3,e4] [c4,c#4,f4,f#4]@2 [b3,c4,f4]", // E5 C#maj7 F
  N: "~@2 e3 ~ [b3,e4]@2 ~@2 e3 ~ e3 ~ [b3,e4]@2 ~@2", O: "e3 ~ e3@2 [b3,e4]@3 ~@3 e3@2 [e3,b3,e4] ~@3",
  P: "~@2 e3 ~ [b3,e4]@2 ~@4 e3@2 [b3,e4] [c#4,f#4]@3, ~@13 [c4,f4] ~@2", Q: "~@4 [a2,e3,a3]@7 ~ [g#2,d#3,g#3]@2 ~@2",
  R: "[f#2,c#3,f#3]@6 ~@2 [b2,f#3,b3]@7 ~", S: "~@2 e3@2 [b3,e4]@3 ~@3 e3 ~ [b3,e4]@3 ~",
  T: "~@4 [b3,e4]@3 ~ e3 ~ e3 ~ [b3,e4] [c4,c#4,f4,f#4] ~ f4", U: "[c#3,g#3] c3", V: "b2 ~",
  W: "[~@6 e4 ~ f#4@2 c#4 ~ [e4,g#4]@19 ~, ~@3 c#5@2 ~@3]/2", X: "[a3,c#4]@13 ~@3", Y: "[a3,c4,e4,a4]@7 ~",
  Z: "~@2 [e3,b3,e4] ~@3 [b3,d#4,f#4] ~", AA: "~@2 [e3,b3,e4] ~@3 [e3,b3,e4] ~", AB: "~@2 [e3,e4] ~@3 [f#3,b3,d#4] ~",
  AC: "[~@3 e4@2 c#4 g#3@4 [g#3,c#4,e4] ~@3 [g#3,b3,d#4] ~]/2", AD: "[f#3,a3,c#4,f#4]@13 ~@3",
  AE: "f#2@2 e2@2 f#2@3 ~ g#2@2 f#2@2 g#2@2 ~@2", AF: "[a2@2 g#2@2 a2@3 ~ e3@2 b2 ~ c#3 b2 b2@17 ~]/2",
  AG: "[~@2 b2@2 c#3 ~ e3@2 e3@4 e2@19 ~]/2", AH: "~@2 e3@2 [b3,e4]@2 ~@2 e3 ~ e3@2 [b3,e4]@2 ~@2",
  AI: "~@2 e3@2 [b3,e4]@2 ~@2 e3 ~ e3 ~ [b3,e4] f#4@3, ~@13 f4 ~@2", AJ: "~ f4 ~@14", AK: "~@4 f#4 f#4@3",
  AL: "e4@2 f#4@3 ~ g#4@3 ~ g4 a4 g#4@2 f#4@2", AM: "e4@3 f#4@3 e4@10",
  AN: "e3 ~ e3@2 [b3,e4]@2 ~@4 e3@2 [e3,b3,e4]@2 ~@2", // E5
  AO: "~@2 e3@2 [b3,e4]@2 ~@4 e3@2 [b3,e4] [c4,c#4,f4,f#4]@2 [e4,f4]", AP: "e3 ~@3 [e3,b3,e4]@2 ~@4 e3@2 [b3,e4]@2 ~@2",
  AQ: "e3@2 e3@2 [b3,e4]@4 e3 ~ e3 ~ b3 ~ [c#4,f#4] ~", AR: "~@2 [e3,b3,e4]@5 ~",
  AS: "[a2,e3,a3]@11 ~ [g#2,d#3,g#3]@2 ~@2", AT: "[f#2,c#3]@6 ~@2 [b2,f#3]@7 ~",
  AU: "e3 ~ e3@2 [b3,e4]@2 ~@4 e3@2 [b3,e4]@2 ~@2", AV: "~@2 e3@2 [b3,e4]@2 ~@4 e3@2 [b3,e4] [c4,c#4,f4,f#4] ~@2",
  AW: "e4@7 ~", AX: "[a3,c4,e4]@15 ~", AY: "~@2 [b3,e4,g#4] ~@3 [b3,d#4,f#4] ~",
  AZ: "~@2 [b3,e4,g#4] ~@3 [b3,e4,g#4] ~", BA: "~@4 [b3,e4,g#4]@2 ~@6 [b3,e4,g#4] ~@3",
  BB: "~@2 [b3,e4,g#4] ~@3 [g#3,b3,d#4,g#4] ~", BC: "[~@3 e4@2 c#4 g#3@4 [g#3,c#4] ~@3 [g#3,b3,d#4,g#4] ~]/2",
  BD: "[f#3,a3,c#4]@13 ~@3", BE: "f#2 e2 f#2 ~ g#2 f#2 g#2 ~", BF: "[a2@2 g#2@2 a2@2 ~@2 e3@2 b2 ~ c#3 b2 b2@16 ~@2]/2",
  BG: "[~ b2 c3 e3 e3@2 e2@10]/2", BH: "[e3,a3,d4] ~@2 [e3,a3,d4,f#4] ~@4",
  BI: "[e3,a3,d4,f#4]@2 ~@4 [e3,a3,d4]@2 ~@4 [e3,a3,d4,f#4] ~@3", BJ: "[e2, b2@7 ~]/2",
})).s("gm_overdriven_guitar").gain(0.4).pan(0.9)

// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note(`<
  ~@5 A ~@4 B C D ~ E F G H I ~ F C ~@3 J ~@6 K ~@5 L ~ M ~@8 N O ~@8 P H ~ Q ~@3 F C ~@6 R ~@8 S ~@10 T ~ U ~@3
>`.pickRestart({
  A: "~@15 c3", B: "e3 ~@7 e3 ~ e3@2 ~@4", C: "e3 ~@7 e3 ~@7", D: "~@4 a3@7 ~@5", E: "~@2 e3 ~@13", F: "~@8 e3 ~@7",
  G: "e4 ~@7 e3 ~@7", H: "~@2 e3@2 ~@4 e3 ~@7", I: "e4 ~@15", J: "e3 ~ e3@2 ~@11 [a#3,b3,c4,d#4,e4]", K: "e4@13 ~@3",
  L: "~@2 b3 ~@5", M: "~@6 g#4 ~", N: "~@13 c#4@3, ~@13 c4 ~@2", O: "c4 [b3,d4,d#4,e4] ~@14",
  P: "e3 ~@7 e3 ~@6 [b3,c4]", Q: "~@12 e4 ~@3", R: "[a3,c#4]@7 ~", S: "f#4@13 ~@3", T: "f#4 ~@7", U: "~@3 f#4 ~@4",
})).s("gm_overdriven_guitar").gain(0.2).pan(0.9)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  A B C@2 ~@5 D ~@9 E ~@4 F ~@9 G H G I ~@4 J K J L J M N ~@4 M O@2 ~@5 P Q R ~@2 S ~@9 T U T U ~@4 J K J K J M V ~@2 W
  O@2 ~@4
>`.pickRestart({
  A: "[e4,c#5,e5] [g#4,e5,g#5] [e4,c#5,e5] [g#4,e5,g#5]", B: "[e4,a4,c#5,e5,a5]!2", C: "[e4,g#4,c#5,e5,g#5]/2",
  D: "a4@4 a4@3 g#4", E: "a4@7 ~ a4@6 g#4@2", F: "g#4@2 g#4 ~ g#4@2 ~@2 g#4@3 ~@5",
  G: "[b3,g#4]@3 ~ [b3,g#4]@4 [b3,f#4]@4 [b3,g#4]@4", H: "[b3,a4]@4 [b3,g#4]@2 [b3,g#4]@3 ~@7",
  I: "[b3,a4]@2 [b3,g#4]!2 ~@4", J: "[a3,e4] [a3,g#4] [b3,e4] [b3,g#4]", K: "[a3,e4]@4 [a3,g#4]@4 [b3,g#4]@5 ~@3",
  L: "[a3,e4]@2 [a3,g#4]@2 [b3,g#4]@3 ~", M: "[c#4,e4,f#4,a4]!2", N: "[b3,c#4,e4,g#4]", O: "[b3,c#4,e4,g#4]/2",
  P: "a3@7 ~ a3@6 g#3@2", Q: "~@7 [g#3,b3,e4]", R: "~ [b3,e4,g#4]@2 ~", S: "g#4@2 g#4@2 g#4@2 g#4 ~ g#4@3 f#4 e4@2 ~@2",
  T: "[b3,g#4]!2 [b3,f#4] [b3,g#4]", U: "[b3,a4]@2 [b3,g#4] [b3,g#4]@2 ~@3", V: "[a3,c#4,e4,a4]", W: "[a3,c#4,e4,a4]!2",
})).s("gm_acoustic_guitar_nylon").gain(0.4)

// chords · pad poly · "POLYSYNTH"
const pad_poly = note("<~@15 A@3 ~@18 B@2 ~@16 C@4 ~@36 D@5 ~>".pickRestart({
  A: "[~@3 [c#4,e4] [d4,f#4]@6 ~@2, ~@3 [a3,a4]@7 ~@2]/3", B: "[~@2 d#4@2 [g#3,e4]@3 ~, ~@2 b3@5 ~, ~@4 f#3@3 ~@9]/2",
  C: "e1/4", D: "e1/5",
})).s("gm_pad_poly").gain(0.22).pan(0.3)

// chords · rock organ · "ORGAN 3"
const rock_organ = note("<~@41 A B C D E F G H@2 I J K L M@2 N@2 ~@25 A B C D E F G O J P Q@4 R@3>".pickRestart({
  A: "~@12 [e3,f3,g3] [a3,b3,c4] [d4,e4,f4] [g4,a4]", // Em Am Dm Gsus2
  B: "[b4,c5] ~@3 g#5@4 c#5@4 [c#5,e5,g#5]@4, e5@3 ~, a4@7 ~ b4@7 ~, c#5@2 c#5 ~@5", // Cmaj7 C#m
  C: "[c#5,e5] [c#5,e5,g#5] [b4,c#5,e5,g#5]@2, a4@7 ~@9", D: "[a4,c#5,e5] [a4,c#5,e5,g#5] [b4,c#5,e5] [b4,c#5,e5,g#5]",
  E: "[a4,c#5,e5]@4 [a4,c#5,e5,g#5]@4 [b4,c#5,e5,g#5]@7 ~", // A Amaj7 C#m7
  F: "[c#5,e5] [c#5,e5,g#5] [b4,c#5,e5] [b4,c#5,e5,g#5], a4@7 ~@9", G: "[c#5,e5,f#5,a5]!2",
  H: "[[b4,c#5,e5,g#5]@15 ~]/2", I: "a4 b4, e5", J: "[a4,c#5]", K: "a4@7 ~ b4@8, e5", L: "[a4,c#5]@15 ~",
  M: "[[b4,c#5,e5]@6 [b4,d5]@25 ~, g#5]/2", N: "[[a4,d5,f#5]@31 ~]/2", O: "c#5 b4, e5", P: "[c#5,e5]@8 [b4,d#5]@7 ~",
  Q: "[a4@15 ~ e5@6 ~@26 a4@14 ~@2, c#5@11 d5@21, ~ [g#4,b4]@2 ~]/4", R: "[[g#4,b4,e5]@3 ~]/3",
})).s("gm_rock_organ").gain(0.27).pan(0.2)

// chords · pad sweep · "SWEEP PAD"
const pad_sweep = note("<~@34 A@4 B C@2 D ~@34 A@4 B C@2 D ~@16>".pickRestart({
  A: "[e4@8 d#4@8 e4@23 ~ d#4@8 [e4,e5]@16, b3@38 ~@2 b3@23 ~, ~ e5 ~@2]/4", B: "e4 d#4, b3@7 ~",
  C: "[[g#3,c#4,e4]@11 ~ [b3,d#4,b4]@4, c#5@3 ~]/2", D: "[a3,c#4,f#4,a4]",
})).s("gm_pad_sweep").gain(0.38).pan(0.3)

// other · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@5 A@3 ~@7 B@2 ~@33 C@3 D E F@4 ~@31 C@3 D E G@4 ~>".pickRestart({
  A: "[~@12 a3@2 ~@2 g#3@23 ~@9, ~@2 b3@4 b3@4 b3@4 b3@27 ~@7, ~ a3@2 ~@9, ~ e4@4 ~]/3",
  B: "[~@6 a3 b3@4 ~@5, ~@8 e4@15 ~@9, ~@5 b3@2 ~@9]/2",
  C: "[~@4 b2@2 a2@2 g#2 ~ a2@2 b2 ~ e3@6 b2@2 a2@2 g#2@2 a2@2 b2@8 b2@2 a2@2 g#2 ~ a2@2 b2@4]/3", D: "c#3@4 c#3@3 ~",
  E: "~@4 a3@2 ~@2 g#3@3 ~ a3@2 b3@2, ~@3 b3@2 ~@3",
  F: "[~@16 g#3@3 ~@13 g#3@2 ~@10 [g#3,a3] ~ g#3@18, g#3 a3 g#3 a3 ~ a3 g#3 a3 ~ a3 g#3 ~@5, ~ b3@2 b3@2 b3@2 b3@2 ~@2 b3@2 b3@2 b3@2 b3@2 b3@2 b3@11]/4", // Amaj7
  G: "[~@16 g#3@3 ~@9 a3@4 g#3@28 ~@4, g#3 a3 g#3 a3 ~ a3 g#3 ~@9, ~@2 b3@4 b3@4 b3@4 b3@4 ~@4 b3@4 b3@23 ~@15]/4",
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.4)

// other · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note("<~@15 A ~@38 B ~ C ~@37 B ~ C ~@3>".pickRestart({
  A: "~@14 a#3 ~", B: "~ b3 ~@3 b3@2 ~", C: "~@2 b3@3 ~@11",
})).s("gm_electric_guitar_clean").gain(0.2).pan(0.4)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@12 A B ~@8 C D ~@2 E F G H I J K L M@2 N@2 O P Q@2 R S T U V W ~@2 X Y Z@2 AA@4 ~@6 C D ~@2 E F G H I J K L M@2 N@2
  AB P AC@3 S AD AE V W AF Y Z@2 AG@4 ~@2
>`.pickRestart({
  A: "[c#4,e4,a4]@11 ~ [g#3,b3,d#4,g#4]@2 ~@2", B: "[f#3,a3,c#4,f#4]@6 ~@2 [b3,d#4,f#4,b4]@7 ~",
  C: "[c#4,e4,a4]@5 ~ [b3,d#4,g#4] ~", D: "[a3,c#4,f#4]@3 ~ [b3,d#4,f#4,b4]@4",
  E: "c#5@2 c#5@2 [e4,g#4,c#5]@2 c#5 ~ [g#4,c5]@2 [g#4,c5]@2 [e4,c5]@2 c5 ~, [e4,g#4] ~ e4 ~", // C#m G# C E
  F: "b4@2 b4@2 [e4,g#4,b4]@2 b4 ~ d5@2 d5@2 [g#4,b4,d5]@2 d5 ~, [e4,g#4] ~ b4 ~", // E G#dim E
  G: "[e4,a4]@4 [e4,a4,c#5]@2 c#5 ~ [c4,e4,a4]@4 [c4,e4,a4,c5]@2 c5 ~, c#5 ~@3 c5 ~@3", // A5 A Am
  H: "b4@2 b4@2 [g#4,b4] ~ [g#4,b4]@4 [g#4,b4]@2 [e4,g#4,b4]@2 b4 ~, [e4,g#4] ~@3", // G#m E
  I: "[g#4,c#5]@2 [g#4,c#5]@2 [e4,g#4,c#5]@2 c#5 ~ c5@2 c5@2 [e4,g#4,c5]@2 c5 ~, e4 ~ [e4,g#4] ~", // C#5 C#m Eaug E
  J: "b4@2 b4@2 [e4,g#4,b4]@2 b4 ~ [g#4,a#4]@2 [g#4,a#4]@2 [g#4,a#4]@2 a#4 ~, [e4,g#4]@2 ~@2 e4@3 ~", // E G#sus2 E
  K: "a4@2 a4@2 [c#4,e4,a4]@2 [e4,a4]@4 [e4,a4]@2 [a3,c#4,e4,a4]@2 [e4,a4] ~, a3@3 ~, [c#4,e4]@2 ~ c#4@3 ~@2", // A A5 A A5 C#m
  L: "[c4,e4,a4]@2 [e4,a4]@2 c4@2 [c4,e4,a4]@4 [e4,a4]@2 a4@2 a4 ~, a3@3 a3@3 [a3,c4,e4]@2", // Am A5 Am A5 Am
  M: "[[g#4,b4]@2 [g#4,b4]@2 [e4,g#4,b4]@2 b4 ~ b4@2 b4@2 [d#4,f#4,b4] ~ b4@4 b4@2 [g#4,b4] ~ [g#4,b4]@4 [g#4,b4]@2 [e4,g#4,b4]@2 ~@2, e4@2 ~@2 [d#4,f#4]@2 ~ g#4@3 ~ e4@3 ~@2]/2", // G#m E B G#m E D#m
  N: "[b4@2 b4@2 b4@2 b4@2 b4@2 b4@2 [d#4,f#4,b4] ~ b4@4 b4@2 [e4,g#4,b4] ~ [g#4,b4]@4 [g#4,b4]@2 [g#4,b4]@2 [g#4,b4]@2, [e4,g#4]@2 [e4,g#4]@2 [d#4,f#4]@2 ~ g#4@3 ~@4 e4@2]/2", // B E G#m E D#m
  O: "[g#4,b4]@2 b4@2 [e4,g#4,b4]@2 b4 ~ g#4@2 g#4@2 [g#3,b3,d#4,g#4]@2 [d#4,g#4]@2, e4 ~ [b3,d#4] ~", // G#m E G#m G#5 B
  P: "g#4@2 g#4@2 [e4,g#4] ~ [c#4,g#4]@4 [c#4,g#4]@2 [g#3,c#4,e4,g#4]@2 [e4,g#4] ~, [g#3,c#4,e4]@2 ~ e4@3 ~@2", // E C#5 C#m E C#m
  Q: "[g#4@2 g#4@2 [c#4,e4,g#4]@2 [e4,g#4]@2 [d#4,g#4]@2 [d#4,g#4]@2 [b3,d#4,g#4] ~ [c#4,f#4]@4 [c#4,f#4]@2 [c#4,f#4] ~ [c#4,f#4]@4 [c#4,f#4]@2 [a3,c#4,f#4]@2 [c#4,f#4]@2, [g#3,c#4,e4]@4 g#3@9 ~ a3@6 ~@2 [f#3,a3]@6 ~@4, ~@2 b3 ~@5]/2", // C#m E G#5 G#m F#5 F#m F#5 C#m …
  R: "[a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 ~@2 [g#3,b3,e4,g#4]@3 ~ [g#3,b3,e4,g#4]@2 ~@2", // F#m E
  S: "[c#4,e4,a4]@3 ~ [a3,c#4,e4,a4]@2 ~@2 [b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 ~@2", // A E
  T: "[a3,c#4,e4,a4] ~ [a3,c#4,e4,a4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~", // A E
  U: "[a3,c#4,f#4] ~ [f#3,a3,c#4,f#4] ~ [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4] ~", // F#m E
  V: "[c#4,e4,a4] ~ [a3,c#4,e4,a4] ~ [g#3,b3,e4,g#4] ~ [b3,e4,g#4] ~", W: "[f#3,a3,c#4,f#4]",
  X: "[e4,a4]@2 [e4,a4]@2 [c#4,e4,a4]@2 [e4,a4] ~ [e4,g#4]@2 g#4@2 [g#3,b3,e4,g#4]@2 g#4 ~, a3@7 ~ [g#3,b3]@4 ~@4, c#4 ~@3", // A5 A A5 E G#m
  Y: "[a3,c#4,f#4]!2 [c#4,f#4] [c#4,f#4]@2 [c#4,f#4] [a3,c#4,f#4] ~, ~@2 f#3@5 ~, ~ a3@2 ~", // F#m F#5 F#m
  Z: "[[e4,a4]@2 [e4,a4]@2 [a3,c#4,e4,a4]@2 [e4,a4] ~ [e4,g#4]@2 [e4,g#4]@2 [g#3,b3,e4,g#4] ~ [c#4,f#4]@4 [c#4,f#4]@2 [a3,f#4]@2 f#4@4 f#4@2 a3@2 ~@2, [a3,c#4]@4 ~@4 [g#3,b3]@4 ~@2 a3@6 f#3@11 ~, ~@10 c#4@3 c#4@2 ~, ~@11 a3@3 ~@2]/2", // A5 A A5 E F#5 D A G#m
  AA: "[~@21 b3 ~@3 b3 ~@3 b3 ~ b3, e4@8 e4@8 e4@7 ~ e4@8 e4@8 e4@8 e4@8 e4@8, ~ b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 ~@2 b3@2 ~@2 b3@2 ~@3, ~@4 a3@7 ~ a3@7 ~ a3@7 ~ a3@7 ~ a3@7 ~ a3@7 ~ a3@7 ~ a3@4]/4",
  AB: "[g#4,b4]@2 b4@2 [e4,g#4,b4]@2 b4 ~ g#4@2 g#4@2 [b3,d#4,g#4]@2 [d#4,g#4]@2, e4 ~ [b3,d#4] ~", // G#m E G#m G#5 B
  AC: "[g#4@2 g#4@2 [c#4,e4,g#4]@2 [e4,g#4]@2 [d#4,g#4]@2 [d#4,g#4]@2 [b3,d#4,g#4] ~ [c#4,f#4]@4 [c#4,f#4]@2 [c#4,f#4] ~ [c#4,f#4]@4 [c#4,f#4]@2 [a3,c#4,f#4]@2 c#4@2 [a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@2 f#4 ~ [b3,e4,g#4]@3 ~ [g#3,b3,e4,g#4]@2 ~@2, [g#3,c#4,e4]@4 g#3@9 ~ a3@6 ~@2 [f#3,a3]@6 ~@2 f#3@4 ~@14, ~@8 b3@4 ~@18 f#4 ~@17]/3", // C#m E G#5 G#m F#5 F#m E C#m …
  AD: "[a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@2 ~@2 [b3,e4,g#4]@2 g#4 ~ [b3,e4,g#4]@2 ~@2", // A E
  AE: "[a3,c#4,f#4]@3 ~ [f#3,a3,c#4,f#4]@2 ~@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 ~@2", // F#m E
  AF: "[e4,a4]@2 [e4,a4]@2 [c#4,e4,a4]@2 [e4,a4] ~ [e4,g#4]@2 g#4@2 [g#3,b3,e4,g#4]@2 g#4 ~, c#4 ~ [g#3,b3] ~", // A5 A A5 E G#m
  AG: "[~@21 b3 ~@2 e4@8, e4@8 e4@8 e4@7 ~ e4@8 e4@8 e4@8 ~@16, ~ b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 ~@2 b3@2 ~@7, ~@4 a3@7 ~ a3@7 ~ a3@7 ~ a3@7 ~ a3@7 ~ a3@4 ~@16]/4",
})).s("gm_acoustic_guitar_steel").gain(0.25).pan(0.1)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@12 A ~@9 B C ~@3 D E F ~@3 G H@2 I@2 J ~ K@2 L M N O P ~@3 Q R S@2 ~@10 B C ~@3 D E F ~@3 G T@2 I@2 U ~ K@2 V W X Y
  P ~ Z R S@2 ~@6
>`.pickRestart({
  A: "a3@11 ~@5", B: "a3@5 ~ g#3 ~", C: "f#3@3 ~@5", D: "~@2 g#4 ~", E: "~ c#5 ~@3 c5 ~@2", F: "~@3 e4@2 ~@3",
  G: "~@2 [e4,a4] ~@5", H: "[~@14 e4@6 e4 ~@9 g#4 ~]/2", I: "[~@7 e4@3 ~ e4@3 ~@2]/2", J: "~ g#4 ~@6",
  K: "[~@7 f#3@3 ~@4 f#3 a3]/2", L: "~@6 f#4 ~@7 [e4,g#4] ~", M: "a3@3 ~@3 e4 ~@9", N: "~@8 g#3@2 g#4 ~ g#3@2 g#4 ~",
  O: "~@14 g#4 ~", P: "a3 ~@5 g#3 ~", Q: "~@5 e4 ~@2", R: "f#3@4 ~@10 f#4 ~", S: "[~@7 f#3@3 ~@4 f#4 ~]/2",
  T: "[~@14 e4@6 e4 ~@9 [e4,g#4] ~]/2", U: "~ g#4 ~@4 g#3 ~", V: "~@8 g#3@3 ~@3 [e4,g#4] ~",
// … 102 more lines

More by McCartney