Strudelify
Don't Lose My Number cover art

1985 · No Jacket Required

Don't Lose My Number

Phil Collins

KeyE♭ majorTempo164 bpm
0:00/0:00
// Don't Lose My Number — Collins Phil
// 164 bpm, 4/4, key D# 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 146 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 28.
setcpm(164/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.

// bass · electric bass finger · "Don'tLose"
const bass = note(`<
  ~@5 A B C D A B C D A B C D A B A B A B E F G H I J K L M@2 N@2 O J P L Q R A B S D A B C D A B C D A B C D A B E F G
  T U J V W X R Y Z AA J P AB Q R AC AD AE AF AG AH AG AI AG AJ AK AL AM AN AO AP@2 AQ AR@2 A B C D A B C AS A B C AT A
  B C AU A B C AV A B E AW G AX O J V AY Q R AZ BA BB J V AB Q R BC@8 ~
>`.pickRestart({
  A: "c2 g1 c2 ~@4 g1", B: "~ g1 c2 ~@5", C: "c2@2 g1@2 c2@2 ~@8 c3 ~", D: "~@2 g2@2 c2@3 ~@9",
  E: "f1 ~ f1 ~ f1@2 ~@8 ab1@2", F: "~@2 ab1 ~ ab1@2 ~@2 bb1 ~ bb1 ~ bb1 ~@3", G: "eb2 bb1 eb2 ~@2 bb1 c2 eb2",
  H: "~@2 eb2@4 ~@2 f2@3 ~ f2@3 ~", I: "db2@2 ~@2 db2@2 ~@4 ab1@2 bb1@2 db2 ~", J: "~ db2 c2 bb1 ab1 ~ ab1 bb1",
  K: "c2 g1 c2 ~@2 g1 bb1 c2", L: "~@2 g1@2 c2@3 ~@9", M: "[c2@2 ~@2 bb1@6 ~@4 bb1@5 ~ db2@10 ~@2]/2",
  N: "[eb2 bb1 eb2 ~@4 eb2@3 ~ eb2 f2 ~ f2 ~]/2", O: "db2 ~ ab1@2 db2@2 ~@4 f1@2 ab1@2 db2@2", P: "c2 g1 c2 ~@3 g1 c2",
  Q: "c2 ~@3 bb1@8 ~@2 bb1 ~", R: "~@2 db2@5 ~", S: "c2 g1 c2 ~@4 c3", T: "~@2 eb2 ~@3 eb2@2 f2@2 ~@2 f2@3 ~",
  U: "db2 ab1 db2 ~@2 ab1 bb1 db2", V: "c2@2 g1@2 c2@2 ~@4 g1@2 bb1@2 c2 ~", W: "~@2 g1@2 c2@3 ~@7 g1@2",
  X: "c2 ~@3 bb1@5 ~@5 bb1 ~", Y: "eb2 bb1 eb2 ~@4 eb2", Z: "~ eb2@2 ~ f2 ~ f2@2",
  AA: "db2@2 ab1@2 db2 ~@5 f1@2 ab1@2 db2@2", AB: "~@2 g1@2 c2@9 ~@3", AC: "g1 ~ g1 ~ g1@2 ~@2 g1@2 d2@2 f2@2 g2 ~",
  AD: "~ g2 f2 d2 c2 d2 c2 bb1", AE: "g1 ~ g1 ~ g1@3 ~ d2 ~ f2 ~ d2@2 g2@2", AF: "~ bb2 a2 g2 f2 d2 c2 bb1",
  AG: "g1 ~ g1 ~ g1 ~@3 g1@2 d2@2 f2@2 g2@2", AH: "~ g2 f2 d2 c2 bb1 c2 d2",
  AI: "~@2 g3@2 f3@2 d3@2 c3 ~ bb2@2 g2@2 f1@2", AJ: "~@2 g2 ~@3 bb2@2 a2@2 g2 ~ f2@2 d2@2",
  AK: "g1@3 ~ g1@2 ~@2 g1@2 d2@2 f2@2 g2 ~", AL: "~@2 g2 ~@3 g2@2 f2 ~ c2@2 bb1 ~ f1 ~",
  AM: "g1 ~ g1 ~ g1@2 ~@2 g1@2 d2@2 f2@2 g2@2", AN: "~@2 g2 ~ g2@2 ~@4 g2@2 f2 ~ d2@2",
  AO: "g1 ~ g1 ~ g1@2 ~@2 g2@2 f2 ~ d2@2 g1@2", AP: "~@2 g1 ~ g1@2 ~@8 g1@2", AQ: "~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1 ~",
  AR: "[~@2 g1 ~ g2@22 g1@2 bb1@2 b1 ~]/2", AS: "~ g2 c2 ~@2 g1 bb1 b1", AT: "~ g2 c2 ~@5",
  AU: "~@2 g2 ~ eb3@2 d3 ~ bb2@2 g2@2 c3@2 f2@2", AV: "~@2 g2 ~ c2@2 ~@8 g1@2",
  AW: "~@2 ab1 ~@3 ab1@2 bb1 ~ bb1 ~ bb1@2 ~@2", AX: "~@2 eb2@2 ~@2 eb2@2 f2@3 ~ f2@3 ~", AY: "~ g1 c2@4 ~ g1",
  AZ: "eb2 bb1 eb2 ~@3 bb1 eb2", BA: "~@2 eb2@4 ~@2 f2 ~@3 f2@2 ~@2", BB: "db2 ab1 db2 ~@2 f1 ab1 db2",
  BC: "[eb1 ~ eb1@126]/8",
})).s("gm_electric_bass_finger").gain(0.3)

// chords · epiano2
const epiano2 = note(`<
  ~@5 A@2 B@2 C@2 D@2 C@2 E@2 F@2 G@2 F@2 H I J K L M N O P Q R S T U V W X Y B@2 Z@2 AA@2 AB@2 AA@2 D@2 AA@2 AC@2 Z@2 H
  AD AE AF L AG AH O AI AJ AK K AL M V O X AM ~@14 AN AO AP AQ@3 Z@4 AR@2 AS@2 AA@4 AR@6 AA@4 H I AT AU AV AW AX AY AZ
  BA BB BC AV AW AX BD AZ BE BF ~@8
>`.pickRestart({
  A: "[[c4,eb4,g4]@7 [bb3,d4,f4]@9]/2", B: "[[c4,eb4,g4]@7 [bb3,d4,f4]@8 ~]/2",
  C: "[[eb4,g4]@7 [bb3,d4,f4]@9, c4@3 ~@5]/2", D: "[[f3,bb3,d4]@14 [ab3,c4,eb4]@17 ~]/2",
  E: "[[f3,bb3,d4]@14 [ab3,c4,eb4]@15 ~@3]/2", F: "[[c4,g4]@13 ~ [bb3,d4,f4]@14 ~@4, eb4@7 ~@9]/2",
  G: "[[f3,d4]@7 [ab3,c4,eb4]@7 ~@2, bb3@3 ~@5]/2", H: "[f3,ab3,c4]@15 ~", I: "[ab3,c4,eb4]@8 [bb3,d4,f4]@7 ~",
  J: "[bb4,eb5,g5,bb5]@3 ~ [bb4,eb5,g5,bb5] ~@9 [bb4,eb5,f5,g5,bb5] ~", // Eb
  K: "~@2 [bb4,eb5,g5,bb5]@5 ~ [c5,eb5,ab5,c6]@2 ~@2 [c5,eb5,ab5,c6]@3 ~", // Eb Ab
  L: "[ab4,db5,f5,ab5]@2 ~@2 [db5,f5,ab5]@2 ~@8 [ab4,db5,f5,ab5] ~, ~@4 ab4 ~@11", // Db
  M: "~ [ab4,db5,f5,ab5]@2 ~ [ab4,c5,eb5,ab5] ~ [ab4,c5,eb5,c6] ~, ~@8 c6 ~@3 ab5 ~@3", // Db Ab
  N: "[g4,c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@2 ~@8 [f4,g4,c5,eb5,g5] ~, ~@4 g4 ~@11", // Cm
  O: "~@2 [g4,c5,eb5]@13 ~, ~@2 g5@11 ~@3", P: "[g4,c5,g5] ~@3 [f4,bb4,d5,f5]@9 ~ [f4,bb4,d5,f5] ~, eb5 ~@7",
  Q: "~ [f4,ab4,f5]@3, ~@2 [db5,ab5]@5 ~", R: "[g4,bb4,eb5,g5,bb5]@3 ~ [g4,bb4,eb5,g5,bb5] ~@9 [g4,bb4,eb5,g5,bb5] ~",
  S: "~@2 [bb4,eb5,g5,bb5]@6 [eb5,ab5,c6] ~@3 [ab4,c5,eb5,ab5,c6]@2 ~@2, ~ g4@2 ~ [ab4,c5] ~@3", // Eb Ab
  T: "[f4,ab4,f5,ab5]@3 ~ [f4,ab4,ab5]@2 ~@8 [ab4,db5,f5,ab5] ~, db5 ~@3 [db5,f5] ~@9 f4@2", // Fm Db
  U: "~@2 [f4,ab4,db5,f5,ab5]@4 ~@2 [c5,eb5,ab5,c6] ~@3 [ab4,c5,eb5,ab5,c6]@2 ~@2, ~@4 ab4 ~@3", // Db Ab
  V: "[g4,g5]@2 ~@2 [g4,c5,eb5] ~@9 [g4,c5,eb5,g5] ~, [c5,eb5] ~@3 g5@2 ~@10", W: "~@2 [g4,c5,eb5,g5]@5 ~",
  X: "[g4,c5,eb5,g5] ~@3 [f4,bb4,d5,f5]@10 [f4,bb4,d5,f5] ~", Y: "~ [f4,ab4,db5,f5,ab5]@3",
  Z: "[[c4,eb4,g4]@13 ~ [bb3,d4,f4]@15 ~@3]/2", AA: "[[c4,eb4,g4]@13 ~ [bb3,d4,f4]@18]/2",
  AB: "[[f3,bb3,d4]@13 ~ [ab3,c4,eb4]@16 ~@2]/2", AC: "[[f3,bb3,d4]@13 ~ [ab3,c4,eb4]@15 ~@3]/2",
  AD: "[ab3,c4,eb4]@7 ~ [bb3,d4,f4]@8", AE: "[bb4,eb5,g5,bb5]@4 [bb4,eb5,g5,bb5]@2 ~@8 [bb4,eb5,g5,bb5] ~",
  AF: "~@2 [g5,bb5]@6 [c5,ab5,c6] ~@3 [c5,eb5,ab5,c6]@4, ~@2 [bb4,eb5]@5 ~ eb5@2 ~@6", // Gm Fm Ab Eb5
  AG: "~@2 [ab4,db5,f5,ab5]@5 ~ [eb5,ab5]@2 ~@2 [c5,eb5,ab5,c6]@3 ~, ~@8 [c5,c6] ~@7", // Db Ab5 Ab C
  AH: "[c5,eb5,g5]@2 ~@2 [g4,c5,eb5,g5]@2 ~@8 [g4,c5,eb5,g5] ~, g4 ~@15", // Cm
  AI: "[eb5,g5]@2 ~@2 [f4,bb4,d5,f5]@10 [f4,bb4,d5,f5] ~, [g4,c5] ~@15", AJ: "~@2 [ab4,db5,f5,ab5]@5 ~",
  AK: "[eb5,g5,bb5] ~@3 [bb4,eb5,g5,bb5]@3 ~@7 [bb4,eb5,g5,bb5] ~, bb4 ~@7", // Eb
  AL: "[ab4,db5,f5,ab5] ~@3 [ab4,db5,f5] ~@9 [ab4,db5,f5,ab5] ~, ~@2 ab5 ~@5", AM: "~@4 [ab4,db5,f5,ab5]@11 ~",
  AN: "~@7 [a4,c5,f5,a5]", AO: "~@2 [a4,c5,f5,a5] ~ [a4,c5,f5,a5] ~@9 [a4,c5,f5,a5]@2",
  AP: "~@2 [a4,c5,f5,a5] ~ [a4,c5,f5,a5] ~@9 [a4,c5,f5,a5] ~", // F
  AQ: "[~@2 [a4,c5,f5,a5] ~@3 [a4,c5,f5,a5] ~@3 [a4,c5,f5,a5] ~@3 [b4,d5,g5,b5]@29 ~@5]/3", // F G
  AR: "[[c4,eb4,g4]@13 ~ [bb3,d4,f4]@17 ~]/2", AS: "[[c4,eb4,g4]@13 ~ [bb3,d4,f4]@11 ~ [c4,d4,f4,bb4]@5 ~]/2",
  AT: "[eb4,g4,bb4]@3 ~ [g4,bb4]@2 ~@8 [g4,bb4] ~, ~@4 eb4 ~@11", AU: "~@2 [g4,bb4]@6 [ab4,c5] ~@3 [ab4,c5]@4",
  AV: "[f4,ab4]@2 ~@2 [f4,ab4]@2 ~@8 [f4,ab4] ~", AW: "~@2 [f4,ab4]@5 ~ [ab4,c5]@2 ~@2 ab4@2 ~@2, ~@12 c5 ~@3",
  AX: "[eb4,g4] ~@3 [eb4,g4] ~@9 [eb4,g4] ~", AY: "~ [eb4,g4]@6 ~", AZ: "eb4@2 ~@2 [d4,f4]@9 ~ [d4,f4] ~, g4 ~@15",
  BA: "~@4 f4@11 ~, ~@4 ab4@9 ~@3", BB: "[g4,bb4]@3 ~ bb4@2 ~@8 [g4,bb4] ~, ~@4 g4 ~@11",
  BC: "~@2 g4@5 ~ [ab4,c5] ~@3 [ab4,c5]@3 ~", BD: "~@4 [eb4,g4]@9 ~@3", BE: "~@4 [f4,ab4]@9 ~@3",
  BF: "[eb5,g5] ~ [bb4,eb5,g5] ~@13, bb4 ~@7", // Eb
})).s("gm_epiano2").gain(0.22)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@5 A B A C A B A C A B A C D ~@7 E ~ F@2 G@2 H I E ~ J@2 K@2 L@2 A B A C ~@3 M@3 ~ N@2 ~@2 O@2 ~@3 E ~ F@2 P@2 H I E
  ~ J@2 K@2 H Q R@2 ~@2 R@2 ~@2 S@2 ~@2 T@2 U ~@5 V@4 W@2 X Y Z AA AB AC@2 AD AE AF AG@2 AH@2 AI AJ AK ~ E ~ J@2 P@2 H I
  E ~ AL@2 P@2 H I AM ~@8
>`.pickRestart({
  A: "bb3 ~ bb3 ~ c4 ~@3 d4 ~@3 c4 ~ bb3 ~", B: "~@2 bb3 ~ c4 ~@7 c4 ~ c4 ~", C: "~@2 bb3 ~ c4 ~@11",
  D: "~@3 [bb3,c4,eb4]", E: "~@2 [bb4,eb5] ~", F: "[~@10 [f4,ab4] ~@3 [eb4,ab4]@4 db4 ~@13]/2",
  G: "[~@10 f4@4 eb4@13 ~@5]/2", H: "~@8 f4@2 d4 ~ bb3@2 f4 ~", I: "~@2 bb3@2 eb4@11 ~",
  J: "[~@10 [f4,ab4] ~@3 [eb4,ab4]@4 [db4,ab4] ~@13]/2", K: "[~@5 f4@2 eb4@7 ~@2]/2",
  L: "[~@8 f4@2 d4 ~ bb3@2 f4@17 ~]/2", M: "[bb4@7 ~ f4@4 eb4@2 c4@19 ~@15]/3",
  N: "[~@8 f4@4 eb4@2 c4@14 [bb4,c5,eb5]@3 ~]/2", O: "[~@8 f4@4 eb4@2 c4@15 ~@3]/2", P: "[~@10 f4@4 eb4@17 ~]/2",
  Q: "~@2 bb3 ~ eb4@8 ~@4", R: "[[bb3,d4,g4]@13 ~ [c4,f4]@16 ~@2, ~@7 a3@7 ~@2]/2",
  S: "[[bb3,d4,g4]@13 ~ [a3,c4,f4]@14 ~@4]/2", T: "[[bb3,d4,g4]@13 ~ [c4,f4]@18, ~@7 a3@8 ~]/2",
  U: "[g3,bb3,eb4]@13 ~@3", V: "[~@12 f4@23 ~ eb4@2 ~@10 c5 ~@11 c4@2 eb4 ~, ~@19 d4@6 ~@7]/4",
  W: "[f4@2 g4 ~ bb4 ~ g4@3 bb4@3 g4@3 bb4@3 g4@3 bb4@3 c5@3 bb4@3 c5@2]/2", X: "~ eb5@3 f5 ~ f5 ~@2 f5 ~@2 f5 ~ f5@2",
  Y: "~ f5@2 ~ f5@2 ~ f5@2 ~ f5@2 eb5 ~ f5@2", Z: "eb5 ~ f5@2 ~ eb5 f5@3 eb5 c5@2 f5@3 eb5",
  AA: "c5@2 f5@3 eb5 c5@2 f5@3 ~ c5@2 f5@2, ~@11 eb5@2 ~@3", AB: "~ eb5 c5@2 f5@3 eb5 c5@2 f5@3 eb5 c5 ~",
  AC: "[f5@3 eb5 c5@2 f5@3 eb5 c5 f5 eb5 ~ bb5@11 ~ bb5@2 g5 ~ g5@2, ~@13 c5@2 ~@17]/2",
  AD: "f5 ~ f5@2 eb5 ~ eb5@2 f5 ~ f5@2 eb5 ~ f5 c5", AE: "bb4 c5 bb4 g4 c5 bb4 g4 f4 eb4 bb4 f4 eb4 c4 f4 eb4 bb3",
  AF: "g3 c4 g3 bb3 c4!2 bb3 c4!2 g3 a3 bb3 c4 d4 eb4 f4", AG: "[gb4 g4 bb4 c5 eb5 f5 f5@12 eb5@2 d5@6 eb5@2 d5@4]/2",
  AH: "[c5@2 bb4@2 c5@6 bb4 ~ c5@6 d5@2 g4@12]/2", AI: "~@4 g4 bb4 c5 eb5", AJ: "f5 ~ eb5 f5@3 ~@2 f5 ~@2 f5 ~@2 f5@2",
  AK: "~ f5@2 ~ eb5@5 ~ bb5 ~ c6@3 ~", AL: "[~@10 [f4,ab4]@2 ~@2 [eb4,ab4]@4 [db4,ab4] ~@13]/2",
  AM: "[bb3,eb4,g4] ~ [bb3,eb4,g4]@2 ~@12", // Eb
})).s("gm_overdriven_guitar").gain(0.2)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@28 A B ~@2 C ~@4 D ~@2 E ~@23 A B ~@2 F ~@4 B ~@2 C ~@48 B ~@2 C ~@4 B ~@2 G ~@9
>`.pickRestart({
  A: "~@2 ab4 ~@13", B: "~@5 g4 f4 ~", C: "~@4 f4@11 ~", D: "~@10 g4 ~ f4@2 ~@2", E: "~@2 bb3@2 f4@11 ~", F: "~ f4@2 ~",
  G: "~@4 f4@5 ~@7",
})).s("gm_electric_guitar_muted").gain(0.35)

// chords · synth brass 1
const synth_brass_1 = note(`<
  ~@5 A ~ A ~@33 A ~ A ~@17 B C D E F G H I B J D E F G K I ~@14 L M N O@3 ~@24 P J D E F G K I P J D E F G K I ~@9
>`.pickRestart({
  A: "[c5,eb5,g5]@7 ~", B: "[eb5,g5]@3 ~ [eb5,g5] ~@9 [eb5,g5] ~",
  C: "~@2 [eb5,g5]@5 ~ [eb5,ab5]@2 ~@2 [eb5,ab5]@2 ~@2", D: "[db5,f5] ~@3 [db5,f5] ~@9 [db5,f5] ~",
  E: "~@2 [db5,f5]@4 ~@2 [eb5,ab5] ~@3 [eb5,ab5] ~@3", F: "[c5,eb5] ~@3 [c5,eb5] ~@9 [c5,eb5] ~", G: "~ [c5,eb5]@6 ~",
  H: "eb5@2 ~@2 [bb4,d5]@9 ~ [bb4,d5,f5] ~, c5 ~@15", I: "~@4 [db5,f5]@9 ~@3",
  J: "~@2 [eb5,g5]@5 ~ [eb5,ab5] ~@3 eb5@2 ~@2, ~@12 ab5 ~@3", K: "[c5,eb5] ~@3 [bb4,d5]@10 [bb4,d5] ~",
  L: "~@7 [c5,f5]", M: "~@2 [c5,f5] ~ [c5,f5] ~@9 [c5,f5]@2", N: "~@2 [c5,f5] ~ [c5,f5] ~@9 [c5,f5,g5] ~",
  O: "[~@2 [c5,f5] ~@3 [c5,f5] ~@3 [c5,f5] ~@3 [d5,g5]@32 ~@2]/3", P: "[eb5,g5] ~@3 [eb5,g5] ~@9 [eb5,g5] ~",
})).s("gm_synth_brass_1").gain(0.3)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@5 A B C D E ~@4 F ~ F ~ G ~@7 H ~ I ~ J@2 K@2 H ~ L ~ M@2 N@2 O E O ~@3 P Q ~@3 Q R ~@2 Q ~@4 H ~ S ~ T@2 U@2 H ~ I
  ~ M@2 ~ V@2 ~@2 V@2 ~@2 W@2 ~@2 X@2 Y ~@5 Z@2 AA@2 AB@2 AC AD AE AF AG AH@2 AI AJ AK AL@4 AM AN@2 AO AP@2 ~ AQ ~ AR@2
  AS@3 ~ AT ~ AU@2 AV AW@8 ~
>`.pickRestart({
  A: "~@8 bb3 ~@3 c4 ~@3", B: "d4 ~@5 bb3 ~@9", C: "~@12 c4 ~@3", D: "d4 ~@3 c4 ~@7 c4 ~@3", E: "~@8 bb3 ~@7",
  F: "d4 ~@15", G: "~ [g3,bb3,c4,eb4] ~@2", H: "[bb4,eb5] ~@3", I: "~@2 [f4,ab4]@2 ~@2 [eb4,ab4]@4 db4 ~@5",
  J: "[~@2 f4@4 eb4@13 ~@13]/2", K: "[f4@2 ~@2 bb3@2 f4 ~@3 bb3@2 eb4@11 ~@9]/2",
  L: "~@2 [f4,ab4] ~@3 [eb4,ab4]@4 [db4,ab4] ~@5", M: "[~ f4@2 eb4@7 ~@6]/2",
  N: "[f4@2 d4 ~ bb3 ~ f4@17 ~ bb3 ~ bb3 ~ c4 ~@3]/2", O: "d4 ~@5 bb3 ~@3 bb3 ~@5", P: "~@8 bb4@7 ~", Q: "f4@3 ~@13",
  R: "~@4 [bb4,c5,eb5]@3 ~@9", S: "~@2 [f4,ab4] ~@3 [eb4,ab4]@4 db4 ~@5", T: "[~ f4@2 eb4@8 ~@5]/2",
  U: "[f4@2 d4 ~ bb3@2 f4 ~@3 bb3 ~ eb4@11 ~@9]/2", V: "[[bb3,d4,g4]@13 ~ [c4,f4]@16 ~@2, ~@7 a3@7 ~@2]/2",
  W: "[[bb3,d4,g4]@13 ~ [a3,c4,f4]@14 ~@4]/2", X: "[[bb3,d4,g4]@13 ~ [a3,c4,f4]@17 ~]/2", Y: "[g3,bb3,eb4]@13 ~@3",
  Z: "[~@6 f4@23 ~ eb4@2]/2", AA: "[d4@6 eb4 c4@3 ~ c4 eb4 f4 g4 bb4]/2",
  AB: "[g4@3 bb4@3 g4@3 bb4@3 g4@3 bb4@3 c5@3 bb4@3 c5@3 eb5@3 f5 ~]/2", AC: "f5 ~@2 f5 ~@2 f5 ~ f5@2 ~ f5@2 ~ f5@2",
  AD: "~ f5@2 ~ f5@2 eb5 ~ f5@2 ~ eb5 f5@2 ~ eb5", AE: "f5@3 eb5 c5@2 f5@3 eb5 c5@2 f5@3 eb5",
  AF: "c5@2 f5@3 ~ c5@2 f5@3 eb5 c5@2 f5@2, ~@5 eb5@2 ~@9", AG: "~ eb5 c5@2 f5@3 eb5 c5 ~ f5@3 eb5 c5@2",
  AH: "[f5@3 eb5 c5 f5 eb5 ~ bb5@11 ~ bb5@2 g5 ~ g5@2 f5 ~ f5@2 eb5 ~, ~@7 c5@2 ~@23]/2",
  AI: "eb5@2 f5 ~ f5@2 eb5 ~ f5 c5 bb4 c5 bb4 g4 c5 bb4", AJ: "g4 f4 eb4 bb4 f4 eb4 c4 f4 eb4 bb3 g3 c4 g3 bb3 c4!2",
  AK: "bb3 c4!2 g3 a3 bb3 c4 d4 eb4 f4 gb4 g4 bb4 c5 eb5 f5",
  AL: "[f5@12 eb5@2 d5@6 eb5@2 d5@4 c5@2 bb4@2 c5@6 bb4 ~ c5@6 d5@2 g4@13 ~@5]/4",
  AM: "~@2 g4@2 bb4@2 c5@2 eb5@2 f5 ~ eb5 ~ f5@2",
  AN: "[~@2 f5 ~@2 f5 ~@2 f5@2 ~ f5@2 ~ eb5@6 bb5 ~ c6@2 bb5@4 g5@2 eb6@2]/2",
  AO: "~@2 d6 ~ bb5 ~ c6@2 bb5@2 f5 ~ eb5@2 f5@2", AP: "[~@7 [bb4,eb5]@2 ~@7]/2",
  AQ: "[f4,ab4] ~@3 [eb4,ab4]@4 [db4,ab4] ~@7", AR: "[f4@4 eb4@17 ~@9 f4 ~]/2",
  AS: "[~@2 bb3@2 f4 ~@3 bb3 ~ eb4@12 ~@8 [bb4,eb5]@4 ~@14]/3", AT: "ab4@2 ~@2 [eb4,ab4]@4 [db4,ab4] ~@7",
  AU: "[f4@4 eb4@17 ~@9 f4@2]/2", AV: "~@4 f4 ~@3 bb3@2 eb4@5 ~", AW: "[[eb3,bb3] ~ [eb3,bb3]@126]/8",
})).s("gm_distortion_guitar").gain(0.25)

// other · distortion guitar · soft notes
const distortion_guitar_soft = note(`<
  ~@5 A B C D E F G F H I G I ~@15 J ~@9 K L K ~@4 M@2 ~@2 N ~@3 O@2 ~@13 P ~@55 Q ~@3 R ~@3 S ~@9
>`.pickRestart({
  A: "~@10 bb3 ~@5", B: "~@4 c4 ~@5 bb3 ~ c4 ~@3", C: "~@4 c4 ~ c4 ~ bb3 ~ bb3 ~@5", D: "~@6 bb3 ~@3 bb3 ~@5",
  E: "~@10 bb3 ~ c4 ~@3", F: "d4 ~@3 c4 ~ bb3 ~@3 bb3 ~ c4 ~@3", G: "~@4 c4 ~ c4 ~ bb3 ~ bb3 ~ c4 ~@3",
  H: "~@8 bb3 ~ bb3 ~ c4 ~@3", I: "~@4 c4 ~ bb3 ~@3 bb3 ~ c4 ~@3", J: "~ d4 ~@6", K: "~@4 c4 ~@7 c4 ~@3",
  L: "~@4 c4 ~ c4 ~@3 bb3 ~ c4 ~@3", M: "[~@4 eb4 ~ c4@19 ~@7]/2", N: "~@2 eb4 c4@5", O: "[~@4 eb4 ~ c4@15 ~@11]/2",
  P: "~@10 ab4 ~@5", Q: "d4 ~@15", R: "f4 ~@7", S: "d4 ~ bb3@2 ~@12",
})).s("gm_distortion_guitar").gain(0.15)

// chords · rock organ
const rock_organ = note(`<
  ~@77 A@2 B@2 A@2 B@2 A@2 C@2 D@2 E F G H@3 ~@24 I J K L M N O P Q R S T M U V P W ~@8
>`.pickRestart({
  A: "[[bb4,d5,g5]@7 [a4,c5,f5]@9]/2", B: "[[bb4,eb5]@7 [a4,f5]@9, g4@13 ~ c5@16 ~@2]/2",
  C: "[[g4,eb5]@7 [a4,c5,f5]@9, bb4@13 ~@19]/2", D: "[[bb4,d5,g5]@14 [a4,c5]@15 ~@3, ~@7 f5@9]/2",
  E: "[g4,bb4,eb5]@7 [a4,c5,f5]", F: "~@2 [a4,c5,f5] ~ [c5,f5]@2 ~@8 [c5,f5,a5]@2, ~@4 a4 ~@11",
  G: "~@2 [c5,f5,a5] ~ [c5,f5,a5]@2 ~@8 [f5,a5,c6] ~", // F
  H: "[~ [f5,a5,c6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [g5,b5,d6]@16 ~]/3", // F G
  I: "[eb5,g5,bb5]@3 ~ [eb5,g5,bb5] ~@9 [g5,bb5]@2, ~@14 eb5 ~", // Eb Gm
  J: "~@2 [eb5,bb5]@6 [eb5,ab5,c6]@3 ~ [eb5,c6] ~@3, ~ g5@2 ~@3 ab5 ~", // Eb5 Ab Cm
  K: "[db5,f5,ab5]@2 ~@2 [db5,f5] ~@9 [db5,f5]@2, ~@4 ab5@2 ~@8 ab5 ~", // Db
  L: "~@2 [db5,f5,ab5]@4 ~@2 [eb5,ab5]@2 ~@2 [eb5,ab5,c6] ~@3, ~@8 c6 ~@7", // Db Ab5 Ab
  M: "[c5,eb5,g5]@2 ~@2 [c5,eb5,g5] ~@9 [c5,g5]@2, ~@14 eb5 ~", N: "~ [c5,eb5,g5]@5 ~@2",
  O: "[c5,eb5,e5,gb5,g5] ~@3 [bb4,d5,f5]@8 ~@2 [bb4,d5,f5] ~", P: "~@4 [db5,f5,ab5]@11 ~",
  Q: "[eb5,g5,bb5]@3 ~ [eb5,g5,bb5]@2 ~@8 [eb5,g5,bb5] ~", // Eb
  R: "~ [eb5,g5,bb5]@3 [eb5,ab5,c6] ~ [eb5,ab5] ~, ~@12 c6 ~@3", // Eb Ab Ab5
  S: "[f5,ab5]@2 ~@2 [db5,f5,ab5]@2 ~@8 [db5,f5] ~, db5 ~@13 ab5@2", // Fm Db
  T: "~@2 [db5,f5,ab5]@5 ~ [eb5,ab5,c6]@2 ~@2 [eb5,c6] ~@3, ~@6 ab5 ~", U: "~ [c5,eb5,g5]@6 ~",
  V: "[c5,eb5,g5] ~@3 [bb4,d5,f5]@8 ~@2 [bb4,d5,f5]@2", W: "[g4,bb4,db5,eb5] ~ [g4,bb4,eb5] ~@13",
})).s("gm_rock_organ").gain(0.23).pan(0.3)

// other · lead 5 charang
const lead_5_charang = note(`<
  ~@5 A B ~ C D E ~@3 F ~ F ~ G ~@7 H ~ I@2 J@2 K L H ~ M@2 N@2 O@2 P A Q A ~@3 R ~@3 S T ~@2 S ~@4 H ~ U@2 V@2 W L H ~
  U@2 N@2 ~@22 X@3 Y@2 Z AA AB AC AD AE AF AG AH AI AJ@2 AK AL@2 AM AN AO ~ AP ~ AQ ~ AR@2 AS AT AP ~ AU ~ AR@2 ~@10
>`.pickRestart({
  A: "~@2 bb3 ~@13", B: "bb3 ~@3 c4 ~@3 d4 ~@5 bb3 ~", C: "~@4 c4 ~@3 d4 ~@3 c4 ~@3", D: "~@4 c4 ~@11", E: "bb3 ~@15",
  F: "~@8 d4 ~@7", G: "~@3 [bb3,c4,eb4]", H: "~@2 [bb4,eb5] ~", I: "[~@10 [f4,ab4]@2 ~@2 [eb4,ab4]@4 db4 ~@13]/2",
// … 102 more lines

More by Phil Collins