Strudelify

The Kid Is Hot Tonight

Loverboy

KeyF♯ minorTempo144 bpm
0:00/0:00
// The Kid Is Hot Tonight — Loverboy
// 144 bpm, 4/4, key F# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 164 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(144/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 · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
  ~@5 A@4 B C D E F G H@3 ~@15 I@2 J K L@2 M N O@2 P@2 Q@2 R@2 S T U@2 V@2 W X Y T U@2 V@2 Z AA AB C AC AD F AE AF@2
  ~@16 I@2 J AG AH@2 AI@2 J AJ AK@2 AL@2 AM@3 T U@2 V@2 W X Y T U@2 V AN Z AA B C D E F G AO@2 AP T U@2 V@2 W X Y T U@2
  V@2 Z AA AP T U@2 V@2 W X Y T U@2 V@2 Z AA AQ@2 ~
>`.pickRestart({
  A: "[[e5,a5]@63 ~]/4", B: "a5", C: "a5 g#5@2 a5@2 b5@3", D: "d5 e5", E: "f#5 a5", F: "g#5", G: "a5 g#5@2 f#5@2 g#5@3",
  H: "[f#5@35 ~@13]/3", I: "[~@8 e5@10 d5@3 c#5@3 d5@4 c#5@4]/2", J: "a4",
  K: "~@2 a4 ~ c#5@2 ~@2 c#5@2 ~@2 c#5@2 a4@2, ~@3 b4@2 ~ a4@2 ~@2 a4@2 ~@4, ~@7 b4@2 ~@2 b4@2 ~@3", L: "b4/2",
  M: "c#5", N: "f#5", O: "[e5@18 d5@3 c#5@3 e5@4 a5@4]/2",
  P: "[f#5@18 d5 ~ f#5@2 d5 e5 f#5@2 ~@4 d5@2, ~@19 e5@2 ~@5 d5@2 f#5@4, ~@27 e5@2 ~@3]/2",
  Q: "[e5@2 c#5 b4@3 ~ b5@8 ~, ~@12 b4@15 ~@5]/2", R: "[c#6@5 f#5 c#6 ~ c#6@8, ~@7 f#5@9]/2",
  S: "[f#5,c#6]@2 [f#5,c#6] ~@5 [c#6,f#6]@2 [c#6,f#6]@2 [c#6,f#6]@2 [c#6,f#6]@2", T: "[c#6,f#6]!8", U: "[b5,f#6]!8",
  V: "[c#6,g#6]!8", W: "d#5 g#5 a#5 d#6 a#5 d#5 g#5 a#5 d#6 a#5 g#5 a#5 d#5 g#5 a#5 d#6",
  X: "e5 a5 b5 e6 b5 ~ a5 b5 e6 b5 a5 b5 ~ a5 b5 e6, ~@5 e5@2 ~@5 e5@2 ~@2",
  Y: "[c#6,f#6]@2 [c#6,f#6] ~@5 [c#6,f#6]@2 [c#6,f#6]@2 [c#6,f#6]@2 [c#6,f#6]@2", // F#5
  Z: "d#6 a#5 g#5 d#5 g#5 a#5 ~ a#5 g#5 d#5 g#5 a#5 d#6 a#5 g#5 d#5, ~@3 d#6 ~@4",
  AA: "e6 b5 a5 ~ a5 b5 ~ b5 a5 ~ a5 b5 ~ b5 a5 e5, ~@3 e5@2 ~ e6@2 ~ e5@2 ~ e6@2 ~@2", AB: "a5@15 ~",
  AC: "d5@5 ~ d5@2 e5@8", AD: "f#5@5 ~ f#5@2 a5@5 ~ a5@2", AE: "a5@2 g#5@4 f#5@4 g#5@4 f#5 ~", AF: "[c#5,f#5]/2",
  AG: "~@2 a4 ~ c#5@2 a4 ~ c#5@2 a4 b4 c#5@2 a4@2, ~@3 b4@2 ~@2 b4@2 ~@7",
  AH: "[b4@9 ~ b4@2 a4@2 b4@4 b4@7 ~ b4@2 c#5@2 b4@2]/2", AI: "[c#5@31 ~]/2", AJ: "d5 c#5 e5 a5",
  AK: "[f#5@18 d5 ~ f#5@2 d5 e5 f#5@2 d5 ~ f#5@2 d5@2, ~@19 e5@2 ~@6 e5@2 ~@3]/2",
  AL: "[e5@2 c#5 b4@3 ~ b5@9, ~@12 b4@9 ~@11]/2",
  AM: "[f#5@12 ~@4 f#6@23 ~ [c#6,f#6]@2 [c#6,f#6]@2 [c#6,f#6]@2 [c#6,f#6]@2, c#6@13 ~@3, ~@4 f#5@9 ~@3]/3", // F#5
  AN: "[c#6,g#6]!6 g#6 [c#6,g#6]", AO: "f#5/2", AP: "[f#5,c#6,f#6]@7 ~ [c#6,f#6]@2 [c#6,f#6]@2 [c#6,f#6]@2 [c#6,f#6]@2",
  AQ: "[[c#6,f#6]@2 [c#6,f#6] ~@5 [c#6,f#6]@24]/2", // F#5
})).s("gm_synth_brass_1").gain(0.27).pan(0.6)

// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  A B C B C B C B C B@2 D E F@2 G@3 H I J K L G M G H N O K L G@2 B@2 P@2 Q R G@2 B@2 P@2 Q@2 S@2 T G U V K W X Y Z G
  U@2 AA K X Q B@2 AB AC F AD G@3 AE G AF K AG G M G AE G AH K AI G AJ B AK P AL Q@2 S AM B AK P@2 Q AN AO G@2 AP U@2 AQ
  K AR Q T G U V AQ AS X Q B@2 D AT F@2 G@3 AU U AV AQ K X Y T G U V AQ K X Q T G U V AQ K X Q T G U V AQ K X Q AW@2 ~
>`.pickRestart({
  A: "~@5 e1 g1 g#1", B: "a1!8", C: "a1!5 e1 g1 g#1", D: "d2!4 c#2!4", E: "b1@2 b1 ~ b1@2 b1@2 a1@2 a1@2 a1@2 a1@2",
  F: "e1!8", G: "f#1!8", H: "f#1!5 a1 b1 c#2", I: "d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2 ~ a1@2",
  J: "d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2 ~ b1@2", K: "c#2!8", L: "c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2 ~ a1@2",
  M: "f#1 b1!3 c#2!4", N: "d2!7 a1", O: "d2!6 e2 d2", P: "d2!8", Q: "e2!8", R: "e2!6 b1 a1", S: "f#2!8",
  T: "f#2!2 c#2 a#1 f#1!4", U: "b1!8", V: "b1@2 b1@2 b1@2 b1@2 b1@2 b1@2 b1@2 b1 ~",
  W: "c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2 ~ c#2@2", X: "d#2!8", Y: "e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2 ~",
  Z: "f#2 ~ f#2@2 c#2@2 a#1@2 f#1@2 f#1@2 f#1@2 f#1@2", AA: "c#2!7 g#2",
  AB: "d2@2 d2@2 d2@2 d2@2 c#2@2 c#2@2 c#2@2 c#2 ~", AC: "b1!4 a1!4", AD: "e1@2 e1@2 e1@2 e1@2 e1@2 e1@2 e1@2 e1 ~",
  AE: "f#1!5 b1 ~ f#1", AF: "f#1@2 f#1@2 f#1@2 f#1@2 f#1@2 b1 ~@3 c#2@2",
  AG: "c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 b1 ~@3 f#1@2", AH: "f#1!5 b1 ~ c#2", AI: "c#2!5 b1 ~ f#1",
  AJ: "f#1@2 f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~", AK: "a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 b1 c#2",
  AL: "d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2 ~", AM: "f#2!5 b1 c#2 g#1", AN: "e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2 ~ e2 ~",
  AO: "f#2@2 f#2@2 f#2@2 f#2@2 f#2@2 f#2@2 c#2@2 a#1 ~", AP: "f#1!7 a#1", AQ: "c#2!7 g#1", AR: "d#2!6 g#1 b1",
  AS: "c#2!7 g1", AT: "b1@2 b1@2 b1@2 b1 ~ a1@2 a1@2 a1@2 a1@2", AU: "f#1@2 f#1@2 f#1@2 f#1@2 f#1@2 f#1@2 f#1@2 f#1 ~",
  AV: "b1!7 a#1", AW: "[f#2!2 c#2 a#1 f#1@12]/2",
})).s("gm_synth_bass_2").gain(0.44)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  A B C D E F G H I J@2 K L M@2 N@2 O P@2 Q@2 R S T O P@2 Q@2 R S U V W X Y Z AA AB AC AD AE AF AG AH Z AI@2 AJ AK AL AM
  AN@2 AO AP AQ@2 AR AS AT AU AV AW J@2 K L M@2 N@2 ~ AX ~ AY ~ AX ~ AZ ~ AX ~ AY ~ AX ~@2 V W X Y Z AA AB AC AD AE AF
  AG AH Z AI@2 AJ AK AL AM AN@2 AO AP AQ@2 AR AS AT AU AV AW J@2 K L M@2 N@2 AJ AK AL AM AN@2 AO AP AQ@2 AR AS AT AU AV
  AW AJ AK AL AM AN@2 AO AP AQ@2 AR AS AT AU AV AW BA@2 ~
>`.pickRestart({
  A: "~@5 d#2 g2 g#2", B: "e3 ~ [a2,e3] ~ [a2,e3] ~ a2 ~ a2 ~ a2 ~ [a2,e3] ~ [a2,e3] ~",
  C: "a2 ~@3 [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ e2@2 g2@2 g#2@2", D: "~@2 a2 ~ a2 ~ [a2,e3] ~ [a2,e3] ~ a2 ~ [a2,e3] ~ a2 ~",
  E: "a2 ~ a2 ~ [a2,e3] ~ a2 ~ [a2,e3] ~ e2@2 g2@2 g#2@2", // A5
  F: "~@2 a2 ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~", // A5
  G: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [e2,a2]@2 g2@2 g#2@2", // A5
  H: "[a2,e3] ~ a2 ~ [a2,e3] ~ a2 ~ a2 ~ [a2,e3] ~ [a2,e3] ~ a2 ~", // A5
  I: "[a2,e3] ~ a2 ~ a2 ~ [a2,e3] ~ [a2,e3] ~ e2@2 g2@2 g#2@2", J: "[~ a3@30 ~, [a2,e3]@31 ~]/2", K: "d3 c3",
  L: "b2 a2", M: "[g2@29 ~ [f#2,c#3,f#3]@2]/2", N: "[[f#2,c#3,f#3]@31 ~]/2",
  O: "[f#2,c#3] ~ [f#2,c#3] ~@3 [f#2,c#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~@3 [f#2,c#3] ~", // F#5
  P: "[[f#2,c#3] ~ [f#2,c#3] ~@3 [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3,f#3] ~@3 c3@5 ~@3 [d3,a3] ~ [d3,a3] ~ [d3,a3] ~@3 [d3,a3] ~]/2", // F#5 D5
  Q: "[[d3,a3] ~ [d3,a3] ~@3 [d3,a3] ~ [d3,a3] ~ [d3,a3] ~@3 b2@6 ~@2 [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~@3 c#3 ~]/2", // D5 C#5
  R: "[c#3,g#3] ~ [c#3,g#3] ~@3 [c#3,g#3] ~ c#3 ~ [c#3,g#3] ~@3 [c#3,g#3] ~", // C#5
  S: "[f#2,c#3] ~ [f#2,c#3] ~@3 [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~@3 [f#2,c#3] ~", // F#5
  T: "~ [b2,f#3] [b2,f#3,b3]!2 [c3,c#3,g3,g#3] [c#3,g#3,c#4]!2 ~", // B5 C#maj7 C#5
  U: "[f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3,f#3]@2 [f#2,c#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~@3 [f#2,c#3] ~", // F#5
  V: "~@2 [a3,c#4,e4,a4] ~@2 [a3,c#4,e4,a4] ~@2", W: "~@2 [a3,c#4,e4,a4] ~@2 [c#4,e4,a4] ~@2",
  X: "~@2 [f#3,a3,d4,f#4] ~@2 [a3,d4,f#4] ~@2", Y: "~@2 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~@2",
  Z: "~@2 [b3,e4,g#4] ~@2 [b3,e4,g#4] ~@2", AA: "~@2 [g#3,b3,e4,g#4] ~@2 [b3,e4,g#4] ~@2",
  AB: "~@4 [a3,c#4,f#4]@2 ~@4 [a3,c#4,f#4] ~@5", AC: "~@4 [f#3,a3,c#4,f#4]@2 ~@4 [a3,c#4,f#4] ~@3 [c#4,f#4]@2",
  AD: "~@2 [c#4,e4,a4] ~@2 [e4,a4] ~@2", AE: "~@4 [e4,a4] ~@5 [c#4,e4,a4]@2 ~@4",
  AF: "~@2 [a3,d4,f#4] ~@2 [d4,f#4] ~@2", AG: "~@2 [d4,f#4] ~@2 [d4,f#4] ~@2",
  AH: "~@4 [b3,e4,g#4]@2 ~@4 [b3,e4,g#4] ~@5", // E
  AI: "[~@4 [f#2,f#3]@5 ~ f#3@2 [c#3,f#3]@2 [f#2,c#3,f#3]@6 [f#2,c#3,f#3]@8 [f#2,c#3,f#3]@4, ~@2 c#3@3 f#2@2 ~@9]/2", // F# F#5
  AJ: "[f#2,c#3,f#3]!2 ~@2 [f#2,c#3,f#3]@4", // F#5
  AK: "[c#3,f#3]@2 c#3@4 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3,f#3]@4 [c#3,f#3] ~, f#2@3 ~@5, ~ f#3@4 ~@3", // F#5
  AL: "[f#3,b3]!2 ~@2 [b2,f#3,b3]@4, b2 ~@3", // B5
  AM: "[b2,f#3]@2 [b2,f#3]@4 [b2,f#3,b3]@2 [f#3,b3]@2 [b2,f#3,b3]@4 [b2,f#3] ~", // B5
  AN: "[[c#3,g#3,c#4]@2 [c#3,g#3]@2 [c#3,g#3,c#4] ~ [c#3,g#3]@2 c#3@2 c#3@2 [g#3,c#4]@4 ~@2 c#3@2 [c#3,g#3,c#4] ~ c#3@2 [c#3,g#3,c#4] ~ c#3@2 [c#3,g#3,c#4] ~ c#3 ~, ~@4 [g#3,c#4]@2 c#3@3 ~@7, ~@4 [g#3,c#4] ~@3]/2", // C#5
  AO: "[d#3,a#3,d#4]@2 [d#3,a#3]@2 [d#3,a#3,d#4] ~ d#3@2 [d#3,a#3]@2 [d#3,a#3,d#4]@4 [d#3,a#3] ~", // D#5
  AP: "[e3,b3]@2 [e3,b3]@2 [e3,b3,e4] ~ [e3,b3]@2 [e3,b3]@2 [e3,b3,e4]@4 [e3,b3] ~", // E5
  AQ: "[~ c#3 [c#3,f#3]@2 ~@4 [f#2,c#3]@8 f#2@2 [f#2,f#3]@4 [c#3,f#3]@2 c#3@2 [c#3,f#3]@4 [c#3,f#3] ~, f#2@2 ~@2 f#3@5 ~@7, ~@16 c#3@6 f#2@9 ~]/2", // F#5 F# F#5
  AR: "[b2,f#3,b3]!2 ~@2 [b2,f#3,b3]@4", AS: "[b2,f#3,b3] [f#3,b3]@2 [f#3,b3] f#3 [b2,f#3,b3]@2 ~, ~ b2@4 ~@3",
  AT: "c#3@2 c#3@2 [c#3,g#3] ~ c#3@2 [c#3,g#3]@2 [c#3,g#3,c#4]@4 c#3 ~, [g#3,c#4] ~@3", // C#5
  AU: "[c#3,g#3,c#4]@2 [c#3,g#3]@2 [c#3,g#3,c#4] ~ c#3@2 [c#3,g#3]@2 [c#3,g#3,c#4]@4 g#3 ~", // C#5
  AV: "[d#3,a#3]@2 [d#3,a#3]@2 d#3 ~ [d#3,a#3]@2 [d#3,a#3]@2 [d#3,a#3,d#4]@4 [d#3,a#3] ~", // D#5
  AW: "[e3,b3] e3 [e3,b3,e4] ~ [b3,e4]@3 [e3,b3], ~@3 e3@4 ~", AX: "~@5 [b2,f#3,b3] ~ [f#2,c#3,f#3]",
  AY: "~@5 [b2,f#3,b3] ~ [c#3,g#3]", // B5 C#5
  AZ: "~@2 [b2,b3]@2 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [c3,c#3,g3,g#3,b3,c4,c#4] ~ [c#3,g#3,c#4]@2 [c#3,c#4]@3 c3", // B B5 C#5 C#
  BA: "[c#3 ~ [c#3,f#3]@2 ~@4 [f#2,c#3,f#3]@24, f#2 ~@7]/2", // F#5
})).s("gm_overdriven_guitar").gain(0.33).pan(0.2)

// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note(`<
  ~ A B C D E ~ F G ~@7 H I J K L M N O P I J K L M N O I ~@2 Q ~ R ~ S T U V W@2 ~@7 X ~ Y Z AA AB AC ~@2 AD AE AF AG
  ~@7 H ~@7 AH ~@10 Q ~ R ~ S T U V W@2 ~@7 X ~ Y Z AA AB AC ~@2 AD AE AF AG ~@7 H ~@3 X ~ Y Z AA AB AC ~@2 AD AE AF AG
  ~@3 X ~ Y Z AA AB AC ~@2 AD AE AF AG AB ~@2
>`.pickRestart({
  A: "a2 ~@5 e3 ~ e3 ~ e3 ~@5", B: "e3 ~ [a2,e3] ~@13", C: "[a2,e3] ~ e3 ~ e3 ~@5 e3 ~@3 e3 ~", D: "e3 ~ e3 ~@3 e3 ~@9",
  E: "[a2,e3] ~ e3 ~@13", F: "~@2 e3 ~@3 e3 ~ e3 ~@5 e3 ~", G: "~@2 e3 ~ e3 ~@11", H: "~@15 c3", I: "f#3 ~@5 f#3 ~@9",
  J: "~@2 f#3 ~@3 f#3 ~ f#3 ~@7", K: "~@6 d4 ~ d4 ~ d4 ~@5", L: "~@2 d4 ~@7 d4 ~@5", M: "~@6 c#4 ~ c#4 ~@5 g#3 ~",
  N: "~@8 g#3 ~@7", O: "~@2 f#3 ~@5 f#3 ~@5 f#3 ~", P: "~@4 [c4,c#4] ~@3", Q: "~@5 f#3 ~@2", R: "~@2 g#3 ~@2 g#3 ~@2",
  S: "~@2 f#3 ~@5", T: "~@7 a3", U: "~@2 a3 ~@2 c#4 ~@2", V: "~@4 c#4 ~@11", W: "~@5 a3 ~@2", X: "b3 b3@2 ~@5",
  Y: "~@5 g#3 ~@2", Z: "~@8 d#4@2 ~@4 d#4 ~", AA: "e4 ~@3 e4 ~@3", AB: "f#3 ~@7", AC: "~@4 f#3 ~@3",
  AD: "~@3 g#3 c#4 ~@3", AE: "~ c#4 ~ g#3 c#4 ~@3", AF: "d#4 ~@3 d#4 ~@3", AG: "~@3 e4 ~@4", AH: "a2 f#3@2 ~@9 g#3@3 ~",
})).s("gm_overdriven_guitar").gain(0.16).pan(0.2)

// other · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
  ~@9 A@3 B C@2 D@2 E@4 F@2 G@2 H@2 I@2 F@2 H@2 J@4 K@2 L@6 K@2 M@3 ~@5 N O ~@6 P Q ~@8 R S R T U V R W R S R T U V R X
  ~@22 N O ~@6 P Q A@3 B C@2 D@2 ~@6 Y Z ~@6 AA AB ~@6 Y Z ~@6 AA AB ~@3
>`.pickRestart({
  A: "[e5@32 d5@8 c#5@7 ~, a4@47 ~]/3", B: "[b4,f#5]@8 [a4,e5]@7 ~", C: "[[e4,b4]@29 ~@3]/2",
  D: "[~ f#4@31, c#5@31 ~]/2", E: "[c#4@31 ~ d4@31 ~, f#4@63 ~]/4", F: "[[c#4,f4]@31 ~]/2", G: "[f#4@24 f4@7 ~, c#4]/2",
  H: "[[c#4,f#4]@31 ~]/2", I: "[d4,f#4]/2", J: "[[c#4,e4]@32 [d4,f#4]@31 ~]/4", K: "[b3,e4]/2",
  L: "[f#4@31 ~ e4@32 [d4,f#4]@32, c#4@65 ~@31]/6", M: "[[c#4,f#4]@11 ~]/3",
  N: "d#5 g#5 a#5 d#6 a#5 d#5 g#5 a#5 d#6 a#5 g#5 a#5 d#5 g#5 a#5 d#6",
  O: "e5 a5 b5 e6 b5 e5 a5 b5 e6 b5 a5 b5 e5 a5 b5 e6",
  P: "d#6 a#5 g#5 d#5 g#5 a#5 d#6 a#5 g#5 d#5 g#5 a#5 d#6 a#5 g#5 a#5",
  Q: "e6 b5 a5 e5 a5 b5 ~ b5 a5 ~ a5 b5 e6 b5 a5 e5, ~@6 e6@2 ~ e5@2 ~@5",
  R: "~@2 [c#4,f#4] ~@3 [c#4,f#4] ~@3 [c#4,f#4] ~@3 [c#4,f#4] ~", // F#5
  S: "~@2 [c#4,f#4] ~@3 [c#4,f#4] ~@3 [f#4,b4] ~@3 [c#4,f#4] ~", // F#5 B5 F#5
  T: "~@2 [c#4,f#4] ~@3 [c#4,f#4] ~@3 [f#4,b4] ~@3 [c#4,g#4] ~", // F#5 B5 C#5
  U: "~@2 [c#4,g#4] ~@3 [c#4,g#4] ~@3 [c#4,g#4] ~@3 [c#4,g#4] ~", // C#5
  V: "~@2 [c#4,g#4] ~@3 [c#4,g#4] ~@3 [f#4,b4] ~@3 [c#4,f#4] ~", // C#5 B5 F#5
  W: "~@2 [c#4,f#4] ~ [c#4,f#4] ~ [c#4,f#4] ~ [c#4,g#4] ~ g#4@2 [c#4,g#4]@2 ~@2, ~@10 c#4 ~@5", // F#5 C#5
  X: "~@2 [c#4,f#4] ~ [c#4,f#4] ~ [c#4,f#4] ~ [c#4,f#4] ~ c#4@2 c#4@2 [c#4,f#4] ~, ~@10 f#4 ~ f#4 ~@3", // F#5
  Y: "d#4 g#4 a#4 d#5 a#4 d#4 g#4 a#4 d#5 a#4 g#4 a#4 d#4 g#4 a#4 d#5",
  Z: "e4 a4 b4 e5 b4 e4 a4 b4 e5 b4 a4 b4 e4 a4 b4 e5",
  AA: "d#5 a#4 g#4 d#4 g#4 a#4 d#5 a#4 g#4 d#4 g#4 a#4 d#5 a#4 g#4 a#4",
  AB: "e5 b4 a4 e4 a4 b4 ~ b4 a4 ~ a4 b4 e5 b4 a4 e4, ~@6 e5@2 ~ e4@2 ~@5",
})).s("gm_percussive_organ").gain(0.27).pan(0.3)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  A B C B C B C B C D@2 E F G H I@2 J@2 K@2 L@2 M N J@2 K@2 L@2 O P Q@2 R@2 S T U@2 Q@2 V R W X Y Z AA@2 AB@2 AC AD AE
  AF AA@2 AB@2 AC AD AE AF D@2 E F G H I@2 ~ AG ~ AH ~ AG ~ AI ~ AG ~ AH ~ AG ~@2 Q@2 R@2 S T U@2 Q@2 V R W X Y Z AA@2
  AB@2 AC AD AE AF AA@2 AB@2 AC AD AE AF D@2 E F G H I@2 AA@2 AB@2 AC AD AE AF AA@2 AB@2 AC AD AE AF AA@2 AB@2 AC AD AE
  AF AA@2 AB@2 AC AD AE AF AJ@2 ~
>`.pickRestart({
  A: "~@10 e2 ~ g2 ~ g#2 ~", B: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~",
  C: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ e2 ~ g2 ~ g#2 ~", // A5
  D: "[a2,e3] ~ [a2,e3] ~ [a2,e3]@2 [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3]@2 [a2,e3] ~", // A5
  E: "[a2,d3,a3] ~ [a2,d3,a3] ~ [a2,d3,a3]@2 ~@2 [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3]@2 ~@2", // D5 A5
  F: "[b2,f#3] ~ [b2,f#3] ~ [b2,f#3]@2 ~@2 [a2,e3] ~ [a2,e3] ~ [a2,e3]@2 ~@2", // B5 A5
  G: "~@2 b2 ~ [e2,b2,e3]@2 ~@2 [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3]@2 ~@2", // E5
  H: "~ b2 ~@2 [e2,b2,e3]@2 ~@6 [e2,b2,e3]@2 ~@2", I: "~@2 [f#2,c#3,f#3] ~@3 [f#2,c#3,f#3] ~",
  J: "[f#2,c#3] ~ [f#2,c#3] ~@3 [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~@3 [f#2,c#3] ~", // F#5
  K: "[a2,d3] ~ [a2,d3] ~@3 [a2,d3] ~ [a2,d3] ~ [a2,d3] ~@3 [a2,d3] ~", // D5
  L: "[g#2,c#3] ~ [g#2,c#3] ~@3 [g#2,c#3] ~ [g#2,c#3] ~ [g#2,c#3] ~@3 [g#2,c#3] ~", // C#5
  M: "[f#2,c#3] ~ [f#2,c#3] ~@3 [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~@5", N: "[f#2,c#3] ~ [f#2,c#3] ~@3 c#3 ~@5 c#3 ~@3",
  O: "c#3 ~ [f#2,c#3] ~@3 [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~@3 [f#2,c#3] ~", // F#5
  P: "[f#2,c#3] ~ [f#2,c#3] ~@3 c#3 ~ [f#2,c#3] ~ [f#2,c#3] ~@3 c#3 ~", Q: "~@2 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2",
  R: "~@2 [a2,d3,a3] ~@2 [a2,d3,a3] ~@2", S: "~@4 [b2,e3,b3]@3 ~@3 [b2,e3,b3]@2 ~@4",
  T: "~@4 [b2,e3,b3]@3 ~@3 [b2,e3,b3] ~@5", U: "~@4 [f#2,c#3,f#3]@3 ~@3 [f#2,c#3,f#3]@2 ~@4",
  V: "~@4 [a2,d3,a3]@2 ~@4 [a2,d3,a3] ~@5", W: "~@2 [b2,e3,b3] ~@2 [b2,e3,b3] ~@2",
  X: "~@4 [b2,e3,b3]@2 ~@4 [b2,e3,b3] ~@5", Y: "~@2 [f#2,c#3,f#3] ~@2 [f#2,c#3,f#3] ~@2",
  Z: "~@4 [f#2,c#3,f#3]@7 ~ [f#2,c#3,f#3]@3 ~", AA: "[[f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 ~@4 [f#2,c#3,f#3]@21 ~@3]/2",
  AB: "[[b2,f#3,b3] ~ [b2,f#3,b3]@2 ~@4 [b2,f#3,b3]@22 ~@2]/2", // B5
  AC: "[g#2,c#3] ~ [g#2,c#3] ~@3 [g#2,c#3,g#3] ~ [g#2,c#3,g#3] ~ [g#2,c#3,g#3] ~@3 [g#2,c#3,g#3] ~, g#3 ~@3", // C#5
  AD: "[g#2,c#3,g#3] ~ [g#2,c#3,g#3] ~@3 [g#2,c#3,g#3] ~ [g#2,c#3,g#3] ~ [g#2,c#3,g#3] ~@3 [g#2,c#3,g#3] ~", // C#5
  AE: "[a#2,d#3,a#3]@3 [a#2,d#3,a#3]@3 [a#2,d#3,a#3]@2", AF: "[b2,e3,b3]@3 [b2,e3]@3 [b2,e3]@2, ~@3 b3@5",
  AG: "~@5 [b2,f#3] ~ [f#2,c#3]", AH: "~@5 [b2,f#3] ~ [c#3,g#3]",
  AI: "~@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3]@3 ~", // B5 C#5
  AJ: "[[f#2,c#3,f#3]!2 ~@2 [f#2,c#3,f#3]@12]/2", // F#5
})).s("gm_distortion_guitar").gain(0.22).pan(0.8)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
  ~@4 A B C D E F G H I J K@3 ~@16 L M N O P@2 Q R L M N O P@2 Q S@3 T@2 ~@4 U@2 V@2 ~@4 F G H I J K@3 W X Y Z AA AB AC
  AD W X Y Z AA AB AC W L M N O P@2 Q R L M N O P@2 Q S@3 T@2 ~@4 U@2 V@2 ~@4 F G H I J K@3 AE@2 T@2 ~@4 U@2 V@2 ~@4
  AE@2 T@2 ~@4 U@2 V@2 ~@4 AF@2 ~
>`.pickRestart({
  A: "~@5 e3 g3@2", B: "a3!2 ~ [e3,a3]!2 e3 [e3,a3]!2, e3@3 ~@5", C: "[e3,a3]!2 e3 [e3,a3]!2 e3 g3@2", D: "[e3,a3]!8",
  E: "[e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@3 [a2,e3,a3]", F: "~ a3@14 ~, a2, e3@7 ~",
  G: "a3@2 g#3@4 a3@4 b3@3 ~ d3@2", H: "d3@3 d3 e3@3 e3", I: "f#3@6 f#3@2 a3@5 ~ b3 g#3", J: "g#3",
  K: "[a3@2 g#3@3 ~ f#3@4 g#3@3 ~@3 c#4@30 ~@2, ~@7 [c#4,f#4] f#4@11 ~@5, ~@15 c#3@31 ~@2, ~@15 f#3@28 ~@5, ~@16 g#3 ~@31]/3", // F#5
  L: "~@6 e3 ~ a3 ~ [a2,e3,a3] ~@3 [a2,e3,a3] ~, ~@6 a2@3 ~@7, ~@7 e3@2 ~@7", // A5
  M: "~@6 e3!2 [e3,a3] ~ [e3,a3] ~@3 [a2,e3,a3] ~, ~@6 a2@3 ~@7", // A5
  N: "~@7 a3 [d3,a3,d4] ~ [a3,d4] ~@3 [d3,a3,d4] ~, ~@3 [d3,a3] ~@4", // D5
  O: "~@6 d4!2 [a3,d4] ~ [a3,d4] ~@3 [d3,a3,d4] ~, ~@6 [d3,a3]@3 ~@7", // D5
  P: "~@6 [b3,e4]!3 ~ [b3,e4] ~@3 [b3,e4] ~, ~@6 e3@3 ~@7", // E5
  Q: "~@6 [f#3,c#4,f#4] [c#4,f#4]!2 ~ [c#4,f#4] ~@3 [f#3,c#4,f#4] ~", // F#5
// … 115 more lines

More by Loverboy