Strudelify
Highway Star cover art

1972 · Machine Head

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, A@4 for four bars: 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 [f1,f#1]]/2", BK: "[d1,e1] 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 C D E B F G H I J K L I J K L M N@2 O P Q R S@5 T@7 U@2 H I J K L I J K L M N@2 O P Q R S@5 T@7 V@3
  W@2 X Y@2 Z AA@2 AB AC@2 AD@2 AE AF AG AH AE AF AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AW AX AW AX AW ~ AY AZ
  BA ~ BB@2 BC I J K L I J K L M N@2 O P Q R S@5 T@7 V@3 BD ~ BD ~ BD ~ BD ~ BE ~ BE ~ BE ~ BE ~ BD ~ BF ~ BG ~ BE ~ BD
  ~ BF ~ BG ~ BE ~ BD ~ BF ~ BG ~ BE ~ BD ~ BF ~ BG ~ BE ~ BE ~ BE ~ BE ~ BE ~ H I J K L I J K L M N@2 O P Q R S@5 BH BI
  BJ@7 BK@2 BL@2 BM@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: "[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
  E: "[f4,a#4] ~ [f4,a#4] ~ [f4,a#4]@2 [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~", // A#5 G5
  F: "[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
  G: "[f4,a#4] [d4,g4] [f4,a#4] [d4,g4]", H: "[e4,g4,c5]@7 ~ [d4,f4,a#4]@8",
  I: "~@2 [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ g4@2 ~@2 [d4,g4] ~, ~@10 d4 ~@5", // G5
  J: "[d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@2 ~@2 [d4,g4] ~", // G5
  K: "[d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@2 ~@4", // G5
  L: "[d4,f4,a#4]@5 ~ [e4,g4,c5]@5 ~ [d4,f4,a#4]@4", // A# C A#
  M: "~@2 [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ f4@2 ~@2 [c4,f4] ~, ~@10 c4 ~@5", // F5
  N: "[c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4]@2 ~@2 [c4,f4] ~", // F5
  O: "[c4,f4] ~ [c4,f4]@2 [f4,a4]@4 [e4,g#4]@4 [d#4,g4]@4", // F5 F E D#
  P: "[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
  Q: "[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
  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] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~", // D
  S: "[[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 …
  T: "[~@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]@7 ~ [c4,g4]@7 ~@2 f#4@7 [f4,a4,c5]@8 [g4,d5]@6 ~@2 [a4,c#5,e5]@18, ~@46 e4@8 ~@8 e4@8 [d4,a4]@7 ~@9 b4@8 ~@18]/7", // A5 Am7 A5 C D C5 D C5 …
  U: "[~@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
  V: "[~@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
  W: "[d3@3 d#3@2 e3 f3@2]/2", X: "f#3 g3 g#3 a3", Y: "[a#3@6 b3@7 ~@3 c#4@4 d4@4 d#4@4 e4@4, ~@13 c4@5 ~@14]/2",
  Z: "f4@3 f#4@3 g4@2", AA: "[g#4@31 ~]/2", AB: "a4",
  AC: "[a#4@2 g4@4 ~ a4@3 e4@5 g4@2 a4@2 a4@7 a#4 ~ g4@2 a4 g4, ~@27 a4@2 ~@3]/2",
  AD: "[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
  AE: "g#4 b4 e5 b4 g#4 b4 e5 b4 g#4 b4 e5 b4 g#4 b4 e5 b4",
  AF: "g4 a#4 d5 a#4 g4 a#4 d5 a#4 g4 a#4 d5 a#4 g4 a#4 d5 a#4",
  AG: "f#4 a4 d5 a4 f#4 a4 d5 a4 f#4 a4 d5 a4 f#4 a4 d5 c5", AH: "a4 c5 e5 c5 a4 c5 e5 c5 a4 c5 e5 c5 a4 c5 e5 c5",
  AI: "f#4 a4 d5 a4 f#4 a4 d5 a4 f#4 a4 d5 a4 f#4 a4 d5 a4", AJ: "f4 a4 c5 a4 f4 a4 c5 a4 f4 a4 c5 a#4 a4 g4 a4 a#4",
  AK: "a4 c5 f5 c5 a4 c5 f5 c5 a4 c5 f5 d5 c5 a#4 c5 d5", AL: "d5 f5 a5 f5 d5 f5 a5 f5 d5 f5 a5 g5 f5 e5 f5 g5",
  AM: "a5 c6 d6 a5 f5 a5 d6 a5 f5 a5 c6 a#5 a5 g5 a5 a#5", AN: "[a4,a5]",
  AO: "a#5 a5@2 ~ g5@3 ~ a#5 a5 g5 ~@2 g5@3, ~ g5 ~@14", AP: "a5 ~ e5 ~ e5@3 ~ a5 g5 e5 ~ e5@2 f5@2, ~ g5@2 ~@13",
  AQ: "e5@2 d5@2 e5@2 f5@2 e5 f5 e5 ~ c#5@2 a#4@2, ~@11 d5@2 ~@3",
  AR: "d5 c#5 a#4 a4 d5 c#5 a#4 a4 c#5 c5 a#4 g4 a#4 a4 g4 e4", AS: "a4 g4 f4 e4 g4 f4 e4 d4 g4 f4 e4 d4 f4 e4 d4 c#4",
  AT: "e4 d4 c#4 a#3 d4 c4 a#3 a3 c4 a#3 a3 g3 a#3 a3 g3 f3", AU: "a3 g3 f3 e3 g3 f3 e3 d3 f3 e3 d3 c#3 f3 e3 d3 c#3",
  AV: "d3", AW: "[c4,f4]@4 [a3,d4] ~ [d4,g4]@4 [a3,d4] ~ [c4,f4]@4", AX: "[a3,d4]@15 ~",
  AY: "~@2 [a4,f5,a5] [g4,e5,g5]", AZ: "[f4,d5,f5]@3 ~@2 [e4,c5]@2 [f4,d5,f5]@9, ~@2 e5 ~@5",
  BA: "~@3 [g4,a4] f4 [d4,e4] c4 [a3,b3] ~@8, d5 b4 ~@6, ~ c5@2 ~@13", // Gsus2 Dsus2 Asus2
  BB: "[[c5,e5]@12 [g#2,a#2,b2] f3@2 ~, ~@24 [c3,d3]@5 ~@3, ~@24 [a2,e3] ~@7]/2", BC: "[e4,g4,c5] [d4,f4,a#4]",
  BD: "[a4,d5] ~@15", BE: "[e4,a4] ~@15", BF: "[d4,g4] ~@15", BG: "[g4,c5] ~@15", BH: "~@4 [e4,a4] ~@9 [g4,a4,c5]@2",
  BI: "~@4 [e4,a4] ~@9 [c4,e4,g4]@2", // A5 C
  BJ: "[~@6 [d4,f#4,a4]@7 ~ [c4,g4]@7 ~ [d4,f#4,a4]@7 ~ [c4,g4]@7 ~@2 f#4@7 [f4,a4,c5]@8 [g4,d5]@6 ~@2 [a4,c#5,e5]@7 ~ [c4,g4]@6 ~@3 f#4@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,a4]@7 ~@9 b4@8 ~@8 e4@8 [d4,a4]@7 ~@9 b4@8 ~@10]/7", // D C5 D C5 F G5 A C5 …
  BK: "[~@7 f#4@7 [f4,a4,c5]@8 [g4,b4,d5]@9 ~, ~@6 [d4,a4]@7 ~@19]/2", BL: "[[c#5,e5]@15 ~, a4]/2",
  BM: "[[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 ~ [g5,a5]]/2",
  C: "[f5@3 g5 a5 g5@6 [f5,g5] a5@3 ~ e5 a5 c6 a5 e5 a5 c6 a5 e5 a5 c6 a5 e5 a5 c6 a5, ~@15 g5@2 ~@15]/2", // Fsus2
  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 ~ 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 B D@15 E F G@2 H F G@2 H I J@2 K L@4 M@8 N@5 E F G@2 H F G@2 H I J@2 K L@4 M@8 O@6 ~@24 P Q@3 R@2 S@2 T
  U T U T U T U V W@3 X Y@2 E F G@2 H F G@2 H I J@2 K L@4 M@8 O@6 ~@20 Z@2 AA@2 ~@7 AB AC@2 AD@2 AE@2 ~@18 E F G@2 H F
  G@2 H I J@2 K L@4 M@8 AF@7 AG@2 AH AI@7 AJ
>`.pickRestart({
  A: "[d3,g3,d4,g4]@15 ~", B: "[c3,g3,c4,f4]@15 ~", C: "[c3,e3,c4,e4]@15 ~",
  D: "[g2,d3] ~ [g2,d3] ~ [g2,d3]@2 [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3]@2 [g2,d3] ~", E: "[c3,g3]@8 [a#2,f3]@7 ~",
  F: "f2@2 f#2@2 g2@2 g2 ~ g2 ~ g2 ~ g2@2 g2 ~", G: "g2 ~ g2 ~ g2@2 g2 ~ g2 ~ g2 ~ g2@2 g2 ~",
  H: "[a#2,f3]@4 [g2,d3]@2 [c3,g3]@4 [g2,d3]@2 [a#2,f3]@3 ~", I: "f2@3 ~ f2@2 f2 ~ f2 ~ f2 ~ f2@2 f2 ~",
  J: "f2 ~ f2 ~ f2@2 f2 ~ f2 ~ f2 ~ f2@2 f2 ~", K: "f2 ~ f2 ~ f3@4 e3@4 d#3@4",
  L: "[~@2 [a3,d4]@5 d3@9 ~@8 d4@7 [g3,c4], d3@7 a3@24 ~, ~@7 d4@11 d4@6 ~@8, ~@32 d3@12 d3@17 ~@3]/4", // D5 C5
  M: "[~@4 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [g3,c4]@6 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [g3,c4]@6 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ [g3,c4]@6 [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@2]/8", // C5 A5 C5 A5 C5
  N: "[~@6 d3@8 f3@8 g3@7 ~ a2@49 ~]/5", O: "[~@6 d3@8 f3@8 g3@7 ~ a2@65 ~]/6", P: "e3@3 a3 g3 a3 g3 a3, a2@15 ~",
  Q: "[e3@6 a3@2 g3@2 a3@2 g3@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 ~, ~@45 g3@2 ~]/3",
  R: "[e3@4 a3@4 g3@2 a3@2 ~@2 e3@8 a3@2 g3@2 a3@2 ~@2 a3 ~, a2@13 ~ a2@17 ~, ~@29 g3@2 ~]/2", S: "[[a2,e3]@31 ~]/2",
  T: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~", U: "[c3,f3]@2 [a2,d3] [d3,g3]@2 [a2,d3] [c3,f3]@2",
  V: "c3 d3 ~ f3 ~ g3 ~ a3", W: "[~ c4 ~ c4@16 ~ d4 c4 ~ a3]/3", X: "~ g#3 ~ g3 ~ f3 d3 ~", Y: "[c3@31 ~]/2",
  Z: "[~@3 c4, c3, g3 g3, ~ c4@2 ~]/2", AA: "a2/2", AB: "~@3 c3", AC: "[~@4 d3@2 a2 c3, d3 ~, ~ a3@2 ~]/2",
  AD: "[~@3 d3, g2, ~ g3]/2", AE: "[c3@7 c3]/2",
  AF: "[~@6 d3@8 f3@8 g3@7 ~ a3@7 ~@2 c4@7 d4@8 f4@8 g4@7 ~ a4@7 ~@2 c5@7 d5@8 f5@8 g5@5 ~ g5@2 ~@2]/7",
  AG: "[g5@6 g5@6 g5@10 ~ a5 g5 f#5 ~ e5 d#5 d5 ~ c5]/2", AH: "a4 d5 ~ c5 a4 g4 ~ e4 a4 g4 ~ e4 d#4 d4 ~ c4",
  AI: "[a2@8 ~ a2@98 ~ a2@2 g2 [f2,f#2], ~@4 g2 ~@51]/7", // F#maj7
  AJ: "[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@15 ~ B A@2 ~ B A@2 ~ C D@2 ~@5 E@3 F E@2 ~@8 B A@2 ~ B A@2 ~ C D@2 ~@5 E@3 F E@2 ~@8 G H@11 I J K L I J K L M@2
  G@2 ~@6 N O G ~ G ~ G ~ G ~@9 B A@2 ~ B A@2 ~ C D@2 ~@5 E@3 F E@2 ~@8 G@8 N@8 G@2 A@2 ~@4 G@2 A@2 P@2 N Q ~@6 N@2 G@2
  A@2 P@2 N@10 ~ B A@2 ~ B A@2 ~ C D@2 ~@5 E@3 F E@2 ~@20
>`.pickRestart({
  A: "g2 ~ g2 ~ g2@2 g2 ~ g2 ~ g2 ~ g2@2 g2 ~", B: "f2@2 f#2@2 g2@2 g2 ~ g2 ~ g2 ~ g2@2 g2 ~",
  C: "f2@3 ~ f2@2 f2 ~ f2 ~ f2 ~ f2@2 f2 ~", D: "f2 ~ f2 ~ f2@2 f2 ~ f2 ~ f2 ~ f2@2 f2 ~",
  E: "~@4 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~@3", F: "~@4 a2 ~@7 a2 ~@3", G: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~",
  H: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3!2",
  I: "[a2,a3] ~ [a2,a3] ~ [a2,a3] ~ [a2,a3] ~ [a2,a3] ~ [a2,a3] ~ [a2,a3] ~ [a2,a3] ~", // A
  J: "[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#
  K: "[g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~", // G
  L: "[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#
  M: "[f2,f3] ~ [f2,f3] ~ [f2,f3] ~ [f2,f3] ~ [f2,f3] ~ [f2,f3] ~ [f2,f3] ~ [f2,f3] ~", N: "a2!8",
  O: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~", P: "c3!8", Q: "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",
  J: "g4 g#4", K: "a4@8 a#4@7 ~", L: "a4 b4 c5!2 a4 b4 c5!2 a4 b4 c5!2 a4 b4 c5!2",
  M: "a#4 c5 d5!2 a#4 c5 d5!2 a#4 c5 d5!2 a#4 c5 d5!2", N: "c5 d5 e5!2 c5 d5 e5!2 c5 d5 e5!2 c5 d5 e5!2",
  O: "c5 d5 e5!2 c5 d5 e5!2 c5 d5 e5!6", P: "g5 a5 e4!2 g5 f#5 e4!2 f#5 f5 e4!2 f5 e5 e4!2",
  Q: "e5 d#5 e4!2 d#5 d5 e4!2 d5 c#5 e4!2 c#5 c5 e4!2", R: "a5 g#5 e4!2 g5 f#5 e4!2 e5 d#5 e4!2 c#5 c5 e4!2",
  S: "b4 a#4 e4!2 a#4 a4 e4!2 a4 g#4 e4!2 g#4 g4 e4!2", T: "g4 f#4 e4!2 f#4 f4 e4!2 f#4 f4 e4!2 g4 f#4 e4!2",
  U: "g#4 g4 e4!2 a4 g#4 e4!2 a#4 a4 e4!2 b4 a#4 e4@2", V: "g4!4 f#4 e4 d#4 d4",
  W: "[c4 a3 d4 c4 a3@3 g4@2 g4!2 e4 d#4 d4 c4 a3]/2", X: "d4 c4 a3 g3 a3@2 c4@2",
// … 130 more lines

More by Deep Purple