Strudelify
Hot Girls in Love cover art

We Are The '80s

Hot Girls in Love

Loverboy

KeyE majorTempo154 bpm
0:00/0:00
// Hot Girls in Love — Loverboy
// 154 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 152 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): MUTED GTR.
setcpm(154/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 · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~ A@4 B@8 C@2 D E F G H I J G K I L M L G N I O P@5 Q@8 R S T S U V W I X G K V Y M Z I W I AA AB@5 AC@8 R AD AE AD
  AF@8 AG@5 AH@4 AI AJ@3 AK@4 AL@4 AM@4 AC@8 R AN AO AN AP AQ AO AN AP AQ AO AN AP AQ AO AN AP AQ AO AN AP AQ AO AN AP
  AQ AO AN AR@2
>`.pickRestart({
  A: "[~@14 [c#3,g#3]@4 [c#3,g#3]@2 [c#3,g#3,c#4]@2 ~@4 [c#3,g#3,c#4]@2 ~@2 b3@2 c#4@2 [c#3,g#3]@2 [c#3,g#3,c#4]@2 ~@2 [c#3,g#3] ~ [c#3,g#3,c#4]@2 c3@2 [a2,e3,a3]@4 [a2,e3]@2 [a2,e3,a3]@2 ~@2 [a2,e3] ~ [a2,e3,a3]@2 ~@2 [a2,e3,a3]@2, ~@7 c#4@3 ~@5 [c#3,g#3]@2 ~@15]/4", // C#5 A5 C#5
  B: "[[a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3] ~@3 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3] ~ c#3@4 c#3@2 [c#3,g#3,c#4]@2 ~@2 [c#3,g#3] ~ [c#3,g#3,c#4]@2 ~@2 c#4 ~ c#4@2 [g#3,c#4]@2 [c#3,g#3,c#4]@2 ~@2 [c#3,g#3] ~ [c#3,g#3,c#4]@2 ~@2 a3@2 a3@2 [a2,e3]@2 [a2,e3,a3]@2 ~@2 a2 ~ [a2,e3]@3 ~ [a2,e3,a3]@4 e3@2 [e3,a3]@2 ~@2 [a2,e3,a3]@4 [a2,e3,a3]@2 [c#3,c#4]@4 [c#3,c#4]@2 [c#3,g#3,c#4]@2 ~@2 [c#3,g#3,c#4] ~ [c#3,g#3,c#4]@2 ~@2 b3@2 ~@2 g#3@2 [g#3,c#4]@2 ~@2 [c#3,g#3] ~ [c#3,g#3,c#4]@2 ~@2 a3@2 ~@2 a2@2 [a2,e3,a3]@2 ~@2 [a2,e3,a3] ~ [a2,e3,a3] ~@3 [a2,e3,a3]@2, ~@2 a3@2 ~@3 [g#3,c#4]@3 ~@5 c#3@3 ~@5 [a2,e3]@2 ~@8 a2@2 ~@12 [c#3,g#3]@2 c#3@2 ~@4 e3@3 ~@6, ~@30 g#3@4 ~@24 a3 ~@19 g#3@6 ~@12 c#4@4 ~@10 a2@4 ~@14, ~@28 a3 ~@3]/8", // A5 C#5 A5 C# C#5 A5 C#5 A5 …
  C: "[[a2,e3,a3]@2 e3@2 [e3,a3]@2 ~@2 [a2,e3,a3]@4 [a2,e3,a3]@2 [e2,b2,e3]@4 [b3,e4] ~@3 [e2,b2,e3]@2 [b3,e4]@4 b2@2 e2@2, ~ a2@2 ~@4 c#4 ~@8]/2", // A5 E5
  D: "b2 c#3@2 d3@2 b2@3", E: "[e2,e3]@2 [b3,e4] ~@5 [b3,e4]@4 b2@2 e2@2, b2@3 [e2,b2,e3]@2 ~@3", F: "b2 c#3 e2 d3@4 ~",
  G: "[e2,b2] ~ [e2,b2,e3] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2,e3] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  H: "[e2,b2,e3]@2 [e2,b2,e3] ~@3 [e2,b2,e3] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~, ~ e1@2 ~@5", // E5
  I: "[e2,b2] ~ [e2,b2,e3] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2,e3]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  J: "[e2,b2,e3]@2 [e2,b2,e3] ~@4 e2 [e2,b2]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~, ~@3 [b2,e3] ~@4", // E5
  K: "[e2,b2,e3]@2 [e2,b2] ~@3 [e2,b2,e3]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  L: "[e2,b2,e3]@2 [e2,b2,e3] ~@3 [e2,b2,e3]@2 [e2,b2]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  M: "[e2,b2] ~ [b2,e3] e2 [e2,b2] ~ [e2,b2] ~ [e2,b2,e3]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  N: "[e2,b2,e3]@2 [e2,b2,e3] ~@3 [e2,b2,e3] ~ [e2,b2]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  O: "[e2,b2,e3]@2 [b2,e3] ~@3 [e2,b2,e3] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  P: "[[e2,b2] ~ [e2,b2,e3] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2]@2 b2@2 [e2,b2] ~ [e2,b2] ~@3 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,g#2,b2]@2 [e2,f#2,b2] ~ [e2,b2] ~ [c#3,g#3]@4 [c#3,g#3]@2 [c#3,g#3,c#4]@2 ~@4 [c#3,g#3,c#4]@2 ~@2 b3@2 c#4@2 [c#3,g#3]@2 [c#3,g#3,c#4]@2 ~@2 [c#3,g#3] ~ [c#3,g#3,c#4]@2 c3@2 [a2,e3,a3]@4 [a2,e3]@2 [a2,e3,a3]@2 ~@2 [a2,e3] ~ [a2,e3,a3]@2 ~@2 [a2,e3,a3]@2, ~@5 e3@2 e3@2 ~@6 c#4@3 ~@22, ~@10 e2 ~@19 [e2,b2] ~@15 [c#3,g#3]@4 ~@30]/5", // E5 E Esus2 E5 C#5 A5 E5 C#5
  Q: "[[a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3] ~@3 [a2,e3,a3]@6 c#3@4 c#3@2 [c#3,g#3,c#4]@2 ~@2 [c#3,g#3] ~ [c#3,g#3,c#4]@2 ~@2 c#4 ~ c#4@2 [g#3,c#4]@2 [c#3,g#3,c#4]@2 ~@2 [c#3,g#3] ~ [c#3,g#3,c#4]@2 ~@2 a3@2 a3@2 [a2,e3]@2 [a2,e3,a3]@2 ~@2 a2 ~ [a2,e3]@3 ~ [a2,e3,a3]@4 e3@2 [e3,a3]@2 ~@2 [a2,e3,a3]@4 [a2,e3,a3]@2 [c#3,c#4]@4 [c#3,c#4]@2 [c#3,g#3,c#4]@2 ~@2 [c#3,g#3,c#4] ~ [c#3,g#3,c#4]@2 ~@6 g#3@2 [g#3,c#4]@2 ~@2 [c#3,g#3] ~ [c#3,g#3,c#4]@2 ~@2 a3@2 ~@2 a2@2 [a2,e3,a3]@2 ~@2 [a2,e3,a3] ~ [a2,e3,a3] ~@3 [a2,e3,a3]@2, ~@2 a3@2 ~@3 [g#3,c#4]@3 ~@5 c#3@3 ~@5 [a2,e3]@2 ~@8 a2@2 ~@12 [c#3,g#3]@2 c#3@2 ~@4 e3@3 ~@6, ~@30 g#3@4 ~@24 a3 ~@19 g#3@6 ~@12 c#4@4 ~@10 a2@4 ~@14, ~@28 a3 ~@3]/8", // A5 C#5 A5 C# C#5 A5 C#5 A5 …
  R: "[a2,e3,a3] ~@7", S: "[e2,b2]@2 [e2,b2]@2 [e2,c#3] ~ [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 [e2,c#3] ~ e2@2",
  T: "b2 c#3@2 d3@2 e3@2 c#3", U: "b2 g2@2 e2@4 ~",
  V: "[e2,b2] ~ [e2,b2,e3]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2,e3]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  W: "[e2,b2,e3]@2 [e2,b2,e3]@2 ~@2 [e2,b2,e3]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  X: "[e2,b2,e3]@2 [e2,b2,e3]@2 ~@3 e2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~, ~@3 [b2,e3] ~@4", // E5
  Y: "[e2,b2,e3]@2 [e2,b2,e3]@2 ~@2 [e2,b2,e3]@2 [e2,b2]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  Z: "[e2,b2,e3]@2 [e2,b2,e3] ~@3 [e2,b2,e3]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  AA: "[e2,b2,e3]@2 [b2,e3]@2 ~@2 [e2,b2,e3]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  AB: "[[e2,b2] ~ [e2,b2,e3] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~@3 [e2,b2,e3]@2 [e2,b2]@2 [e2,b2]@2 [e2,g#2,b2] ~ [e2,f#2,b2] ~ [e2,b2] ~ [c#3,g#3]@4 [c#3,g#3]@2 [c#3,g#3,c#4]@2 ~@4 [c#3,g#3,c#4]@2 ~@2 b3@2 c#4@2 [c#3,g#3]@2 [c#3,g#3,c#4]@2 ~@2 [c#3,g#3] ~ [c#3,g#3,c#4]@2 c3@2 [a2,e3,a3]@4 [a2,e3]@2 [a2,e3,a3]@2 ~@2 [a2,e3] ~ [a2,e3,a3]@2 ~@2 [a2,e3,a3]@2, ~@5 e3@2 e3@2 ~ e3@2 ~@3 c#4@3 ~@5 [c#3,g#3]@2 ~@15]/5", // E5 E Esus2 E5 C#5 A5 C#5
  AC: "[[a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3] ~@3 [a2,e3,a3]@6 c#3@4 c#3@2 [c#3,g#3,c#4]@2 ~@2 [c#3,g#3] ~ [c#3,g#3,c#4]@2 ~@2 c#4 ~ c#4@2 [g#3,c#4]@2 [c#3,g#3,c#4]@2 ~@2 [c#3,g#3] ~ [c#3,g#3,c#4]@2 ~@2 a3@2 a3@2 [a2,e3]@2 [a2,e3,a3]@2 ~@2 a2 ~ [a2,e3]@3 ~ [a2,e3,a3]@4 e3@2 [e3,a3]@2 ~@2 [a2,e3,a3]@4 [a2,e3,a3]@2 [c#3,c#4]@4 [c#3,c#4]@2 [c#3,g#3,c#4]@2 ~@2 [c#3,g#3,c#4] ~ [c#3,g#3,c#4]@2 ~@2 b3@2 ~@2 g#3@2 [g#3,c#4]@2 ~@2 [c#3,g#3] ~ [c#3,g#3,c#4]@2 ~@2 a3@2 ~@2 a2@2 [a2,e3,a3]@2 ~@2 [a2,e3,a3] ~ [a2,e3,a3] ~@3 [a2,e3,a3]@2, ~@2 a3@2 ~@3 [g#3,c#4]@3 ~@5 c#3@3 ~@5 [a2,e3]@2 ~@8 a2@2 ~@12 [c#3,g#3]@2 c#3@2 ~@4 e3@3 ~@6, ~@30 g#3@4 ~@24 a3 ~@19 g#3@6 ~@12 c#4@4 ~@10 a2@4 ~@14, ~@28 a3 ~@3]/8", // A5 C#5 A5 C# C#5 A5 C#5 A5 …
  AD: "[e2,b2]@2 [e2,b2,e3]@2 [e2,c#3] ~ [e2,b2]@2 [e2,b2,e3]@2 [e2,b2]@2 [e2,c#3] ~ e2@2", AE: "b2 c#3 ~ d3@4 ~",
  AF: "[b2 c#3 ~ d3@3 ~ f#2@2 f#2 g#2!2 a2!2 c#3 b2@2 b2 b2@2 b2!2 c#3 f#2@2 f#2 g#2!2 a2!2 c#3 b2@2 b2 b2@2 b2!2 c#3 f#2@2 f#2 g#2!2 a2!2 c#3 b2@2 b2 b2@2 b2!2 c#3 f#2@2 f#2 g#2!3 a2 c#3 b2]/8",
  AG: "[~ b2 b2@2 b2!2 c#3 f#2@2 f#2 g#2!2 a2!2 c#3 b2@2 b2 b2@2 b2!2 c#3 f#2@2 f#2 g#2!2 a2!2 c#3 b2@2 b2 b2@2 b2!3 c#3]/5",
  AH: "[f#2!2 g#2!2 a2!2 c#3 b2@2 b2 b2@2 b2!2 c#3 f#2@2 f#2 g#2!2 a2!2 c#3 b2@2 b2 b2@2 b2@2 b2@2]/4", AI: "b2 ~@7",
  AJ: "[[e2,b2] b2 ~@4 e2 e2@2 ~ [b2,e3]@3 [e2,b2,e3]@2 b2@2 b2 a#2!2 a2!2 g#2!2, e3@2 [b2,e3]@3 b2@5 ~@14, ~@2 e2@6 e2@4 ~@2 c#5 ~@3 e2@8 ~@22, ~@5 e3@2 e3@3 ~@14]/3", // E5
  AK: "[b2@2 ~@2 e3@2 b2@4 e3@2 e2@2 [a2,e3]@4 ~@2 e3@4 ~@2 [e3,a3]@2 ~@2 [e3,a3]@4 e3@2 e3@2 [a2,a3]@4 a2@2 e3 ~ b2@4 ~@2 a#2@2 a#2@2 a2@2 a2@2 g#2@2 g#2@2, e2 e2@2 ~@13, ~ b2@2 e3 ~ b2@2 ~@2 a2@3 a2@3 a2@3 ~@7 b2@2 ~@5, ~@6 a3 ~@7 a3@6 a3@6 ~@8 a3@4 e3@6 ~@2 f#3@6 ~@12]/4", // A5 A
  AL: "[~@3 [b2,e3]@2 [b2,e3] ~ [e3,a3]@2 e3 ~@2 a2 [a2,e3]@2 e3@2 ~ a2 [e3,a3]@2 [e3,a3]@2 [b2,f#3]@2 [b2,f#3]!7, b2@3 ~@4 a2@3 a2@2 ~@3 [a2,a3]@3 ~ a2@4 ~@9, e2@4 e2@9 ~@9 e3@4 ~@8 e3@4 ~@26, ~ e3@2 ~@6 a3@3 ~@11 b3@7 ~@2]/4", // E5 A5 B5 A
  AM: "[[b2,f#3,b3]@2 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [b2,f#3,b3]@2 g#2@2 f#2@2 e2@2 [c#3,g#3]@4 [c#3,g#3]@2 [c#3,g#3,c#4]@2 ~@4 [c#3,g#3,c#4]@2 ~@2 b3@2 c#4@2 [c#3,g#3]@2 [c#3,g#3,c#4]@2 ~@2 [c#3,g#3] ~ [c#3,g#3,c#4]@2 c3@2 [a2,e3,a3]@4 [a2,e3]@2 [a2,e3,a3]@2 ~@2 [a2,e3] ~ [a2,e3,a3]@2 ~@2 [a2,e3,a3]@2, ~@7 c#4@3 ~@5 [c#3,g#3]@2 ~@15]/4", // B5 C#5 A5 C#5
  AN: "[e2,b2]@2 [e2,b2,e3]@2 [e2,c#3] ~ [e2,b2]@2 [e2,b2,e3]@2 [e2,b2]@2 [e2,c#3]@2 e2@2", // E5 C#m E5 C#m
  AO: "[e2,b2]@2 [e2,c#3]@2 e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~, ~@6 d3@4 e3@5 ~", // E5 C#m
  AP: "[e2,b2]@2 [e2,c#3]@2 e2 ~ e2 ~ e2 ~ [e2,b2]@2 [e2,b2]@2 [e2,b2] ~, ~@3 d3@3 ~@2", // E5 C#m E5
  AQ: "[e2,b2] ~ [e2,b2,e3] ~ [e2,c#3] ~ [e2,b2]@2 [e2,b2,e3]@2 [e2,b2]@2 [e2,c#3]@2 e2@2", // E5 C#m E5 C#m
  AR: "[[e2,b2] g#2 g2 [e2,e3]@11 ~@2]/2", // E5 E
})).s("gm_overdriven_guitar").gain(0.22).pan(0.4)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~ A@2 B C D@2 E C D@2 E C F@2 G H I H I H J H J H J H J H K H J L M@2 N C D@2 E C D@2 E C O H J H K H I H J H J H J H
  J H K H J L M@2 N C D@2 E C D@2 E C O H J H P@8 Q@3 R@6 S H T@2 U V W@2 X Y Z@2 AA@2 N C D@2 E C D@2 E C O H J H J H J
  H J H J H J H J H J H J H J H J H J H J H AB@2
>`.pickRestart({
  A: "[~@4 g#1 f#1 e1 c#2@2 c#2!7]/2", B: "c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2 ~ a1@2", C: "a1!8",
  D: "[a1!4 g#1 f#1 e1 c#2@2 c#2!7]/2", E: "c#2!7 a1", F: "[a1!5 g#1 f#1 e1@2 e1!7]/2",
  G: "e1@2 e1@2 e1@2 e1@2 e1 ~ g1@2 g1@2 f#1 ~", H: "e1!8", I: "e1@2 e1@2 e1@2 e1@2 e1 ~ g1@2 g1@2 f#1@2",
  J: "e1!5 g1!2 f#1", K: "e1@2 e1@2 e1@2 e1@2 e1@2 g1@2 g1@2 f#1 ~", L: "e1@2 e1@2 e1@2 e1@2 e1 ~ g1@2 g1@2 e1@2",
  M: "[e1!4 g#1 f#1 e1 c#2@2 c#2!7]/2", N: "c#2!7 g#1", O: "a1@3 ~@13",
  P: "[e1!5 g1!2 f#1@2 f#1 g#1!2 a1!2 c#2 b1@2 b1 b1@2 b1!2 c#2 f#1@2 f#1 g#1!2 a1!2 c#2 b1@2 b1 b1@2 b1!2 c#2 f#1@2 f#1 g#1!2 a1!2 c#2 b1@2 b1 b1@2 b1!2 c#2 f#1@2 f#1 g#1!2 a1!2 c#2 b1]/8",
  Q: "[~ b1 b1@2 b1!2 c#2 f#1@2 f#1 g#1!2 a1!2 c#2 b1@2 b1 b1@2 b1!3 c#2]/3",
  R: "[f#1!2 g#1!2 a1!2 c#2 b1@2 b1 b1@2 b1!2 c#2 f#1@2 f#1 g#1!2 a1!2 c#2 b1@2 b1 b1@2 b1!2 c#2 f#1@2 f#1 g#1!2 a1!2 c#2 b1@3 b1@2 b1@2 b1@2]/6",
  S: "b1 ~@7", T: "[e1@2 e1@2 e1@2 e1@2 e1@2 e1@2 e1@2 b1@4 b1@2 a#1@2 a#1@2 a1@2 a1 ~ g#1@2 g#1@2]/2",
  U: "e1@2 e1@2 e1@2 e1@2 e1@2 e1 ~ g1@2 e1@2", V: "a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1 ~ g1@2",
  W: "[a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 b1@4 b1@2 a#1@2 a#1 ~ a1@2 a1@2 g#1@2 g#1@2]/2",
  X: "e1@2 e1@2 e1@2 e1@2 e1@2 e1@2 g1@2 e1 ~", Y: "a1!7 g1", Z: "[a1!7 b1@2 b1!7]/2",
  AA: "[b1!4 g#1 f#1 e1 c#2@2 c#2!7]/2", AB: "[e1!3 e1@11 ~@2]/2",
})).s("gm_electric_bass_finger").gain(0.41)

// chords · rock organ · "ORGAN 3"
const rock_organ = note("<~@50 A B A C D E F G H I J K L M N O@8 P@4 Q ~@74>".pickRestart({
  A: "~ [b4,e5,b5] ~@2 [a4,e5,a5] ~@3", B: "[b4,e5,b5] ~@2 [b4,e5,b5] ~@4", C: "[e4,b4,d5]@3 ~@3 [e4,b4,d5]@3 ~@7",
  D: "~@2 [e5,b5,d6]@3 ~@3 [e5,a5,c#6]@2 ~@6", // E7 A
  E: "[e5,b5,d6]@3 ~ [e5,b5,e6]@2 [e5,b5,d6]@5 [g5,a5,c6] [c5,e5,f5] c5 ~@2, ~@4 d6 ~@7 d5@2 ~@2", // E7 E5 E7 Am7 Fmaj7
  F: "~@2 [e5,g#5,d6]@3 ~@3 [e5,g5,c#6]@2 ~@6", G: "[b4,d5]@2 [e4,b4,d5]@2 ~@2 [e4,b4,d5]@5 ~@5, e4 ~@15",
  H: "~@2 [e5,b5,d6]@2 ~@4 [e5,a5,c#6]@2 ~@2 c5 e5 [f5,g5,a5] [b5,c6,d6], ~@6 d5 ~", // E7 A F Bm
  I: "[b5,e6] ~ [b5,e6]@2 ~@2 [b5,e6]@2 ~@2 [b5,e6]@2 [b5,d6]@2 ~@2", J: "~@2 [e5,b5,d6]@2 ~@4 [e5,a5,c#6]@3 ~@5",
  K: "e4 [e4,d5] ~ [e4,b4,d5]@3 ~@2, b4 ~@3, d5 ~@15", // E7
  L: "~@2 [e5,b5,d6]@2 ~@4 [e5,a5,c#6]@2 ~@2 [g4,a4,b4] [c5,d5,e5] [f5,g5,a5] [b5,c6]", // E7 A G C F Cmaj7
  M: "e6 b5 [b5,e6]@2 ~@5 c#6 [c6,d6] [g5,a5,b5] [b4,c5,d5,e5,f5] a4 ~@2, ~@2 d6 ~@3 [b5,e6]@5 ~@5", // E5 Csus2 G Bdim E5
  N: "~@2 [e5,b5,d6]@2 ~@4 [e5,a5,c#6]@2 ~@5 e4", // E7 A
  O: "[[b4,d5] ~ [e4,b4,d5]@2 ~@2 [e4,b4,d5]@4 f#4@2 e4@2 [e5,g#5,c#6]@31 ~ [e5,a5,c#6]@31 ~ [e5,g#5,c#6]@31 ~ [e5,a5,c#6]@18]/8", // Bm E7 C#m A C#m A
  P: "[~@14 [e5,g#5,c#6]@31 ~ [e5,a5,c#6]@17 ~]/4", Q: "[e5,a5,c#6]@3 ~@13",
})).s("gm_rock_organ").gain(0.33)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~ A ~@3 B ~@3 B C ~@2 D E F G H I J K L K J K M K J N L I J K O ~@3 A ~@3 B C ~@7 I J K L K J K M K J N L I J K O ~@3
  A ~@3 B C ~@24 P Q ~ R S T ~ U S V ~ W ~@3 A ~@3 B C ~@3 X ~ X ~ X ~ X Y X ~ Z ~ X ~ X ~ X ~ X ~ X ~ X Y X ~ Z AA ~
>`.pickRestart({
  A: "~@4 g#2 f#2 e2 ~", B: "~@4 g#2 f#2 ~@2", C: "~@2 g#3 ~@13", D: "~@5 g#2 f#2 ~",
  E: "~@4 c#3@3 ~ d3@2 e2@2 c#3@2 ~@2", F: "~@5 e3@2 e2", G: "~@2 c#3 ~ d3 e2 c#3 ~", H: "~@7 e2",
  I: "~@4 c#3@3 ~ d3@2 ~@2 c#3@2 ~@2", J: "~ c#3 ~ d3@2 ~@3", K: "~@2 c#3 ~ d3 ~ c#3 ~", L: "~ c#3 ~ d3@3 ~@2",
  M: "a#2 c#3 ~ d3@4 ~", N: "~@4 c#3@2 ~@2 d3@3 ~ c#3@2 ~@2", O: "b2 c#3 ~ d3 ~@4", P: "~@3 e2 ~@4",
  Q: "e2 ~@2 e2!2 ~ e2 ~", R: "~ e2 ~@2 e2 ~@3", S: "a2 ~@2 a2 ~@2 a2 ~", T: "a2 ~ a2 ~ a2 ~ a2 ~", U: "~@4 e2 ~ e2 ~",
  V: "a2!2 ~@2 a2 ~ a2 ~", W: "~@4 b2 ~@3", X: "~@4 d3 ~@3", Y: "a#2 ~@7", Z: "~@8 d3@3 ~@5", AA: "~ g2@2 ~@5",
})).s("gm_electric_guitar_muted").gain(0.26).pan(0.6)

// other · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_2 = note(`<
  ~@2 A ~@3 B ~ C ~@25 A ~@3 B ~ C ~@25 A ~@3 B ~ C ~@38 A ~@3 B ~ C ~@34
>`.pickRestart({
  A: "~@8 [c#3,g#3] ~@7", B: "~@2 g#3 ~@13", C: "~@8 e3 ~@7",
})).s("gm_electric_guitar_muted").gain(0.15).pan(0.6)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@2 A@2 B@2 C@2 D@2 E@2 F@2 G H I J K L M I N I O I P Q R S T U V@2 W@2 B@2 C@2 D@2 E@2 X@2 G H I Y K L M I N I O I P
  Q R S T U Z AA AB@2 AC@2 C@2 D@2 E@2 X@2 G H I AD AE AF AE AF AE AF AE AF AE AF AE AF AE AF AE AG AH ~@12 AB@2 B@2 C@2
  D@2 E@2 X@2 AI AJ AK J AK AJ AK J AL AJ AM J AN AJ AN J AO AJ AP J AQ AR@2 J AS AJ AT AU ~
>`.pickRestart({
  A: "[~@2 f#4 ~@2 e4 ~@2 f#4 ~ f#4 e4@3 ~@2, ~@2 [c#4,e4]@4 ~@2 [c#4,f#4]@4 ~@2 [c#4,e4]@4 ~@2 c#4@9 ~@3]/2", // C#m F#5 C#m
  B: "[~@4 f#4@2 ~@4 e4@2 ~@4 f#4@2 ~@2 f#4@2 e4@5 ~@5, ~ [c#4,e4]@2 ~ [c#4,f#4]@2 ~ [c#4,e4]@2 ~ c#4@4 ~@2]/2", // C#m F#5 C#m
  C: "[~@4 f#4@2 ~@4 e4@2 ~@4 f#4@2 ~@2 f#4@2 e4@7 ~@3, ~@2 [c#4,e4]@4 ~@2 [c#4,f#4]@4 ~@2 [c#4,e4]@4 ~@2 c#4@9 ~@3]/2", // C#m F#5 C#m
  D: "[~@4 f#4@2 ~@4 e4@2 ~@2 e4@2 g4@2 ~@2 g4@2 e4@5 ~@5, ~@2 [c#4,e4]@4 ~@2 [c#4,f#4]@4 ~@2 c#4@5 ~ c#4@8 ~@4]/2", // C#m F#5
  E: "[~@4 f#4@2 ~@4 e4@2 ~@2 e4@2 f#4@3 ~ f#4@2 e4@5 ~@5, ~@2 [c#4,e4]@4 ~@2 [c#4,f#4]@4 ~@2 c#4@5 ~ c#4@8 ~@4]/2", // C#m F#5
  F: "[~@2 e4@2 f#4@2 ~@2 f#4@2 e4@2 ~@2 e4@2 f#4@2 ~@2 f#4@2 e4@5 ~@3 [e2,b2] ~, ~@2 c#4@4 ~@2 c#4@4 ~@2 c#4@5 ~ c#4@9 ~@3]/2", // E5
  G: "~ [e2,b2]!2 ~@3 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~@5", H: "b2@2 c#3@4 e2@6 ~@2 [e2,b2] ~, e2@3 d3@5",
  I: "[e2,b2] ~ [e2,b2] ~@3 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~@3 [e2,b2] ~", // E5
  J: "[e2,b2]@2 c#3@4 d3@9 ~, ~@2 e2@2 ~@2 e2 ~@9", K: "[e2,b2] ~ [e2,b2] ~@3 b2 ~ [e2,b2] ~ e2 ~@5",
  L: "[e2,b2] ~ [e2,b2] ~@3 b2 ~ [e2,b2] ~ [e2,b2] ~@3 [e2,b2] ~", M: "[e2,b2] ~ [e2,b2] ~@3 b2 ~ [e2,b2] ~@5 b2 ~",
  N: "[e2,b2] ~ [e2,b2] ~@5 [e2,b2] ~ e2 ~@3 [e2,b2] ~", // E5
  O: "[e2,b2] ~ [e2,b2] ~@3 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~@3 e2 ~", // E5
  P: "[e2,b2] ~ [e2,b2] ~@3 [e2,b2] ~ [e2,b2] ~ e2 ~@3 [e2,b2] ~", // E5
  Q: "[e2,b2] ~ [e2,b2] ~@3 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~@5", // E5
  R: "[e2,b2] ~ [e2,b2] ~@5 [e2,b2] ~ [e2,b2] ~@3 [e2,b2] ~", // E5
  S: "~@2 [e2,b2] ~@3 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~@3 [e2,b2] ~", T: "b2 ~ [e2,b2] ~@5 [e2,b2] ~@7",
  U: "e2 ~ [e2,b2] ~@3 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~@3 [e2,b2] ~", // E5
  V: "[~@2 [e2,b2] ~@5 [e2,b2] ~ b2 ~@3 [e2,b2]@4 [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 g#2@2 f#2@2 e2@2 ~@2]/2", // E5
  W: "[~@2 f#4 ~@2 e4 ~ e4 f#4 ~ f#4 e4@3 ~@2, ~@2 [c#4,e4]@4 ~@2 [c#4,f#4]@4 ~@2 c#4@4 ~@2 c#4@9 ~@3]/2", // C#m F#5
  X: "[~ e4 f#4 ~ f#4 e4 ~ e4 f#4 ~@7, ~ c#4@2 ~ c#4@2 ~ c#4@2 ~@7]/2", Y: "[e2,b2]@2 g2@4 e2@9 ~",
  Z: "~@2 [e2,b2] ~@5 [e2,b2] ~ b2 ~@5", AA: "~ [e2,b2]!3 g#2 f#2 e2 ~",
  AB: "[~ e4 f#4 ~ f#4 e4 ~ e4 f#4 ~ f#4 e4@3 ~@2, ~@2 c#4@4 ~@2 c#4@4 ~@2 c#4@4 ~@2 c#4@9 ~@3]/2",
  AC: "[~@2 e4@2 f#4@2 ~@4 e4@2 ~@4 f#4@2 ~@2 f#4@2 e4@5 ~@5, ~ c#4@2 ~ [c#4,f#4]@2 ~ [c#4,e4]@2 ~ c#4@4 ~@2]/2", // F#5 C#m
  AD: "[e2,b2]@2 c#3@4 d3@8 [c#3,f#3] ~, ~@2 e2@2 ~@2 e2 ~@9", // E5 F#5
  AE: "[c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~ [b2,f#3] ~", // F#5 B5
  AF: "[b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [c#3,f#3] ~", // B5 F#5
  AG: "[b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~", AH: "[b2,f#3] ~@7",
  AI: "~@2 [b3,e4]@2 ~@4 [b3,e4]@3 ~@5", AJ: "b2 c#3@2 d3@5, e2@3 e2@3 ~@2", AK: "~@2 [b3,e4]@3 ~@3 [b3,e4]@3 ~@5",
  AL: "~ [b3,e4] ~@2 [b3,e4] e4 ~@2", AM: "~@2 [b3,e4]@3 ~@3 [b3,e4]@2 [b3,e4]@2 ~@4",
  AN: "~ [b3,e4] ~@2 [b3,e4]!2 ~@2", AO: "~@2 [b3,e4]@2 e3@2 [b3,e4]@2 [b3,e4]@2 [b3,e4] ~ [b3,e4] ~@3",
  AP: "~@2 [b3,e4]@2 ~@2 [b3,e4]@2 [b3,e4]@2 b3@2 [b3,e4]@2 b3 ~, ~@2 e3@3 ~@3", // E5
  AQ: "~@2 [b3,e4]@2 ~@2 [b3,e4]@2 [b3,e4]@2 [b3,e4]@2 [b3,e4]@2 e4 ~, ~ e3 ~@2", // E5
  AR: "[b2@2 c#3@4 e2@6 ~@2 [b3,e4]@4 [b3,e4]@2 [b3,e4]@2 [b3,e4] ~ [b3,e4] ~ [b3,e4] ~@2 b3 [b3,e4] ~, e2@3 d3@5 ~@8]/2", // E5
  AS: "~@2 [b3,e4]@2 ~@2 [b3,e4]@2 [b3,e4]@2 [b3,e4] ~ [b3,e4] ~ [b3,e4] ~, ~@2 e3@3 ~@3", // E5
  AT: "~@2 [b3,e4]@2 e3@2 [b3,e4] ~ [b3,e4]@4 [b3,e4]@4", AU: "[e2,b2]@2 g#3@2 g3@2 [e2,e3]@9 ~",
})).s("gm_distortion_guitar").gain(0.24).pan(0.6)

// chords · distortion guitar · "DISTORTION" · soft notes
const distortion_guitar_soft = note(`<
  ~@18 A B C ~ D ~ E ~ F G H I J K L ~@17 A B C ~ D ~ E ~ F G H I J K L ~@66 M ~@9 N ~ O ~ P ~@6
>`.pickRestart({
  A: "~@6 e2 ~@3 b2 ~@3 [e2,b2] ~", B: "~@6 e2 ~@9", C: "~@6 e2 ~@3 [e2,b2] ~@3 e2 ~", D: "~@6 [e2,b2] ~@3 b2 ~@5",
  E: "~@14 b2 ~", F: "~@10 b2 ~@5", G: "~@14 [e2,b2] ~", H: "~@6 [e2,b2] ~@9", I: "[e2,b2] ~@11 b2 ~@3",
  J: "e2 ~@5 [e2,b2] ~@3 [e2,b2] ~@3 [e2,b2] ~", K: "b2 ~@15", L: "[e2,b2] ~@5 [e2,b2] ~@3 e2 ~@5", M: "~@5 b3 ~@2",
  N: "~@14 e4 ~", O: "~@14 b3 ~", P: "~@13 e4 ~@2",
})).s("gm_distortion_guitar").gain(0.14).pan(0.6)

// other · distortion guitar · "DISTORTION"
const distortion_guitar_2 = note("<~@98 A B C D E@4 F G@2 H I@2 ~@2 J@2 ~@2 K@2 ~@32>".pickRestart({
  A: "~ a3@7", B: "a3@2 b3 ~ a3@4 b3 ~ a3@4 b3 ~", C: "a3@3 ~ b3 ~ a3@7 ~ b2@2",
  D: "~@2 b2 ~ a#2 ~ a#2 ~ a2 ~ a2 ~ g#2 ~ g#2 ~",
  E: "[e2@3 [b3,c4,d4] e4@2 d4@4 e4@3 ~ e4@4 e4@2 d#4@2 d4@2 c#4@2 a3@3 d4 e4@4 e4@2 d#4@2 d4@2 c#4@4 ~@2 b2@4 b2 ~ a#2 ~ a#2 ~ a2 ~ a2 ~ g#2 ~ g#2 ~, ~@30 d#4 ~@33]/4", // Bm
  F: "e2@3 [b3,c4,d4] ~@2 d4@4 e4@3 ~ e4@2, ~@3 e4@3 ~@10", // Bm
  G: "[~@2 e4@2 d#4@2 d4@2 c#4@2 a3@3 [d4,d#4] e4@4 e4@2 d#4@2 d4@2 c#4@4 ~@2 b2@2]/2", // D#maj7
  H: "~@2 b2@2 [d3,d#3]@2 f#3@2 b3 ~ b3@2 [d4,d#4] ~ f#4@2", I: "[b4@2 f#4@2 b4 ~ b4@4 d#5@3 ~ [c5,d#5]@12 ~@6]/2",
  J: "[~@5 [c5,d#5] ~ [c5,d#5]@7 ~@2]/2", K: "[~@10 [c5,d#5]@2 ~@2 [c5,d#5]@17 ~]/2",
})).s("gm_distortion_guitar").gain(0.48).pan(0.6)

// other · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
  ~@2 A B@2 C D E F G@2 C D H@3 ~@18 I J A E A E A K A E A L M ~ M ~@17 I J A E A E A K A E A L M ~ M N@7 O@7 P@3 Q ~@12
  I J A E A E A K A E A L M ~ M ~ R ~ S ~ R ~ R ~ R ~ R ~ R ~ R ~ R ~ R ~ R ~ R ~@2
>`.pickRestart({
  A: "~ e4 f#4 ~ f#4 e4 ~ e4", B: "[f#4@2 ~@2 f#4@2 e4@12 e4@2 f#4@3 ~ f#4@2 e4@3 ~ e4@2]/2", C: "f#4@3 ~ f#4@2 e4@10",
  D: "~@2 e4@2 f#4@3 ~ f#4@2 e4@3 ~ e4@2", E: "f#4 ~ f#4 e4@5", F: "~@2 e4@2 f#4@3 ~ f#4@2 e4@2 ~@2 e4@2",
  G: "[g4@2 ~@2 g4@2 e4@12 e4@2 f#4@3 ~ f#4@2 e4@2 ~@2 e4@2]/2", H: "[f#4 ~ f#4 e4@21]/3",
  I: "~@2 e4@2 f#4 ~@3 f#4@2 e4@2 ~@2 e4@2", J: "f#4 ~@3 f#4@2 e4@10", K: "g4 ~ g4 e4@5", L: "e4 ~@7",
  M: "~ [e4,e5] ~@2 [e4,e5] ~@3", // E
  N: "[~@14 b3@4 c#4@2 f#4@2 ~@2 c#4@2 ~@2 b3 ~ b3@4 c#4@2 e4@2 b3@2 c#4@2 ~@2 b3 ~@5 c#4@2 f#4@2 ~@2 c#4@2 f#4@2 b3 ~ b3@4 c#4@2 e4@2 ~@2 c#4@2 ~@2 b3 ~ b3@4 c#4@2 f#4@2 ~@2 c#4@2 ~@2 b3 ~ b3@4 c#4@2 e4@2 b3@2 c#4@2 ~@2 b3 ~ b3@2, ~@11 b3@2 f#4@2 ~@6 e4@2 b3@3 ~ b3@2 ~@6 b3@2 e4@2 ~@4 b3@2 f#4@2 ~@6 e4@2 ~]/7",
  O: "[~@2 c#4@2 f#4@2 ~@2 c#4@2 f#4@2 b3 ~@5 c#4@2 e4@2 ~@2 c#4@2 e4@2 b3 ~@5 c#5@2 f#5@2 ~@2 c#5@2 f#5@2 b4 ~ b4@4 c#5@2 e5@2 b4@2 c#5@2 e5@2 b4 ~ b4@4 c#5@2 f#5@2 ~@2 c#5@2 f#5@2 b4 ~ b4@4 c#5@2 e5@2 b4@2 c#5@2 e5@2 b4 ~ b4@4 c#5@2 f#5@2 ~@2 c#5@2 f#5@2 b4 ~ b4@2, ~@3 b3@2 ~@2 b3@3 ~ b3@2 ~@2 b4@3 ~ b4@2 ~@14 b4@2 ~@14 b4@2 ~@3]/7",
  P: "[~@2 c#5@2 e5@2 ~@2 c#5@2 ~@2 b4 ~@5 c#5@2 f#5@2 b4@2 c#5@2 f#5@2 b4 ~ b4@4 c#5@2 e5@2 ~@2 c#5@2 e5@2 b4@2 c#5@2, ~@3 b4@2 e5@2 b4@3 ~@9 b4@2 ~@3]/3",
  Q: "f#5 ~@7", R: "~@2 [e4,e5]@3 ~@3 [e4,e5]@3 ~@5", S: "~@2 [e4,e5]@2 ~@4 [e4,e5]@3 ~@5",
})).s("gm_synth_brass_1").gain(0.27).pan(0.4)

// chords · pad poly · "POLYSYNTH"
const pad_poly = note("<~@33 A@3 B@8 C@2 ~@19 A@3 B@8 C@2 ~@32 A@3 B@8 C D ~@29>".pickRestart({
  A: "[~@14 [g#4,e5]@33 ~]/3", B: "[[a4,b4,e5]@29 ~ [g#4,e5]@33 ~]/4", C: "[a4,b4,e5]", D: "[a4,b4]",
})).s("gm_pad_poly").gain(0.18).pan(0.4)

// drums · kick
// … 61 more lines

More by Loverboy