Strudelify
Vivo morto o X cover art

Giro d'Italia (semi acustico)

Vivo morto o X

LIGABUE

KeyD majorTempo122 bpm
0:00/0:00
// Vivo morto o X — LIGABUE
// 122 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 134 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.

// bass · electric bass finger
const bass = note(`<
  ~@11 A B C D C E C D C F ~@3 G H I@2 J K L K M H I@2 J H N O P Q R S T U R S V I@3 W I@3 X H I@2 Y Q R S T U R S Z AA
  AB AC AD AA AE AF AG AA AE AH@2 AI@2 I N I W AJ AK AL AM H I@2 Y Q R S T U R S Z AA AB AC AD AA AE AF AG AA AE AN AO
  AP AQ AR AS AT AU AR AS AT AV AR AS AT AW AR AS AT AP AX
>`.pickRestart({
  A: "~@3 a2", B: "~ d1 f#1 d1 a1 d1 c#2@2", C: "g1 a1 ~ a1 ~ d1 d2@2", D: "g1@2 a1@2 ~@2 a1@2 c2@2 a1@2 d2@3 ~",
  E: "g1@6 c2 c#2 d2@2 c2 ~ b1@4", F: "g1@6 g1 c2 d2@2 c2 ~ b1@4", G: "~@12 c3@3 ~", H: "g1 a1 ~ a1 ~ a1 c3 ~",
  I: "g1 a1 ~ a1 ~ a1 a2 ~", J: "g1@4 ~@2 c2 c#2 d2 ~ c2 ~ b1@3 ~", K: "g1@2 a1 ~ a1@2 a2@4 g2@2 e2 d2 c2@2",
  L: "g1@2 a1 ~ a1@2 c2@4 b1@2 a1@2 g1@2", M: "g1@6 g1 c2 d2 ~ c2 ~ b1@3 ~", N: "g1@2 a1@2 ~@2 a1@2 ~@2 e3!2 e3@2 ~@2",
  O: "g1 a1 ~ a1 ~ e1 a1 e1", P: "g1@4 d2 d1 d2 e1", Q: "a1@2 a1@2 a2@2 a1@2 a1@2 a1 ~ a1@2 a1@2", R: "b1!8",
  S: "d2!2 c#2!2 b1!2 a1!2", T: "g1@2 g1@2 f#1@2 f#1@2 g1@2 g1@2 e1 ~ e1@2", U: "a1!8", V: "g1!2 f#1!2 g1!4",
  W: "a1 ~ d1@2 f#1@2 d1@2 a1@2 d1@2 c#2@4", X: "g1 ~ g1@2 ~@2 c2 c#2 d2 ~ c2 ~ b1@4",
  Y: "g1@4 ~@2 c2 c#2 d2@2 d1@2 d2@2 e1@2", Z: "g1!2 f#1!2 g1!2 b1!2", AA: "d2@2 d2@2 d2@2 d2 ~ d2@2 d2@2 d2@2 d2@2",
  AB: "f2@2 f2@2 f2@2 f2@2 g2@2 g2@2 f2 ~ e2@2", AC: "a1@5 ~ a2@4 g2@2 e2@2 d2@2", AD: "a1@5 ~ c2@4 b1@2 a1@2 g1@2",
  AE: "f2!2 e2 f2 g2!2 f2 e2", AF: "a1@3 a1 g2@2 a2@4 g2@2 e2 d2 c2@2", AG: "a1@3 a1@3 c2@4 b1@2 a1@2 g1@2",
  AH: "[g1@15 f1]/2", AI: "[g1@31 ~]/2", AJ: "g1 a1@7", AK: "g2 a2@2 a2!2 g2 e2@2", AL: "g2 a2@2 a2!2 g2 d3@2",
  AM: "~@12 a2@3 ~", AN: "g1@2 g2!2 f2!2 e2!2", AO: "d2 ~ d2@2 c2@2 c2@2 b1@2 b1@2 a1@2 a1@2", AP: "g1@15 ~",
  AQ: "g2 g2@2 g2!2 ~ g2 g2@2 g2!2 ~ g2 ~ g2 a2", AR: "a1!2 ~ a1!2 ~ a1!5 ~ a1 ~ a1 ~", AS: "b1!5 ~ b1!5 ~ b1 ~ b1 ~",
  AT: "d2 d2@2 d2!2 ~ d2!2 ~ d2 d2@2 d2 ~ d2 ~", AU: "g1!2 ~ g1!2 ~ g1!10",
  AV: "g1!2 ~ g1!2 ~ g1 g1@2 e2 g2 e2 a2 a1 c3 c#3", AW: "g1!2 ~ g1!2 ~ g1 g2!3 f#2!2 e2!2 c2@2", AX: "g2 a2 ~@6",
})).s("gm_electric_bass_finger").gain(0.72)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@41 A B A C A B A C ~@10 D E A B A C A B A F G H I@2 J K L M@2 H ~@12 N@4 A B A C A B A F G H I@2 J K L O P H Q@4 R S
  T U R S V U R S T W X Y@2 Z AA
>`.pickRestart({
  A: "a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ d4@2 c#4@2", B: "a3 ~ a3@2 a3 ~ a3 ~ a3 ~ a3 ~ e3@2 g#3@2",
  C: "g3@2 f#3@2 g3 a3 c#4@2", D: "[a4,a5]", E: "g2 d3", F: "g3@2 f#3@2 g3 a3 c#4 g3", G: "[d3,a3]@3 [d3,a3]@5",
  H: "[f3,c4] [g3,d4]", // F5 G5
  I: "[e5@3 g5 e5 g5 [e5,g5] e5 [e5,g5] g5 e5 [e5,g5] g5 e5@5 [e5,g5] g5 e5 [e5,g5] g5 e5@5 [d5,e5]@2 d5 c5, d#5 ~@31]/2", // Em Dsus2
  J: "[d3,a3]@3 [d3,a3]@5, a4@15 ~", K: "[f3,a3]@8 [g3,b3]@7 ~",
  L: "[d#5,e5]@2 g5 e5 g5 [e5,g5] e5 g5 [e5,g5] e5 g5 [e5,g5] e5 g5 [e5,g5] e5", // Emaj7 Em
  M: "[g5 [e5,g5] e5 g5 [e5,g5] e5 g5 e5@3 d5 c5 ~@4 [d3,a3]@6 [d3,a3]@10, ~@12 a4@19 ~]/2", // Em D5
  N: "[~@4 a5@47 ~@13, ~@4 a4@43 ~@17]/4", O: "g5 [e5,g5] e5 g5 [e5,g5] e5 g5 a5@8 ~", P: "a5!4, [a3,d4]",
  Q: "[~@18 b4@21 ~@11 b4@13 ~, ~@14 d4@22 ~@10 d4@17 ~]/4", R: "~@3 e4, e4@5 ~ e4@5 ~@5, ~@3 a3@5 ~ a3@7",
  S: "~@3 f#4, f#4@5 ~ f#4@5 ~@5, ~@3 b3@5 ~ b3@7", T: "~@12 f#4@3 ~, f#4@5 ~ f#4@5 ~@5, ~@3 a3@5 ~ a3@7",
  U: "~@3 g4, g4@5 ~ g4@5 ~@5, ~@3 b3@5 ~ b3@7", V: "~@3 a3@3 ~@6 f#4@4, f#4@5 ~ f#4@5 ~@5, ~@9 a3@7", W: "g4 f#4",
  X: "~ [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~", // A
  Y: "~ [a3,d4,f#4] ~@2 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~", Z: "[g2,g3,g4]",
  AA: "[g3,g4] [a3,a4] ~@6", // G A
})).s("gm_overdriven_guitar").gain(0.36).pan(0.3)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@13 A B A C A B A C ~@20 D@8 ~@4 E F G@2 E F H@2 I@4 J@6 K@4 L@2 M@2 N@4 ~@7 O E F H@2 I@4 J@6 K@4 L@2 M@2 N@4 ~@8
  P@2 Q R P@2 Q S T
>`.pickRestart({
  A: "g2@2 a2 ~@7 d2@2 d3@4", B: "g2@2 a2 ~@3 a2@2 c3@2 a2@2 d3@4", C: "g2@8 d3@7 ~",
  D: "[~@5 e5@2 a4 ~@5 e5 f#4 a4 ~@5 e5 ~@9 e5, e4@6 e4@10 f#4@5 ~ f#4@5 ~@5 f#4@5 ~ f#4@5 ~ f#4@4 e4@6 e4@5 ~ e4@4, ~@2 a4@5 ~ a4@6 ~@4 a4@6 a4@6 ~@4 a4@6 a4@9 ~ a4@5 ~ a4@8, ~@4 e5@5 ~@5 e5@5 ~ e5@5 ~@5 e5@5 ~ e5@5 ~@5 e5@5 ~ e5@5 ~ e5@4 ~@2]/4",
  E: "[g2,g3] [a2,a3] ~@3 g4 f#4@2, ~@5 [a3,d4]@3", F: "[g2,g3] [a2,a3] ~@3 [e4,g4] [g3,d4]@2, ~@5 b3@3",
  G: "[[g2,g3]@2 [a2,a3]@2 ~@8 b3@11 ~@3 [a3,d4,f#4] ~ [a3,d4,f#4]@4, ~@10 [d4,g4]@13 ~@9]/2", // G A D G5
  H: "[[g2,g3]@2 [a2,a3]@2 ~@6 [b3,d4,g4]!2 [g3,b3,d4]@11 ~ [f#4,a4]@8, ~@23 d4@8 ~]/2", // G A G F#m
  I: "[~@5 e5@2 a4 ~@5 e5 f#4 ~@6 e5 ~@9 e5, e4@6 e4@10 f#4@5 ~ f#4@5 ~@5 f#4@5 ~ f#4@5 ~ f#4@4 e4@6 e4@5 ~ e4@4, ~@2 a4@5 ~ a4@6 ~@4 a4@6 a4@6 [a4,e5]@5 ~ e5@5 ~@5 e5@5 ~ e5@5 ~ e5@4 ~@2, ~@4 e5@5 ~@5 e5@5 ~ e5@5 ~@9 a4@6 a4@9 ~ a4@5 ~ a4@8]/4", // A5
  J: "[~@10 e5@4 a4@2 ~@10 e5@2 f#4@2 ~@12 e5@2 ~@16 e4@2 ~@2 [d4,a4]@15 ~ e4@7 ~ [b3,e4]@8, e4@6 e4@10 f#4@5 ~ f#4@5 ~@5 f#4@5 ~ f#4@5 ~ f#4@4 e4@6 e4@5 ~@4 a3@15 ~ [f3,a3]@7 ~ g3@8 ~, ~@2 a4@5 ~ a4@6 ~@4 a4@6 a4@6 [a4,e5]@5 ~ e5@5 ~@5 e5@5 ~ e5@6 e5@4 ~@34, ~@4 e5@5 ~@5 e5@5 ~ e5@5 ~@9 a4@6 a4@9 ~ a4@5 ~ a4@7 ~@33]/6", // D5 E5 F A5
  K: "[a3@31 ~ [d4,a4]@15 ~ e4@7 ~ [b3,e4]@8, ~@31 a3@15 ~ [f3,a3]@7 ~ g3@8 ~]/4", L: "[[a3,a4]@31 ~]/2",
  M: "[a4@15 ~ e4@7 ~ [b3,e4]@8, ~@15 [f3,a3]@7 ~ g3@8 ~]/2", N: "[~@16 g5@15 ~, g4@61 ~@3]/4",
  O: "[g2,b3,d4]@7 ~ [d3,a3,d4]@8", P: "a3!2 ~ a3!2 ~ a3!2 ~ a3!2 ~ a3 ~ a3!2",
  Q: "a3!2 ~ a3!2 ~ a3!2 ~ a3!2 ~ a3 ~ a3 ~", R: "a4 b4@15, d5@15 ~", S: "g3@8 a3@7 ~, d4@15 ~", T: "g3 a3 ~@6",
})).s("gm_distortion_guitar").gain(0.36).pan(0.8)

// other · harmonica
const harmonica = note(`<
  ~@17 A B A C D@2 ~@24 E F ~@18 E G@3 ~@8 H@3 I ~@18 E G@3 ~@8 J@2 K L M@4 N@3 M N@3 ~ N@3 ~@2
>`.pickRestart({
  A: "g4@2 a4 ~ a4@2 f#4 a4 ~ g4 e4 ~ e4@4", B: "g4@2 a4 ~ a4 ~ f#4 a4 ~ g4 e4 ~ g4@3 ~", C: "g4 f#4", D: "a4/2",
  E: "c#5@2 a4@2 a4@2 g4@2 c#5@2 a4 ~ a4@2 g4@2", F: "c#5@2 a4 ~ a4@2 g4@2 a4@4 a4@4",
  G: "[c#5@2 a4 ~ a4@2 g4@2 a4@4 a4@25 ~@11]/3", H: "g4@2 a4 ~ g4 ~ a4@8 ~@2",
  I: "g4@2 a4 g4@2 a4 g4@2 a4 g4@2 a4 g4@2 ~@2", J: "g4 a4 ~@6", K: "c#5 d5 ~@6", L: "e5@9 e5!7", M: "e5",
  N: "a4!2 ~ a4!2 ~ a4!2 ~ a4!2 ~@5",
})).s("gm_harmonica").gain(0.58)

// other · guitar harmonics
const guitar_harmonics = note(`<
  ~@13 A ~ A ~ A ~ A ~ B C B ~ B C B ~ D@3 ~ E F@2 ~ G H B ~@13 B C B ~ B C B ~@29 I ~ B C B ~@40
>`.pickRestart({
  A: "~@4 [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~@5", B: "~@4 a2 ~ a2 ~ a2 ~ a2 ~@5", C: "~@4 a2 ~@3 a2 ~ a2 ~@5",
  D: "~@3 a3@5", E: "~@6 a#1 a2 [a2,e4]@8", F: "[g3@2 ~@2 a2 ~@3 a2 ~ a2 ~@9 a2 ~ a2 ~ a2 ~ a2 ~@5, ~@2 a3@29 ~]/2",
  G: "~@6 a2 ~ a2 ~ a2 ~@5", H: "~@6 a2!3 ~ a2 ~@5", I: "~@10 a3!3 ~@3",
})).s("gm_guitar_harmonics").gain(0.35)

// chords · overdriven guitar
const overdriven_guitar_2 = note(`<
  ~@4 A B C D E F@3 G H@3 I H@3 J ~@3 K H L@2 M N O N I P L@2 Q H L R@2 S T U V S W X Y Z AA AB G H L@2 M H L@2 AC@2 T U
  V S W X Y AD AE@2 AF AD AE@2 AF AD AG@3 AH@2 Z AA AB AI AJ@3 AK H L@2 AC@2 T U V S W X Y AD AE@2 AF AD AE@2 AF AD AG@3
  AL@2 AM AN AO AP@8 AQ AR AN AS AT AU
>`.pickRestart({
  A: "~@11 [d3,d4] [d3,d4]@2 c3 [g2,a2,b2]", B: "a2@2 a3@3 ~ a2@2 a3@3 ~ d4@2 c#4@2",
  C: "a2@2 a3@4 a2@2 a3@3 ~ d3@2 g#3 ~", D: "~@2 a3@4 a2 ~ a3@4 d4@2 c#4@2",
  E: "a2@2 d3@2 f#3@2 d3@2 a3@2 d3@2 ~@2 [a2,e3,a3]!2, ~@3 c#4", F: "[a2,e3,a3]/3",
  G: "a3@2 d3 ~ f#3 ~ d3 ~ a3 ~ d3 ~ c#4@4", H: "[g2,d3] [a2,e3] ~@6", I: "[g2,d3] [d3,a3]",
  J: "g2@2 a#2 b2 [d3,a3]@4, d3 ~", K: "[b3,d4,g4] [a3,d4,f#4]", L: "[g2,g3] [a2,a3] ~@6",
  M: "[g2,g3,d4,g4] [d3,a3,d4,f#4]", N: "[g2,d3]@2 [a2,e3]@2 a2@2 a3@4 g3@2 e3 d3 c3@2, ~@2 e3@3 ~@3",
  O: "[g2,d3] [a2,e3] a2 c3@2 b2 a2 g2, ~ e3@2 ~", P: "[g2,d3]@2 [a2,e3]@2 ~@2 a2 a3 [a2,a3]@8",
  Q: "~@2 g4@2 f#4 e4 d4@2, [g2,g3,d4]@8 [d3,a3]@7 ~", // G5 D5
  R: "[[g2,g3]@2 [a2,a3]@2 ~@6 d4@4 ~@6 g4@4 f#4@4 f#4@3 ~, ~@7 g4@3 ~@6, ~@16 [g2,g3,d4]@8 [d3,a3,d4]@7 ~]/2", // G A G5 D5
  S: "~ c#4@2 [a3,b3]@5, e3, a3@3 ~@5", T: "[b2,f#3,b3]@3 [b2,f#3,b3]@5", U: "[d3,d4]@6 [d3,d4]@9 ~, a3@15 ~",
  V: "[g2,g3,d4]@6 [g2,g3,d4]@9 ~", W: "[f#3,b3]@3 [f#3,b3]@5, b2", X: "d4@2 c#3 ~ b2 ~ a2 ~, a3@15 ~, d3 ~@5 d4@9 ~",
  Y: "g2 ~@3 f#2 ~@3 g2 ~@3 g2@2 ~@2, [g3,d4]@6 [g3,d4]@9 ~", Z: "a2@2 a3@4 ~@2 a3@3 ~ d4@2 c#4@2, ~@3 a2@2 ~@3",
  AA: "a2 ~ a3@4 ~@2 a3@4 d3@2 g#3@2, ~@3 a2@2 ~@3", AB: "a2 a3@2 a2 a3 ~ d4 c#4, ~@10 a2@5 ~",
  AC: "[~@4 g4@4 f#4@2 e4@2 d4@3 ~@3 c#4@4 [a3,b3]@10, [g2,g3,d4]@8 [d3,a3]@7 e3@16 ~, ~@8 a3@3 ~@5]/2", AD: "[d3,a3]",
  AE: "[~@4 e4@4 ~@8 a2@5 ~ a3@4 g3@2 e3@2 d3@2, f3@6 ~@2 g3@4 e4@9 ~@11, ~@2 a3@5 ~@3 b3@5 ~@7 g3 ~@9]/2",
  AF: "a2@5 ~ c3@4 b2@2 a2@2 g2 ~, ~@6 b2 ~@9",
  AG: "[~@4 e4@4 ~@4 e4@2 ~@2 g3@29 ~ [f2,a#3]@2, f3@3 ~ g3@2 ~ g3 ~@16, ~@2 a3@5 ~@3 b3@4 ~ [g2,d3]@31 ~@2]/3", // A#5 G5
  AH: "[~ g4@14 ~, [g2,b3]@15 ~]/2", AI: "~@2 d3@2 f#3@2 d3 ~ a3@2 d3 ~ c#4@4", AJ: "[[g2,d3]@2 [a2,e3]@43 ~@3]/3",
  AK: "[g2,d3,g4]@4 g4 f#4 e4@2, ~ [d3,a3]", AL: "[~ d5@14 ~, [g2,b3]@15 ~]/2", AM: "[a2,e3,a3]@7 ~",
  AN: "[b2,f#3,b3]@7 ~", AO: "[d3,a3,d4]@15 ~",
  AP: "[[g3,d4,g4]@7 ~ a3@7 ~ b3@7 ~ f#4@8, ~@15 [a2,e3]@15 ~ [b2,f#3]@15 ~ [a3,d4]@16 ~]/4", // G5 A5 B5 D5
  AQ: "[g3,d4,g4] [b3,d4,f#4]", AR: "[a2,a3,e4]@7 ~", AS: "[d3,a3,f#4]@15 ~", AT: "[g2,g3,d4]@15 ~",
  AU: "[g2,g3,d4] [a2,a3,e4] ~@6", // G5 A5
})).s("gm_overdriven_guitar").gain(0.28).pan(0.7)

// chords · distortion guitar
const distortion_guitar_2 = note(`<
  ~@4 A B C D E D C D E F G H I F G H J K@4 L@4 M N O P L@4 Q@4 R S T U R S T V W X W Y Z@4 AA@3 AB R AC T U R S T AD AE
  AF AG AH AE AF AG AH AE AI@5 W X W Y AJ@3 AK AL AM AN AB AO AC T U R S T AD AE AF AG AH AE AF AG AH AE AP AQ@4 AR@2 AS
  AT@2 AU@2 AT@2 AU@2 AV AW AU@2 AV AX
>`.pickRestart({
  A: "~@11 [d3,a3] [d3,a3]@2 ~ [g2,a2,b2]", B: "d3 ~@5 a2 ~ a2 ~@3 d4 ~ c#4@2, a2@5 ~@5 a2@5 ~, ~@2 a3@9 ~@5",
  C: "~@6 a2 ~ a2 ~@3 d3 ~ g#3@2, a2@5 ~@5 a2@5 ~, ~@2 a3@9 ~@5",
  D: "~@6 a2 ~ a2 ~@3 d4 ~ c#4@2, a2@5 ~@5 a2@5 ~, ~@2 a3@9 ~@5", E: "a2 d3 f#3 d3 a3 d3 c#4@2",
  F: "g2 a2 ~@4 [d3,a3,d4,f#4]@2", G: "g2 a2 ~ a2 c3 a2 [d3,a3,d4,f#4]@2", H: "g2 a2 ~@4 [d3,d4,f#4]@2",
  I: "[g2,b3,d4,g4] [d3,a3,d4,f#4]", J: "~@4 g4@4 g4@2 f#4@5 ~, [g2,g3,d4] [d3,a3,d4]",
  K: "[[a3,d4,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@4 a2 ~ a2 ~ [a3,e4,a4]@4 [a3,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@2 a2 ~@5 [a3,e4,a4]@4 [a3,e4,a4]@2 [a3,c#4,e4,a4]@2 a2 ~@3 a2 ~ [a2,d4] ~ [e3,a3,d4]@2 b3@2 [g2,d3,b3]@7 ~ [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4, ~@12 d4@6 ~@10 b3@6 ~@12 g3@9 ~@9, ~@46 d3 ~@17]/4", // Asus4 A A5 A A5 A D5 Dsus2 …
  L: "[[a3,d4,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@4 a2 ~ a2 ~ [a3,e4,a4]@4 [a3,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@2 a2 ~@5 [a3,e4,a4]@4 [a3,e4,a4]@2 [a3,c#4,e4,a4]@2 a2 ~@3 a2 ~ a2 ~ [e3,a3,d4]@2 b3@2 [g2,d3,b3]@7 ~ [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4, ~@12 d4@6 ~@10 b3@6 ~@12 g3@9 ~@9, ~@46 d3 ~@17]/4", // Asus4 A A5 A A5 A Dsus2 G …
  M: "g2 ~ a2 ~ a2 ~ a3@4 g3@2 e3 d3 c3 ~", N: "g2@2 a2 ~ a2 ~ c3@4 b2@2 a2@2 g2@2",
  O: "g2@2 a2 ~ a2 ~ a3@4 g3 ~ e3 d3 c3 ~", P: "[g2,b3,d4,g4]@2 [a3,d4,f#4]!2, ~ d3",
  Q: "[[a3,d4,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@4 a2 ~ a2 ~ [a3,e4,a4]@4 [a3,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@2 e4 [a3,e4]!2 ~ [a3,e4] ~ [a3,e4,a4]@4 [a3,e4,a4]@2 [a3,c#4,e4,a4] ~ a2 ~@3 a2 ~ a2 ~ [e3,a3,d4]@2 b3@2 [g2,d3,b3]@7 ~ [d3,f#3,a3,d4]@4 [d3,f#3,a3,d4]@4, ~@12 d4@6 ~@10 b3@6 ~@12 g3@9 ~@9, ~@46 d3 ~@17]/4", // Asus4 A A5 A A5 A Dsus2 G …
  R: "[a2,a3]@2 [e3,a3] ~ [e3,a3] ~ [a2,e3,a3]@2 [e3,a3] ~ [e3,a3] ~ [a2,e3,d4]@2 c#4@2", // A A5 Asus4
  S: "[b2,f#3,a3]@2 f#3 ~ a3 ~ [b2,f#3,a3]@2 a3 ~ [f#3,a3] ~ [b2,e3]@2 g#3@2", // B7 F#m E5
  T: "a3 ~ d3@2 ~@2 [c#3,a3]@2 a3 ~ [b2,a3]@2 d4@2 [a2,c#4]@2", // F#m B7 A
  U: "d3@2 g2@2 a3 ~ [f#2,d3,a3] ~ a3 ~ [g2,d3] ~ [d3,a3]@2 e2@2, a3 ~@15", // D G5 D5
  V: "d3@2 g2@2 a3 ~ [f#2,d3,a3] ~ a3 ~ [g2,d3] ~ a3@2 g2@2, a3 ~@11 d3 ~@3", // D G5
  W: "a2 a3@2 ~ a3 ~ d4 c#4, ~@6 a2@4 a2@5 ~", X: "a2 ~ a3@4 a2@2 ~@2 a2@2 d3@2 g#3@2, ~@2 a3 ~",
  Y: "a2 ~ d3@2 f#3@2 d3@2 a3@2 d3@2 c#4@4",
  Z: "[[a3,d4,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@4 a2 ~ a2 ~ [a3,e4,a4]@4 [a3,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@2 a2 ~@5 [a3,e4,a4]@4 [a3,e4,a4]@2 [a3,c#4,e4,a4]@2 a2 ~@3 a2 ~ a2 ~ [e3,a3,d4]@2 b3@2 [g2,d3,b3]@7 ~ [d3,f#3,a3,d4]@8, ~@12 d4@6 ~@10 b3@6 ~@12 g3@9 ~@9, ~@46 d3 ~@17]/4", // Asus4 A A5 A A5 A Dsus2 G …
  AA: "[[a3,d4,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@4 a2 ~ a2 ~ [a3,e4,a4]@4 [a3,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@2 a2 ~@5 [a3,e4,a4]@4 [a3,e4,a4]@2 [a3,c#4,e4,a4]@2 a2 ~@3 a2 ~ a2 ~ [e3,a3,d4]@2 [d3,g3,b3]@2, ~@6 d4@3 ~@5 b3@3 ~@7]/3", // Asus4 A A5 A A5 A Dsus2 G
  AB: "[g2,d3,g3,b3]@7 ~ [d3,f#3,a3,d4]@8", // G D
  AC: "[b2,a3]@2 f#3 ~ a3 ~ [b2,f#3,a3]@2 a3 ~ [f#3,a3] ~ [b2,e3]@2 g#3@2, f#3 ~@15", // B7 F#m E5
  AD: "d3@2 g2@2 a3 ~ [f#2,d3,a3] ~ a3 ~ [g2,d3] ~ c#4@2 g2@2, a3 ~@11 d3 ~@3", // D G5
  AE: "[d3,a3]@2 [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~", // D5
  AF: "[f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~", // F5 G5
  AG: "a2@5 ~ a3@4 g3@2 e3@2 d3@2, ~@6 g3 ~@9", AH: "a2@5 ~ c3@4 b2@2 a2@2 g2@2, ~@6 b2 ~@9",
  AI: "[[f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~@3 d4@29 ~ d4@4 b4@29 ~, ~@3 [g2,g3]@6 ~@7]/5", // F5 G5 G
  AJ: "[[g2,g3]@2 [a2,a3]@39 ~ [a2,a3]!2 ~@4]/3", AK: "[g2,g3,d4] [d2,d3,d4]",
  AL: "[a3,d4,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@4 a2 ~ a2 ~ [a3,d4,e4,a4]@4", // Asus4 A Asus4
  AM: "[a3,d4,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@2 a2 ~@5 [a3,b3,e4,a4]@3 ~", // Asus4 A Asus2
  AN: "[a3,b3,e4,a4]@2 [a3,c#4,e4,a4]@2 a2 ~@3 a2 ~ a2 ~ [e3,a3,d4]@2 [d3,g3,b3]@2", // Asus2 A Dsus2 G
  AO: "[a2,a3]@2 [e3,a3] ~ [e3,a3] ~ [a2,e3,a3]@2 [e3,a3] ~ [e3,a3] ~ [a2,e3,d4]@2 c#4 ~", // A A5 Asus4
  AP: "[f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ a#3@2", // F5 G5
  AQ: "[~@2 g4@26 ~@2 b3@4 [g3,g4]@29 ~, g2@29 ~@35, b3@27 ~@37]/4", // G
  AR: "[[a2,e3,a3]@13 ~ [b2,f#3,b3]@15 ~ [d3,a3,d4] d3]/2", AS: "[d3,a3,d4]@15 ~",
  AT: "[[g2,d3,g3]@14 ~@2 a2@14 [b2,f#3,b3]!2, ~@7 [e3,a3]@8 ~]/2", AU: "[[b2,f#3,b3]@7 [d3,a3,d4]@9]/2",
  AV: "[g2,d3,g3]@15 ~", AW: "[a2,e3,a3]@14 [b2,f#3,b3]!2", AX: "[g2,d3,g3] [a2,e3,a3] ~@6",
})).s("gm_distortion_guitar").gain(0.28)

// chords · distortion guitar · soft notes
const distortion_guitar_soft = note(`<
  ~@4 A ~@10 B ~@3 B ~ C D@2 ~ C D@2 ~@5 C E F ~ C G F ~ H I J K H I J K ~@4 C D@2 ~ C E F ~ H I J K H I J K ~@20 L ~ C
  E F ~ M I J K H I J K ~@15 N ~@15
>`.pickRestart({
  A: "~@14 [c3,g3] [e3,f3]", B: "~@3 a3", C: "~@6 [a2,a3] ~ a3 ~ a3 ~@5",
  D: "[~@4 [a2,a3] ~ a3 ~ [a2,a3] ~ [a2,a3] ~@9 a3 ~ [a2,a3] ~ a3 ~ a3 ~@5, ~@8 c#6@23 ~]/2", // A
  E: "~@4 [a2,a3] ~ a3 ~ [a2,a3] ~ [a2,a3] ~@5", F: "~@4 a3 ~ [a2,a3] ~ a3 ~ a3 ~@5", G: "~@6 a3 ~@9", H: "~@7 e3",
  I: "~@4 f#3 ~@3 f#3 ~@7", J: "~@2 a3@2 a3 ~@11", K: "~@2 a3@2 ~@4 d3 ~ a3 ~@5", L: "~@12 [a2,a3] ~@3", M: "~@14 e3 ~",
  N: "~@15 [a3,d4]", // D5
})).s("gm_distortion_guitar").gain(0.16)

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

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

// drums · low tom
// … 77 more lines

More by LIGABUE