Strudelify
The Grand Illusion cover art

1977 · 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, A@4 for four bars: 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@2 I J H@2 K L M N O P Q R O S T U@4 V@4 W X W Y Z X W Y AA AB AA AC A B C D E@2 AD@2 AE@4 V@4 AF@8
  AG@3 AH AI AG@3 AJ AK@2 AL AM AL AN AO AP AK@2 AL AQ ~
>`.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,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
  J: "[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
  K: "[ab4,ab5]@31 ~, [db5,eb5]@7 ~", // Ab Dbsus2
  L: "[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
  M: "[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
  N: "[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
  O: "[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
  P: "[eb5,c6]@7 ~, ab5", Q: "[f5,bb5,db6]@31 ~",
  R: "[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
  S: "[ab5,c6], eb5@7 ~", T: "[bb5,db6]@6 [eb5,c6]@9 db6, f5@9 ~@3 ab5@15 ~@5",
  U: "[db6 c6 bb5@6, f5@123 ~@5, ab5@8 db5@23 ~]/4",
  V: "[db6@16 c6@16 bb5@64 ~@16 c5@15 ~, f5@96 [eb5,ab5]@31 ~, ab5@2 db5@5 ~]/4", // Ab5
  W: "bb2@2 ~@4 bb2@2 ~@4 bb2 ab2 bb2 db3", X: "bb2@3 ~@9 bb2@3 ~@5 f2@6 ab2@6", Y: "eb3 db3 bb2 ~@3 eb3@4 db3@6",
  Z: "bb2@4 ~@8 bb2@3 ~@9 bb2@2 ab2@2 bb2@2 db3@2",
  AA: "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
  AB: "[bb2,f4]@2 ~@4 [bb2,f4]@2 ~@2 [f2,c4]@3 [ab2,eb4]@3", // Bb5 F5 Ab5
  AC: "[eb3,bb4]@2 [db3,ab4]@2 [bb2,f4]@3 ~@5 [eb3,bb4]@8 [db3,ab4]@11 ~", // Eb5 Db5 Bb5 Eb5 Db5
  AD: "[~@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
  AE: "[db6 c6 bb5@6, f5@123 ~@5, ab5 ~@3, db5@3 ~@5 db5@23 ~]/4",
  AF: "[[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 …
  AG: "[ab4,db5,eb5,ab5,db6,eb6,ab6]@29 ~@3", AH: "[db5,f5], bb4@25 ~@7", AI: "[a4,db5,e5]@29 ~@3",
  AJ: "[ab4,db5,eb5,ab5,db6,eb6,ab6]", // Absus4
  AK: "[~@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 …
  AL: "~@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
  AM: "~@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
  AN: "~@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
  AO: "~@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
  AP: "~@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
  AQ: "~@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 I@2 M N O P Q R O S T U V W T U X Y Z AA Z AB Z AA Z AB Z AC AD AB A B A B C D C AE
  T U V W T U X Y AF AG AH AI AF AG AH AI F@2 AJ AH AK AL AM AN AO AP AQ AP AQ AP AQ AP AQ AP AQ AP AQ ~
>`.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@15 ~", G: "db2@29 ~@3",
  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: "eb2@16 eb3@2 ~@2 eb3@2 ~@2 eb3@3 ~ eb3@4",
  N: "eb2@3 ~ eb2@2 ~@2 eb2@2 ~@2 eb2@4 eb3@2 ~@2 eb3@2 ~@2 eb3@2 ~@2 eb3@4",
  O: "ab1@6 gb2@2 ab2@2 gb2@2 eb2@2 gb2@2 ab2@5 ~ gb2@2 ab2@2 gb2@2 eb2@2 gb2@2",
  P: "bb2@15 ~ ab1@3 ~ ab1@2 ~@2 ab1@2 bb1@5 ~", Q: "eb2@9 ~@3 eb2@4 eb3@3 ~ eb3@2 ~@2 eb3@3 ~ eb3@4",
  R: "eb2@3 ~ eb2@2 ~@2 eb2@2 ~@2 eb2@4 eb3@3 ~ eb3@2 ~@2 eb3@3 ~ eb3@3 ~", S: "bb2@5 ~ ab2@10",
  T: "db3@2 db2 db3 c3@2 c2 c3", U: "bb2@4 db2@2 f2@2 bb2@3 ~ bb2@2 ab2@2", V: "gb2@4 db2@4 gb2@4 db2@2 gb2 ab2",
  W: "bb2@8 ab2@8 f3@8 eb3@7 ~", X: "gb2@2 db2@2 gb2@2 db2 gb2",
  Y: "ab2@2 ~@2 ab2@2 eb2@2 gb2@2 ab2@2 gb2@2 eb2@2 ab1@7 ~ ab1@7 ~", Z: "bb1@2 ~@4 bb1@2 ~@4 bb1 ab1 bb1 db2",
  AA: "bb1@4 ~@8 bb1@3 ~@5 f1@6 ab1@6", AB: "eb2@2 db2@2 bb1@3 ~@5 eb2@8 db2@12",
  AC: "bb1@4 ~@8 bb1@4 ~@4 f1@5 ~ ab1@6", AD: "bb1@5 ~@7 bb1@4 ~@8 bb1@2 ab1@2 bb1@2 db2@2",
  AE: "ab1@6 db2@2 eb2@3 ~ ab3 gb3 f3 eb3", AF: "db2@7 ~ db2@4 ab2@8 db3@4 ab2@4 eb2@4",
  AG: "c2@8 ab1@8 c2@3 ~ c2@4 ab1@4 c2@4", AH: "bb1@2 f2@2 bb2@2 f2 bb1", AI: "a1 b1 db2 eb2", AJ: "db2@14 ab1 a1",
  AK: "a1 b1 db2@2", AL: "ab3@29 ~@3, gb3 ~@31", AM: "gb3 ab3@29 ~ gb3", AN: "ab3@15 ~", AO: "ab3@31 ~, gb3 ~@31",
  AP: "db2@13 ~@3 db2@14 ~@2", AQ: "db2@6 gb2@2 ab2@3 db2@3 eb2@2",
})).s("gm_fretless_bass").gain(0.38)

// other · percussive organ · "ORGAN 2"
const percussive_organ = note("<~@82 A B@3 C D E@2 B F ~@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@2 f6@2 ab5@2 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 ~ f6@2 ab5 ~ 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 ~@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 ~]!2
  ~
>`).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 M Q R ~@8 S T U V S T U V S T U V A B A C D E D W X ~@15 G@3 Y Z ~@4 AA
  AB AA AC AA AB AA AC AA AD ~@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: "ab2@8 ab3 ~ gb3@2 f3@2 gb3@2 eb3@7 ~ eb3@2 f3@2 ab3@2 gb3@2", R: "e3@10 ~@2 eb3@19 ~",
  S: "[f3,bb3]@3 ~@9 [f3,bb3]@3 ~@9 [f3,bb3]@2 [eb3,ab3]@2 [f3,bb3] ~ [ab3,db4]@2", // Bb5 Ab5 Bb5 Db5
  T: "[f3,bb3]@2 ~@10 [f3,bb3]@3 ~@5 [c3,f3]@5 ~ [eb3,ab3]@6", // Bb5 F5 Ab5
  U: "[f3,bb3]@3 ~@9 [f3,bb3]@3 ~@9 [f3,bb3] ~ eb3@2 f3 ~ [ab3,db4]@2", // Bb5 Db5
  V: "[bb3,eb4]@2 [ab3,db4]@2 [f3,bb3]@2 ~@6 [bb3,eb4]@8 [ab3,db4]@11 ~", // Eb5 Db5 Bb5 Eb5 Db5
  W: "[ab2,eb3]@9 ~@3 [db3,ab3]@2 ~@2 [eb3,bb3]@3 ~ ab3@4 ab4 ~ gb4 ~ f4@2 eb4 ~", X: "db4@7 ~@9",
  Y: "f3@2 ~@4 f3 ~, bb2@29 ~@3, bb3@4 bb3@3 ~, ~@8 f3@15 ~@9", Z: "e3@7 ~@9 a3@16, a2, a3 ~, ~@8 e3@21 ~@3",
  AA: "[db3,ab3]@13 ~@3 [db3,ab3]@14 ~@2", // Db5
  AB: "[db3,ab3]@9 ~@3 gb3@2 ~@2 [ab3,eb4]@4 ~@2 [db3,ab3]@4 ~@2 [eb3,bb3]@3 ~", // Db5 Ab5 Db5 Eb5
  AC: "[db3,ab3]@9 ~@3 [gb3,db4]@2 ~@2 [ab3,eb4]@4 ~@2 [db3,ab3]@3 ~@3 [eb3,bb3]@3 ~", AD: "[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
})).s("gm_overdriven_guitar").gain(0.12).pan(0.4)

// other · guitar harmonics · "GTHARMONIC"
const guitar_harmonics = note("<~@41 A B C D E F G H ~@26 I J K ~@17>".pickRestart({
  A: "~ [bb3,eb4]@16 ~@2 ab3 ~@3 ab3 ~@2 bb3 ~@2 bb3 ~@2", // Eb5
  B: "~@8 f3 ~ ab3 ~ bb3 ~ db4 eb4 ~ f4 ~ eb4 ~ eb4 ~@2 db4 bb3 ~ db4 ~@4",
  C: "~@3 c5 ~@7 c5 ~@3 bb4 ~@3 ab4 ~@3 bb4 ~ ab4 ~@4 bb4 ~",
  D: "ab4 ~@3 bb4 ab4 ~@3 ab4 ~@2 f4 g4 ~ a4 ~@3 f4 ~ eb4 ~ f4 ~@3 f4 ~@4", E: "~@7 db5 ~@7 db5 ~@4 eb5 ~@11",
  F: "~@4 eb4 ~@2 eb4 ~ bb4 ~ ab4 ~ f4 ~ eb4 ~ eb4 ~ db4 ~ bb3 ~ eb4 ~ db4 ~@4 eb4 ~",
  G: "db4 ~@2 eb4 ~ db4 ~@3 eb4 ~ db4 ~@3 eb4 ~ db4 ~@3 eb4 ~@2 db4 ~@2 eb4 ~ db4 ~@2",
  H: "bb3 ~ db4 bb3 ~@2 ab3 e3 ~@11 db3 ~ eb3 ~@6 c3 ~@3", I: "~@31 ab4",
  J: "~@11 f4 ~ ab4 ~@2 a4 ~@3 f4 ~@3 e4 ~ db4 ~@2 eb4 ~@2", K: "eb4 ~@2 eb4 ~@2 db4 ~ eb4 db4 ~@22",
// … 107 more lines

More by Styx