Strudelify
The Grand Illusion cover art

1984 · The Grand Illusion

The Grand Illusion

Styx

KeyA♭ majorTempo92 bpm
0:00/0:00
// The Grand Illusion — Styx
// 92 bpm, 4/4, key G# 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 95 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(92/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 · drawbar organ · "ORGAN 1"
const drawbar_organ = note(`<
  A B C D E@2 F@5 G H I J K G H L M N O P Q R S T U V W@4 X@4 Y Z Y AA AB AC Y AD AE AF AG AH A B C D E@2 AI@2 AJ@4 X@4
  AK@8 AL@3 AM AN AL AO@2 AP AQ@2 AR AS AT AU AV AW AQ@2 AR AX ~
>`.pickRestart({
  A: "~@4 [f4,a4,c5]!2 ~ [f4,a4,c5]!2 ~@3 [g4,b4,d5]@5 ~@3 [f4,a4,c5]!2 ~ [f4,a4,c5]!2 ~@3 [g4,c5,e5]@4", // F G F C
  B: "~@4 [f4,a4,c5] [f4,c5] ~ [f4,a4,c5]!2 ~@3 [f4,bb4] ~@3 [g4,c5,e5]@5 ~ [f4,a4,c5]@5 ~ [g4,b4,d5]@4, ~@5 a4@2 ~@5 d5@2 ~@18", // F F5 F Bb5 C F G
  C: "~@4 [f4,a4,c5]!2 ~ [f4,a4,c5]!2 ~@3 [g4,b4,d5]@5 ~@3 [f4,a4,c5] [f4,c5]@2 [f4,a4,c5]!2 ~@3 [g4,c5,e5]@4, ~@21 a4 ~@6 f5 ~@3", // F G F F5 F C
  D: "~@4 [f4,a4,c5]!2 ~ [f4,a4,c5] [f4,a4,c5]@2 ~@2 [f4,bb4,d5] ~@3 [g4,c5,e5]@6 [f4,a4,c5]@5 ~ [g4,b4,d5]@4", // F Bb C F G
  E: "[~@4 [ab4,c5,eb5] [ab4,c5] ~ [ab4,c5,eb5]!2 ~@3 [bb4,d5,f5]@4 ~@4 [ab4,c5,eb5]!2 ~ [ab4,c5] [ab4,c5,eb5] ~@3 [bb4,eb5,g5]@7 ~ [ab4,c5,eb5] [ab4,c5]@2 [ab4,c5,eb5]!2 ~@3 [ab4,db5] ~@3 [bb4,eb5,g5]@5 ~ [ab4,c5,eb5]@6 [bb4,d5,f5]@4, ~@5 eb5@2 ~@15 eb5@2 ~@13 eb5 ~@6 f5@2 ~@18]/2", // Ab Bb Ab Eb Ab Db5 Eb Ab …
  F: "[~@4 [ab4,c5,eb5] [ab4,c5]@2 [ab4,c5,eb5]!2 ~@3 [bb4,d5,f5]@5 ~@3 [ab4,c5,eb5]!2 ~ [ab4,c5,eb5]!2 ~@3 [bb4,g5]@8 [ab4,c5,eb5] [ab4,c5] ~ [ab4,c5,eb5]!2 ~@3 [db5,f5]@2 ~@2 [bb4,eb5,g5]@5 ~ [c5,eb5]@2 ~@4 [ab4,bb4,eb5]@100, ~@5 eb5 ~@22 eb5@4 ~@5 eb5@2 ~@5 ab4 ~@9 ab4@6 ~@100]/5", // Ab Bb Ab Eb Ab Db Eb Cm …
  G: "[ab4,db5,eb5,ab5]@15 ~", H: "[ab4,db5,eb5,ab5]@29 ~@3", I: "[ab4,db5,eb5,ab5]@7 ~",
  J: "[ab4,c5,eb5]@6 c5 [ab4,eb5] [ab4,c5,eb5]@5 ~ [ab4,c5,eb5] ~ [ab4,c5,eb5]@4 ~@2 [c5,eb5]@2 gb5@2 f5@2 eb5@2 db5 ~, ~@22 ab4 ~@9", // Ab Ab5 Ab Cm
  K: "[ab4,c5,eb5]@5 ~ [ab4,c5,eb5] ~ [ab4,c5,eb5]@5 ~ [ab4,c5,eb5] ~ [ab4,c5,eb5]@4 ~@2 [c5,eb5]@2 [ab4,gb5]@2 ~ eb5@2 db5 ~@2, ~@22 ab4 ~@3 f5@2 ~@4", // Ab Cm Ab7
  L: "[ab4,ab5]@31 ~, [db5,eb5]@7 ~", // Ab Dbsus2
  M: "[ab4,c5,eb5]@5 ~ [ab4,c5,eb5] ~ [ab4,c5,eb5]@4 ~@2 [ab4,c5,eb5] ~ [ab4,c5,eb5]@4 ~@2 [c5,eb5]@2 gb5@2 f5@2 eb5@2 db5 ~, ~@22 ab4@5 ~@5", // Ab Cm
  N: "[ab4,c5,eb5]@5 ~ [ab4,c5,eb5] ~ [ab4,c5,eb5]@4 ~@2 [ab4,c5,eb5] ~ [ab4,c5,eb5]@4 ~@2 [ab4,c5,eb5]@2 gb5@2 f5@2 eb5@2 db5@2", // Ab
  O: "[eb5,bb5] ~ [eb5,gb5,bb5] ~ [eb5,gb5,bb5] ~ [eb5,gb5,bb5] ~ [eb5,gb5,bb5] ~ [eb5,gb5,bb5] ~ [eb5,gb5,bb5] ~ [eb5,bb5] ~, gb5 ~@27 gb5 ~@3", // Eb5 Ebm Eb5
  P: "[f5,bb5,db6] ~ [f5,bb5,db6] ~ [f5,bb5,db6] ~ [f5,bb5,db6] ~ [f5,bb5,db6] ~ [f5,bb5,db6] ~ [f5,bb5,db6] ~ [bb5,db6] ~, ~@28 f5 ~@3", // Bbm
  Q: "[eb5,c6]@7 ~, ab5", R: "[f5,bb5,db6]@31 ~",
  S: "[eb5,gb5,bb5] ~ [eb5,bb5] ~ [eb5,bb5] ~ [eb5,gb5,bb5] ~ [eb5,gb5,bb5] ~ [eb5,gb5,bb5] ~ [eb5,gb5,bb5] ~ [eb5,bb5] ~, ~@4 gb5 ~@3 gb5 ~@19 gb5 ~@3", // Ebm Eb5 Ebm Eb5
  T: "[f5,bb5,db6] ~ [bb5,db6] ~ [f5,bb5,db6] ~ [f5,bb5,db6] ~ [f5,bb5,db6] ~ [f5,bb5,db6] ~ [f5,bb5] ~ [f5,bb5,db6] ~, ~@4 f5 ~@19 db6 ~@7", // Bbm Bb5 Bbm
  U: "[ab5,c6], eb5@7 ~", V: "[bb5,db6]@6 [eb5,c6]@9 db6, f5@9 ~@3 ab5@15 ~@5",
  W: "[db6 c6 bb5@6, f5@123 ~@5, ab5@8 db5@23 ~]/4",
  X: "[db6@16 c6@16 bb5@64 ~@16 c5@15 ~, f5@96 [eb5,ab5]@31 ~, ab5@2 db5@5 ~]/4", // Ab5
  Y: "bb2@2 ~@4 bb2@2 ~@4 bb2 ab2 bb2 db3", Z: "bb2@3 ~@9 bb2@3 ~@5 f2@6 ab2@6", AA: "eb3 db3 bb2 ~@3 eb3@4 db3@6",
  AB: "bb2@4 ~@8 bb2@3 ~@9 bb2@2 ab2@2 bb2@2 db3@2", AC: "bb2@3 ~@9 bb2@4 ~@4 f2@6 ab2@6",
  AD: "eb3@2 db3@2 bb2@3 ~@5 eb3@8 db3@12",
  AE: "bb2@5 ~@7 [bb2,f4]@4 ~@8 [bb2,f4]@2 [ab2,eb4]@2 [bb2,f4]@2 [db3,ab4]@2, f4@3 ~@29", // Bb5 Ab5 Bb5 Db5
  AF: "[bb2,f4]@2 ~@4 [bb2,f4]@2 ~@2 [f2,c4]@3 [ab2,eb4]@3", // Bb5 F5 Ab5
  AG: "[bb2,f4]@2 ~@4 [bb2,f4]@2 ~@4 [bb2,f4] ab2 [bb2,f4] [db3,ab4], ~@26 eb4 ~@5", // Bb5 Db5
  AH: "[eb3,bb4]@2 [db3,ab4]@2 [bb2,f4]@3 ~@5 [eb3,bb4]@8 [db3,ab4]@11 ~", // Eb5 Db5 Bb5 Eb5 Db5
  AI: "[~@4 [ab4,c5,eb5] [ab4,c5]@2 [ab4,c5,eb5]!2 ~@3 [bb4,d5,f5]@5 ~@3 [ab4,c5,eb5]!2 ~ [ab4,c5,eb5]!2 ~@3 [bb4,g5]@8 [ab4,c5,eb5] [ab4,c5] ~ [ab4,c5,eb5]!2 ~@3 [db5,f5]@2 ~@2 [bb4,eb5,g5]@4 [c5,eb5]@4 ab5@2 gb5@2 f5@2 eb5@2, ~@5 eb5 ~@22 eb5@4 ~@5 eb5@2 ~@5 ab4 ~@7 ab4@2 ~@10]/2", // Ab Bb Ab Eb Ab Db Eb Cm
  AJ: "[db6 c6 bb5@6, f5@123 ~@5, ab5 ~@3, db5@3 ~@5 db5@23 ~]/4",
  AK: "[[db5,db6]@32 [c5,c6]@32 bb5@32 [e4,e5]@32 ~@32 c5@32 bb5@32 [e4,a4,e5,a5]@31 ~, f5@3 ~ f5@3 ~, f4@91 ~@37 f4@91 ~@37, [ab4,ab5]@64 [db5,db6]@96 c6@29 ~@3 bb4@26 ~@38, ~@64 bb4@27 ~@5 [a4,a5]@29 ~@3 [ab4,ab5]@59 ~@5 [db5,db6]@63 ~]/8", // Db C E A5 Ab Db A Ab …
  AL: "[ab4,db5,eb5,ab5,db6,eb6,ab6]@29 ~@3", AM: "[db5,f5], bb4@25 ~@7", AN: "[a4,db5,e5]@29 ~@3",
  AO: "[ab4,db5,eb5,ab5,db6,eb6,ab6]@15 ~", AP: "[ab4,db5,eb5,ab5,db6,eb6,ab6]",
  AQ: "[~@4 [f4,ab4,db5] ~ [ab4,db5] ~ [ab4,db5]@2 ~@2 [g4,bb4,eb5]@5 ~@3 [f4,ab4,db5] ~ [f4,ab4,db5] ~ [f4,db5]@2 ~@2 [c5,eb5,ab5]@7 ~ [f4,ab4,db5] ~ [f4,ab4,db5] ~ [f4,ab4,db5] ~@3 [db5,gb5]@2 ~@2 [c5,eb5,ab5]@6 [f4,ab4]@6 [g4,bb4,eb5]@4, ~@6 f4@4 ~@14 ab4 ~@19 bb4 ~@9 db5@3 ~@7]/2", // Db Db5 Eb Db Ab Db Gb5 Ab …
  AR: "~@4 [f4,ab4,db5] [f4,db5] ab4 ~ ab4 ~@3 [g4,bb4,eb5]@5 ~@3 [f4,ab4,db5] ~ [f4,ab4,db5] ~ [f4,ab4] ~@3 [c5,eb5,ab5]@4, ~@7 [f4,db5]@2 ~@15 db5@2 ~@6", // Db Eb Db Fm Ab Db
  AS: "~@4 [f4,ab4,db5] ~ [f4,ab4,db5] ~ [f4,ab4,db5] ~@2 bb4 [db5,gb5]@3 ~ [c5,eb5,ab5]@6 [f4,ab4]@6 [g4,bb4,eb5]@4, ~@22 db5@3 ~@7", // Db Gb5 Ab Fm Eb
  AT: "~@4 [f4,ab4,db5]!2 ~@2 ab4 ~@3 [g4,bb4,eb5]@4 ~@4 [f4,ab4,db5] ~ [f4,ab4,db5] ~ [f4,ab4,db5] ~@3 [c5,eb5,ab5]@4, ~@7 [f4,db5]@2 ~@23", // Db Eb Db Ab Db
  AU: "~@4 [f4,ab4,db5] ~ [f4,ab4,db5] ~ [f4,db5]@2 ~@2 [db5,gb5]@3 ~ [c5,eb5,ab5]@6 [f4,ab4]@6 [g4,bb4,eb5]@4, ~@8 ab4 ~@3 bb4 ~@9 db5@2 ~@8", // Db Gb5 Ab Fm Eb
  AV: "~@4 [f4,ab4,db5] ~ [f4,ab4,db5] ~ [f4,db5]@2 ~@2 [g4,bb4,eb5]@4 ~@4 [f4,ab4,db5] ~ [f4,ab4,db5] ~ [f4,db5]@2 ~@2 [c5,eb5,ab5]@4, ~@8 ab4 ~@15 ab4 ~@7", // Db Eb Db Ab
  AW: "~@4 [f4,ab4,db5] ~ [f4,ab4,db5] ~ [ab4,db5] ~@3 [db5,gb5]@3 ~ [c5,eb5,ab5]@6 [f4,ab4]@5 ~ [g4,bb4,eb5]@4, ~@8 f4@2 ~@2 bb4 ~@9 db5@3 ~@7", // Db Db5 Gb5 Ab Fm Eb
  AX: "~@4 [f4,ab4,db5] ~ [f4,ab4,db5] ~ [f4,ab4,db5] ~@2 bb4 [db5,gb5]@3 ~ [c5,eb5,ab5]@6 [f4,ab4]@6 [g4,eb5]@4, ~@22 db5@3 ~@3 bb4@2 ~@2", // Db Gb5 Ab Fm Cm
})).s("gm_drawbar_organ").gain(0.17).pan(0.7)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A B A B C D C E@4 F G H I J K L H M N O P Q R S T U V W X Y Z W X AA AB AC AD AC AE AF AG AC AH AF AI AF AJ A B A B C
  D C AK W X Y Z W X AA AB AL AM AN AO AP AM AN AQ AR@2 AS AN AT AU AV AW AX AY AZ BA BB BA BB AY BB BC BB BA BB ~
>`.pickRestart({
  A: "f1@13 ~@3 f1@14 ~@2", B: "f1@6 bb1@2 c2@3 f1@3 g1@2", C: "ab1@13 ~@3 ab1@13 ~@3",
  D: "ab1@6 db2@2 eb2@3 ab1@3 bb1@2", E: "[ab1@6 db2@2 eb2@3 ab1@3 eb1@49 ~]/4", F: "db2@29 ~@3", G: "db2@7 ~",
  H: "db2", I: "ab1@5 ~ ab1 ~ ab1@5 ~ ab1 ~ ab1@5 ~ ab1@2 gb2@2 f2@2 eb2@2 db2@2",
  J: "ab1@5 ~ ab1 ~ ab1@4 ~@2 ab1 ~ ab1@4 ~@2 ab1@2 gb2 ~ f2@2 eb2@2 db2 ~", K: "db2@28 ~@2 db2 ~", L: "db2@30 ab1 ~",
  M: "ab1@5 ~ ab1 ~ ab1@4 ~@2 ab1 ~ ab1@4 ~@2 ab1 ~ gb2@2 f2@2 eb2@2 db2@2",
  N: "ab1@5 ~ ab1 ~ ab1@5 ~ ab1 ~ ab1@4 ~@2 ab1 ~ gb2 ~ f2@2 eb2@2 db2@2",
  O: "eb2@16 eb3@2 ~@2 eb3@2 ~@2 eb3@3 ~ eb3@4",
  P: "eb2@3 ~ eb2@2 ~@2 eb2@2 ~@2 eb2@4 eb3@2 ~@2 eb3@2 ~@2 eb3@2 ~@2 eb3@4",
  Q: "ab1@6 gb2@2 ab2@2 gb2@2 eb2@2 gb2@2 ab2@5 ~ gb2@2 ab2@2 gb2@2 eb2@2 gb2@2",
  R: "bb2@15 ~ ab1@3 ~ ab1@2 ~@2 ab1@2 bb1@5 ~", S: "eb2@9 ~@3 eb2@4 eb3@3 ~ eb3@2 ~@2 eb3@3 ~ eb3@4",
  T: "eb2@3 ~ eb2@2 ~@2 eb2@2 ~@2 eb2@4 eb3@3 ~ eb3@2 ~@2 eb3@3 ~ eb3@3 ~",
  U: "ab1@3 gb2 ab2 gb2 eb2 gb2 ab2@3 gb2 ab2 gb2 eb2 gb2", V: "bb2@5 ~ ab2@10", W: "db3@2 db2 db3 c3@2 c2 c3",
  X: "bb2@4 db2@2 f2@2 bb2@3 ~ bb2@2 ab2@2", Y: "gb2@4 db2@4 gb2@4 db2@2 gb2 ab2", Z: "bb2@8 ab2@8 f3@8 eb3@7 ~",
  AA: "gb2@2 db2@2 gb2@2 db2 gb2", AB: "ab2@2 ~@2 ab2@2 eb2@2 gb2@2 ab2@2 gb2@2 eb2@2 ab1@7 ~ ab1@7 ~",
  AC: "bb1@2 ~@4 bb1@2 ~@4 bb1 ab1 bb1 db2", AD: "bb1@4 ~@8 bb1@3 ~@5 f1@6 ab1@6",
  AE: "eb2@2 db2@2 bb1@3 ~@5 eb2@8 db2@12", AF: "bb1@5 ~@7 bb1@4 ~@8 bb1@2 ab1@2 bb1@2 db2@2",
  AG: "bb1@3 ~@9 bb1@3 ~@5 f1@6 ab1@6", AH: "eb2@2 db2@2 bb1@4 ~@4 eb2@8 db2@11 ~",
  AI: "bb1@4 ~@8 bb1@4 ~@4 f1@5 ~ ab1@6", AJ: "eb2 db2 bb1@2 ~@2 eb2@4 db2@6", AK: "ab1@6 db2@2 eb2@3 ~ ab3 gb3 f3 eb3",
  AL: "db2@7 ~ db2@4 ab2@8 db3@4 ab2@4 eb2@4", AM: "c2@8 ab1@8 c2@3 ~ c2@4 ab1@4 c2@4", AN: "bb1@2 f2@2 bb2@2 f2 bb1",
  AO: "a1 b1 db2 eb2", AP: "db2@3 ~ db2@2 ab2@4 db3@2 ab2@2 eb2@2", AQ: "a1@8 b1@8 db2@8 eb2@7 ~", AR: "db2@15 ~",
  AS: "db2@14 ab1 a1", AT: "a1 b1 db2@2", AU: "ab3@29 ~@3, gb3 ~@31", AV: "gb3 ab3@29 ~ gb3", AW: "ab3@15 ~",
  AX: "ab3@31 ~, gb3 ~@31", AY: "db2@13 ~@3 db2@13 ~@3", AZ: "db2@11 ~ gb2@4 ab2@6 db2@6 eb2@4",
  BA: "db2@13 ~@3 db2@14 ~@2", BB: "db2@6 gb2@2 ab2@3 db2@3 eb2@2", BC: "db2@12 ~@4 db2@15 ~",
})).s("gm_fretless_bass").gain(0.38)

// other · percussive organ · "ORGAN 2"
const percussive_organ = note("<~@82 A B@2 C D E F E G H ~@3>".pickRestart({
  A: "~@2 ab5@2 eb6@2 ab5@2 f6@2 ab5@2 gb6@2 ab5@2 ab6@2 ab5@2 gb6@2 ab5@2 f6@2 ab5 ~ eb6@2 ab5 ~, db6 ~@7",
  B: "db6@2 ab5 ~ eb6@2 ab5@2 f6@2 ab5@2 gb6@2 ab5@2 ab6@2 ab5@2 gb6@2 ab5@2 f6@2 ab5 ~ eb6@2 ab5@2",
  C: "db6@2 ab5@2 eb6@2 ab5@2 f6@2 ab5@2 gb6@2 ab5@2 ab6@2 ab5@2 gb6@2 ab5 ~ f6@2 ab5 ~ eb6@2 ab5 ~",
  D: "db6@2 ab5@2 eb6@2 ab5@2 f6@2 ab5@2 gb6@2 ab5@2 ab6@2 ab5@2 gb6@2 ab5@2 f6@2 ab5@2 eb6@2 ab5 ~",
  E: "db6@2 ab5@2 eb6@2 ab5@2 f6@2 ab5@2 gb6@2 ab5@2 ab6@2 ab5@2 gb6@2 ab5@2 f6@2 ab5 ~ eb6@2 ab5@2",
  F: "db6 ab5 eb6 ab5 f6 ab5 gb6 ab5 ab6 ab5 gb6 ab5 f6 ab5 eb6 ab5",
  G: "db6@2 ab5@2 eb6@2 ab5@2 f6@2 ab5@2 gb6@2 ab5@2 ab6@2 ab5@2 gb6@2 ab5@2 f6@2 ab5 ~ eb6@2 ab5 ~",
  H: "db6 ab5 eb6 ab5 f6 ab5 gb6 ab5 ab6 ab5 gb6 ~@5",
})).s("gm_percussive_organ").gain(0.22).pan(0.7)

// other · percussive organ · "ORGAN 2" · soft notes
const percussive_organ_soft = note(`<
  ~@91
  [~@22 ab5@2 f6@2 ab5 ~ eb6@2 ab5 ~]
  [db6@2 ab5@2 eb6@2 ab5@2 f6@2 ab5@2 gb6@2 ab5@2 ab6@2 ab5@2 gb6@2 ab5@2 f6@2 ab5 ~ eb6@2 ab5 ~]
  [db6@2 ab5@2 eb6@2 ab5@2 f6@2 ab5@2 gb6@2 ab5@2 ab6@2 ab5@2 gb6@2 ab5@2 f6@2 ab5@2 eb6@2 ab5 ~]
  ~
>`).s("gm_percussive_organ").gain(0.07).pan(0.7)

// other · epiano1 · "E.PIANO 1"
const epiano1 = note("<~@22 A ~@5 B C D ~@2 E F G H ~@20 C D ~@2 E F ~@32>".pickRestart({
  A: "~@4 ab4@3 bb4 ab4@6 ~@2", B: "f4@4 ab4@2 ab4@9 ~", C: "~@3 f4 ab4@2 bb4 db5@3 bb4@2 ab4@2 gb4@2",
  D: "~@3 f4 ab4@3 bb4 ab4 gb4@3 gb4@4", E: "~@4 ab4@2 bb4 db5@3 bb4@2 ab4@3 ~",
  F: "~@2 ab4!2 ab4@3 bb4 ab4 gb4@3 gb4@4", G: "~@3 db4 f4@3 gb4 ab4@3 gb4 f4@3 ab4", H: "ab4 ~",
})).s("gm_epiano1").gain(0.29)

// chords · pad sweep · "SWEEP PAD"
const pad_sweep = note("<~@7 A@4 ~@67 B@4 ~@13>".pickRestart({
  A: "[~@7 [eb5,ab5,bb5,eb6]@25]/4", B: "ab6/4",
})).s("gm_pad_sweep").gain(0.22)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@41 A@2 B C D E F G ~@15 H I J K L@2 M N O ~@3 P Q ~@17>".pickRestart({
  A: "[~@2 [bb3,eb4]@16 ~@2 ab3@2 ~@2 ab3@2 bb3@2 ~@2 bb3@9 ~ f3@2 ab3@2 bb3@2 db4@2 eb4@2 f4 ~ eb4@2 eb4@2 db4 ~ bb3 ~ db4@3 ~]/2", // Eb5
  B: "~@4 c5@7 c5@4 ~ bb4@2 ~ ab4@4 ~ bb4 ~ ab4@4 bb4@2",
  C: "ab4@4 bb4 ~ ab4@2 ~@2 ab4@2 f4@2 g4 ~ a4@3 ~ f4@2 ~ f4@3 ~ f4@4 ~, ~@11 eb4 ~@4",
  D: "~@4 db5@2 ~@2 db5 ~ eb5@4 ~@2", E: "~@8 eb4@2 bb4@2 ab4@2 f4 ~ eb4@2 eb4@2 db4@2 bb3 ~ eb4@2 db4@3 ~ eb4@2",
  F: "db4@2 ~@2 eb4 ~ db4@3 ~ eb4 ~ db4@3 ~ eb4@2 db4@3 ~ eb4@2 db4@2 ~@2 eb4@2 db4@2",
  G: "bb3@2 db4 ~ bb3@2 ab3 ~ e3@9 ~@2 db3 ~ eb3@7 c3 ~@3", H: "~@7 b4",
  I: "db5@8 db5 ~ eb5 ~ f5@2 gb5@2 ab5@7 ~ ab5@2 gb5@2 ~ f5@2 ~",
  J: "gb5@4 eb5 ~ f5@2 f5@4 eb5 ~ db5@6 ~@4 db5@2 c5@2 ~ db5 ~@2", K: "db5@10 d5@3 c5@2 ~ db5@7 ~ db5@4 bb4 g4 e4 ~",
  L: "[e5 ~ d5@2 ~ d5@2 e5 c5 d5 d5@2 b4 a4@2 gb4 e4@10 ~@2 a4@3 ab4@3 ~ [bb4,c5]@2 db5@2 ~ db5@5 eb5@3 eb5@4 ~ f5@3 f5@4 ab5 e5 ~ ab5]/2", // Bbsus2
  M: "ab5@11 ~ ab5@3 ~ ab5@4 ~@4 ab5@2 e5@2 ~ f5@2 ~, ~@14 ab5 ~", N: "eb6@6 eb6 db6 eb6@6 ~@2",
  O: "eb5@10 e5 ~ gb5 ~@3 ab5@13 ~@3", P: "ab4@11 f4 ~ ab4 ~@2 a4@4 ~ f4 ~@2 e4@2 ~ db4@2 eb4 ~@2",
  Q: "eb4@2 ~ eb4 ~@3 db4 eb4 db4@15 ~@8",
})).s("gm_overdriven_guitar").gain(0.4)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
  A B A C D E D F@4 G@3 H I@2 G@2 J K L M N O P Q R S ~@8 T U V W T U V W T U V W A B A C D E D X Y ~@15 G@3 Z AA ~@4 AB
  AC AB AD AB AC AB AD AB AE ~@3
>`.pickRestart({
  A: "[f2,c3]@13 ~@3 [f2,c3]@14 ~@2", B: "[f2,c3]@9 ~@3 bb2@2 ~@2 [c3,g3]@4 ~@2 [f2,c3]@4 ~@2 [g2,d3]@3 ~",
  C: "[f2,c3]@9 ~@3 [bb2,f3]@2 ~@2 [c3,g3]@4 ~@2 [f2,c3]@3 ~@3 [g2,d3]@3 ~", D: "[ab2,eb3]@13 ~@3 [ab2,eb3]@14 ~@2",
  E: "[ab2,eb3]@9 ~@3 [db3,ab3]@2 ~@2 [eb3,bb3]@5 ~ [ab2,eb3]@4 ~@2 [bb2,f3]@3 ~", // Ab5 Db5 Eb5 Ab5 Bb5
  F: "[[ab2,eb3]@9 ~@3 [db3,ab3]@2 ~@2 [eb3,bb3]@4 ~@2 [ab2,eb3]@3 ~@3 [eb3,bb3]@69 ~@31]/4", G: "[db2,ab2]@31 ~",
  H: "ab2@6 ab2 ~ ab2@6 ~ ab2 ab2@5 ~@2 ab2 gb3@2 f3@2 eb3@2 db3@2",
  I: "[ab2@6 ~ ab2 ~ ab2@5 ab2 ~ ab2@5 ~ ab2 ~ gb3@2 f3@2 eb3@2 ~ [db2,ab2]@32 ~, ~@15 db3 ~@16]/2", // Db5
  J: "ab2@6 ab2 ~ ab2@5 ~ ab2 ~ ab2@4 ~@2 ab2 ~ gb3@2 f3@2 eb3@2 db3@2",
  K: "ab2@6 ~ ab2 ab2@4 ~@2 ab2 ~ ab2@4 ~@2 ab2 ~ gb3@2 ~ eb3@2 db3@3, gb2 ~@25 f3@2 ~@4", L: "eb3",
  M: "eb3@2 db3@2 eb3@27 ~", N: "ab2@8 gb3@2 f3 ~ eb3@2 db3@2 ab2@6 ~@2 eb3@2 db3@2 c3 ~ db3@2",
  O: "e3@13 ~@3 ab2@2 ~@2 bb2@2 ~@2 ab2@2 bb2@6", P: "d3@13 ~@3", Q: "eb3 ~ db3@2 eb3@27 ~",
  R: "ab2@8 ab3 ~ gb3@2 f3@2 gb3@2 eb3@7 ~ eb3@2 f3@2 ab3@2 gb3@2", S: "e3@10 ~@2 eb3@19 ~",
  T: "[f3,bb3]@3 ~@9 [f3,bb3]@3 ~@9 [f3,bb3]@2 [eb3,ab3]@2 [f3,bb3] ~ [ab3,db4]@2", // Bb5 Ab5 Bb5 Db5
  U: "[f3,bb3]@2 ~@10 [f3,bb3]@3 ~@5 [c3,f3]@5 ~ [eb3,ab3]@6", // Bb5 F5 Ab5
  V: "[f3,bb3]@3 ~@9 [f3,bb3]@3 ~@9 [f3,bb3] ~ eb3@2 f3 ~ [ab3,db4]@2", // Bb5 Db5
  W: "[bb3,eb4]@2 [ab3,db4]@2 [f3,bb3]@2 ~@6 [bb3,eb4]@8 [ab3,db4]@11 ~", // Eb5 Db5 Bb5 Eb5 Db5
  X: "[ab2,eb3]@9 ~@3 [db3,ab3]@2 ~@2 [eb3,bb3]@3 ~ ab3@4 ab4 ~ gb4 ~ f4@2 eb4 ~", Y: "db4@7 ~@9",
  Z: "f3@2 ~@4 f3 ~, bb2@29 ~@3, bb3@4 bb3@3 ~, ~@8 f3@15 ~@9", AA: "e3@7 ~@9 a3@16, a2, a3 ~, ~@8 e3@21 ~@3",
  AB: "[db3,ab3]@13 ~@3 [db3,ab3]@14 ~@2", // Db5
  AC: "[db3,ab3]@9 ~@3 gb3@2 ~@2 [ab3,eb4]@4 ~@2 [db3,ab3]@4 ~@2 [eb3,bb3]@3 ~", // Db5 Ab5 Db5 Eb5
  AD: "[db3,ab3]@9 ~@3 [gb3,db4]@2 ~@2 [ab3,eb4]@4 ~@2 [db3,ab3]@3 ~@3 [eb3,bb3]@3 ~", AE: "[db3,ab3]@9 ~@23",
})).s("gm_overdriven_guitar").gain(0.29).pan(0.7)

// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note("<~ A ~@37 B ~@3 B ~@3 B ~@2 A ~@32 C ~@3 C ~@3 D E F ~>".pickRestart({
  A: "~@6 f3 ~@9", B: "~@28 bb3 ~@3", C: "~@6 db4 ~@9",
  D: "~@12 [gb3,db4]@2 ~@2 [ab3,eb4]@4 ~@2 [db3,ab3]@4 ~@2 [eb3,bb3]@3 ~", E: "[db3,ab3]@13 ~@3 [db3,ab3]@14 ~@2",
  F: "[db3,ab3]@9 ~@3 [gb3,db4]@2 ~@2 [ab3,eb4]@4 ~@2 [db3,ab3]@3 ~@3 [eb3,bb3]@3 ~", // Db5 Gb5 Ab5 Db5 Eb5
})).s("gm_overdriven_guitar").gain(0.07).pan(0.7)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_3 = note(`<
  A B A B C D E F@3 ~@10 G H I J@2 K@3 L ~@8 M N M O M N M O M N M O A B A B C D E P Q ~@14 R ~@9 S T S T S T S T S U
  ~@3
>`.pickRestart({
  A: "~@4 [f3,c4]!3 ~ f3@2 ~@2 [g3,d4]@5 ~@3 [f3,c4]!3 [f3,c4]@2 ~@3 [c4,g4]@4, ~@7 c4@2 ~@23", // F5 G5 F5 C5
  B: "~@6 c4 [f3,c4]@2 ~@2 [bb3,f4]@2 ~@3 [c4,g4]@4 ~@2 [f3,c4]@4 ~ [g3,d4]@5, ~@3 f3@2 f3@2 ~@25, ~@2 c4 ~@13", // F5 Bb5 C5 F5 G5
  C: "~@5 eb4 [ab3,eb4] ~ [ab3,eb4]@2 ~@2 [bb3,f4]@4 ~@5 eb4!2 eb4@2 ~@3 [eb4,bb4]@4, ~@4 [ab3,eb4]@2 ~@14 [ab3,eb4]@2 ab3@3 ~@7", // Ab5 Bb5 Eb5 Ab5
  D: "~@5 eb4 ab3@2 eb4@2 ~@2 [db4,ab4]@2 ~@2 [eb4,bb4]@4 ~@2 [ab3,eb4]@4 ~@2 f4@4, ~@4 [ab3,eb4]@2 eb4 ~@20 bb3@5", // Db5 Eb5 Ab5
  E: "~@5 eb4 ~ [ab3,eb4] [ab3,eb4]@2 ~@2 [bb3,f4]@5 ~@4 eb4 ab3@2 eb4@2 ~@2 [eb4,bb4]@4, ~@4 [ab3,eb4]@2 ~@14 [ab3,eb4]@2 eb4 ~@9", // Ab5 Bb5 Eb5 Ab5
  F: "[~@4 [ab3,eb4]!2 ab3@2 eb4@2 ~@2 ab4@2 ~@2 [eb4,bb4]@4 ~@2 [ab3,eb4]@3 ~@3 [eb4,bb4]@68, ~@6 eb4 ~@89]/3", // Ab5 Eb5 Ab5 Eb5
  G: "~@7 a4", H: "bb4@27 ~ ab4@2 bb4 ~", I: "ab4@27 ~@5",
  J: "[eb4@29 ~@3 [db4,f4]@11 ~@5 a3@2 ~@2 bb3@2 ~@2 ab3@2 bb3@4 ~@2, ~@31 bb3@13 ~@20]/2", // Db
  K: "[d4@24 eb4 ~ db4@2 eb4@23 ~@5 eb4@4 db4@2 ~ db4@5 ab3@2 eb3@23 ~@3, ~@55 [ab3,c4]@2 ~@39]/3", L: "e3@12 eb3@19 ~",
  M: "[bb2,f3]@3 ~@9 [bb2,f3]@3 ~@9 [bb2,f3]@2 ab2@2 bb2@2 db3@2", // Bb5
  N: "[bb2,f3]@2 ~@10 [bb2,f3]@3 ~@5 [f2,c3]@5 ~ [ab2,eb3]@5 ~", // Bb5 F5 Ab5
  O: "[eb3,bb3]@2 db3 ~ [bb2,f3]@2 ~@6 [eb3,bb3]@7 ~ [db3,ab3]@12", // Eb5 Bb5 Eb5 Db5
  P: "~@4 [ab3,eb4]!2 ab3@2 eb4@2 ~@2 ab4@2 ~@2 [eb4,bb4]@4 ab2@3 ~ ab3@2 gb3@2 f3@2 eb3@2, ~@6 eb4 ~@25", // Ab5 Eb5
  Q: "db3@7 ~@9", R: "ab5@10 a5 ~ b5@2 ~@2 b5@14 ~@2",
  S: "~@4 [db4,ab4]!3 ~ db4@2 ~@2 [eb4,bb4]@5 ~@3 [db4,ab4]!3 [db4,ab4]@2 ~@3 [ab4,eb5]@4, ~@7 ab4@2 ~@23", // Db5 Eb5 Db5 Ab5
  T: "~@6 ab4 [db4,ab4]@2 ~@2 [gb4,db5]@2 ~@3 [ab4,eb5]@4 ~@2 [db4,ab4]@4 ~ [eb4,bb4]@5, ~@3 db4@2 db4@2 ~@25, ~@2 ab4 ~@13", // Db5 Gb5 Ab5 Db5 Eb5
  U: "~@6 ab4 ab4@2 ~@2 [gb4,db5]@2 ~@3 eb5@4 ~@12, ~@2 ab4 ~@13, ~@5 db4@2 ~@25", // Gb5
})).s("gm_overdriven_guitar").gain(0.32).pan(0.4)

// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft_2 = note("<~@7 A ~@15 B ~@32 A ~@34 C D E ~>".pickRestart({
  A: "~@6 db4 ~@9", B: "[ab3,c4]@29 ~@3", C: "~@3 db4@2 ~@2 db4@2 ~@7 ab4@4 ~@2 [db4,ab4]@4 ~ [eb4,bb4]@5",
  D: "~@4 [db4,ab4]!3 ~ db4@2 ~@2 [eb4,bb4]@5 ~@3 [db4,ab4]!3 [db4,ab4]@2 ~@3 [ab4,eb5]@4, ~@7 ab4@2 ~@23", // Db5 Eb5 Db5 Ab5
  E: "~@6 ab4 [db4,ab4]@2 ~@2 [gb4,db5]@2 ~@3 [ab4,eb5]@4 ~@2 [db4,ab4]@4 ~ bb4@4 ~, ~@3 db4@2 db4@2 ~@20 eb4@2 ~@3, ~@2 ab4 ~@13", // Db5 Gb5 Ab5 Db5
// … 125 more lines

More by Styx