Strudelify
No More Lonely Nights (Ballad reprise) cover art

Give My Regards To Broad Street

No More Lonely Nights (Ballad reprise)

McCartney

KeyF majorTempo85 bpm
0:00/0:00
// No More Lonely Nights (Ballad reprise) — McCartney
// 85 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 7, 4/4 at bar 8, 2/4 at bar 15, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 94 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/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 · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  A B C D E F G@6 H@2 I ~@9 J K L M N O P Q@2 ~@9 R@4 S@4 H@2 I ~@10 T U T U V W X Y Z Y X AA AB@8 AC@4 AD@5 ~@2
>`.pickRestart({
  A: "[c3,g3,e4]@15 ~", B: "[f3,g3,bb3,d4,f4,bb4]", C: "[g3,c4,e4,g4]", D: "[d3,a3,d4,f4,a4]@3 [c3,c4,e4,g4]",
  E: "[bb2,bb3,d4,f4] [c4,e4,g4]", F: "[f3,c4]@6 [e3,db4]@9 ~, a3@15 ~",
  G: "[d4@4 c4@3 ~ [f3,bb3,d4]@16 [g3,c4,e4]@15 ~ f4@16 e4@16 [a3,d4,f4]@12 [c4,f4,a4]@4 [bb3,d4,f4]@8, [f3,a3]@7 ~@33 [bb4,d5]@32 ~@24]/6", // Bb C Dm F Bb F Bb
  H: "[[c4,e4,g4]@8 [f3,a3,c4]@5 ~ [e3,a3,db4]@8 ~@2 d4@4 c4@2 ~@2, ~@24 [f3,a3]@7 ~]/2", I: "[f3,bb3,d4]",
  J: "~ [d4,f4]@3", K: "[c4,e4]@3 ~", L: "[bb3,d4,f4]", M: "[g3,c4,e4]", N: "[a3,d4,f4]@3 [c4,f4,a4]",
  O: "[bb3,d4,f4] [c4,e4,g4]", P: "[f3,a3,c4]@5 ~ [e3,a3,db4]@8 ~@2",
  Q: "[d4@2 c4 ~ [f3,bb3,d4]@8 ~@4, [f3,a3]@7 ~@25]/2", R: "[~ bb3@2 a3@2 g3@2 c3]/4",
  S: "[~@2 [bb3,d4,f4]@4 [g3,c4,e4]@4 [a3,d4,f4]@3 [c4,f4,a4] [bb3,d4,f4]@2]/4", T: "~@7 [d5,f5]@9, ~@3 bb5@5",
  U: "~@7 [c5,e5]@9, ~@3 g5@5", V: "~@3 bb5@5, ~ f5@7, ~ d5@3", W: "~@3 g5@5, e5, ~ c5@3",
  X: "~@3 bb5@5, bb4, ~ d5@7, ~ f5@3", Y: "~@3 g5@5, g4, ~ e5@7, ~ c5@3", Z: "~@3 bb5@5, bb4, ~ f5@7, ~ d5@3",
  AA: "~@3 e5@5, g4, ~ c5@7, ~ g5@3",
  AB: "[~@26 eb5 db5 ~ db5 ~@13 db5@6 ~ bb5 ab5 eb5@4 db5 ~@5 ab5@16 ~@2 ab4@5 ~@3 eb5 ~@4 db5 ab4 ~ ab4@16 ~@7 ab4 ~@2 bb4@2 db5 eb5 db5@2, ab4@27 ~ ab4@29 ~ db5@20 ~@8 ab4@6 eb5@2 ~ gb4@21 ~ eb5@2 ~@9, ~@2 db5@12 ab5@16 ~@30 ab4@18 ~ db4@41 eb4@8, ~@4 eb5@21 ~@5 eb5@13 ~@14 eb5@21 ~@9 db5@2 ab5@21 ~@6 ab5@2 db5@2 ~ ab4@2 ~@5, ~@3 db4@13 eb4@23 ab3@21 ~@4]/8",
  AC: "[ab4@12 ~@2 bb4@10 ~@2 gb4 ~ bb4 ~@3 gb4@2 ~@4 bb4@7 ~ ab4 ~@2 eb5@5 ab4@7 ~@3, db4@15 ab3@3 db4@5 ~@9, ~@12 gb4@2 ~@20 ab4@4 ~@9 bb4@7 ~@10, ~@13 ab4@13 ~ ab4@2 db5@3 ~@16 db5@8 ~@8]/4",
  AD: "[~@4 ab5 eb5 db5@2 ~@2 bb4@8 ~@8 gb4 ab4@11 ~ gb4 ~ bb4@16 ~ db5 eb5 gb5 ab5 gb5 ~ bb5@15 ~, ~@2 eb6@2 ~@14 bb5@5 ~@57, ~@3 bb5@2 ~@3 eb5@10 ~ eb5@6 ~@38 eb5@16 ~, ~@10 db5@2 db4@7 eb4 ~@20, ~@21 ab4@6 ~@13 ab4@2 ~@38]/5",
})).s("gm_epiano1").gain(0.27).pan(0.3)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~ A B C D E F@3 G H I J@2 K L M N O P Q P R S T U V W X Y Z AA@2 AB AC AD AE AF AG AH AI@2 AJ@4 AK AL AM AN AO@2 AP AQ
  AR AS AT AU AV AU AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL@4 BM BL BM BL BN BO BM BN BL BM BL BM BP@2 ~
>`.pickRestart({
  A: "f2@15 ~", B: "c2@15 ~", C: "d2@7 ~ d3@2 ~@2 c3@3 ~", D: "bb2@8 c3@7 ~", E: "f2@6 a2@7 ~ a1@2",
  F: "[d2@2 c2 ~ bb1@5 ~ f2 a2@8 ~ f2@4, ~@22 g2 ~@25]/3", G: "d2@2 f2 ~@3 d2@2 c2@8", H: "g2@4 c2@4 d2@7 ~",
  I: "d2@2 c2 ~ bb1@4", J: "[c2@8 f1@2 g1 ~ ab1 ~ a1@10 d2@4 c2@3 ~]/2", K: "bb1",
  L: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1@2", M: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  N: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ f2 g2 f2 ~", O: "bb1@3 ~ f1 g1 bb1@4 c2 ~ c2@2 f1 ~",
  P: "f1@3 ~ c2 ~ c2@2 a1 ~ a1 ~ f1 ~ f1 ~", Q: "bb1@3 ~ f1 g1 bb1@3 ~ c2 ~ c2@2 f1 ~",
  R: "bb1@3 ~ f1 g1 bb1@4 a1 ~ c2@3 ~", S: "d2@4 c2 d2 g1@4 g1 ~ a1@2 bb1@2", T: "c2 ~ c2 ~ c2@8 ~@2 g2@2",
  U: "b2@13 ~@3, a2 ~@15", V: "f1@7 ~ db2@2 f2 ~@3 d2@2", W: "c2@3 c2 g2@2 c2@2", X: "db2@6 d2@2 d2@4 c2@3 ~",
  Y: "bb1 c2", Z: "f1@2 g1 ~ ab1 ~ a1@10", AA: "[d2@4 c2@2 ~@2 bb1@10 ~@2 f2@3 d2 bb1 ~ bb1 ~ bb1 ~ bb1 ~]/2",
  AB: "bb1 ~ bb1 ~ bb1 a1 g1@2 a1 ~ a1 ~ a1 ~ a1 ~", AC: "a1 ~ a1 ~ a1 c2 f1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~",
  AD: "bb1 ~ bb1 ~ d2 e2 f1 ~ bb1@3 ~ f1 ~ bb1@2", AE: "~@2 c2@2 c2 ~ f1 ~ f1@3 ~ c2 ~ c2@2",
  AF: "a1 ~ a1 ~ f1 ~ f1 ~ bb1@3 ~ f1 ~ bb1@2", AG: "~@2 c2 ~ c2@2 f1 ~ f1@3 ~ c2 ~ c2@2",
  AH: "a1 ~ a1 ~ f1 ~ f1 ~ bb1@4 f1 ~ bb1@2", AI: "[~@2 c2 ~ c2@3 ~ d2@4 d2 ~ g1@4 g1 ~ a1@2 bb1@2 c2@4 c2@4]/2",
  AJ: "[c2 ~ c2@2 c2 ~ g1 a1 c2@4 c2 ~ c2@10 c2@4 c2 ~ c2@10 c2@4 c2 ~ c2@4 c2 ~ c2@4 c2@7 ~]/4",
  AK: "c3 ~ c3 ~ c3@3 ~ f1@6 f1 ~", AL: "d2@3 ~ f1 ~ g1 ~ c2@6 c2 ~", AM: "g1@4 c2@3 ~ d2@6 d2 ~",
  AN: "d2@4 c2@3 ~ bb1@6 bb1 ~", AO: "[c2@4 c2@3 ~ f1 ~ g1 ~ ab1 ~ a1@4 a1 ~ c2@2 db2@2 d2@4 c2@2 ~@2]/2",
  AP: "bb1@10 ~@2 bb2@3 [e2,g2]", AQ: "bb1 ~ bb1 ~ bb1 ~ bb1@2 bb1@2 bb1@2 bb1 a1 g1 ~",
  AR: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 c2 a1 f1", AS: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1@2 bb1 ~ bb2@3 g2",
  AT: "bb1 ~ bb1 ~ bb1@2 bb1@2 bb1 ~ c2@2 c2 ~ f1@2", AU: "f1@3 ~ c2 ~ c2@2 a1 ~ a1 ~ f1@2 f1 ~",
  AV: "bb1@4 ~@2 a1@3 ~ c2@2 c2 ~ f1@2", AW: "bb1@4 ~@2 bb1@4 bb1 ~ c2@3 ~", AX: "db2@4 d2 ~ g1@4 g1 ~ a1@2 bb1@2",
  AY: "c2 ~ c2 ~ c2@10 ~@2", AZ: "c2@3 c2!2 ~ c2@9 ~", BA: "c2@4 c3@2 c2@6 c3@3 ~", BB: "c2@4 c2 ~ c3@3 ~ b1 ~ c2@4",
  BC: "c2@4 c2@2 ~@2 bb2 c3@2 ~ g2 a2@3", BD: "g2@3 c2!2 ~ g2@8 g1 a1", BE: "c2@4 c2 ~ c2@9 ~",
  BF: "c2@2 c3 c2@2 c3 c2@2", BG: "c2@2 c3 g2 c3@2 g1 a1", BH: "c2@3 c2!2 ~ c2@6 ~@2 g1 ~",
  BI: "c2@3 c2 ~@2 c2@4 ~@2 [g2,a2] ~ a2@2, ~@14 g2 ~", BJ: "c2@3 c2!2 ~ c2@6 c2 ~ g1 ~", BK: "c2@4 c3@2 g2 ~ c3@8",
  BL: "ab1@2 ~ ab1 ab1@3 ~", BM: "ab1@4 ~@2 ab1@2 ab1@7 ~", BN: "ab1@5 ~ ab1@2 ab1@7 ~", BO: "ab1@5 ~ ab1@2 ab1@6 ~@2",
  BP: "[ab1@31 ~]/2",
})).s("gm_fretless_bass").gain(0.44)

// chords · piano · "A.PIANO 2"
const piano = note(`<
  ~@13 A B C D E F@2 G@2 H@2 I J ~@4 K L M@5 N O P Q@6 R ~@6 C D E F@2 G@2 H@2 I S T U V S T U V S T U V ~@19
>`.pickRestart({
  A: "~@6 db4@2 [f3,a3,d4] ~@3 [e3,g3,c4] ~@3, ~@3 a2@5 ~@8, ~ db3 ~@2, ~@5 a3@3 ~@8", // Dm C
  B: "f3@2 ~ [bb3,d4,f4] [bb3,d4,f4]@4", C: "c4 ~ [c4,e4] ~ [bb2,g3,c4,e4] ~ [bb2,g3,c4,e4]@5 ~ [bb2,g3,c4,e4]@2 ~@2",
  D: "c4 ~ [a2,c4] ~ [a2,a3,c4,f4] ~ [a2,a3,c4,f4]@5 ~ [a2,a3,c4,f4]@2 ~@2", // Am F
  E: "[f3,bb3,d4]@3 ~ [f3,a3,c4] ~ [f3,bb3,d4]@5 ~ [f3,a3,c4]@3 ~", // Bb F Bb F
  F: "[[bb1,bb2]@2 [f3,bb3,d4] ~ [f3,a3,c4]@3 ~ [f3,bb3,d4] ~ [g3,c4,e4]@3 ~@3 [f1,f2]@3 ~ [c2,c3]@2 [g3,c4]@2 [a1,a2]@2 [e3,a3]@2 ~@2 [c3,f3]@2, ~@2 [bb1,bb2]@5 [a3,c4,f4]@2 ~@5 [f1,f2]@2]/2", // Bb F Bb C F C C5 A …
  G: "[~@2 [bb1,bb2,f3,bb3,d4] ~ [bb1,bb2,f3,a3,c4]@3 ~ [bb1,bb2,f3,bb3,d4] ~ [bb1,bb2,g3,c4,e4]@3 ~@3 [f1,f2]@3 ~ [c2,c3]@2 [g3,c4]@2 [a1,a2]@2 [e3,a3]@2 ~@2 [c3,f3]@2, ~@7 [a3,c4,f4]@2 ~@5 [f1,f2]@2]/2", // Bb F Bb C7 F C C5 A …
  H: "[~@2 [bb1,bb2,f3,bb3,d4] ~ [bb1,bb2,f3,a3,c4]@3 ~ [bb1,bb2,f3,bb3,d4] ~ [bb1,bb2,g3,c4,e4]@4 ~@2 [d2,d3]@5 ~ [g1,g2,g3,bb3,d4]@8 ~@2, ~@14 [a3,d4,f4]@5 ~@13]/2", // Bb F Bb C7 D Gm Dm
  I: "[c2,c3,bb3,d4,f4] ~ [c2,c3,d4,f4] ~ [c2,c3,bb3,d4,f4]@11 ~", J: "[c2,c3,g3,c4,e4]@13 ~@3",
  K: "~@7 db4, ~@11 a2@5, ~@3 db3, ~@13 a3@3", L: "[f3,a3,d4] ~@3 [e3,g3,c4] ~@3 f3@4 ~@2 [bb3,d4,f4]@2",
  M: "[[bb3,d4,f4]@8 c4 ~ [c4,e4] ~ [bb2,g3,c4,e4] ~ [bb2,g3,c4,e4]@5 ~ [bb2,g3,c4,e4]@2 ~@2 c4 ~ [a2,c4] ~ [a2,a3,c4,f4] ~ [a2,a3,c4,f4]@5 ~ [a2,a3,c4,f4]@2 ~@2 [f3,bb3,d4]@3 ~ [f3,a3,c4] ~ [f3,bb3,d4]@5 ~ [f3,a3,c4]@3 ~ [bb1,bb2]@2 [f3,bb3,d4] ~ [f3,a3,c4]@3 ~ [f3,bb3,d4] ~ [g3,c4,e4]@3 ~@3 [f1,f2]@3 ~ [c2,c3]@2 [g3,c4]@2, ~@30 [bb1,bb2]@5 [a3,c4,f4]@2 ~@3]/5", // Bb C C7 Am F Bb F Bb …
  N: "[a1,a2]@2 [e3,a3]@2 ~@2 [c3,f3]@2 ~@2 [bb1,bb2,f3,bb3,d4] ~ [bb1,bb2,f3,a3,c4]@3 ~, ~@4 [f1,f2]@5 ~@7", // A A5 F5 Bb F
  O: "[bb1,bb2,f3,bb3,d4] ~ [bb1,bb2,g3,c4,e4]@3 ~@3 [f1,f2]@3 ~ [c2,c3]@2 [g3,c4]@2, ~@3 [a3,c4,f4]@2 ~@3", // Bb C7 F C C5 F
  P: "[a1,a2]@2 [e3,a3]@2 ~@2 [c3,f3]@2 ~@2 [bb1,bb2,f3,bb3,d4] ~ [bb1,bb2,f3,a3,c4]@3 ~, ~ [f1,f2] ~@2", // A A5 F5 Bb F
  Q: "[[bb1,bb2,f3,bb3,d4] ~ [bb1,bb2,g3,c4,e4]@4 ~@2 [d2,d3]@5 ~ [g1,g2,g3,bb3,d4]@8 ~@2 [c2,c3,bb3,d4,f4] ~ [c2,c3,d4,f4] ~ [c2,c3,bb3,d4,f4]@11 ~ [d4,f4,a4]@5 ~ [d4,f4,a4]@9 ~ [c4,e4,g4]@5 ~ [c4,e4,g4]@8 ~@2 [d4,f4,a4]@5 ~ [d4,f4,a4]@7 ~@3 [c4,e4,g4]@3 ~ c4@2 c3@2, ~@6 [a3,d4,f4]@5 ~@29 c2@13 ~@43]/6", // Bb C7 D Gm Bb Dm7 Bb Dm …
  R: "c5@2 c3@2 a4@3 ~@9", S: "[d4,f4,a4]@5 ~ [d4,f4,a4]@9 ~, c2@13 ~@3", T: "[c4,e4,g4]@5 ~ [c4,e4,g4]@8 ~@2",
  U: "[d4,f4,a4]@5 ~ [d4,f4,a4]@7 ~@3", V: "[c4,e4,g4]@3 ~@3 [c4,e4,g4]@9 ~",
})).s("gm_piano").gain(0.44).pan(0.6)

// chords · piano · "A.PIANO 2" · soft notes
const piano_soft = note("<~@14 A B C ~@7 D ~@6 E F G ~@7 H ~@11 B C ~@7 D ~@31>".pickRestart({
  A: "[d3,bb3] ~@3", B: "[bb2,g3,e4] ~ [bb2,g3] ~@13", C: "[a3,f4] ~ [a3,f4] ~@13", D: "~@2 bb3 ~@13",
  E: "~@2 [d3,bb3] ~", F: "~@8 [bb2,g3,e4] ~ [bb2,g3] ~@5", G: "~@8 [a3,f4] ~ [a3,f4] ~@5", H: "~@10 bb3 ~@5",
})).s("gm_piano").gain(0.27).pan(0.6)

// other · pad new age · "FANTASIA"
const pad_new_age = note("<~@26 A B C D E@3 ~@30 F@4 G@4 ~@23>".pickRestart({
  A: "f5", B: "e5", C: "d5@3 e5", D: "f5 g5", E: "[a5@6 a5@16 f5@2 d5@15 ~@9]/3", F: "g5/4", G: "[d4@63 ~]/4",
})).s("gm_pad_new_age").gain(0.22).pan(0.6)

// chords · pad warm · "WARM PAD"
const pad_warm = note(`<
  ~ A B C D E F@6 G@2 H ~@9 I J K L M N O P@2 ~@9 Q@4 R@4 G@2 H ~@10 S T U V S T U V S T U V W@8 X@6 Y@4 ~
>`.pickRestart({
  A: "[f3,g3,bb3,d4,f4,bb4]", B: "[g3,c4,e4,g4]", C: "[d3,a3,d4,f4,a4]@3 [c3,c4,e4,g4]",
  D: "[bb2,bb3,d4,f4] [c4,e4,g4]", E: "[f3,c4]@6 [e3,db4]@9 ~, a3@15 ~",
  F: "[d4@4 c4@3 ~ [f3,bb3,d4]@16 [g3,c4,e4]@15 ~ f4@16 e4@16 [a3,d4,f4]@12 [c4,f4,a4]@4 [bb3,d4,f4]@8, [f3,a3]@7 ~@33 [bb4,d5]@32 ~@24]/6", // Bb C Dm F Bb F Bb
  G: "[[c4,e4,g4]@8 [f3,a3,c4]@5 ~ [e3,a3,db4]@8 ~@2 d4@4 c4@2 ~@2, ~@24 [f3,a3]@7 ~]/2", H: "[f3,bb3,d4]",
  I: "~ [d4,f4]@3", J: "[c4,e4]@3 ~", K: "[bb3,d4,f4]", L: "[g3,c4,e4]", M: "[a3,d4,f4]@3 [c4,f4,a4]",
  N: "[bb3,d4,f4] [c4,e4,g4]", O: "[f3,a3,c4]@5 ~ [e3,a3,db4]@8 ~@2",
  P: "[d4@2 c4 ~ [f3,bb3,d4]@8 ~@4, [f3,a3]@7 ~@25]/2", Q: "[~ bb3@2 a3@2 g3@2 c3]/4",
  R: "[~@2 [bb3,d4,f4]@4 [g3,c4,e4]@4 [a3,d4,f4]@3 [c4,f4,a4] [bb3,d4,f4]@2]/4", S: "bb3", T: "a3", U: "g3",
  V: "c3@9 ~@7",
  W: "[~@9 ab4@6 ~@16 db4@8 ~@8 [db4,db5]@17, ab3@7 ~@9, eb3@45 ~ [eb4,ab4]@48 ~@34, eb4@23 ~@7 eb5@22 ~@26 eb5@21 ~@29]/8", // Db Ab5
  X: "[[eb4,ab4]@16 ~@16 ab4@7 eb5@9, eb3, ~ db4@2, ~@32 db5@10 ~@11 ab5@16 ~@27, ~@19 eb5@13 ~@16]/6", // Ab5
  Y: "[eb4@7 db4@8 ~@9 db4@8, ab4@24 eb5@7 ~, ~@30 eb4@33 ~]/4",
})).s("gm_pad_warm").gain(0.22).pan(0.8)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~ A@3 B C D@6 E@2 F G H I J K L M N O P@2 Q R S T U V@2 W X Y Z AA@2 AB@8 AC@5 AD G AE AF AG M AH M AI@2 AJ AK AL AK
  AL AK AM AN AO AP AO AQ AR ~@19
>`.pickRestart({
  A: "[[bb3,d4]@14 ~@2 [c4,e4]@13 ~@3 [a3,d4,f4]@11 ~ [g3,c4]@2 ~@2, f3@12 ~@3 [c3,g3]@14 ~@2 d3@11 ~@6]/3", // Bb C Dm C5
  B: "[bb2,f3,bb3,d4]@7 ~ [g3,c4,e4]@6 ~@2", C: "~ c3 a3 ~@3 db4 a2, f2@6 a2@7 ~@3, ~ e3, ~@10 g3@5 ~",
  D: "[d3@2 ~@2 c3@2 ~@2 [f3,bb3,d4,g4]@10 ~@2 [bb3,d4] ~@3 [g3,c4,e4]@14 ~@2 bb3@4 ~@2 [bb3,d4]@6 [bb3,d4]@2 ~@2 [g3,c4,e4]@4 c3 ~ e4@6 [g3,c4] ~@3 [d3,a3,d4,f4]@4 ~@2 [d3,a3]@4 d3 ~ [g3,c4,e4]@2 ~@2 [bb3,d4]@4 bb3@2 ~@2, ~@7 bb2@10 ~@45 c3@4 ~@30, ~@31 c4 ~@7 [d4,f4]@3 ~@6]/6", // Gm7 Bb C Bb C C5 Dm D5 …
  E: "[[c3,c4,e4]@4 c3@2 ~@2 f2@2 a2 ~ c3 ~ db3@9 ~ d3@2 ~@2 e3@2 ~@2, g3@7 ~@25]/2", F: "[f3,bb3,d4]@3 ~",
  G: "bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~", H: "a3 ~@3 a3 ~ a3 ~ a3 ~@3 a3 ~ a3 ~",
  I: "bb3 ~@3 a3 ~ bb3 ~ bb3 ~ bb3 ~ a3 ~ a3 ~", J: "bb2@3 ~ f2 ~ bb2@3 ~ c3 ~ c3@2 f2 ~",
  K: "f2@3 ~ c3 ~ c3@2 a2 ~ a2@2 f2 ~ f2 ~", L: "bb2@4 f2 ~ bb2@3 ~ c3 ~ c3@2 f2 ~",
  M: "f2@4 c3 ~ c3@2 a2 ~ a2@2 f2 ~ f2 ~", N: "bb2@3 ~ f2 ~ bb2@3 ~ a2@2 c3@3 ~", O: "d3@3 g2@4 ~",
  P: "[c3 ~ c3 ~ c3@25 ~@3]/2", Q: "~@4 [f3,bb3,d4] ~@7 [f3,bb3,d4] ~@3", R: "~@4 [c3,g3,c4,e4] ~@7 [g3,c4,e4] ~@3",
  S: "[d3,a3]@2 ~ d4!2 ~ [g3,c4] ~, ~@3 [a3,f4]@3 ~@2", T: "[f3,bb3,d4]@7 ~ [c3,g3,c4,e4]@6 ~@2",
  U: "f2@2 a2 ~ c3 ~ db3@9 ~", V: "[d3@2 ~@2 e3 ~@3 [bb2,f3,bb3]@13 ~@3 bb3 ~ bb3 ~ bb3 ~ bb3 ~]/2",
  W: "bb3 ~ bb3 ~ bb3 ~ bb3 ~ a3 ~@3 a3 ~ a3 ~", X: "a3 ~ a3 ~ a3 ~ a3 ~ bb3 ~ bb3 ~ a3 ~ bb3 ~",
  Y: "bb3 ~ bb3 ~ a3 ~ a3 ~ bb2@3 ~ f2 ~ bb2@2", Z: "~@2 c3 ~ c3@2 f2 ~ f2@4 c3 ~ c3@2",
  AA: "[a2 ~ a2@2 f2 ~ f2 ~ bb2@3 ~ f2 ~ bb2@4 c3 ~ c3@2 f2 ~ f2@4 c3 ~ c3@2]/2",
  AB: "[a2 ~ a2@2 f2 ~ f2 ~ bb2@3 ~ f2 ~ bb2@4 a2@2 c3@3 ~ d3@6 g2@8 ~@2 c3 ~ c3 ~ c3@9 ~@3 [f3,bb3,d4]@14 ~@2 [g3,c4,e4]@14 ~@2 [c3,f3,bb3,d4]@14 ~@2 [g3,c4,e4]@12 ~@4 [f3,bb3]@4 [f3,bb3,d4,g4] ~@3, ~@55 c3@15 ~ c3@14 ~@18 c3@13 ~@12]/8", // Bb C Bb C Bb5 Gm7
  AC: "[~@4 [f3,bb3,d4] ~@3 g3@4 [g3,c4,e4] ~ g3@6 [g3,c4,e4] ~@3 [d3,a3,d4,f4]@4 ~@2 [d3,a3,d4]@4 d3 ~ [g3,c4,e4]@2 c4 ~ [f3,bb3,d4]@4 [f3,bb3] ~ [g3,c4]@2 [g3,c4,e4]@4 [g3,c4,e4,a4]@2 ~@2 f2@2 a2@2 c3 ~ db3@8 ~@2 d3 ~@3 e3 ~@3, ~@7 c3@2 ~@14 c3@3 ~@14, ~@7 c4 ~@32]/5", // Bb C Dm D5 C Bb Bb5 C5 …
  AD: "[bb2,f3,bb3]@13 ~ bb3 ~", AE: "a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~",
  AF: "bb3 ~ bb3 ~ a3 ~ bb3 ~ bb3 ~ bb3 ~ a3 ~ a3 ~", AG: "~@2 bb2 ~ bb2@4 bb2 ~ c3@4 f2 ~",
  AH: "bb2@8 ~@2 c3 ~ c3@2 f2 ~", AI: "[bb2@8 ~@2 c3 ~ c3 ~ d3@8 g2@2 g2@6 ~@2]/2", AJ: "c3 ~ c3 ~ c3@11 ~",
  AK: "~@3 [f3,bb3,d4]@5", AL: "~@3 [g3,c4,e4]@5", AM: "~@6 [g3,c4,e4]@7 ~@3",
  AN: "~@6 f4@7 ~@3, bb4@4 bb4@9 ~@3, ~@2 d5@11 ~@3", AO: "~@8 c5@5 ~@3, g4@6 g4@7 ~@3, ~ c5@3 ~@4",
  AP: "bb4 ~@2 f4@4 ~, ~@2 d5@13 ~, ~@2 bb4@5 ~", AQ: "~@3 f4@4 ~, bb4@2 bb4@5 ~, ~ d5@6 ~",
  AR: "~@4 c5@3 ~, g4@3 g4@4 ~, ~ c5@3 ~@4",
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.4)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note("<~@7 A B C@2 D E ~@3 F G ~@8 H I J ~@4 K ~@12 L@4 ~@2 M ~@41>".pickRestart({
  A: "~@4 f4 ~@11", B: "~@2 [f3,d4] ~", C: "[~@2 f3@4 ~@2 c3@4 c4 ~@5 c3@3 ~@11, ~@7 g3@3 ~@6]/2",
  D: "~@2 a3 ~@5 f3@4 ~@2 bb2 ~", E: "~@2 c4 ~@5", F: "~@2 a3 ~@7 a3 ~@5", G: "~@2 bb3 ~@13", H: "[f3,bb3] ~ f3 ~",
  I: "c3 ~ g3 ~, ~@4 c3 ~@3", J: "d4@2 ~@4 e4 ~", K: "~@10 a3 ~@5",
  L: "[~@14 f3@4 ~@6 c3@4 ab4 ~ e4@6 ab4 ~@9 f4@5 ~@13, ~@12 c4 ~@19]/4", M: "d4@13 ~@3",
})).s("gm_electric_guitar_clean").gain(0.16).pan(0.4)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@15 A B C ~@3 D E@2 F G ~@13 H I@4 ~@2 J@2 K L M@4 ~@8 N@8 ~ O P Q@2 R S T@2 U V W@3 X Y@2 Z AA AB@2 AC AD ~
>`.pickRestart({
  A: "bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~", B: "a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~",
  C: "bb3 ~ bb3 ~ a3 ~ bb3 ~ bb3 ~ bb3 ~ a3 ~ a3 ~", D: "~@4 c5@2 a4 c5 d5 c5@2 ~ g4!2 f4 g4",
  E: "[f4@7 ~ f4@2 g4@2 ~@2 a4@7 ~ bb4@4 a4@2 bb4@2 a4 ~]/2", F: "bb4@2 c5 ~ b4@8 a4!2 g4 f4", G: "e4@3 ~",
  H: "~@8 f4@7 ~", I: "[f4@2 g4@2 ~@2 a4@7 ~ bb4@4 a4@2 bb4@2 a4 ~ bb4@2 c5 ~ b4@8 a4!2 g4 f4 e4 d4 c4@8 ~@14]/4",
  J: "[~@6 e5@16 d5 ~ c5@4 d5 ~ b4@2, ~@30 d5 ~]/2", K: "~@2 d5 ~ f5@3 ~ f5@5 ~@2 f5",
  L: "e5@2 f5 ~ c5@2 d5@6 ~@2 f5 e5", M: "[e5@2 f5 ~ gb5 ~ a5@4 a5@4 a5@4 g5@3 ~ f5@3 ~ a5 ~ c6 ~ db6@23 ~@11]/4",
  N: "[f4@2 g4@2 g4@24 g5@49 ~ g4@35 ~@15]/8", O: "e5@14 ~ d5", P: "b4@4 d5 ~ c5@4 ~@2 f5@3 ~",
  Q: "[f5@4 ~@2 f5!2 e5@2 f5 ~ db5 ~ c5@14 ~@4]/2", R: "ab5", S: "~@2 ab4 ~ ab4 ab4@3 ~@2 ab4 ~ eb5 b4 ab4 ~",
  T: "[ab4 ~ b4 ~@7 [db5,d5,gb5] ~ [db5,d5,gb5] ~ [d5,gb5]@7 ~@5 [db5,d5,gb5] ~ [db5,d5,gb5] ~ [db5,d5,gb5] ~, ~@14 db5 ~@17]/2", // Dmaj7 D Dmaj7
  U: "[d5,gb5]@4 db5 d5@3 [d5,gb5]@3 ~ [d5,gb5]@3 ~, db5 ~@3 gb5@3 ~ [db5,f5] ~@3 db5 ~@3", // D Db
  V: "[d5,gb5]@3 ~ [d5,gb5]@3 ~ db5 ~ db5 b4 db5 b4 ab4 ~, db5 ~@3 db5 ~@11", // D
  W: "[b4 ~ db5 ~ db5 ~ b4 ~ db5 b4 db5 ~ db5 b4 ab4@4 b4 ~@7 db6@8 b5 g5 c6 b5 g5 gb5 ab5@2 ~@2 ab5@2 gb5 ~]/3",
  X: "g5@2 eb5@4 ~@3 db5@2 b4 db5 [b3,d5] db5 ~", Y: "[b4@10 ~@2 ab4 gb4 ~ b4@2 ab4@3 ~@6 gb5@2 ab5 gb5 ~ ab5]/2",
  Z: "gb5 ab5 gb5 ~ ab5 [gb5,g5] ab5 bb5 ~ bb5@5 ~@2", AA: "~@5 b5@2 ab5 gb5 ab5 gb5 gb5@2 eb5 db5 ~",
  AB: "[b4@5 ~ ab4 gb4 ab4@2 ~ b4@2 ab4@6 ~@6 db5@2 b4 db5 ~ db5 ~]/2", AC: "db5@5 ~ b4@2", AD: "ab4",
})).s("gm_overdriven_guitar").gain(0.44).pan(0.7)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@15 A B C ~@6 D E ~@6 F@4 ~@9 G H@4 I@2 J K L J ~@18 M N@4 O P Q R S@2 T U V@2 R W@3 ~
>`.pickRestart({
  A: "[bb2,c4]@15 ~", B: "[a2,a3,c4]", C: "bb2", D: "~@4 d4@8 bb3 a3 g3 f3", E: "e3@5 ~@3",
  F: "[~@8 [bb2,c4]@15 ~ [a2,a3,c4]@16 bb2@16 ~@8]/4", G: "~@12 c3 ~ c3@2",
  H: "[c4 ~ c4@2 a3 ~ a3@2 bb3@16 g3@16 a3@12 g3@4 f3@8]/4", I: "[e3 f3 g3 a3@2 c4 f4 e4@3 a3 g3 f3@2 a3@2]/2", J: "d4",
  K: "[bb2,g3,c4]@15 ~", L: "~@2 c4 ~ c4@12, [a2,a3,f4]", M: "~@4 c4 ~ c4@2 c5@2 c5@2 a4@2 a4@2",
  N: "[bb4@23 ab4@4 ~ gb4@6 eb4@6 db4@4 b3@2 bb3@8 ab3@4 gb3@6]/4", O: "eb3@5 gb3@2 f3", P: "eb3@7 ~ eb3@4 db3@4",
  Q: "db3@4 eb3@7 ~ eb3@4", R: "gb3@3 f3 eb3@12", S: "[bb2 ab2@3]/2", T: "b3", U: "eb3@3 ~ eb3@6 gb3@4 ~ f3",
  V: "[eb3@2 ~@2 eb3@8 db3@6 eb3 ~ eb3@12]/2", W: "[bb2@5 ab2@11]/3",
})).s("gm_string_ensemble_1").gain(0.33).pan(0.3)

// other · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@15 A B ~@15 C@3 ~@18 D ~@40>".pickRestart({
  A: "[g3,e4]@15 ~", B: "f4", C: "[~@8 [g3,e4]@15 ~ f4@16 ~@8]/3", D: "e4@15 ~",
})).s("gm_string_ensemble_1").gain(0.22).pan(0.3)

// bass · contrabass
const bass_2 = note(`<
  ~@15 A B A C@2 D@2 E F G ~@7 H I J K L M N O@4 ~@2 P Q@2 ~@5 A B A C@2 D@2 E F G ~@31
>`.pickRestart({
  A: "bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~", B: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~",
  C: "[bb2@5 ~ bb2@3 ~ c3@2 ~@2 f2@5 ~ c3 ~ c3@2 a2 ~ a2@2 f2 ~ f2 ~]/2",
  D: "[bb2@4 ~@2 bb2@3 ~ c3@2 ~@2 f2@6 c3 ~ c3@2 a2 ~ a2@2 f2 ~ f2 ~]/2", E: "bb2@2 ~ bb2@3 c3@2", F: "d3@3 g2@5",
// … 161 more lines

More by McCartney