Strudelify
Blue Collar Man (Long Nights) cover art

1978 · Pieces of Eight

Blue Collar Man (Long Nights)

Styx

KeyD minorTempo122 bpm
0:00/0:00
// Blue Collar Man (Long Nights) — Styx
// 122 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 120 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/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 · rock organ · "ORGAN 3"
const rock_organ = note("<A B@8 ~@24 A C D ~@76 A E@4 F@2 ~>".pickRestart({
  A: "~@14 [d4,a4]!2", // D5
  B: "[[d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@2 ~@2 [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 a4@2 [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@3 ~ [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@2 ~@2 [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@6 ~@2 [d4,a4]!2 a4@2 [d4,a4]@3 ~ [g4,d5]@2 ~@2 [f4,c5]@4 ~@2, d3, ~@48 d4 ~@63 d4 ~@15]/8", // D5 F5 D5 G5 F5 D5 F5 D5 …
  C: "[d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@6 ~@2 [d4,a4]!2", D: "a4@2 [d4,a4]@3 ~ [g4,d5]@2 ~@2 [f4,c5]@4 ~@2, d4 ~@15",
  E: "[[d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@2 ~@2 [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 a4@2 [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@3 ~ [d4,a4]!2, d3, ~@48 d4 ~@15]/4", // D5 F5 D5 G5 F5 D5 F5 D5 …
  F: "[[d4,a4] ~@31, d3]/2", // D5
})).s("gm_rock_organ").gain(0.22).pan(0.3)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@4 A B@3 C D@2 E F G H E F I J E F G H E F I J B@2 K L B M N@3 O@2 E F G H E F I J B@2 K L B M P B@2 Q@2 R@2 S T B@2
  Q@2 R@2 U V E F G H E F I J E F G H E F I J B@2 K L B M W@3 ~@4 X Y Z AA B@2 K L B M AB@2 AC@5 ~@5
>`.pickRestart({
  A: "~@3 d3", B: "d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~", C: "d2@3 ~ d2@3 ~ d2@3 ~ d2 ~ a1@2",
  D: "[bb1 c2 d2 f2 e2 d2 c2 d2@7 ~@2]/2", E: "d2 ~ d2 a1 d2 ~ d2 a1", F: "g1@3 ~ g1@2 f1@2 g1@4 bb1@4",
  G: "c2@3 ~ c2@2 bb1@2 c2@2 ~@2 c2@2 a1@2", H: "d2@3 ~ d2@4 a1@4 c2@2 a1@2", I: "c2@3 ~ c2@3 ~ c2@2 b1@2 bb1@4",
  J: "a1 g1 f1 e1", K: "bb1@3 ~ bb1@2 c2@4 bb1@2 a1@2 c2@2", L: "~@2 d2@13 ~", M: "d2@3 ~ d2@3 ~ d2@3 ~ d2@2 a1@2",
  N: "[bb1@2 c2@2 d2@2 f2@2 e2@2 d2@2 c2@2 d2@31 ~ a1@2]/3", O: "[bb1 c2 d2 f2 e2 d2 c2 d2@9]/2",
  P: "bb1 c2 d2 f2 e2 d2 c2 a1", Q: "c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~", R: "bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~",
  S: "d2@2 ~@2 d2@3 ~ d2 ~ d2@2 e2@2 d2@2", T: "f2 e2 g2 f2 a2 g2 bb2 a2", U: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  V: "a1 ~@7", W: "[bb1 c2 d2 f2 e2 d2 c2 bb1@17]/3", X: "bb3@3 ~ bb3@3 ~ bb3@3 ~ bb3@3 ~",
  Y: "bb3@3 ~ bb3@3 ~ bb3@2 ~@2 f1@4", Z: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~",
  AA: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ c2 ~ c2@2 a1 ~ a1@2", AB: "[bb1 c2 d2 f2 e2 d2 c2 bb1@2 c2 d2 f2 e2 d2 c2 a1]/2",
  AC: "[bb1@2 c2@2 d2@2 f2@2 e2@2 d2@2 c2@2 d2@55 ~@11]/5",
})).s("gm_fretless_bass").gain(0.44)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@5 A@4 B@2 ~@24 C D@2 ~@3 E ~@11 F@2 G H I@2 J K F@2 G L I@2 ~ M N O P Q R S T U V W@2 X Y Z AA@2 AB ~@13 AC AD AE
  ~@18
>`.pickRestart({
  A: "[g5@29 ~@2 a3]/4", B: "[bb3@2 c4@2 d4 ~ e4@2 e4 ~ d4@2 c4@2 d4@17 ~]/2", C: "~@7 a3",
  D: "[bb3@2 c4@2 d4 ~ e4@4 d4@2 c4@2 d4@17 ~]/2", E: "~@6 d4!2 ~ d4 [g4,b4]@2 f4@4, ~@6 a4 ~",
  F: "d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2", G: "c3@2 c3!2 c3@2 c3!2 c3@2 c3!2 c3@2 [f4,a4]!2",
  H: "[f4,a4] ~@2 a4 [f4,a4] ~ [f4,a4]!2 [f4,a4]@2 c4@2 bb3@2 c4 ~, ~ [f4,a4] ~@6", // F
  I: "[[c4,e4]@3 ~ [bb3,d4]@2 [bb3,d4]@24 ~@2]/2", J: "d3!6 e3 d3", K: "f3@2 e3 ~ g3@2 f3 ~ a3@2 g3@2 bb3@2 a3@2",
  L: "[f4,a4] ~@2 a4 [f4,a4] ~ [f4,a4]!3 ~ c4@2 bb3@2 c4 ~, ~ [f4,a4] ~@6", M: "~@2 g4@8 g4@2 ~ g4@2 ~",
  N: "g4@3 f4 d4 f4 d4@4 ~ c4 d4@2 f4 d4", O: "f4@2 d4 c4 a3 ~ ab3 ~ g3@4 d3 ~ a2 ~",
  P: "c3 ~ c3 d3 f3 ~ g3 ~ g3@2 g3 ~ f3 ~ g3 ~", Q: "g3@2 c4 a3 c4 ~ d4 ~ d4 f4 d4@3 ~@3",
  R: "c5@8 f4@2 ~@2 [gb4,ab4] ~ c5 ~", S: "c5@3 f5 db5@2 a4 g4 f4@5 ~ db4@2",
  T: "a3@2 c4 ~ [f4,a4]@2 d4@2 ~@2 ab3@2 g3 ~ f3 ~", U: "ab3@2 g3 ~ f3 ~ ab3@7 ~@3", V: "c4@2 f4@2 a3@2 c4 ~@3 d4@6",
  W: "[d4@4 c4@2 a3 ~ c4@2 d4 ~ d4 ~ c4@5 ~ c4@3 a3 c4@3 a3 c4@2 d4 e4]/2",
  X: "d4@2 ~@2 ab3@2 f3@2 g3@2 g3 a3 f3@2 g3 a3", Y: "c4 g3 a3 c4 g3 a3 c4 g3 d4 f4 gb3 a3 c4 g3 d4 f4",
  Z: "g3 a3 c4 g3 d4 f4 g3 a3 c4 g3 d4 f4 g3 a3 c4 g3",
  AA: "[d4 f4 g3 ~ b4@7 f4 g4 f4 g4 ab4@3 f4 g4 ab4@2 f4 d4 c4 ab3 g3 a3 c4 a3 g3 f3]/2", AB: "d3@5 ~@11",
  AC: "~@12 f2@3 g2", AD: "[a2,bb2,f3] [bb2,f3]!7", AE: "[bb2,f3]@2 [bb2,f3]@2 [bb2,f3]@2 [c3,g3]@2 [c3,g3]@7 ~",
})).s("gm_overdriven_guitar").gain(0.36).pan(0.4)

// chords · drawbar organ · "ORGAN 1"
const drawbar_organ = note(`<
  ~@27 A B C@2 A D E@3 ~@10 A B F G A D H I J K L M N O@2 P J Q@2 M R S@2 ~@16 A B T@2 A D U@3 V@6 W@2 A B X Y A D Z@6
  ~@6
>`.pickRestart({
  A: "[d4,f4,a4]@3 [d4,g4,bb4]@2 ~@2 [d4,e4,g4]", B: "[d4,e4,g4]@3 [d4,e4,g4] [d4,e4,g4]@2 [d4,f4,a4]@3 ~@7",
  C: "[~@2 f4@2 f4@2 g4@4 f4@2 e4@2 e4@4 f4@6 ~ a3@2 d4@2 f4@3]/2",
  D: "[d4,e4,g4]@3 [d4,e4,g4] [d4,e4,g4]@2 [d4,f4,a4]@3 ~@4 a3 a3@2", E: "[bb3 c4 d4 f4 e4 d4 c4 d4@16 ~]/3",
  F: "a4@3 g4@2 f4@3 g4@5 f4 e4@2", G: "~ e4@2 f4 e4@3 d4@2 d4@3 d4@3 d4", H: "bb3@2 c4@2 d4@2 f4@2 e4@2 d4@2 c4@3 ~",
  I: "g4@4 f4@3 ~", J: "f4@3 g4@2 a4@3 bb4@6 a4@2", K: "g4@3 f4@3 e4@2 e4@7 ~", L: "~@7 c4", M: "e4@4 d4@2 d4@7 ~ a3@2",
  N: "d4@2 e4@2 f4@2 f4@7 ~@3", O: "[d4@3 a3@2 a3@5 g3@2 f3@8 ~@12]/2", P: "bb4@3 a4 a4@3 ~",
  Q: "[g4@3 f4 e4@2 e4@3 d4 e4@10 ~@10 c4@2]/2", R: "d4@3 e4@2 f4@2 ~ bb4@3 a4@2 g4@3", S: "[a4@9 ~@7]/2",
  T: "[a4@2 g4@2 f4@2 g4@4 a4@2 a4@2 a4@4 c5@2 a4 g4@2 ~ g4@2 ~ g4@2 f4 d4@2, ~@23 f4@2 ~@7]/2",
  U: "[bb3@2 c4@2 d4@2 f4@2 e4@2 d4@2 f4@2 f4@33 ~]/3",
  V: "[[f4,d5]@4 [f4,d5]@2 [e4,f4,c5]@4 [e4,f4,c5]@4 [d4,f4,bb4]@4 [d4,f4,bb4]@4 [e4,f4,c5]@2 [e4,f4,c5]@5 ~ d4 e4]/2", // Dm Fmaj7 Bb Fmaj7
  W: "[[f4,d5]@4 [f4,d5]@2 [e4,f4,c5]@4 [e4,f4,c5]@4 [d4,f4,bb4]@4 [d4,f4,bb4]@4 [e4,g4,c5]@2 [e4,g4,c5]@5 ~@3]/2", // Dm Fmaj7 Bb C
  X: "a4!3 a4@2 c5 d5 ab4", Y: "~ g4 f4@2 d4@6 g4@2 g4@2 g4@2",
  Z: "[bb3@2 c4@2 d4@2 f4@2 e4@2 d4@2 c4@2 bb3@4 c4@2 d4@2 f4@2 e4@2 d4@2 c4@2 bb3@4 c4@2 d4@2 f4@2 e4@2 d4@2 a4@2 a4@39 ~@11]/6",
})).s("gm_drawbar_organ").gain(0.19)

// chords · drawbar organ · "ORGAN 1"
const drawbar_organ_2 = note(`<
  A B@8 C@2 ~@22 A D E C@2 ~@15 F@2 G@2 H@2 I@4 G@2 J@2 K@2 ~@43 A L@4 M@2 ~
>`.pickRestart({
  A: "~@14 [d4,a4]!2", // D5
  B: "[[d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@2 ~@2 [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 a4@2 [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@3 ~ [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@2 ~@2 [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@6 ~@2 [d4,a4]!2 a4@2 [d4,a4]@3 ~ [g4,d5]@2 ~@2 [f4,c5]@4 a2@2, d3@125 ~@3, ~@48 d4 ~@63 d4 ~@15]/8", // D5 F5 D5 G5 F5 D5 F5 D5 …
  C: "[bb2 c3 d3 f3 e3 d3 c3 d3@8 ~]/2", D: "[d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@6 ~@2 [d4,a4]!2",
  E: "a4@2 [d4,a4]@3 ~ [g4,d5]@2 ~@2 [f4,c5]@4 a2@2, d4 ~@15", F: "[d5,f5,a5]/2", G: "[c5,e5,g5]/2",
  H: "[[c5,e5,g5]@6 [bb4,d5,f5]@25 ~]/2", // C Bb
  I: "[d4@8 ~@2 d4@2 e4@2 d4@2 f4@2 e4@2 g4@2 f4@2 a4@2 g4@2 bb4@2 a4 ~ a5@31 ~, [d5,f5]@63 ~]/4", // Dm
  J: "[[c5,e5,g5]@5 ~ [bb4,d5,f5]@26]/2", K: "[[a4,e5]@9 ~@7]/2",
  L: "[[d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@2 ~@2 [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 a4@2 [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@3 ~ [d4,a4]!2, d3, ~@48 d4 ~@15]/4", // D5 F5 D5 G5 F5 D5 F5 D5 …
  M: "[[d4,a4] ~@31, d3]/2", // D5
})).s("gm_drawbar_organ").gain(0.24).pan(0.6)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
  ~@4 A B C B D E@2 F G H I F J K@2 F L H I F M K@2 N O P Q N R S@3 T@2 F U H V F W K@2 N O P Q N R X ~@14 Y Z F U H V F
  AA K@2 F U H V F AA K@2 N O P Q N R AB@3 ~@8 N O P Q N R AC@6 ~@6
>`.pickRestart({
  A: "~@14 [d3,a3] a3", B: "[d3,a3]@2 [d3,a3]@2 ~@2 [f3,c4]@6 ~@3 d3, ~@7 [d3,a3]",
  C: "[d3,a3]!2 ~ [g3,d4] ~ [f3,c4,d6] ~ [d3,a3]", D: "[d3,a3]!2 ~ [g3,d4] ~ [f3,c4] ~ a2",
  E: "[bb2@2 c3@2 d3@2 f3@2 e3@2 d3@2 c3 ~ d3@15 ~@3]/2", F: "[d3,a3]@3 ~@3 [d3,a3]@2 ~@2 [d3,a3]@2 ~@2 [g2,d3]@2",
  G: "[g2,d3]@2 ~ [g2,d3] ~ d3!2 [c3,g3], ~@5 g2@2 ~", H: "[c3,g3]@4 ~@2 [c3,g3]@2 ~@2 [c3,g3]@2 ~@2 [c3,g3] ~",
  I: "[d3,a3]@2 a2 c3", J: "[g2,d3]@4 ~@2 [g2,d3]@2 ~@2 [g2,d3]@3 ~ [c3,g3]@2",
  K: "[[c3,g3]@4 ~@2 c3@2 c3@2 b2@2 bb2@2 a2@6 g2@4 f2@3 ~ e2@3 ~]/2", // C5
  L: "[g2,d3]@4 ~@2 [g2,d3]@2 ~@2 d3@2 d3@3 ~, ~@10 g2@5 ~", M: "[g2,d3]@2 ~ [g2,d3] ~ [g2,d3] ~ [c3,g3]",
  N: "[a3,d4]@4 ~@2 [bb3,d4]@7 ~@3", O: "[g3,c4]@3 ~@3 [a3,d4]@6 ~@4", P: "[f3,d4]@2 ~ [e3,c4]@3 ~ [e3,c4]",
  Q: "~@2 [a3,d4]@11 ~@3, ~@2 d3@13 ~", R: "[g3,c4]@3 ~@3 [a3,d4]@6 e2 ~ a2@2",
  S: "[bb2@2 c3@2 d3@2 f3@2 e3 ~ d3@2 c3 ~ d3@30 ~@2 a2@2]/3", T: "[bb2@2 c3@2 d3@2 f3@2 e3@2 d3@2 c3 ~ d3@17 ~]/2",
  U: "[g2,d3]@4 ~@2 [g2,d3]@2 ~@2 d3@2 d3@2 d3 ~, ~@10 g2@5 ~", V: "[d3,a3]@4 d3 ~ a2@2 a2@4 c3@4",
  W: "[g2,d3]@4 ~@2 [g2,d3]@2 ~@2 [g2,d3]@3 ~ [g2,d3]@2", X: "bb2@2 c3@2 d3@2 f3@2 e3 ~ d3@2 c3@2 a2@2", Y: "[a2,e3]!8",
  Z: "[a2,e3] ~@15", AA: "[g2,d3]@4 ~@2 [g2,d3]@2 ~@2 [g2,d3]@2 [g2,d3]@2 [g2,d3] ~",
  AB: "[bb2@2 c3@2 d3@2 f3@2 e3 ~ d3@2 c3 ~ bb2@34]/3",
  AC: "[bb2@2 c3@2 d3@2 f3@2 e3 ~ d3@2 c3 ~ bb2@4 c3@2 d3@2 f3@2 e3 ~ d3@2 c3@2 bb2@4 c3@2 d3@2 f3@2 e3@2 d3@2 c3 ~ d3@50]/6",
})).s("gm_overdriven_guitar").gain(0.32).pan(0.3)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_3 = note(`<
  ~@5 A@3 B C@2 D E F G D H I@2 D E F G D H I@2 A@2 J K A B L@3 M@2 D E F G D H I@2 A@2 J K A B N ~@16 D E F G D H I@2 D
  E F G D H I@2 A@2 J K A B O@3 ~@3 P Q R S T A@2 J K A B U@6 ~@6
>`.pickRestart({
  A: "d3 ~ d3 ~ d3 ~ d3 ~", B: "d3@2 ~@2 d3@2 ~@2 d3@2 ~@2 d3 ~ a2@2",
  C: "[bb2@2 c3@2 d3@2 f3@2 e3@2 d3@2 c3 ~ d3@14 ~@4]/2", D: "[d3,a3]@3 ~@3 [d3,a3]@2 ~@2 [d3,a3]@2 ~@2 [g2,d3]@2",
  E: "[g2,d3]@4 ~@2 [g2,d3]@2 ~@2 d3@2 d3@2 [g2,d3] ~, ~@5 g2@2 ~", // G5
  F: "[c3,g3]@4 ~@2 [c3,g3]@2 ~@2 [c3,g3]@2 ~@2 [c3,gb3] ~", G: "[d3,a3]@6 d3 ~ a2@4 c3@4",
  H: "[g2,d3]@2 ~ [g2,d3] ~ [g2,d3] ~ [c3,g3]", I: "[[c3,g3]@4 c3 ~ c3@2 c3@2 b2@2 bb2@2 a2@6 g2@3 ~ f2@4 e2@3 ~]/2",
  J: "[bb2,f3]@4 ~@2 [c3,g3]@3 ~ bb2@2 a2 ~ [c3,g3] ~", K: "~ [d3,a3]@7",
  L: "[bb2@2 c3@2 d3@2 f3@2 e3@2 d3@2 c3 ~ d3@30 ~@2 a2@2]/3", M: "[bb2@2 c3@2 d3@2 f3@2 e3@2 d3@2 c3 ~ d3@18]/2",
  N: "bb2@2 c3@2 d3@2 f3@2 e3@2 d3@2 c3 ~ a2@2", O: "[bb2@2 c3@2 d3@2 f3@2 e3@2 d3@2 c3 ~ bb2@34]/3", P: "~@12 f2@3 g2",
  Q: "[a2,bb2]@2 bb2!2 bb2@2 bb2!2 bb2@2 bb2!2 bb2@2 bb2!2", R: "bb2@2 bb2!2 bb2@2 bb2!2 f3@3 [b2,d3] f2@3 [g2,a2]",
  S: "bb2@2 bb2!2 bb2@2 bb2!2 bb2@2 bb2!2 bb2@2 bb2!2", T: "bb2@2 bb2!2 bb2@2 bb2!2 c3@7 ~",
  U: "[bb2@2 c3@2 d3@2 f3@2 e3@2 d3@2 c3 ~ bb2@4 c3@2 d3@2 f3@2 e3@2 d3@2 c3 ~ bb2@4 c3@2 d3@2 f3@2 e3@2 d3@2 c3 ~ d3@50]/6",
})).s("gm_overdriven_guitar").gain(0.29).pan(0.6)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_4 = note(`<
  ~@5 A@4 B@3 ~@24 C@3 ~@2 D@2 ~@10 E@8 F@7 G H@2 I J K L M N O@2 P Q@2 R S T U ~@13 V@4 ~@17
>`.pickRestart({
  A: "[~@3 g5@58 ~@3]/4", B: "[~ a3@2 bb3@2 c4@2 d4 ~ e4@2 e4 ~ d4@2 c4@2 d4@17 ~@14]/3",
  C: "[~ a3@2 bb3@2 c4@2 d4 ~ e4@4 d4@2 c4@2 d4@17 ~@14]/3", D: "[~@9 d4!2 ~ d4 [g4,b4]@2 f4@5 ~@12, ~@15 a4@2 ~@15]/2",
  E: "[~@3 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 c3@2 c3!2 c3@2 c3!2 c3@2 c3!2 c3@2 [f4,a4]!3 ~@2 a4 [f4,a4] ~ [f4,a4]!3 ~ c4@2 bb3@2 c4 ~ [c4,e4]@3 ~ [bb3,d4]@2 [bb3,d4]@24 ~@2 d3@2 d3@2 d3@2 d3@2 d3@2 d3@2 e3@2 d3@2 f3@2 e3 ~ g3@2 f3 ~ a3@2 g3@2 bb3, ~@53 [f4,a4]@2 ~@73]/8", // F C Bb F
  F: "[~ a3@2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 c3@2 c3!2 c3@2 c3!2 c3@2 c3!2 c3@2 [f4,a4]!3 ~@2 a4 [f4,a4] ~ [f4,a4]!3 ~ c4@2 bb3@2 c4 ~ [c4,e4]@3 ~ [bb3,d4]@2 [bb3,d4]@24 ~@15, ~@53 [f4,a4]@2 ~@57]/7", // F C Bb F
  G: "~@5 g4@8 g4@2 ~", H: "[g4@2 ~ g4@3 f4 d4 f4 d4@4 ~ c4 d4@2 f4 d4 f4@2 d4 c4 a3 ~ ab3 ~ g3@4 d3]/2",
  I: "~ a2 ~ c3 ~ c3 d3 f3 ~ g3 ~ g3@2 g3 ~ f3", J: "~ g3 ~ g3@2 c4 a3 c4 ~ d4 ~ d4 f4 d4@3",
  K: "~@3 c5@8 f4@2 ~ gb4 ab4", L: "c5 ~@2 c5@3 f5 db5@2 a4 g4 f4@5",
  M: "db4@2 ~ a3@2 c4 ~ [f4,a4]@2 d4@2 ~@2 ab3@2 g3", N: "~ f3 ~ ab3@2 g3 ~ f3 ~ ab3@7",
  O: "[~@3 c4@2 f4@2 a3@2 c4 ~@3 d4@6 d4@4 c4@2 a3 ~ c4@2 d4 ~ d4]/2", P: "~ c4@5 ~ c4@2 a3 ~ c4@2 a3 c4@2",
  Q: "[d4 ~ e4 d4@2 ~@3 f3@2 ~ g3@2 g3 a3 f3@2 g3 a3 c4 g3 a3 c4 g3 a3 c4 g3 d4 f4 gb3 a3 c4, ~@7 ab3@2 ~@23]/2",
  R: "g3 d4 f4 g3 a3 c4 g3 d4 f4 g3 a3 c4 g3 d4 f4 g3", S: "a3 c4 g3 d4 f4 g3 ~ b4@7 f4 g4",
  T: "f4 g4 ab4@3 f4 g4 ab4@2 f4 d4 c4 ab3 g3 a3 c4", U: "a3 g3 f3 d3@5 ~@8",
  V: "[~@15 f2@3 [g2,a2] [bb2,f3]@2 [bb2,f3]@2 [bb2,f3]@2 [bb2,f3]@2 [bb2,f3]@2 [bb2,f3]@2 [bb2,f3]@2 [bb2,f3]@2 [bb2,f3]@2 [bb2,f3]@2 [bb2,f3]@2 [c3,g3]@2 [c3,g3]@7 ~@14]/4", // Gsus2 Bb5 C5
})).s("gm_overdriven_guitar").gain(0.15).pan(0.9)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note("<~@53 A@2 B@2 C@2 D E F A B@2 C G H I ~@51>".pickRestart({
  A: "d3@2 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2", B: "c3@2 c3!2 c3@2 c3!2 c3@2 c3!2 c3@2 c3!2",
  C: "bb2@2 bb2!2 bb2@2 bb2!2 bb2@2 bb2!2 bb2@2 bb2!2", D: "d3@2 d3!2 d3@2 d3!2 d3@2 d3@2 e3@2 d3@2",
  E: "f3@2 e3 ~ g3@2 f3 ~ a3@2 g3@2 bb3@2 a3@2", F: "d3 ~ d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2",
  G: "bb2@2 bb2!2 bb2@2 bb2!2 bb2@2 bb2!2 bb2@2 bb2@2", H: "[a2,e3]!8", I: "[a2,e3] ~@15",
})).s("gm_electric_guitar_muted").gain(0.38)

// chords · synth strings 2 · "SYN STR 2"
const synth_strings_2 = note("<~@94 A B A B A B C D ~@18>".pickRestart({
  A: "[d5,f5]@3 ~ d5@2 [c5,f5]@3 ~ [c5,f5]@3 ~ [bb4,f5]@2, ~@4 f5 ~@11", // Dm F5 Bb5
  B: "~@2 [bb4,f5]@2 ~@2 [c5,f5] ~ c5@6 d5 e5, ~@8 f5@5 ~@3", // Bb5 F5
  C: "~ f5@2 ~ d5@2 [c5,f5]@3 ~ [c5,f5]@3 ~ [bb4,f5]@2, d5@2 ~@2 f5 ~@11", // F5 Bb5
  D: "~@2 [bb4,f5]@3 ~ [c5,f5] ~ g5@3 ~ g5@3 ~, ~ c5", // Bb5 F5
})).s("gm_synth_strings_2").gain(0.38).pan(0.7)

// chords · synth strings 2 · "SYN STR 2"
const synth_strings_2_2 = note("<~@94 A B A B A B C D ~@18>".pickRestart({
  A: "[d4,f5]@3 ~ [d4,f5]@2 [c4,e5]@3 ~ [c4,e5]@3 ~ [bb3,d5]@2", B: "~@2 [bb3,d5]@3 ~ [c4,e5] ~ [c4,e5]@7 ~",
  C: "d4@3 ~ d4@2 c4@2 ~@2 c4@3 ~ bb3@2", D: "~@2 bb3@3 ~ c4 ~ c4@7 ~",
})).s("gm_synth_strings_2").gain(0.38).pan(0.4)

// chords · rock organ · "ORGAN 3"
const rock_organ_2 = note("<A B@8 C@2 ~@22 A D E C@2 ~@74 A F@4 G@2 ~>".pickRestart({
  A: "~@14 [d4,a4]!2", // D5
  B: "[[d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@2 ~@2 [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 a4@2 [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@3 ~ [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@2 ~@2 [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@6 ~@2 [d4,a4]!2 a4@2 [d4,a4]@3 ~ [g4,d5]@2 ~@2 [f4,c5]@4 a3@2, d3@63 ~, ~@48 d4 ~@63 d4 ~@15]/8", // D5 F5 D5 G5 F5 D5 F5 D5 …
  C: "[bb3@2 c4@2 d4@2 f4@2 e4@2 d4@2 c4@2 d4@15 ~@3]/2", D: "[d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@6 ~@2 [d4,a4]!2",
  E: "a4@2 [d4,a4]@3 ~ [g4,d5]@2 ~@2 [f4,c5]@4 a3@2, d4 ~@15", // D5 G5 F5
  F: "[[d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@2 ~@2 [d4,a4]!2 [d4,a4] ~ [d4,a4]@3 ~ [f4,c5]@7 ~ [d4,a4]!2 a4@2 [d4,a4]@3 ~ [g4,d5]@3 ~ [f4,c5]@3 ~ [d4,a4]!2, d3, ~@48 d4 ~@15]/4", // D5 F5 D5 G5 F5 D5 F5 D5 …
  G: "[[d4,a4] ~@31, d3]/2", // D5
})).s("gm_rock_organ").gain(0.22).pan(1)

// drums · kick
const kick = s("bd").struct(`<
  ~@5 A@4 B ~ C@3 A C@3 A C@3 A C@3 A@3 D E A@2 F G@2 B ~ C@3 A C@3 A@3 D E A@2 H A@15 D A@3 I A@3 I A@3 I A@3 J A@2 D E
  A@2 F K A@11 D E A@2 F L@2 M J@5 I ~@2
>`.pickRestart({
  A: "x!2", B: "x!3 ~@4 x", C: "x ~@2 x!2 ~@2 x", D: "x ~@6 x", E: "~ x ~@6", F: "x!2 ~@5 x", G: "~ x ~@3 x ~@2",
  H: "x!2 ~@6", I: "x", J: "x!4", K: "~ x", L: "~ x ~@5 x", M: "~ x!3",
})).gain(0.44)

// drums · snare
const snare = s("sd").struct(`<
  ~@4 A B@2 C D E F B@7 D B@3 G B@2 H I B@2 J K B H L B H E F B@3 G B@2 H I B@2 J K B H M B@6 N O B@7 P B@3 Q B R S T
  B@3 U B R V W B@2 J K B H L B@8 X Y B@2 J K B H Z@3 ~@9
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@7 x!2 ~@2", D: "~@4 x ~@7 x!4", E: "~@5 x!3 ~@8", F: "~@2 x!4 ~@10",
// … 62 more lines

More by Styx