Strudelify
Don't Lose My Number cover art

1985 · No Jacket Required

Don't Lose My Number

Phil Collins

KeyC minorTempo162 bpm
0:00/0:00
// Don't Lose My Number — Collins Phil
// 162 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 193 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(162/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.

// other · lead 8 bass lead · "Lead Synth"
const lead_8_bass_lead = note(`<
  ~@17 A B C@2 D@2 E@2 F G H@2 I J K L M N O P Q R S T U V W X Y Z AA AB AC ~@3 AD AE AF AG AH AI AJ@2 AK AL AM@2 AN AO
  AP@2 M N O P Q AQ S T U V W X Y Z AA AB AR@3 AS AT@3 AU AV@3 AW AX@3 AY AZ BA@2 BB ~@23 BC BD BE O BF BG BH BI BJ BK
  BL AC X BM BN BO@2 BP@2 BQ BR BS@2 BT@2 BU BV BW@2 I J BX BY BZ N CA CB CC AQ CD CE CF CG AC BF CH CI CJ CK CL N CA CB
  CC AQ CD CE CF CG AC BF CH CI CJ ~
>`.pickRestart({
  A: "~@2 c5 ~ c5 ~ c5 ~ c5@3 ~ c5@3 ~", B: "c5@2 bb4 ~ bb4 ~ c5@7 ~@3",
  C: "[bb4 ~ bb4 ~ bb4 ~ bb4@2 ~@2 bb4@2 ~@2 c5@4 bb4@6 ~@6 c5 ~]/2",
  D: "[c5 ~ c5 ~ c5 ~ c5@3 ~ c5 ~ f5 ~ d5@6 bb4@2 ~@10]/2",
  E: "[~@2 bb4 ~ bb4 ~ bb4 ~ bb4 ~ d5@2 ~@2 d5@4 ~ c5@6 ~@5 g5 ~]/2", F: "g5@2 f5@2 eb5@2 f5@2 g5@3 ~@5",
  G: "~ bb4!3 c5@2 ~@2", H: "[~@6 g4 ~ bb4 ~ d5@2 ~@2 d5@4 c5@6 ~@6 g5 ~]/2", I: "g5@2 f5@2 eb5 ~ eb5@4 f5@2 g5 ~ f5@2",
  J: "~@2 f5@2 d5@3 ~ bb4@4 ~@2 f5 ~", K: "f5 ~ f5 ~ f5@3 ~ f5@2 ~@2 f5@2 ab5@2", L: "g5@3 ~ f5@3 ~ f5@5 ~@3",
  M: "eb5 ~ eb5@2 ~@10 eb5@2", N: "~ eb5 c5 bb4 eb5 ~ eb5 ~", O: "eb5@7 ~@9", P: "~@6 eb5@2 ab5@3 ~ ab5@3 ~",
  Q: "f5@4 eb5@2 c5@3 ~@7", R: "~@4 c5 eb5@2 ~, ~@7 bb4@2 ~@7", S: "eb5 ~ f5@4 ~@2", T: "~@4 ab5@7 ~ ab5@3 ~",
  U: "g5@4 f5@3 ~@7 g5@2", V: "~@2 g5@2 f5@2 eb5 ~ eb5@3 ~ c5@4", W: "a5@3 ~ g5@3 ~@9", X: "~@6 ab5 ~ ab5@3 ~ ab5@3 ~",
  Y: "g5@4 f5@3 ~@9", Z: "~@6 bb4 ~ c5@2 eb5@5 ~", AA: "eb5 ~ f5@6", AB: "~ ab5@3", AC: "g5 f5 ~@2",
  AD: "bb4@2 c5 ~ c5 ~ c5 ~ c5@2 ~@2 d5@3 ~", AE: "c5@2 bb4 ~ bb4@2 c5@4 ~@6",
  AF: "~@2 bb4 ~ bb4 ~ bb4 ~ bb4@3 ~ bb4 ~ bb4 ~", AG: "c5 bb4 ~@2", AH: "~@2 c5 ~ c5 ~ c5 ~ c5 ~ c5 ~ c5@2 f5@2",
  AI: "d5 ~ d5@2 bb4 ~ bb4@2 g4@5 ~@3", AJ: "[~@2 bb4 ~ bb4 ~ bb4 ~ bb4@2 d5@4 eb5@6 ~@10 g5 ~]/2",
  AK: "g5@2 f5 ~ eb5@4 f5@4 ~@4", AL: "~@2 bb4 ~ bb4 ~ bb4@2 c5@5 ~@3",
  AM: "[~@4 g4@2 bb4 ~ bb4@2 ~@2 d5@15 ~@3 g5 ~]/2", AN: "g5@2 f5@2 eb5 ~ eb5@3 ~ f5 ~ g5 ~ f5@2",
  AO: "~@2 f5@2 d5 ~ d5@2 bb4@4 ~@4", AP: "[f5 ~ f5 ~ f5 ~ f5@3 ~ f5 ~ eb5 ~ g5@4 f5 ~ f5 ~ f5@6 ~@2 eb5@2]/2",
  AQ: "~@3 bb4 c5 eb5@2 ~", AR: "[g5@7 ~ d5@5 ~ c5@7 ~@5 d5 ~@3 c5@6 ~@6 d5 ~@3 c5@2]/3", AS: "~@2 bb4 g4 f4@5 ~@7",
  AT: "[g5@8 d5@6 c5@6 bb4@2 ~@8 c5@4 bb4@2 ~@2 c5@3 ~ d5@3 ~ c5@2]/3", AU: "~@2 f5@3 ~ f5@6 ~@4",
  AV: "[g5@7 ~ d5@5 ~ c5@7 ~@7 d5@2 c5@4 bb4@3 ~ c5@8 bb4@2]/3", AW: "~@2 g4@2 f4@2 eb4@5 ~@5",
  AX: "[g5@7 ~ d5@5 ~ c5@5 bb4@2 ~@5 d5 ~@3 c5@5 ~@11 f5@2]/3", AY: "~@2 f5 ~ f5 ~@9 f5@2",
  AZ: "~@2 f5 ~ f5@2 ~@8 f5@2", BA: "[~@2 f5@2 d5@2 f5@2 ~@2 f5 ~ f5@20]/2", BB: "c5", BC: "~@14 eb5 ~",
  BD: "eb5!2 ~@5 eb5", BE: "~@2 eb5@2 c5 ~ bb4 ~ eb5@2 ~@2 eb5@2 ~@2", BF: "~@6 ab5 ~ ab5@3 ~ ab5@2 ~@2",
  BG: "g5@2 f5 d5@2 ~@3", BH: "~@6 bb4@2 c5 ~ eb5@5 ~", BI: "eb5@2 f5@5 ~, ~@4 e5 ~@11", BJ: "~@4 ab5@8 ab5@3 ~",
  BK: "g5@2 f5 ~ eb5@3 ~@7 g5@2", BL: "~@2 g5@2 f5@2 eb5 ~ eb5@3 ~ c5@3 ~", BM: "g5@4 f5@2 d5@3 ~@7",
  BN: "~@6 bb4@2 c5@2 eb5@5 ~", BO: "[eb5 ~ f5@7 ~ ab5@6]/2",
  BP: "[~@2 c5 ~ c5 ~ c5 ~ c5 ~ c5 ~ c5 ~ f5@5 ~ f5@2 d5@2 c5 ~@7]/2", BQ: "f5 ~ f5 ~ f5 ~ f5@3 ~ f5@4 eb5 ~",
  BR: "c5@11 ~@5", BS: "[bb5 ~ bb5 ~ bb5@2 f5@3 ~ f5@2 eb5@2 f5@5 ~ f5@6 ~@6]/2",
  BT: "[~@2 f5 ~ f5@2 eb5 ~ f5 ~ f5@3 ~ f5@3 eb5 ~ c5 f5@5 ~@5 bb5 ~]/2", BU: "bb5 ~ bb5 ~ bb5 ~ bb5 ~ f5@3 ~@5",
  BV: "~@2 eb5 ~ f5@4 a5@3 ~@5", BW: "[~@6 g4@2 bb4 ~@2 d5@2 ~ d5@4 c5@5 ~@9]/2",
  BX: "f5 ~ f5 ~ f5 ~ f5@3 ~ f5 ~ f5 ~ bb5@2", BY: "~@2 g5@3 ~ f5@5 ~@3 bb4@2", BZ: "g5!2 ~@5 eb5", CA: "eb5@3 ~@5",
  CB: "~@6 ab5 ~ ab5@3 ~ ab5@4", CC: "g5@2 f5 ~ eb5@2 c5@2 ~@8", CD: "eb5@3 ~ f5@12", CE: "~@4 ab5@7 ~ bb5@4",
  CF: "g5@2 f5@2 eb5@3 ~@7 bb5@2", CG: "~@2 bb5@2 g5@2 f5@2 eb5@2 ~@2 c5@3 ~", CH: "g5@2 f5@2 eb5@2 c5@3 ~@7",
  CI: "~@6 bb4@2 c5@4 eb5@3 ~", CJ: "eb5@2 ~@2 f5@7 ~@5", CK: "~@4 ab5@11 ~", CL: "bb5!2 ~@5 eb5",
})).s("gm_lead_8_bass_lead").gain(0.28)

// other · overdriven guitar · "Solo Guitr"
const overdriven_guitar = note(`<
  ~@56 A@2 ~@2 B@2 ~@2 C@2 ~@38 D E@3 F G@2 H@2 I J K L M N O P Q R S@2 T U V W X ~@18 A@2 ~@2 B@2 ~@2 C@2 ~@35
>`.pickRestart({
  A: "[~@8 f3@3 c3 eb3@2 c3@10 ~@8]/2", B: "[~@8 f3@2 ~ c3 eb3@2 c3@12 ~@6]/2",
  C: "[~@8 f3@2 eb3 c3 eb3@2 c3@14 ~@4]/2", D: "~ f5", E: "[f5@14 g5@6 ~@8 c6@2 d5@11 ~ f5@2 bb5@2 g5@2]/3",
  F: "bb4@3 ~", G: "[~@2 g4@2 bb4@2 f5@2 eb5@2 bb4@2 d5@2 bb5@11 ~ eb5@2 f5@2 c6@2]/2",
  H: "[bb5@2 eb5 ~ c6@4 c6@2 d6@18 ~@4]/2", I: "~@2 f6@2 bb5@2 f5@9 ~", J: "~@2 g6@2 c6 ~ c6@2 d6@7 ~",
  K: "~ g5 c6 d6 f6 bb6 g6@2", L: "f6@2 eb6 ~ f6 ~ f6@3 ~@7", M: "~@4 g6 ~ g6 ~ g6@4 c6@2 eb6@2", N: "d6@2 bb5 f5@5",
  O: "[bb5,d6] ~ [bb5,d6] ~ [bb5,d6]@2 [c6,eb6]@3 ~ [g5,c6] ~ [g5,c6]@3 ~", P: "[g5,c6]@3 ~ [g5,c6]@9 ~ c5@2",
  Q: "d5@4 eb5 ~ c5@4 eb5 ~ f5@2 g5@2", R: "f5@4 g5 ~ bb5@4 g5 ~ c6@4",
  S: "[d6@2 g5@2 eb6@2 g5@2 c6@3 ~ c6@2 f6@4 eb6@2 d6@2 d6@3 ~ d6@2 d6@2 bb5@2]/2",
  T: "d6 ~ d6@2 c6 d6@3 d6@2 c6@2 bb5 ~ g5@2", U: "~ f5 eb5 f5 d5@2 eb5@2 f5@2 db5 eb5 f5@2 ab5!2",
  V: "g5!3 ~ ab5@2 ~ ab5 c6 c6@4 c6@3", W: "db6!2 c6 db6 f6@2 d6 f6@2 g6 ab6 ~ a6@2 a6 ~", X: "bb6!2 ~@6",
})).s("gm_overdriven_guitar").gain(0.2)

// other · overdriven guitar · "Solo Guitr" · soft notes · Csus2 Asus2 Fsus2 Dsus2 Cmaj7 Gsus2 Asus2 Fsus2 …
const overdriven_guitar_soft = note(`<
  ~@106
  [~@4 f5 e5 [c5,d5] [a4,b4] [f4,g4] [d4,e4] [b3,c4] [g3,a3] ~@4]
  ~@12
  [~@7 [a5,b5] [f5,g5] [d5,e5] c5 ~@5]
  ~@73
>`).s("gm_overdriven_guitar").gain(0.06)

// chords · pad metallic · "Metal Pad"
const pad_metallic = note(`<
  ~@9 A ~ B ~ A ~ B ~@33 A ~ B ~@33 C@2 D@2 C@2 D@2 C@2 E@2 C@2 F ~@21 G@2 H@2 G@2 I J ~@16 K@2 L@2 K@2 L@2 K@2 L@2 M@2
  N O ~@32
>`.pickRestart({
  A: "[c5,eb5,g5]@9 ~@7", B: "[c5,eb5,g5]@11 ~@5", C: "[[bb3,d4,g4]@4 ~@3 [a3,c4,f4]@5 ~@4]/2",
  D: "[[g3,bb3,eb4]@4 ~@3 [a3,c4,f4]@5 ~@4]/2", E: "[[g3,bb3,eb4]@9 ~@5 [a3,c4,f4]@11 ~@7]/2", F: "[g3,bb3,eb4]@9 ~@7",
  G: "[[c4,eb4,g4]@5 ~@2 [bb3,d4,f4]@7 ~@2]/2", H: "[[c4,eb4,g4]@5 ~@2 [bb3,d4,f4]@6 ~@3]/2", I: "[f3,bb3,c4]@3 ~",
  J: "[ab3,c4,eb4]@3 ~ [bb3,d4,f4]@3 ~", K: "[[c4,eb4,g4]@3 ~@4 [bb3,d4,f4]@4 ~@5]/2",
  L: "[[f3,bb3,d4]@3 ~@4 [ab3,c4,eb4]@4 ~@5]/2", M: "[[c4,eb4,g4]@3 ~@4 [g3,bb3,d4]@4 ~@5]/2", N: "[f3,ab3,c4]@3 ~@5",
  O: "[ab3,c4,eb4] ~ [bb3,d4,f4] ~", // Ab Bb
})).s("gm_pad_metallic").gain(0.14).pan(0.2)

// chords · pad warm · "Warm Pad"
const pad_warm = note(`<
  ~@9 A@8 B C D E B C D E F C D E B G H I ~@16 J@2 K@2 B C D E B C D E F C D E B G H I ~@36 B L M L M L M L B L M L M L
  M L ~@24 B C D E B C D E F C D E B G H I ~@32
>`.pickRestart({
  A: "[[c4,eb4,g4]@12 ~@2 [bb3,d4,f4]@17 ~]/2", B: "~@4 [c4,eb4,g4]@9 ~@3", C: "~@2 [bb3,d4,f4]@13 ~",
  D: "~@4 [f3,bb3,d4]@9 ~@3", E: "~@2 [ab3,c4,eb4]@13 ~", F: "~ [c4,eb4,g4]@2 ~", G: "~@2 [g3,bb3,d4]@13 ~",
  H: "~@4 [f3,ab3,c4]@11 ~", I: "~@2 [ab3,c4,eb4]@5 ~@3 [bb3,d4,f4]@5 ~", J: "[[c4,eb4,g4]@12 ~@2 [c4,eb4,g4]@17 ~]/2",
  K: "[[c4,eb4,g4]@12 ~@2 [c4,eb4,g4]@7 ~@11]/2", L: "~ [bb3,d4,f4]@6 ~", M: "~@2 [c4,eb4,g4]@5 ~",
})).s("gm_pad_warm").gain(0.14).pan(0.9)

// chords · lead 2 sawtooth · "Saw Wave"
const lead_2_sawtooth = note(`<
  ~@33 A B C D E F G@2 A B C D E F H@2 ~@20 A B C D E F G@2 A B C D E F H@2 I J K J I J K J I J K J I J L M@2 N@3 ~@24 A
  B C D E F G@2 A B C D E F H@2 ~@16 A B C D E F G@2 A B C D E F H@2 A B C D E F G@2 A B C D E F H@2
>`.pickRestart({
  A: "[eb4,g4,bb4]@3 ~ [eb4,g4,bb4]@2 ~@8 [eb4,g4,bb4]@2", B: "~@2 [eb4,g4,bb4]@5 ~ [eb4,ab4,c5]@3 ~ [eb4,ab4,c5]@3 ~",
  C: "[db4,f4,ab4]@3 ~ [db4,f4,ab4]@2 ~@8 [db4,f4,ab4]@2", // Db
  D: "~@2 [db4,f4,ab4]@4 ~@2 [eb4,ab4,c5]@3 ~ [eb4,ab4,c5]@2 ~@2", E: "[c4,eb4,g4]@3 ~ [c4,eb4,g4]@2 ~@8 [c4,eb4,g4]@2",
  F: "~ [c4,eb4,g4]@5 ~@2", G: "[[c4,eb4,g4]@2 ~@2 [bb3,d4,f4]@8 ~@2 [bb3,d4,f4]@4 ~@2 [db4,f4,ab4]@11 ~]/2",
  H: "[[c4,eb4,g4] ~ [bb3,d4,f4]@4 ~ [bb3,d4,f4]@2 ~ [db4,f4,ab4]@5 ~]/2", I: "~@4 [bb4,d5,g5]@3 ~@9",
  J: "~@4 [a4,c5,f5]@3 ~@9", K: "~@4 [g4,bb4,eb5]@3 ~@9", L: "~@4 [g4,bb4,eb5]@3 ~@7 [c4,f4,a4]@2",
  M: "~@2 [c4,f4,a4] ~ [c4,f4,a4]@2 ~@8 [c4,f4,a4]@2", // F
  N: "[~@2 [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4]@3 ~ [c4,f4] ~ [c4,f4] ~ [d4,g4,b4]@34, ~@5 a4!2 ~@17]/3", // F F5 G
})).s("gm_lead_2_sawtooth").gain(0.12).pan(0.6)

// chords · epiano2 · "Elec Piano"
const epiano2 = note(`<
  ~@17 A@2 B@2 A@2 C@2 A@2 C@2 D ~ E F ~@20 A@2 B@2 A@2 C@2 A@2 C@2 D ~ E F ~@30 G H I J@3 A@16 ~@72
>`.pickRestart({
  A: "[[c4,eb4,g4]@3 ~@4 [bb3,d4,f4]@4 ~@5]/2", B: "[[bb3,d4]@3 ~@4 [ab3,c4,eb4]@4 ~@5]/2",
  C: "[[f3,bb3,d4]@3 ~@4 [ab3,c4,eb4]@4 ~@5]/2", D: "eb4@3 ~@5", E: "c4@3 ~@5", F: "[ab3,eb4] ~ [bb3,d4,f4] ~",
  G: "~@7 [c4,f4,a4]", H: "~@2 [c4,f4,a4] ~ [f4,a4] ~@9 [c4,f4,a4]@2, ~@2 c4 ~@5",
  I: "~@2 [c4,f4,a4] ~ [c4,f4,a4]@2 ~@8 [c4,f4,a4]@2", J: "[~@2 [c4,f4,a4]@3 ~ [c4,f4,a4]@3 ~ [c4,f4,a4]@34 ~@4]/3",
})).s("gm_epiano2").gain(0.14).pan(0.1)

// chords · epiano2 · "Elec Piano" · soft notes
const epiano2_soft = note("<~@19 A ~@9 B@2 C D ~@22 A ~@9 B@2 C D ~@124>".pickRestart({
  A: "f3@3 ~@5", B: "[[c4,g4]@3 ~@4 [g3,bb3,d4]@4 ~@5]/2", C: "[f3,ab3]@3 ~@5", D: "c4 ~@3",
})).s("gm_epiano2").gain(0.06).pan(0.1)

// other · guitar harmonics · "Guitr Harm"
const guitar_harmonics = note("<~@55 A@3 ~@95 B ~@39>".pickRestart({
  A: "[~@7 c5@13 ~@4]/3", B: "~@8 [c4,c5]@5 ~@3",
})).s("gm_guitar_harmonics").gain(0.2).pan(1)

// chords · distortion guitar · "Dist Guitr"
const distortion_guitar = note(`<
  ~@25 A ~@7 B ~ C D E@2 F@2 B ~ C D E@2 G@2 ~@12 A ~@7 B ~ C D E@2 F@2 B ~ C D E@2 G@2 H ~@3 H ~@3 H ~@3 H ~@6 I J@3 K
  L@2 M@2 N O P Q R S T U V W X@2 Y ~@3 B ~ C D E@2 F@2 B ~ C D E@2 G@2 ~@16 B ~ C D E@2 F@2 B ~ C D E@2 G@2 B ~ C D E@2
  F@2 B ~ C D E@2 ~@2
>`.pickRestart({
  A: "~@3 [c4,g4]", B: "~@2 [bb3,eb4] ~", C: "~@10 [f4,ab4]@3 ~ [eb4,ab4]@2", D: "~@2 [db4,ab4]@5 ~@9",
  E: "[~@5 f4@2 eb4@3 ~@6]/2", F: "[~@8 f4@2 d4@2 bb3 ~ f4@4 bb3 ~ f4@4 ~@8]/2", G: "[~@8 f4@2 d4@2 bb3 ~ f4@11 ~@7]/2",
  H: "[bb3,d4,g4]@7 ~", I: "~ f4", J: "[f4@14 ~ g4@6 ~@7 c5@2 d4@11 ~ f4@2 bb4@2 g4@2]/3", K: "bb3@3 ~",
  L: "[~@4 bb3@2 f4@2 eb4@2 bb3@2 d4@2 bb4@11 ~ eb4@2 f4@2 c5@2, ~@3 g3@2 ~@27]/2",
  M: "[bb4@2 eb4 ~ c5@3 ~ c5@2 d5@18 ~@4]/2", N: "~@2 f5@2 bb4@2 f4@9 ~", O: "~@2 g5@2 c5 ~ c5 ~ d5@7 ~",
  P: "~ g4 c5 d5 f5 bb5 g5@2", Q: "f5@2 eb5 ~ f5 ~@2 f5@3 ~@6", R: "~@4 g5 ~ g5 ~ g5@5 ~ eb5@2", S: "d5@4 ~ bb4@2 ~@9",
  T: "~@10 [g4,c5] ~ [g4,c5]@3 ~", U: "[g4,c5]@3 ~ [g4,c5]@9 ~ c4@2", V: "d4@4 eb4 ~@2 c4@4 eb4 f4@2 g4@2",
  W: "f4@2 ~ bb4@2 ~ c5@2",
  X: "[d5@2 ~@2 eb5@2 g4@2 c5@3 ~ c5@2 f5@4 eb5@2 d5@2 ~ d5@3 d5@2 d5@2 bb4@2, ~@3 g4@2 ~@27]/2",
  Y: "d5 ~ d5@2 c5 d5@3 d5@2 c5@2 bb4 ~ g4@2",
})).s("gm_distortion_guitar").gain(0.14).pan(1)

// chords · distortion guitar · "Dist Guitr" · soft notes
const distortion_guitar_soft = note("<~@106 A ~@10 B C ~@3 D ~@68 E@2>".pickRestart({
  A: "~@4 f4 e4 d4 [b3,c4] [g3,a3] [d3,e3,f3] [b2,c3] [g2,a2] ~@4", B: "~@13 c5@2 ~", C: "~@3 f4@5",
  D: "~@4 g4 ~@6 g4 ~@4", E: "[~@8 f4@2 d4@2 bb3 ~ f4@11 ~@7]/2",
})).s("gm_distortion_guitar").gain(0.04).pan(1)

// chords · distortion guitar · "Dist Guitr"
const distortion_guitar_2 = note(`<
  ~@25 A@2 ~@6 B ~ C D E@2 F@2 B ~ C D E@2 G@2 ~@6 H@2 ~@4 A@2 ~@6 B ~ C D E@2 F@2 B ~ I D E@2 G@2 J@2 ~@2 J@2 ~@2 J@2
  ~@2 J@2 ~@30 B ~ C D E@2 F@2 B ~ C D E@2 G@2 ~@2 H@2 ~@12 B ~ C D E@2 F@2 B ~ C D E@2 G@2 B ~ C D E@2 F@2 B ~ C D E@2
  ~@2
>`.pickRestart({
  A: "[~@13 [c4,g4]@7 ~@12]/2", B: "~@8 [bb3,eb4]@5 ~@3", C: "~@12 [f4,ab4] ~ ab4 ~", D: "eb4 ~@3 [db4,ab4] ~@11",
  E: "[~@5 f4@2 eb4@3 ~@6]/2", F: "[~@8 f4@2 d4@2 bb3 ~ f4@4 bb3 ~ f4@4 ~@8]/2", G: "[~@8 f4@2 d4@2 bb3 ~ f4@12 ~@6]/2",
  H: "[~@7 bb3@3 c4@6]/2", I: "~@12 [f4,ab4] ~ ab4@2", J: "[~@14 f4@17 ~]/2",
})).s("gm_distortion_guitar").gain(0.12).pan(0)

// chords · distortion guitar · "Dist Guitr" · soft notes
const distortion_guitar_soft_2 = note(`<
  ~@35 A B ~@6 A C ~@26 A C ~@6 D B ~@4 E@2 ~@2 E@2 ~@2 E@2 ~@2 E@2 ~@32 A C ~@6 A C ~@22 A C ~@6 A C ~@6 A C ~@6 A C
  ~@2 F@2
>`.pickRestart({
  A: "~@10 ab4 f4 ~@2 eb4 ~", B: "ab4 ~ [db4,ab4]@2 ~@12", C: "ab4 ~ [db4,ab4] ~@13",
  D: "~@11 f4 ~@2 eb4@2, ~@5 ab4 ~@2", E: "[~@14 [a3,c4]@17 ~]/2", F: "[~@8 f4@2 d4@2 bb3 ~ f4@12 ~@6]/2",
})).s("gm_distortion_guitar").gain(0.07).pan(0)

// other · electric guitar muted · "Mute Guitr"
const electric_guitar_muted = note("<~@9 A B A C A B A C A B A C A B A C ~@24 A B A C ~@140>".pickRestart({
  A: "bb3 ~ bb3 ~ c4 ~@3 d4 ~@3 c4 ~ bb3 ~", B: "~@2 bb3 ~ c4 ~@7 c4 ~ c4 ~", C: "~@2 bb3 ~ c4 ~@11",
})).s("gm_electric_guitar_muted").gain(0.17).pan(1)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@9 A B C D A B C D A B C D A B C D A B C D A B E F G H I J K L M@2 N O I J P L Q@2 A B C D A B C D A B C D A B C D A
  B E F G H I J K L M@2 N O I J P L Q@2 R@2 S@2 T@2 U@2 V@2 W X Y Z AA AB AC AD AE AF A B AG@2 A B AH AI A B AG@2 A B AH
  AJ A B AG@2 AK AL AM AN G H I J K L M@2 N O I J P L Q@2 A B C D A B C D A B C D A B E F G H I J K L M@2 N O I J P L
  Q@2 G H I J K L M@2 N O I J P L Q@2
>`.pickRestart({
  A: "c2 ~ c2 ~ c2@2 ~@8 g1@2", B: "~ g1 c2 ~@5", C: "c2 ~ c2 ~ c2 ~@9 c3@2", D: "~@2 g2 ~ c2@3 ~@9",
  E: "f1 ~ f1 ~ f1 ~@9 ab1@2", F: "~@2 ab1 ~ ab1@3 ~ bb1 ~ bb1 ~ bb1@3 ~", G: "eb2@3 ~ eb2@8 ~@2 eb2@2",
  H: "~@2 eb2@6 f2@3 ~ f2@3 ~", I: "db2@3 ~ db2@7 ~@3 db2@2", J: "~@2 db2@2 c2 ~ bb1@2 ab1@3 ~ ab1@4",
  K: "c2@3 ~ c2@8 ~@2 c2@2", L: "~ c2@6 ~", M: "[c2@3 ~ bb1@9 ~ bb1@5 ~ db2@12]/2", N: "eb2@3 ~ eb2@3 ~@7 eb2@2",
  O: "~@2 eb2@6 f2@3 ~ f2@4", P: "c2@3 ~ c2@3 ~@7 c2@2", Q: "[c2@4 bb1@9 ~ bb1@5 ~ db2@11 ~]/2",
  R: "[g1@2 g1 ~ g1@5 ~ g1@2 d2@2 g2@16 ~@2]/2", S: "[g1 ~ g1 ~ g1@4 d2@2 f2@2 d2@2 g2@11 ~ c2@2 d2@2 f1@2]/2",
  T: "[g1 ~ g1 ~ g1@4 d2@6 g2@10 g2@2 f2@2 d2@2 f1@2]/2",
  U: "[g1 ~ g1 ~ g1@2 ~@2 d2@2 f2 ~ a2@11 ~@3 d3@2 g2@2 f1@2, ~@6 g3 ~]/2",
// … 77 more lines

More by Phil Collins