Strudelify

Cold Day in Hell

Gary Moore

KeyC♯ minorTempo100 bpm
0:00/0:00
// Cold Day in Hell — Gary Moore
// 100 bpm, 4/4, key C# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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.

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

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  A B C D@2 B E D F G H I J I K L M N O E O P Q R S I H I J I K L M N O E O P Q T@2 B C D@2 B@2 U V W X W Y Z K Y@2 P O
  E O P AA R AB W AC Y W AD AE AF W P O E O P AG R AH P AI AJ AH P AK R ~ AL K W AM AN W@2 AO AP@2 AQ
>`.pickRestart({
  A: "[c#4,g#4,c#5,g#5,c#6]@5 ~@11", // C#5
  B: "[a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~", // A5
  C: "[a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4]@2", // A5
  D: "[c#4,g#4] ~ [c#4,g#4] ~ [c#4,g#4] ~ [c#4,g#4] ~ [c#4,g#4] ~ [c#4,g#4] ~ [c#4,g#4] ~ [c#4,g#4] ~", // C#5
  E: "[g#3,d#4] ~ [g#3,d#4] ~ [g#3,d#4] ~ [g#3,d#4] ~ [g#3,d#4] ~ [g#3,d#4] ~ [g#3,d#4] ~ [g#3,d#4] ~", // G#5
  F: "c#4 ~@3 [g#3,d#4,b4,f#5,b5]@8 ~@4", G: "g#4@4 [c#5,g#5,c#6]@2 ~ [c#5,g#5,c#6] ~@8",
  H: "[c#5,c#6] ~@3 [c#5,f#5,c#6]@2 ~ [c#5,f#5,c#6] ~@8", I: "~@4 [c#5,g#5,c#6]@2 ~ [c#5,g#5,c#6] ~@8",
  J: "~@4 [d#5,g#5,c#6]@2 ~ [e5,g#5,c#6] ~@8, ~@4 [c#4,g#4]@3 ~@9", K: "~@4 [c#5,f#5,c#6]@2 ~ [c#5,f#5,c#6] ~@8",
  L: "~@4 [d#5,g#5,c#6]@2 ~ [e5,g#5,c#6] ~@6 [e5,g#5,c#6] ~, ~@4 [c#4,g#4]@3 ~@9", // C#sus2 C#m C#5
  M: "~@4 [d#5,g#5,c#6]@2 ~ [e5,g#5,c#6] ~@2 [e5,g#5,c#6] ~@5, ~@4 [c#4,g#4]@3 ~@9", // C#sus2 C#m C#5
  N: "[e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3,c#4] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~", // E5 C#m7 E5
  O: "[f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~", // F#5
  P: "[e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~", // E5
  Q: "[f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [a3,e4,g4]@4 ~@4", // F#5 A7
  R: "~@4 [c#5,g#5,c#6]@2 ~ [c#5,g#5,c#6] ~@2 [c#5,g#5,c#6] ~@5", // C#5
  S: "[g#4,c#5,g#5,c#6] ~@3 [b4,f#5,b5]@9 ~@3, ~@4 g#4@7 ~@5", // C#5 B5
  T: "~@4 [c#4,g#4,d#5,g#5,c#6]@2 ~ [c#4,g#4,e5,g#5,c#6] ~@2 [c#4,g#4,e5,g#5,c#6] ~@5", // C#sus2 C#m
  U: "[a#3,d#4] ~ [a#3,d#4] ~ [a#3,d#4] ~ [a#3,d#4] ~ [a#3,d#4] ~ [a#3,d#4] ~ [a#3,d#4] ~ [a#3,d#4] ~", // D#5
  V: "~@2 [d4,a4,c5,e5,g5]@2 ~@2 [d4,a4,c5,e5,g5]@3 ~ [d4,a4,c5,e5,g5]@3 ~ [d4,a4,c5,e5,g5]@2", // Am7
  W: "~@4 [c#5,f#5,c#6]@2 ~ [c#5,g#5,c#6] ~@2 [c#5,g#5,c#6] ~@5", // F#5 C#5
  X: "~@4 [c#5,f#5,c#6]@2 ~ [c#5,f#5,c#6] ~@2 [c#5,f#5,c#6] ~@5", Y: "~@4 [c#5,f#5,c#6]@2 ~ [c#5,g#5,c#6] ~@8",
  Z: "~@4 [c#5,f#5,c#6]@2 ~ [c#5,g#5,c#6]@2 ~@7", AA: "[f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [a3,e4,g4]@7 ~",
  AB: "[c#5,g#5,c#6] ~@3 [g#4,b4,f#5,b5]@10 ~@2, ~@4 c5 ~@11", // C#5 G#m7
  AC: "~@4 [c#5,f#5,c#6] ~@2 [c#5,g#5,c#6] ~@2 [c#5,g#5,c#6] ~@5", // F#5 C#5
  AD: "~@4 [c#5,f#5,c#6]@2 f#5 [c#5,g#5,c#6] ~@2 [c#5,g#5,c#6] ~@5", AE: "~@4 [c#5,f#5,c#6] ~@2 [c#5,f#5,c#6] ~@8",
  AF: "~@5 f#5 ~ [c#5,g#5,c#6] ~@2 [c#5,g#5,c#6] ~@5, ~@2 [c#5,f#5,c#6] ~@5", // C#5 F#5
  AG: "[f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [a3,e4,g4]@5 ~@3", // F#5 A7
  AH: "~@4 [c#5,g#5,c#6]@2 ~ [c#5,g#5,c#6] ~@2 [c#5,g#5,c#6]@3 ~ [c#5,g#5,c#6]@2", // C#5
  AI: "[f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ a3@8, ~@8 e4@5 ~@3", // F#5
  AJ: "~@4 [c#5,g#5,c#6]@2 ~ [c#5,g#5,c#6] ~@2 [c#5,g#5,c#6]@3 ~@3", // C#5
  AK: "[f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [g#3,d#4]@2 ~@2 [b3,f#4]@2 ~@2", // F#5 G#5 B5
  AL: "~@5 f#5@2 [c#5,g#5,c#6] ~@2 [c#5,g#5,c#6] ~@5, ~@2 [c#5,g#5,c#6] ~@5", // C#5
  AM: "~@4 [c#5,f#5,c#6]@2 ~ [c#5,g#5,c#6] ~@2 [c#5,g#5,c#6] ~ c#6 ~@3", // F#5 C#5
  AN: "~@4 [c#5,g#5,c#6]@2 ~ [c#5,f#5,c#6] ~@2 [c#5,g#5,c#6] ~@5", // C#5 F#5 C#5
  AO: "~@4 [c#5,f#5,c#6]@2 ~ [c#5,g#5,c#6] ~@2 [c#5,g#5,c#6]@2 ~@4", // F#5 C#5
  AP: "[[c#5,g#5,c#6] ~@3 [g#4,b4,f#5]@14 ~@10 b4 g#4 [f#4,g4] ~, ~ b5@3 ~@4]/2", AQ: "[c#4,g#4,c#5]@3 ~@5",
})).s("gm_overdriven_guitar").gain(0.41).pan(0.6)

// chords · brass section · "BRASS"
const brass_section = note(`<
  A B C D E F G H I ~@8 J K L M J N ~ O ~@8 P K L Q R@2 ~ S T S D U V W X Y ~@8 J Z AA AB AC AD AE O ~@8 P K AF Z AG@2 D
  AH AI AJ AK@2 AL@2 AM ~@9 AN@2 AO
>`.pickRestart({
  A: "[b3,c#4,e4] ~ [c#4,c#5]@2 [e4,e5] ~ [f#4,f#5] ~ [g#4,g#5] [e4,f#4,e5,f#5] [c#4,c#5] ~ [e4,e5] [f#4,f#5] ~@2", // C#m7 C# E F# G# Esus2 C# E …
  B: "[g4,g5]@7 ~", // G
  C: "~@2 c#4@2 [e4,e5] ~ [f#4,f#5] ~ [g#4,f#5,g#5] [f#4,e5] [c#4,e4,c#5] ~ [e4,e5] [f#4,f#5] ~@2, ~@2 c#5 ~@13", // E F# G#7 F#7 C#m E F#
  D: "[c#4,c#5]", // C#
  E: "~@2 [c#4,c#5]@2 [e4,e5] ~ [f#4,f#5] ~ [g#4,g#5] [e4,f#4,e5,f#5] [c#4,c#5] ~ [e4,e5] f#4@2 ~, ~@13 f#5 ~@2", // C# E F# G# Esus2 C# E
  F: "[g4,g5]", G: "[f#4,f#5]@3 [e4,e5]", H: "[c#4,c#5]@15 ~", I: "[c#4,g#4,c#5] ~@3 [g#3,b3,f#4,b4]@11 ~, ~@4 c4 ~@11",
  J: "[g#3,b3,e4]@15 ~", K: "[a#3,c#4,f#4]", L: "[c4,d#4,g#4]", M: "[a#3,c#4], f#4@7 ~",
  N: "[a#3,c#4,f#4]@7 ~ [a3,c#4,e4,a4]@5 ~@3", O: "~ [g#3,b3,f#4,b4]@3", P: "[g#3,b3,e4]", Q: "[a#3,c#4,f#4]@13 ~@3",
  R: "[[e4,b4,e5]@11 ~ [e4,b4,e5]@2 [f#4,c#5,f#5]@10 [g4,g5]@7 ~]/2", // E5 F#5 G
  S: "~@2 [c#4,c#5]@2 [e4,e5] ~ [f#4,f#5] ~ [g#4,f#5,g#5] [e4,f#4,e5] [c#4,c#5] ~ [e4,e5] [f#4,f#5] ~@2", // C# E F# G#7 Esus2 C# E F#
  T: "[g4,g5] ~", // G
  U: "~@2 [c#4,c#5]@2 [e4,e5] ~ [f#4,f#5] ~ [g#4,g#5] [f#4,e5,f#5] [c#4,e4,c#5] ~ [e4,e5] [f#4,f#5] ~@2", // C# E F# G# F#7 C#m E F#
  V: "[g4,g5]@13 ~@3", // G
  W: "~@2 [c#4,c#5]@2 [e4,e5] ~ [f#4,f#5] ~ [g#4,g#5] [e4,f#4,e5,f#5] [c#4,c#5] ~ [e4,e5] [f#4,f#5] ~@2", // C# E F# G# Esus2 C# E F#
  X: "[d#4,a#4,c#5,f#5]@3 [c#5,f#5] ~ [d#4,c#5,f#5] ~ [d#4,f#5], ~@6 [d#4,a#4] ~@7 [a#4,c#5] ~", // D#m7 F#5 D#m7 D#m D#5 A#m
  Y: "~ [a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~ [a4,c5,e5,g5] ~ [a4,c5,e5,g5]", Z: "[a#3,c#4,f#4]@15 ~", AA: "[g#3,d#4,g#4]",
  AB: "[a#3,c#4,f#4]@7 ~, f#3@9 ~@7", AC: "[g#3,e4], b3@7 ~", AD: "[a#3,c#4,f#4] [g3,g4]", AE: "[e3,e4]",
  AF: "[c4,d#4,g#4]@15 ~", AG: "[[e4,e5]@11 ~ [e4,e5]@2 [f#4,f#5]@10 [g4,g5]@8, d5 ~@31]/2",
  AH: "[b3,b4]@2 [c#4,c#5] ~@3 [c#4,c#5]@9 ~", AI: "[e4,e5]", AJ: "[f#4,f#5] g5, ~@4 g4@3 ~",
  AK: "[[c#4,c#5] ~@3 c#5@2 [b3,b4]@4 [c#4,c#5]@10 [c#4,c#5]!2 [b3,b4] ~ [c#4,c#5]@8, ~@4 c#4 ~@27]/2", // C# B C# B C#
  AL: "[[e4,e5]@14 [f#4,f#5]@9 ~ [g#4,g#5]@2 ~@2 [b4,b5]@2 ~@2, ~@28 a5 ~@3]/2", AM: "[c#5,c#6] ~@3",
  AN: "[~@4 [g#3,b3,f#4,b4]@25 ~@3]/2", AO: "[c#3,c#4,c#5] ~@7",
})).s("gm_brass_section").gain(0.5)

// chords · piano · "A.PIANO"
const piano = note(`<
  A B@2 C@2 D E F G H I J@3 K L M N K O P Q R S G T U T@3 V T@2 W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM V AN AO@2
  V AP AN AQ AR AS AT AU AV AW AX AN V AO AY AN V AN@2 AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS@2 BT
  BU BV BW@2 BX
>`.pickRestart({
  A: "[c#3,g#3,b3,c#4,e4] ~@7", B: "[[a3,c#4,e4]@19 ~@5 [a2,a3,e4,a4]@6 ~@2, a2@21 ~@11]/2",
  C: "[[g#3,b3,c#4,e4]@19 ~ [b3,c#4,e4] ~ [b3,c#4,e4]@3 ~ [b3,c#4,e4]@3 ~@3, c#3@11 ~@5]/2", D: "[a2,a3,e4,a4]@3 ~",
  E: "[g#2,g#3,c4,d#4,g#4]@13 ~@3", F: "[c#3,b3,c#4,e4]@3 ~, g#3@5 ~@3",
  G: "[c#3,g#3,b3,c#4,e4] ~@3 [g#2,b3,f#4,b4]@9 ~@3", H: "[g#3,b3,c#4,e4], c#3@3 ~@5", I: "[f#3,a#3,c#4]@13 ~@3",
  J: "[[c#3,g#3,b3,c#4,e4]@23 ~@5 [g#3,b3,c#4] c#3 [g#3,b3,c#4] ~ [g#3,b3,c#4,e4]@13 ~@3, ~@31 c#3@15 ~@2]/3", // C#m7 C#7 C#m7
  K: "[f#3,a#3,c#4,f#4]@13 ~@3", L: "[c#3,g#3,b3,c#4,e4]",
  M: "c#3 ~ [g#3,b3,c#4,e4] ~ c#3 [g#3,b3,c#4,e4] ~ c#3 c#4 c#4@5 g#3 ~, ~@4 [g#3,b3,e4]@3 ~", N: "[e3,g#3,b3,e4]@3 ~",
  O: "[g#3,c4,d#4,g#4]@13 ~@3", P: "[a#3,c#4,f#4]@9 ~ [a#3,c#4,f#4] ~@5, f#3@5 ~@3",
  Q: "g#3@5 ~ g#3@3 ~ [g#3,b3,e4]@4 g#3 ~, e3@13 ~@3, [b3,e4]@9 ~@7", R: "[f#3,a#3,c#4,f#4]@3 ~ [a3,c#4,e4,a4]@2 ~@2",
  S: "[c#3,g#3,b3,c#4,e4]@7 ~", // C#m7
  T: "[c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~", // C#m
  U: "[a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4] ~, ~@7 f#4", // F# A#m
  V: "[a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~", // F#
  W: "g#3@6 ~@4 b3@2 e4@2 b3 ~, g#4@7 ~, e4@11 ~@5, b3@4 g#3@3 ~, e3@5 ~ e3@8 ~@2",
  X: "[a#3,c#4,f#4]@6 ~@2 [c#4,f#4]@5 ~ f#3 ~, f#3@5 ~ f#3@7 ~@3", // F# F#5
  Y: "[g#3,c4,d#4]@4 g#3@5 ~ [g#3,c4,d#4,g#4]@4 g#3 ~, g#4@9 ~@7", // G#
  Z: "[f#3,c#4]@4 a#3 ~ [f#3,a#3,c#4] ~ [f#3,a#3,c#4,f#4] ~ [f#3,a#3,c#4,f#4]@3 ~ a#3 ~, f#4@7 ~@9, a#3@3 ~@13", // F#5 F#
  AA: "[g#3,b3,e4]@3 ~ g#3@3 ~ g#3@2 e3@2 [b3,e4]@2 g#3 ~, e3 ~, ~@4 [b3,e4]@7 ~ g#3 ~@3", // E E5
  AB: "[f#3,c#4,f#4]@4 a#3 ~@3 [e3,a3,c#4,e4]@4 ~@4, a#3@3 ~@13", // F#5 A
  AC: "[b3,c#4,e4,g#4]@2 g#3 ~ [c#4,f#4,a#4]@3 g#3 c#4@5 ~ c#4@2, c#3@13 ~@3, g#3 ~@7 [e4,g#4]@8", // C#m7 F# E
  AD: "g#3 ~ g#3 ~ [c#4,a#4]@2 f#4 g#3 [c#4,e4,g#4]@5 ~@3, ~@4 f#4 ~@11", AE: "[a3,c#4,e4]@6 ~ a3, b3@5 ~@11",
  AF: "~@2 [a3,e4,a4]@3 ~ [a3,e4,a4] ~ [a3,e4,a4]@5 ~@3", // A5
  AG: "[g#3,e4,g#4] ~ g#3@2 [c#4,f#4,a#4]@3 ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4,g#4] g#3, c#4 ~@3 g#4@2 ~@2", // C#m F# C#m
  AH: "[c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,f#4,a#4]@2 c#4 g#3 c#4@2 g#3@2 c#4@2 g#3 ~, ~@4 [e4,g#4]@3 ~", // C#m F# E
  AI: "[a3,a4]@4 [e4,a4] ~ a3@3 ~ a3@4 c#4@2, e4@3 ~@3 [e4,a4]@10", // A A5
  AJ: "a3 ~ [c#4,e4,f#4,a4]@4 a3@2 c#4@2 a3@2 c#4@2 a3 ~, ~@2 a3@3 ~@3 [e4,f#4,a4]@5 ~@3", // F#m7
  AK: "[a#3,b3] ~ [a#3,d#4]@3 ~ [a#3,c#4,d#4,f#4]@3 ~ [a#3,c#4,d#4,f#4]@4 ~@2, [c#4,f#4]@5 ~@11, d#4 ~@7", // Bmaj7 D#5 D#m7 F#5
  AL: "~@2 [d3,a3,c4,e4,g4]@3 ~ [d3,a3,c4,e4,g4]@3 ~ [d3,a3,c4,e4,g4]@3 ~ [a3,c4,e4,g4] ~, ~@7 d3", // Am7
  AM: "[c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~, c#3@3 ~@5", // C#m F# C#m
  AN: "[c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,f#4,a#4]@3 ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~", // C#m F# C#m
  AO: "[c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~", // C#m F# C#m
  AP: "[g#3,c#4,e4,g#4] ~ [g#3,c#4,e4,g#4] ~ [c#4,f#4,a#4]@3 ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~", // C#m F# C#m
  AQ: "[e3,b3]@3 ~ b3@2 ~@6 b3@2 g#3@2, [e4,g#4]@6 g#3@7 ~@3, g#3@4 e3@9 ~@3, ~@2 b3 ~, ~@5 e4@2 ~", // E5 E
  AR: "f#3@2 a#3@2 ~@2 a#3@3 ~ a#3@2 ~@2 a#3 ~, [c#4,f#4]@5 ~ c#4@9 ~, a#3 ~@3 f#3@6 ~@2 f#3@4, ~@6 f#4@7 ~@3", // F#5
  AS: "g#3@2 c4@2 ~@2 [d#4,g#4]@4 g#3@2 [d#4,g#4]@2 g#3 ~, [d#4,g#4]@4 g#3@5 ~@7", // G#5
  AT: "[f#3,a#3,c#4,f#4] ~ f#3@2 ~@6 c#4@2 f#4 ~ a#3 ~, ~ f#4@4 ~@3, ~@2 [a#3,c#4]@6 a#3@5 ~@3, ~@3 f#3@4 ~", // F# A#m
  AU: "[g#3,b3,e4]@2 ~@2 [g#3,b3,e4]@3 ~ [g#3,b3,e4] ~ [b3,e4]@4 g#3 ~, e3@6 ~ e3@8 ~, ~@5 g#3 ~@2", // E E5
  AV: "a#3@3 ~ a#3 ~@3 [e3,a3,c#4,e4]@5 ~@3, [f#3,c#4,f#4]@3 ~@5", // A F#5
  AW: "[g#3,b3,c#4,e4]@2 ~@2 [g#3,b3,e4]@3 c#3 [g#3,b3,c#4,e4] ~ c#3 ~ [a#3,c#4,f#4]@3 ~, c#3@4 c#4 ~@11", // C#m7 E C#m7 F#
  AX: "[c#3,g#3,b3,c#4,e4] ~@3 [b3,f#4,b4]@9 ~@3, ~ g#2@3", // C#m7 B5
  AY: "[c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,f#4,a#4]@2 f#4 ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~", // C#m F# C#m
  AZ: "e3@3 ~@7 e4@4 g#3@2, g#4@7 ~, e4@8 b3@5 ~ b3 ~, [g#3,b3]@6 g#3@7 ~@3, ~@4 e3@9 ~@3", // G#m
  BA: "f#3@2 a#3@2 ~@2 [a#3,c#4,f#4]@4 f#3@2 [a#3,c#4]@3 f#3, [c#4,f#4]@4 f#3@5 ~@3 f#4 ~@3", // F# A#m F#5
  BB: "[g#3,d#4,g#4]@4 [d#4,g#4]@2 g#3@2 [c4,d#4,g#4] ~ [g#3,c4,d#4,g#4]@4 g#3 ~", // G#5 G#
  BC: "[f#3,a#3,c#4,f#4] ~ [f#3,a#3,c#4,f#4]@4 f#3@2 [a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4]@2 f#3 ~, ~@11 f#3@2 ~@3", // F#
  BD: "[g#3,b3,e4]@2 ~@2 [g#3,b3,e4]@3 e3 [g#3,b3,e4] ~ [e3,g#3,b3,e4]@4 e3@2, e3@7 ~@7 g#3 ~", // E
  BE: "[f#3,a#3,c#4,f#4]@4 [c#4,f#4] ~ f#3 ~ [e3,a3,c#4,e4]@5 ~@3, ~@2 a#3 ~@5", // F# F#5 A
  BF: "[g#3,e4]@2 ~@2 [g#3,b3,e4]@2 g#3 c#3 ~@2 c#3 ~ [a#3,c#4,f#4] ~ c#3 ~, c#3 ~@3, [b3,c#4] ~@3 c#4 ~@11", // C#m E F# Bsus2
  BG: "[g#3,b3,e4]@2 c#3 ~ [g#3,b3,c#4,e4] c#3 ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] c#3 ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~, c#4 ~@12 c#3@3", // E C#m7
  BH: "[g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4] ~ [e3,g#3,b3,e4]@4 [e3,g#3] ~, e3@9 ~@7", // E
  BI: "[f#3,f#4]@4 a#3@2 f#3 ~ a3@4 a3 ~ e3@2, [a#3,c#4]@3 ~ c#4 ~@3 [e3,c#4,e4]@6 ~@2", // F# A#m C#m
  BJ: "[g#3,b3,e4]@2 ~@2 [a#3,c#4,f#4]@3 c#3 [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4]@2 c#3 [g#3,b3,c#4,e4] c#3@2, c#3 ~@3, c#4 ~@15", // E F# C#m7
  BK: "[g#3,b3,c#4,e4]@2 c#3@2 [a#3,c#4,f#4]@2 ~ c#3 [g#3,b3]@4 g#3@3 ~, c#3 ~@7 [c#4,e4]@6 ~@2", // C#m7 F# G#m C#m
  BL: "[e3,g#3,b3,e4]@3 ~ [g#3,b3,e4]@2 ~@4 [b3,e4]@4 [e3,g#3] ~, ~@3 e3@3 ~@2, ~@10 g#3@3 ~@3", // E E5 E
  BM: "[f#3,a#3,c#4,f#4]@5 ~@3 [g#3,c4,d#4,g#4]@2 ~@2 [b3,d#4,f#4,b4]@3 ~", // F# G# B
  BN: "c#3@4 [g#3,b3,c#4,e4]@3 c#3 ~@2 c#3!2 [g#3,b3]@2 c#3@2, ~@12 [c#4,e4] ~ e4 ~", // C#m7 G#m C#m
  BO: "~ [c#3,c#4]@3 [e3,e4]@3 [c#3,c#4]@2 ~ b2@2 [b3,c#4]@2 b2 ~", // C# E C# Bsus2
  BP: "e3 ~ c#3@2 [g#3,b3,c#4,e4]@3 c#3 [a#3,c#4,f#4] ~ c#3@2 [g#3,b3]@2 c#3 ~, ~@12 [c#4,e4] ~@3", // C#m7 F# G#m C#m
  BQ: "[a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4]@3 ~", // F#
  BR: "[g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [a#3,c#4,f#4]@3 ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~@2 [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4]", // C#m7 F# C#m7
  BS: "[~@2 [g#3,b3,c#4,e4] ~ [a#3,c#4,f#4]@4 [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~@2 [g#3,b3,c#4,e4] ~ [g#3,b3,e4]@2 ~ [g#3,b3,c#4,e4] ~@3 [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~, ~@15 c#4 ~@16]/2", // C#m7 F# C#m7 E C#m7
  BT: "[a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~@2 [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~@2 [a#3,c#4,f#4]@2 ~@2", // F#
  BU: "[g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [a#3,c#4,f#4]@3 ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~", // C#m7 F# C#m7
  BV: "[g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [a#3,c#4]@3 ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4]@3 ~ [g#3,b3,c#4,e4] ~, ~@4 f#4 ~@11", // C#m7 A#m C#m7
  BW: "[[g#3,b3,c#4,e4] ~@3 g#2@20 ~@2 g#2@2 b2@2 g#2 ~, ~ [b3,f#4,b4]@6 ~]/2", BX: "[c#2,g#3,b3,c#4,e4] ~, c#3@5 ~@11",
})).s("gm_piano").gain(0.3).pan(0.3)

// chords · rock organ · "ELEC ORGAN"
const rock_organ = note(`<
  A B@2 C@3 D E F ~@8 G H I J G K L M ~@8 G H N O P@2 Q@4 R@2 B@2 S T U V@2 W X Y Z AA AB AC N O AD AE AF AG AH AI AJ AK
  AL S AM AN AB AC N O AO@2 AP@2 AB AQ AR@2 AB AS AT AU AV@3 AW AX AY AZ BA BB@2 BC
>`.pickRestart({
  A: "[b4,c#5,e5]@5 ~@11", B: "[[a4,c#5,e5]@31 ~]/2", C: "[b4@32 a4@15 ~, [c#5,e5]]/3",
  D: "[g#4,c5,f#5] ~ [g#4,f#5]@13 ~, ~ c5@4 ~@3", E: "[b4,c#5,e5]", F: "~ [b4,f#5,b5]@2 ~", G: "[b4,e5]",
  H: "[c#5,f#5]", I: "[d#5,g#5]", J: "[c#5,f#5]@15 ~", K: "[c#5,f#5]@8 [e5,g5]@7 ~",
  L: "~@5 [g#4,b4,c#5] ~ [g#4,b4,c#5]", M: "~@4 [b4,f#5,b5]@11 ~", N: "[g#4,d#5,g#5]", O: "[f#4,c#5,f#5]@15 ~",
  P: "[g#4 g#4@13 [f#4,c#5,f#5]@9 ~ [a4,e5,g5]@6 ~@2, [b4,e5]@7 ~@9]/2", // F#5 A7 E5
  Q: "[[g#4,b4,c#5]@9 ~ [g#4,b4,c#5]@2 ~@2 [g#4,b4]@6 [b4,e5]@5 ~ [b4,c#5,e5]@3 ~ b4@2 a4@31 ~, ~@7 c#5@6 ~@2 [c#5,e5]@17]/4", // C#7 G#m E5 C#m7 C#m
  R: "[[b4,c#5,e5]@31 ~]/2", S: "[a#4,c#5,f#5]",
  T: "~@2 [a4,c5,e5,g5]@2 ~@2 [a4,c5,e5,g5]@3 ~ [a4,c5,e5,g5]@3 ~ [a4,c5,e5,g5] ~", // Am7
  U: "[b4,c#5,e5] ~ [b4,c#5,e5] ~ [f#5,a#5]@4 [e5,g#5]@7 ~, ~@4 c#5@11 ~", // C#m7 F# E
  V: "[f#5@8 f#4@7 ~ [b4,e5]@3 ~ [f#5,a#5]@4 [e5,g#5]@8, c#5@19 ~ c#5@12, a#4@15 ~@17]/2", // E5 F# E
  W: "g#4 ~ g#4@2 [a#4,c#5,f#5]@4 [g#4,c#5,e5]@7 ~", X: "[g#4,c#5,e5]@4 [a#4,c#5,f#5]@3 ~ [g#4,c#5,e5]@7 ~",
  Y: "[f#4,a#4,c#5]@15 ~", Z: "[g#4,b4,c#5]@3 ~ [a#4,f#5]@3 ~ [b4,e5]@8, ~ c#5@3, ~@8 g#4@5 ~@3",
  AA: "[g#4,c#5] ~ g#4 ~ [a#4,f#5]@3 ~ [g#4,b4,e5]@7 ~, ~@4 c#5@11 ~", AB: "[e4,b4,e5]", AC: "[f#4,c#5,f#5]",
  AD: "[g#4,b4,e5]", AE: "[f#4,c#5,f#5]@4 [e5,g5]@3 ~, ~ a4",
  AF: "[g#4,b4]@3 ~ [g#4,b4]@2 ~ [g#4,b4,c#5] ~@2 [g#4,b4,c#5]@3 ~ [g#4,b4,c#5]@2, c#5@7 ~@9", // G#m C#7
// … 114 more lines

More by Gary Moore