Strudelify

Highway Star

Deep Purple

KeyG majorTempo170 bpm
0:00/0:00
// Highway Star — Deep Purple
// 170 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 12/8 at bar 126, 4/4 at bar 128, 12/8 at bar 130, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 12 "Special 2" viola (copy of ch 7 "Chitarra solo 1" overdriven guitar); ch 13 "Special 3" viola (copy of ch 8 "Chitarra solo 2" overdriven guitar); ch 4 "Canto 1" alto sax (copy of ch 9 "Canto 2" voice oohs)
// note: Full arrangement: all 261 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Chitarra solo 2.
setcpm(170/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 bass finger · "Basso"
const bass = note(`<
  A@3 B C D E F A@15 G H A I J H K I J L M N O P Q R S@8 T@6 U H A I J H K I J L M N O P Q R S@8 V@7 W@7 X W@4 Y Z AA AB
  Y Z AA AC AD AE W@2 Y@4 AF@3 Y W AG W AG W AG W AG AH AI@3 AJ AK@2 U H A I J H K I J L M N O P Q R S@8 V@7 W@7 AL Y@4
  AM@3 AN W AO A AP AQ AR AS AT W AO A AP AQ AU AV AW W AX A AY AQ@2 AS AT W AX A AZ AQ BA Y@10 U H K I J H K I J L M N
  O P Q R S@8 BB@8 BC BD BE BF BG BH@2 BI BJ@2 BK
>`.pickRestart({
  A: "g2!8", B: "g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 [g2,g#2,a2] [a#2,b2]", C: "[d3,g3]@2 [d3,g3]@2 g3!4, ~@2 d3!2",
  D: "g3!8, d3!4", E: "[d3,g3]@2 g3!6, ~ d3!3", F: "f3 d3 c3 d3 c3 a#2 g2 f2", G: "c3 a#2", H: "f2 g2!7",
  I: "g2!5 f2 d2 c2", J: "a#1@2 ~ c2@2 ~ a#1@2", K: "g2!5 d2 f2 f#2", L: "f2!8", M: "f2 a1 a#1 b1 c2 d2 d#2 e2",
  N: "f2!5 a1 a#1 c2", O: "f2!2 e2 d#2", P: "d2!4 c2 ~ f2 d2", Q: "g2 f2 d2 c2 d2!2 f2 g2",
  R: "g#2 a2 d3 c3 a2 g2 g#2 a2",
  S: "[c3 a2 g2 c3 a2 g2 f2 c2@2 ~ c2 ~ d2 ~ e2 c2@2 ~ c2 ~ d2 ~ e2 c2@2 ~ c2 ~ d2 ~ e2 a1@2 ~ a2 a1@2 ~ a2 a1@2 ~ c2 ~ d2 ~ e2 c2@2 ~ c2 ~ d2 ~ e2 c2@2 g1 c2 d2@2 a1 d2 c2]/8",
  T: "[~@2 g1@2 c2@2 d2@4 a1@2 d2@2 c2@4 g1@2 c2@2 d2@4 a1@2 d2@2 f2@4 c2@2 f2@2 g2@4 d2@2 g2@2 a2@4 a2@2 ~ a2@43]/6",
  U: "c2 a#1",
  V: "[~@2 g1@2 c2@2 d2@4 a1@2 d2@2 c2@4 g1@2 c2@2 d2@4 a1@2 d2@2 f2@4 c2@2 f2@2 g2@4 d2@2 g2@2 a2@4 a2@2 ~ a2@59]/7",
  W: "d2!8", X: "d2!6 c2 c#2", Y: "a1!8", Z: "g#1!8", AA: "g1!8", AB: "f#1!6 g1 g#1", AC: "f#1!8", AD: "f1!8",
  AE: "f1!5 a1 c2 c#2", AF: "a1!5 e1 g1 g#1", AG: "f2@2 ~ g2@2 ~ f2@2", AH: "c2@2 d2@2 ~@2 f2@3 ~ g2@3 ~ a2@2",
  AI: "[~@2 c3@3 ~ c3@2 d3@28 ~@4 d3@2 c3@2 ~@2 a2@2]/3", AJ: "~ g#2 ~ g2 ~ f2 d2 ~", AK: "[c2@31 ~]/2", AL: "d2!7 c2",
  AM: "a1!6 e1 a2", AN: "a1!6 c2 ~", AO: "d2!7 f2", AP: "g2!5 f2 d2 c#2", AQ: "c2!8", AR: "c2!5 e2 g2 g#2", AS: "a2!8",
  AT: "a2!2 g2 e2 d2 a1 c2 c#2", AU: "c3 a#2 g2 f2 e2!2 g2 g#2", AV: "a2!7 d2", AW: "e2!2 g2 g#2 a2!2 g2 e2",
  AX: "d2@2 d2@2 d2@2 d2@2 g2 ~ d3@2 c3@2 a2@2", AY: "g2 b1 c2 c#2 d2 g2 f2 d2", AZ: "g2!6 f2 d2", BA: "c2!5 e1 g1 g#1",
  BB: "[~ g1 c2 d2@2 a1 d2 c2@2 g1 c2 d2@2 a1 d2 f2@2 c2 f2 g2@2 d2 g2 a2@4 c2@2 g1 c2 d2@2 a1 d2 f2@2 c2 f2 g2@2 d2 g2 a2@4 c2@2 g1 c2 d2@2 a1 d2 f2@2 c2 f2 g2@2 d2 g2@2]/8",
  BC: "a2@4 a2!12", BD: "c3!6 d3!5 e3!5", BE: "g3!3 a3 c4!8 a3!4", BF: "a3!3 ~ a3!5 a3@2 ~ g3@2 d3@2",
  BG: "e3@2 ~ c3@4 a2@9", BH: "[~ g2@2 a2@2 a1@15 ~ d#3 ~ d3@2 ~ c3@3 c#3@3, ~@22 e3@3 ~@7]/2",
  BI: "a2@4 a2@3 e3@2 d3@3 c3@2 a2@2", BJ: "[~ g2@6 e2@19 ~@2 a1@3 f#1]/2", BK: "[d1,e1,f1] c1 ~@14",
})).s("gm_electric_bass_finger").gain(0.46)

// bass · electric bass finger · "Basso" · soft notes
const bass_soft = note(`<
  ~@3 A ~@23 B ~@3 B ~@4 C ~@3 D@3 E D@2 ~@11 B ~@3 B ~@4 C ~@3 D@3 E D@2 ~@41 F ~ F ~ F ~ F ~@11 B ~@3 B ~@4 C ~@3 D@3
  E D@2 ~@23 G ~@17 H ~@7 H ~@18 B ~@3 B ~@4 C ~@3 D@3 E D@2 ~@18 I J
>`.pickRestart({
  A: "~@15 [c3,c#3]", B: "~@2 g1 ~@2 g1 ~@2", C: "~@5 d2 ~@2", D: "~ a1 ~ a1 ~ a1 ~@2", E: "~ a1 ~@3 a1 ~@2",
  F: "~@2 d2 ~@2 d2 ~@2", G: "~@7 c#2", H: "~@4 a2 ~@3", I: "~@15 g1",
  J: "d#1 c#1 b0 [a0,a#0] g#0 f#0 f0 e0 [c#0,d0,d#0] [b-1,c0] a#-1 a-1@3 ~@2, ~@5 g0@2 ~@9", // A#maj7 Cmaj7
})).s("gm_electric_bass_finger").gain(0.31)

// chords · rock organ · "Organo 1"
const rock_organ = note(`<
  ~@8 A@4 B C B C B D E F B G H I J K L M J K L M N O@2 P Q R S T@5 U@7 V@2 I J K L M J K L M N O@2 P Q R S T@5 U@7 W@3
  X@2 Y Z@2 AA AB@2 AC AD@2 AE@2 AF AG AH AI AF AG AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AX AY AX AY AX ~ AZ
  BA BB ~ BC@2 BD J K L M J K L M N O@2 P Q R S T@5 U@7 W@3 BE ~ BE ~ BE ~ BE ~ BF ~ BF ~ BF ~ BF ~ BE ~ BG ~ BH ~ BF ~
  BE ~ BG ~ BH ~ BF ~ BE ~ BG ~ BH ~ BF ~ BE ~ BG ~ BH ~ BF ~ BF ~ BF ~ BF ~ BF ~ BD J K L M J K L M N O@2 P Q R S T@5
  BI BJ BK@7 BL@2 BM@2 BN@8 ~
>`.pickRestart({
  A: "[d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~", // G5
  B: "[f4,a#4]@4 [d4,g4] ~ [f4,a#4]@4 [d4,g4] ~ [f4,a#4]@4", // A#5 G5 A#5 G5 A#5
  C: "[d4,g4] ~ [f4,a#4]@4 [d4,g4] ~ [f4,a#4]@4 [g4,c5]@2 ~@2", // G5 A#5 G5 A#5 C5
  D: "[d4,g4] ~ [f4,a#4]@4 [d4,g4] ~ [f4,a#4]@3 ~ [g4,c5]@2 ~@2", // G5 A#5 G5 A#5 C5
  E: "[f4,a#4] ~ [f4,a#4] ~ [f4,a#4]@2 d4 ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@2 [f4,a#4] ~", // A#5 G5 A#5
  F: "[f4,a#4] ~ [f4,a#4] ~ [f4,a#4]@2 [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~", // A#5 G5
  G: "[d4,g4] ~ [f4,a#4]@4 [d4,g4] ~ [f4,a#4] ~ [f4,a#4] ~ [f4,a#4]@2 [g4,c5]@2", // G5 A#5 G5 A#5 C5
  H: "[f4,a#4] [d4,g4] [f4,a#4] [d4,g4]", I: "[e4,g4,c5]@7 ~ [d4,f4,a#4]@8",
  J: "~@2 [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ g4@2 ~@2 [d4,g4] ~, ~@10 d4 ~@5", // G5
  K: "[d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@2 ~@2 [d4,g4] ~", // G5
  L: "[d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@2 ~@4", // G5
  M: "[d4,f4,a#4]@5 ~ [e4,g4,c5]@5 ~ [d4,f4,a#4]@4", // A# C A#
  N: "~@2 [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ f4@2 ~@2 [c4,f4] ~, ~@10 c4 ~@5", // F5
  O: "[c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4]@2 ~@2 [c4,f4] ~", // F5
  P: "[c4,f4] ~ [c4,f4]@2 [f4,a4]@4 [e4,g#4]@4 [d#4,g4]@4", // F5 F E D#
  Q: "[d4,f#4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4]@2 ~@2 [d4,f#4,a4] ~", // D
  R: "[d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4] ~", // D
  S: "[d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~", // D
  T: "[[d4,f#4,a4,c5]@3 ~ [d4,f#4,a4,c5]@4 g4 f4 ~ g3 [e3,f3] ~ [g4,a4,c5]@6 [e4,a4] ~@9 [g4,a4,c5]@6 [e4,a4] ~@9 [g4,a4,c5]@6 [e4,a4] ~@9 [g4,a4,c5]@6 [e4,a4] ~ [g4,a4,c5]@6 [e4,a4] ~ [g4,a4,c5]@2, ~@9 [d4,e4]@2 a3@2 ~@67, ~@5 [b3,c4] ~@34]/5", // D7 Fmaj7 Am7 A5 Am7 A5 Am7 A5 …
  U: "[~@4 [e4,a4] ~@9 [g4,a4,c5]@6 [e4,a4] ~@9 [c4,e4,g4]@7 ~ [d4,f#4,a4]@7 ~ [c4,g4]@7 ~ [d4,f#4,a4]@8 [c4,g4]@6 ~@3 [f#4,a4]@7 [f4,a4,c5]@8 [g4,d5]@6 ~@2 [a4,c#5,e5]@18, ~@46 e4@8 ~@8 e4@8 d4@7 ~@9 b4@8 ~@18]/7", // A5 Am7 A5 C D C5 D C5 …
  V: "[~@4 c5 ~@4 [c4,d4] b3 [g3,a3] f3 d3 ~ a2@17, ~@4 b4@2 g4@2 e4@2 ~@3 e3@2 ~@17, ~@5 a4@2 f4@2 ~@5 c3@2 ~@16]/2", // Csus2 Gsus2
  W: "[~@4 c5 ~@4 [c4,d4] b3 [g3,a3] f3 d3 ~ a2@32 ~, ~@4 b4@2 g4@2 e4@2 ~@3 e3@2 ~@33, ~@5 a4@2 f4@2 ~@5 c3@2 ~@32]/3", // Csus2 Gsus2
  X: "[d3@3 d#3@2 e3 f3@2]/2", Y: "f#3 g3 g#3 a3", Z: "[a#3@6 b3@7 ~@3 c#4@4 d4@4 d#4@4 e4@4, ~@13 c4@5 ~@14]/2",
  AA: "f4@3 f#4@3 g4@2", AB: "[g#4@31 ~]/2", AC: "a4",
  AD: "[a#4@2 g4@4 ~ a4@3 e4@5 g4@2 a4@2 ~ a4@6 a#4 ~ g4@2 a4 g4, ~@27 a4@2 ~@3]/2",
  AE: "[f4@3 ~ a4 g4@6 [f4,g4] a4@3 ~ a4 c5 e5 c5 a4 c5 e5 c5 a4 c5 e5 c5 a4 c5 e5 c5, ~@3 g4@2 ~@10 g4@2 ~@15]/2", // Fsus2
  AF: "g#4 b4 e5 b4 g#4 b4 e5 b4 g#4 b4 e5 b4 g#4 b4 e5 b4",
  AG: "g4 a#4 d5 a#4 g4 a#4 d5 a#4 g4 a#4 d5 a#4 g4 a#4 d5 a#4",
  AH: "f#4 a4 d5 a4 f#4 a4 d5 a4 f#4 a4 d5 a4 f#4 a4 d5 c5", AI: "a4 c5 e5 c5 a4 c5 e5 c5 a4 c5 e5 c5 a4 c5 e5 c5",
  AJ: "f#4 a4 d5 a4 f#4 a4 d5 a4 f#4 a4 d5 a4 f#4 a4 d5 a4", AK: "f4 a4 c5 a4 f4 a4 c5 a4 f4 a4 c5 a#4 a4 g4 a4 a#4",
  AL: "a4 c5 f5 c5 a4 c5 f5 c5 a4 c5 f5 d5 c5 a#4 c5 d5", AM: "d5 f5 a5 f5 d5 f5 a5 f5 d5 f5 a5 g5 f5 e5 f5 g5",
  AN: "a5 c6 d6 a5 f5 a5 d6 a5 f5 a5 c6 a#5 a5 g5 a5 a#5", AO: "[a4,a5]",
  AP: "a#5 a5@2 ~ g5@3 ~ a#5 a5 g5 ~@2 g5@3, ~ g5 ~@14", AQ: "a5 ~ e5 ~ e5@3 ~ a5 g5 e5 ~ e5@2 f5@2, ~ g5@2 ~@13",
  AR: "e5@2 d5@2 e5@2 f5@2 e5 f5 e5 ~ c#5@2 a#4@2, ~@11 d5@2 ~@3",
  AS: "d5 c#5 a#4 a4 d5 c#5 a#4 a4 c#5 c5 a#4 g4 a#4 a4 g4 e4", AT: "a4 g4 f4 e4 g4 f4 e4 d4 g4 f4 e4 d4 f4 e4 d4 c#4",
  AU: "e4 d4 c#4 a#3 d4 c4 a#3 a3 c4 a#3 a3 g3 a#3 a3 g3 f3", AV: "a3 g3 f3 e3 g3 f3 e3 d3 f3 e3 d3 c#3 f3 e3 d3 c#3",
  AW: "d3", AX: "[c4,f4]@4 [a3,d4] ~ [d4,g4]@4 [a3,d4] ~ [c4,f4]@4", AY: "[a3,d4]@15 ~",
  AZ: "~@2 [a4,f5,a5] [g4,e5,g5]", BA: "[f4,d5,f5]@3 ~@2 [e4,c5,e5]@2 [f4,d5,f5]@9",
  BB: "~@3 [g4,a4] f4 [d4,e4] c4 [a3,b3] ~@8, d5 b4 ~@6, ~ c5@2 ~@13", // Gsus2 Dsus2 Asus2
  BC: "[[c5,e5]@12 [g#2,a#2,b2] f3@2 ~, ~@24 [c3,d3]@5 ~@3, ~@24 [a2,e3] ~@7]/2", BD: "[e4,g4,c5] [d4,f4,a#4]",
  BE: "[a4,d5] ~@15", BF: "[e4,a4] ~@15", BG: "[d4,g4] ~@15", BH: "[g4,c5] ~@15", BI: "~@4 [e4,a4] ~@9 [g4,a4,c5]@2",
  BJ: "~@4 [e4,a4] ~@9 [c4,e4,g4]@2", // A5 C
  BK: "[~@6 [d4,f#4,a4]@7 ~ [c4,g4]@7 ~ [d4,f#4,a4]@8 [c4,g4]@6 ~@3 [f#4,a4]@7 [f4,a4,c5]@8 [g4,d5]@6 ~@2 [a4,c#5,e5]@7 ~ [c4,g4]@6 ~@3 [f#4,a4]@7 [f4,a4,c5]@8 [g4,d5]@6 ~@2 [a4,c#5,e5]@7 ~ [c4,e4,g4]@2, ~@14 e4@8 ~@8 e4@8 d4@7 ~@9 b4@8 ~@8 e4@8 d4@7 ~@9 b4@8 ~@10]/7", // D C5 D C5 F#m F G5 A …
  BL: "[~@7 [f#4,a4]@7 [f4,a4,c5]@8 [g4,b4,d5]@9 ~, ~@6 d4@7 ~@19]/2", BM: "[[c#5,e5]@15 ~, a4]/2",
  BN: "[[e4,a4]@31 ~]/8", // A5
})).s("gm_rock_organ").gain(0.47).pan(0.9)

// chords · rock organ · "Organo 1" · soft notes
const rock_organ_soft = note(`<
  ~@127 A ~ B@3 ~@30 C D C D C D C D E F E F E F E F C D G H I J E F C D G H I J E F C D G H I J E F C D G H I J E F E F
  E F E F E F ~@43
>`.pickRestart({
  A: "e5 ~@7", B: "[g4@24 ~@4 d#3 ~@2 d4@2 ~@15, ~@26 e3@3 b3@3 ~@16, ~@13 c#3 a3@2 ~@8, ~@9 g3 c4 ~@5]/3",
  C: "~@2 [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~", // D5
  D: "[a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~", // D5
  E: "~@2 [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~", // A5
  F: "[e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~", // A5
  G: "~@2 [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~", // G5
  H: "[d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~", // G5
  I: "~@2 [g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [g4,c5] ~", // C5
  J: "[g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [g4,c5] ~", // C5
})).s("gm_rock_organ").gain(0.33).pan(0.9)

// other · rock organ · "Organo 2"
const rock_organ_2 = note("<~@92 A B@2 C@2 D E F G D E F H I J K L M N O P Q R S T ~@144>".pickRestart({
  A: "a5", B: "[a#5@2 g5@4 ~ a5@3 e5@5 g5@2 ~ a5@2 a5@6 a#5 a5 g5@2 ~ a5]/2",
  C: "[f5@3 g5 a5 g5@6 f5 a5@3 ~ e5 a5 c6 a5 e5 a5 c6 a5 e5 a5 c6 a5 e5 a5 c6 a5, g5 ~@11 g5 ~@2 g5@2 ~@15]/2",
  D: "e5 g#5 b5 g#5 e5 g#5 b5 g#5 e5 g#5 b5 g#5 e5 g#5 b5 g#5",
  E: "d5 g5 a#5 g5 d5 g5 a#5 g5 d5 g5 a#5 g5 d5 g5 a#5 g5",
  F: "d5 f#5 a5 f#5 d5 f#5 a5 f#5 d5 f#5 a5 f#5 d5 f#5 a5 f#5", G: "e5 a5 c6 a5 e5 a5 c6 a5 e5 a5 c6 a5 e5 a5 c6 a5",
  H: "c5 f5 a5 f5 c5 f5 a5 f5 c5 f5 a5 g5 f5 e5 f5 g5", I: "f5 a5 c6 a5 f5 a5 c6 a5 f5 a5 c6 a#5 a5 g5 a5 a#5",
  J: "a5 d6 f6 d6 a5 d6 f6 d6 a5 d6 f6 e6 d6 c6 d6 e6", K: "d6 f6 a6 f6 d6 f6 a6 f6 d6 f6 a6 g6 f6 e6 f6 g6", L: "a6",
  M: "a#6 ~ g6 ~ g6@3 ~@2 [a6,a#6] g6 ~@2 g6@3, ~ a6@2 ~@13", N: "a6 ~ e6 ~@2 e6@3 a6 g6 e6 ~ e6@2 f6@2, ~ g6@2 ~@13",
  O: "e6@2 d6@2 e6@2 f6@2 e6 f6 e6 ~ c#6@2 a#5@2, ~@11 d6@2 ~@3",
  P: "d6 c#6 a#5 a5 d6 c#6 a#5 a5 c#6 c6 a#5 g5 a#5 a5 g5 e5", Q: "a5 g5 f5 e5 g5 f5 e5 d5 g5 f5 e5 d5 f5 e5 d5 c#5",
  R: "e5 d5 c#5 a#4 d5 c5 a#4 a4 c5 a#4 a4 g4 a#4 a4 g4 f4", S: "a4 g4 f4 e4 g4 f4 e4 d4 f4 e4 d4 c#4 f4 e4 d4 c#4",
  T: "d4",
})).s("gm_rock_organ").gain(0.42).pan(0.2)

// chords · overdriven guitar · "Chitarra 1"
const overdriven_guitar = note(`<
  A B C B A B A D E@4 F E@2 G E@7 H I J@2 K I J@2 K L M@2 N O@7 P@6 Q@4 H I J@2 K I J@2 K L M@2 N O@7 P@6 R@5 ~@24 S T@3
  U@2 V@2 W X W X W X W X Y Z@3 AA AB@2 AC I J@2 K I J@2 K L M@2 N O@7 P@6 R@5 ~@20 AD@2 AE@2 ~@7 AF AG@2 AH@2 AI@2 ~@18
  AC I J@2 K I J@2 K L M@2 N O@7 AJ@7 AK@5 AL@2 AM AN@7 AO
>`.pickRestart({
  A: "[d3,g3,d4,g4]@15 ~", B: "[c3,g3,c4,f4]@15 ~", C: "[c3,e3,c4,e4]@15 ~", D: "[c3,g3,c4,f4]",
  E: "[g2,d3] ~ [g2,d3] ~ [g2,d3]@2 [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3]@2 [g2,d3] ~", // G5
  F: "[g2,d3] ~ [g2,d3] ~ [g2,d3]@2 [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~", // G5
  G: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3]@2 [g2,d3] ~", H: "[c3,g3]@8 [a#2,f3]@7 ~",
  I: "f2@2 f#2@2 g2@2 g2 ~ g2 ~ g2 ~ g2@2 g2 ~", J: "g2 ~ g2 ~ g2@2 g2 ~ g2 ~ g2 ~ g2@2 g2 ~",
  K: "[a#2,f3]@4 [g2,d3]@2 [c3,g3]@4 [g2,d3]@2 [a#2,f3]@3 ~", L: "f2@3 ~ f2@2 f2 ~ f2 ~ f2 ~ f2@2 f2 ~",
  M: "f2 ~ f2 ~ f2@2 f2 ~ f2 ~ f2 ~ f2@2 f2 ~", N: "f2 ~ f2 ~ f3@4 e3@4 d#3@4",
  O: "[~@4 [a3,d4]@10 d3@18 ~@16 d4@14 [g3,c4]@6 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [g3,c4]@6 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [g3,c4]@6 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [g3,c4]@2, d3@7 a3@24 ~@25, ~@7 d4@11 d4@6 ~@32, ~@32 d3@12 d3@17 ~@51]/7", // D5 C5
  P: "[~@4 [a2,e3] ~ [g3,c4]@6 [a2,e3] ~ [g3,c4]@6 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [g3,c4]@6 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ c3@8 d3@8 c3@8 ~ d3@8 c3@7 d3@8 f3@2]/6", // A5 C5 A5 C5
  Q: "[~@6 g3@7 ~ a2@49 ~]/4", R: "[~@6 g3@7 ~ a2@65 ~]/5", S: "e3@3 a3 g3 a3 g3 a3, a2@15 ~",
  T: "[e3@6 a3@2 g3@2 a3@2 ~@2 a3@2 ~@6 a3@2 g3@2 a3 ~ g3@2 c#4@4 a3@2 ~ g3@2 a3@4 a3@2 ~ a3@2, a2@47 ~, ~@13 g3@2 ~@30 g3@2 ~]/3",
  U: "[e3@4 ~ a3@3 g3@2 a3@2 ~@2 e3@8 a3@2 g3@2 a3@2 ~@2 a3 ~, a2@13 ~ a2@17 ~, ~@29 g3@2 ~]/2", V: "[[a2,e3]@31 ~]/2",
  W: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~", X: "[c3,f3]@2 [a2,d3] [d3,g3]@2 [a2,d3] [c3,f3]@2",
  Y: "c3 d3 ~ f3 ~ g3 ~ a3", Z: "[~ c4 ~ c4@16 ~ d4 c4 ~ a3]/3", AA: "~ g#3 ~ g3 ~ f3 d3 ~", AB: "[c3@31 ~]/2",
  AC: "[c3,g3]@7 ~ [a#2,f3]@7 ~", AD: "[~@3 c4, c3, g3 g3, ~ c4@2 ~]/2", AE: "a2/2", AF: "~@3 c3",
  AG: "[~@4 d3@2 a2 c3, d3 ~, ~ a3@2 ~]/2", AH: "[~@3 d3, g2, ~ g3]/2", AI: "[c3@7 c3]/2",
  AJ: "[~@4 [a2,e3] ~ [g3,c4]@6 [a2,e3] ~ [g3,c4]@6 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [g3,c4]@6 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ c3@8 d3@8 c3@8 ~ d3@8 c3@7 d3@8 f3@8 g3@7 ~ a3@2]/7", // A5 C5 A5 C5
  AK: "[~@7 c4@7 d4@8 f4@8 g4@7 ~ a4@7 ~@2 c5@7 d5@8 f5@8 g5@5 ~ g5@2 ~@2]/5",
  AL: "[g5@6 g5@6 ~ g5@10 a5 g5 f#5 ~ e5 d#5 d5 ~ c5]/2", AM: "a4 d5 ~ c5 a4 g4 ~ e4 a4 g4 ~ e4 d#4 d4 ~ c4",
  AN: "[a2@8 ~ a2@98 ~ a2@2 g2 [f2,f#2], ~@4 g2 ~@51]/7", // F#maj7
  AO: "[d#2,e2] [c2,c#2,d2] b1 [a1,a#1] [g1,g#1] f#1 f1 [d#1,e1] d1 [c1,c#1] b0 a0@3 ~@2, ~@11 a#0 ~@4", // Emaj7 A#maj7 G#maj7 Emaj7 C#maj7
})).s("gm_overdriven_guitar").gain(0.26).pan(0.1)

// other · electric guitar muted · "Chitarra 2"
const electric_guitar_muted = note(`<
  ~@8 A@6 B C A@7 ~ D A@2 ~ D A@2 ~ E F@2 ~@5 G H@2 I H@2 ~@8 D A@2 ~ D A@2 ~ E F@2 ~@5 G H@2 I H@2 ~@8 J K@11 L M N O L
  M N O P@2 J@2 ~@6 Q@2 J ~ J ~ J ~ J ~@9 D A@2 ~ D A@2 ~ E F@2 ~@5 G H@2 I H@2 ~@8 R S R S R S R S T U T U T U T U R S
  V W ~@4 R S V W X Y T Z ~@6 T U R S V W X Y T U T U T U T U T U ~ D A@2 ~ D A@2 ~ E F@2 ~@5 G H@2 I H@2 ~@20
>`.pickRestart({
  A: "g2 ~ g2 ~ g2@2 g2 ~ g2 ~ g2 ~ g2@2 g2 ~", B: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2@2 g2 ~",
  C: "g2 ~ g2 ~ g2@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~", D: "f2@2 f#2@2 g2@2 g2 ~ g2 ~ g2 ~ g2@2 g2 ~",
  E: "f2@3 ~ f2@2 f2 ~ f2 ~ f2 ~ f2@2 f2 ~", F: "f2 ~ f2 ~ f2@2 f2 ~ f2 ~ f2 ~ f2@2 f2 ~",
  G: "~@4 a2 ~ a2 ~ a2 ~ a2 ~ a2@2 ~@2", H: "~@4 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~@3", I: "~@4 a2 ~@7 a2 ~@3",
  J: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~", K: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3!2",
  L: "[a2,a3] ~ [a2,a3] ~ [a2,a3] ~ [a2,a3] ~ [a2,a3] ~ [a2,a3] ~ [a2,a3] ~ [a2,a3] ~", // A
  M: "[g#2,g#3] ~ [g#2,g#3] ~ [g#2,g#3] ~ [g#2,g#3] ~ [g#2,g#3] ~ [g#2,g#3] ~ [g#2,g#3] ~ [g#2,g#3] ~", // G#
  N: "[g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~", // G
  O: "[f#2,f#3] ~ [f#2,f#3] ~ [f#2,f#3] ~ [f#2,f#3] ~ [f#2,f#3] ~ [f#2,f#3] ~ [f#2,f#3] ~ [f#2,f#3] ~", // F#
  P: "[f2,f3] ~ [f2,f3] ~ [f2,f3] ~ [f2,f3] ~ [f2,f3] ~ [f2,f3] ~ [f2,f3] ~ [f2,f3] ~", // F
  Q: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~", R: "d3!8", S: "d3 ~ d3@2 d3@2 d3@2 d3@2 d3@2 d3 ~ d3@2", T: "a2!8",
  U: "a2 ~ a2@2 a2@2 a2@2 a2@2 a2@2 a2 ~ a2@2", V: "g2!8", W: "g2 ~ g2@2 g2@2 g2@2 g2@2 g2@2 g2 ~ g2@2", X: "c3!8",
  Y: "c3 ~ c3@2 c3@2 c3@2 c3@2 c3@2 c3 ~ c3@2", Z: "a2 ~ a2@2 a2@2 a2@2 a2@2 a2@2 ~@4",
})).s("gm_electric_guitar_muted").gain(0.37).pan(0)

// other · overdriven guitar · "Chitarra solo 1"
const overdriven_guitar_2 = note(`<
  ~@161 A@7 B@2 C D@3 E@2 F G@7 H I@7 J K L@2 M@2 N O P Q L@2 M@2 N O P Q R S T U V W@2 X Y ~@42
>`.pickRestart({
  A: "[~@5 d4 f4 c5@5 ~ d4 f4 c5@2 f#4@3 ~ f#4 a4 e5@2 e5 d5 a4 f#4 d4 f#4 f#4@5 ~ d4 f4 c5@5 ~ d4 f4 c5@2 f#4@3 ~ f#4 a4 e5]/7",
  B: "[~ e5 d5 a4 f#4 d4 f#4 f#4@5 ~@3 g#4]/2", C: "~ g#4@5 ~ g#4",
  D: "[~@2 g#4@10 ~@2 g4@4 g4@2 f#4@2 e4@2 c#4@2 a3@2 d4 ~ c4@6 a3@2 a3@6 g3@2 a3@2]/3", E: "c4 a3 g3 c4 a3 g3 c4 a3",
  F: "d4@3 d#4@3 d4@2",
  G: "[d4@4 d4@4 d4@4 d4 ~ c5@4 c5@2 a4@2 f4@2 d4@4 d4 ~ c5@4 c5@2 a4@2 f4@2 d4@4 d4 ~ c5@4 c5@2 a#4@2 g4@2 d4@4 d4 ~ c5@4 c5@2 a#4@2 g4@2 d4@4 d4 ~ d5@4 d5@2 c5@2 g4@2 e4@4 e4 ~ d5@4 d5@2 c5@2 g4@2 e4@4 e4 ~@3]/7",
  H: "g4@5 ~@3 g#4@5 ~@3",
  I: "[a4@5 ~@3 a#4@4 ~@2 c5@4 c5@2 a4@2 f4@2 d4@4 d4 ~ c5@4 c5@2 a4@2 f4@2 d4@2 c5@2 ~@2 c5@4 c5@2 a#4@2 g4@2 d4@4 d4 ~ c5@4 c5@2 a#4@2 g4@2 d4@2 d5@2 ~@2 d5@4 d5@2 c5@2 g4@2 e4@4 e4 ~ d5@4 d5@2 c5@2 g4@2 e4@4 e4 ~@3]/7",
// … 137 more lines

More by Deep Purple