Strudelify
Voodoo voodoo cover art

1995 · Festivalbar 95

Voodoo voodoo

Zucchero

KeyC majorTempo96 bpm
0:00/0:00
// Voodoo voodoo — Zucchero
// 96 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 89 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(96/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
const bass = note(`<
  ~@6 A ~@2 B C D E F G H I B C D E J K L M B C D N F G H I B C D E J K L M B C D E B C D E O P Q P R S T U@2 V W X Y Z
  W X Y AA AB AC AD AC AE AF AG AH@2 AI G AJ AK AL@2 AM AN AL AO AP AQ AR
>`.pickRestart({
  A: "~@3 c1", B: "c1 ~ c1@2 c2@2 c1 c2 c1 c2 c1@2 c2@2 ~@2", C: "c1 ~ c1@2 c2@2 ~ c1 ~ c2 c1@2 c2@2 c1 c2",
  D: "c1 ~ c1@2 c2 ~@2 c1 ~ c2 c1@2 c2@2 c1 c2", E: "c1 ~ c1@2 c2@2 ~ c1 ~ c2 a1 a2 a#1 a#2 b1 b2",
  F: "c2!2 c1@2 c2 ~ c2 c1 c2 c1 c1@2 c2@2 c1 c2", G: "c1 c2 c1@2 c2@2 ~ c1 ~ c1 c1@2 c2@2 c1 c2",
  H: "c1 c2 c1@2 c2@2 ~ c1 ~ c2 c1@2 c2@2 c1 c2", I: "c1 ~ c1@2 c2 ~@2 c1 ~ c2 a1 a2 a#1 a#2 b1 b2",
  J: "g1 ~ g1@2 ~@2 g2 g1 ~ g1 g1@2 g2!2 g1 a1", K: "a#1 ~ a#1@2 ~@2 a#2 f1 ~ f1 f1@2 f2 f1 f1@2",
  L: "g1 ~ g1@2 ~@2 g2 g1 ~ g1 g1@2 g2 g1!2 a1", M: "a#1 ~ a#1@2 ~@2 a#2 a#1 ~ a#1 a1 a2 a#1 a#2 b1 b2",
  N: "c1 ~ c1@2 c2@2 ~ c1 ~ c2 ~@6", O: "e1 ~ e1@2 ~@2 e2 e1 ~ e1 e1@2 e2@2 e1 ~",
  P: "d1 ~ d1@3 ~ d2 c#2 ~ c#2 c#2@2 b1@2 a1@2", Q: "e1 ~ e1@2 ~@2 e2 e1 ~@2 e1@2 e2@2 e1 e2",
  R: "e1 ~ e1@2 ~@2 e2 e1 ~ e1 e1@2 e2@2 e1 e2", S: "d1 ~ d1@4 d2 c#2 ~ c#2 c#2@2 b1@2 a1@2",
  T: "b2@3 a2@3 g#2@2 f#2@3 e2@3 d2@2", U: "[c#2@3 b1@3 a1@2 g1@24]/2", V: "~@8 c1 ~ c1@2 c2@2 c1 c2",
  W: "c1 c2 c1@2 c2@2 ~@2 c1 ~ c1@2 c2@2 ~ c1", X: "~ c2 c1@2 c2@2 c1 c2 c1 ~ c1@2 c2 ~@2 c1",
  Y: "~ c2 c1@2 c2@2 c1 c2 c1 ~ c1@2 c2@2 ~ c1", Z: "~ c2 a1 a2 a#1 a#2 b1 b2 c1 ~ c1@2 c2@2 c1 c2",
  AA: "~ c2 a1 a2 a#1 a#2 b1 b2 e1 ~ e1@2 ~@2 e2 e1", AB: "~ e1 e1@2 e2@2 e1 ~ d1 ~ d1@3 ~ d2 c#2",
  AC: "~ c#2 c#2@2 b1@2 a1@2 e1 ~ e1@2 ~@2 e2 e1", AD: "~@2 e1@2 e2@2 e1 e2 d1 ~ d1@3 ~ d2 c#2",
  AE: "~ e1 e1@2 e2@2 e1 e2 d1 ~ d1@4 d2 c#2", AF: "~ c#2 c#2@2 b1@2 a1@2 b2@3 a2@3 g#2@2",
  AG: "f#2@3 e2@3 d2@2 c#2@3 b1@3 a1@2", AH: "[g1@3 ~]/2", AI: "c1 ~ c1@2 c2@2 ~ c2 c1 c2 c1!2 c2@2 c1 c2",
  AJ: "c1 ~ c1@2 c2 ~@2 c1 ~ c1 c1@2 c2@2 c1 c2", AK: "c1 ~ c1@2 c2@2 c2 c1 ~ c2 a1 a2 a#1 a#2 b1 b2",
  AL: "c1 ~ c1@2 c2 ~ c2 c1 ~ c1 c1@2 c2@2 c1 c2", AM: "c1 c2 c1@2 c2 ~ c2 c1 ~ c1 c1@2 c2@2 c1!2",
  AN: "c3!2 a#2!2 g2!2 f2!2 d#2!2 c2!2 a#1 c2 d#2@2", AO: "c1 c2 c1@2 c2@2 c2 c1 ~ c1 c1@2 c2@2 c1 c2",
  AP: "c1 c2 c1@2 c2 ~ c2 c1 ~ c1 c1@2 c2@2 ~ c2", AQ: "c1 ~ c1@2 c2 ~ c2 c1 ~ c1 a1 a2 a#1 a#2 b1 b2",
  AR: "c2 ~ c2@2 ~@12",
})).s("gm_electric_bass_finger").gain(0.49)

// bass · electric bass finger · soft notes
const bass_soft = note(`<
  ~@9 A B C@2 ~ D ~ C A B C@2 ~@2 E ~ A B C@2 ~ D ~ C A B C@2 ~@2 E ~ A B C@2 A B C@2 F ~ G ~@7 H I@2 ~ H I@2 ~ J ~ K
  ~@7 B C ~@7 L ~@2
>`.pickRestart({
  A: "~@14 c1 c2", B: "~@6 c2 ~@9", C: "~ c2 ~@4 c2 ~@9", D: "~@6 c2 ~ c2 ~@7", E: "~@5 g1 ~@10", F: "~@15 e2",
  G: "~@9 e1 ~@6", H: "~@6 c1 c2 ~@6 c2 ~", I: "~@9 c2 ~@4 c2 ~", J: "~@7 e2 ~@8", K: "~ e1 ~@14", L: "~@14 c1 ~",
})).s("gm_electric_bass_finger").gain(0.24)

// chords · piano · "HONKYTONKY"
const piano = note(`<
  A B C D E C@2 D F B C D E G H I J K L M N ~@4 B C D O G H I J K L M N ~@4 B C D E B C D P Q R S@2 T U V ~ W X@7 Y@2 Z
  AA ~ AB Z AC ~@2 AD B C D E B C D E B C D E ~
>`.pickRestart({
  A: "~@15 d#4",
  B: "e4 g4 [a#3,g4,c5] a#4 ~ a4 [a#3,g4] g4@3 c3@2 c2@2 [a#3,g4] d4, c2 ~ c2 c3 ~ g4@2 ~, ~@10 a#3 ~@3 c3@2", // C7 D#
  C: "d#4 e4 [a#3,g4,c5] a#4 ~ a4 [a#3,g4] g4@3 c3@2 c2@2 [a#3,g4] d4, c2 ~ c2 c3 ~ g4@2 ~, ~@10 a#3 ~@3 c3@2", // C7 D#
  D: "d#4 e4 [a#3,g4,c5] a#4 ~ a4 [a#3,g4] g4@3 c3@2 c2@2 [a#3,g4] [a3,a4], c2 ~ c2 c3 ~ g4@2 ~, ~@10 a#3 ~@3 c3@2", // C7 D# A
  E: "[a#3,a#4] [d4,d5] [a#3,f4,g4,f5] ~ c2@2 [a#3,g4] [a4,a5] [a#4,a#5] [d5,d6] [a#3,f5,f6] [g5,g6]!2 [a#5,a#6] [a#3,a#5,a#6] [d4,c6,c7], c2@2 ~ [g4,g5]@3 c3@2 ~@2 [c3,g4]@2 c2@2 [c3,g4]@2", // A# D Gm7 D# A A# D A#5 …
  F: "[a#3,a#4] [d4,d5] [a#3,f4,g4,f5] ~ c2@2 [a#3,g4] [a4,a5] [a#4,a#5] [d5,d6] [a#3,g4,f5,f6] [g5,g6]!2 [a#5,a#6] [a#3,g4,a#5,a#6] [d4,c6,c7], c2@2 ~ [g4,g5]@3 c3@2 ~@2 c3@2 c2@2 c3@2", // A# D Gm7 D# A A# D Gm7 …
  G: "e4 g4 c5 a#4 ~ a4 [g3,a#3] [e4,g4,a#4] [e4,g4] ~ [g3,a#3]@2 c3@2 ~ d4, c3 [g3,a#3] ~@5 [g3,a#3]", // Gm Edim Em Gm
  H: "d#4 e4 c5 a#4 ~ a4 a#3 [e4,g4,a#4] e4!2 [g3,a#3]@2 c3@2 ~ d4, c3@2 [g3,a#3]@2 ~@2 g3@2 ~@4 g4 ~ [g3,a#3]@2", // Edim Gm
  I: "d#4 e4 c5 a#4 ~ a4 ~ [e4,g4,a#4] [e4,g4] e4 [e4,g4] e4 [c3,g4]@2 ~ d4, c3 [g3,a#3] ~ [g3,a#3] ~ [g3,a#3] ~ [g3,a#3]", // Edim Em C5 Gm
  J: "d#4 e4 [a#3,c5] a#4 ~ a4 ~ [e4,g4] [e4,g4,a#4] [e4,g4]!4 ~@2 d4, c3 g3 ~ [g3,a#3] ~ [g3,a#3] c3 [g3,a#3]", // A#sus2 Em Edim Em Gm
  K: "d#4 e4 c5 a#4 ~ a4 [g3,a#3] [e4,g4] [e4,g4,a#4] [e4,g4]!3 [c3,g4]@2 [g3,a#3] d4, c3@2 [g3,a#3]@2 ~@6 [g3,a#3]@2 e4 ~@3", // Gm Em Edim Em C5 Gm
  L: "d#4 e4 [g3,a#3,c5] a#4 ~ a4 [g3,a#3] [e4,g4] [e4,g4,a#4] [e4,g4]!3 [c3,g4]@2 a#3 d4, ~@10 [g3,a#3]@2 e4 ~ g3@2", // C7 Gm Em Edim Em C5 Gm
  M: "d#4 e4 c5 a#4 ~ a4 ~ [e4,g4,a#4] [e4,g4]!2 e4!2 [c3,g4]@2 ~ d4, ~@2 [g3,a#3]@2 ~@2 [g3,a#3]@2 ~@2 [g3,a#3]@2 e4 ~ [g3,a#3]@2", // Edim Em C5 Gm
  N: "d#4 e4 c5 a#4 ~ a4 [g3,a#3] [e4,g4,a#4] [e4,g4] e4!2 [e4,g4] c3@2 [g3,a#3] ~, ~@2 [g3,a#3]@2 ~@6 [g3,a#3]@2 e4 ~@3", // Gm Edim Em Gm
  O: "[a#3,a#4] [d4,d5] [a#3,f4,g4,f5] ~ c2@2 [a#3,g4] [a4,a5] [a#4,a#5] [d5,d6] [a#3,f5,f6] [g5,g6]!2 ~@3, c2@2 ~ [g4,g5]@3 c3@2 ~@2 [c3,g4]@2 c2@2 ~@2", // A# D Gm7 D# A A# D A#5 …
  P: "[a#3,a#4] [d4,d5] [a#3,f4,g4,f5] ~ c2@2 [a#3,g4] [a4,a5] [a#4,a#5] [d5,d6] [f5,f6] [g5,g6] [c5,g5,c6,g6] [d5,d6] [d#5,d#6] [e5,e6], c2@2 ~ [g4,g5]@3 c3@2 ~@2 c3@2 ~@4", // A# D Gm7 D# A A# D F …
  Q: "~@8 [g#5,g#6]@2 [a5,a6] [b5,b6]@2 [a5,a6] [g#5,g#6]@2", // G# A B A G#
  R: "[f#5,f#6]@8 c#6@2 [d5,d6] e6@2 [d5,d6] [c#5,c#6]@2, ~@8 c#5 ~@2 e5 ~@4", // F# D C#
  S: "[[b4,b5]@24 [c#5,c#6]@2 [d5,d6] [e5,e6]@2 [d5,d6] [c#5,c#6]@2]/2", // B C# D E D C#
  T: "[b4,b5]@8 [g#5,g#6]@2 [a5,a6] [b5,b6]@2 [a5,a6] [g#5,g#6]@2", // B G# A B A G#
  U: "f#6@8 [c#5,c#6]@2 [d5,d6] [e5,e6]@2 [d5,d6] [c#5,c#6]@2, f#5@3 ~@5", V: "[e5,g#5,b5,e6] ~@3, b4@7 ~@9",
  W: "~@8 [f4,a#4,d#5] ~@2 b4 [b4,d5] [f4,d5] [f4,b4,d5] [b4,d5], ~@4 [b4,d5] ~@3", // D#sus2 Bm Dm Bdim Bm
  X: "[[f4,b4,d5] [f4,b4] [f4,b4,d5]!2 [b4,d5] ~@3 [f6,f#6] g6 [f6,f#6,g6] [f6,a#6] [f#6,g6,a#6] [c4,f4,a4,f6,f#6] [f6,g6,a#6] [f#6,g6,a#6] f#6 [g6,a#6] f#6 [f6,f#6] d#6 c6 f6 d#6 [a#3,d4,e4,g4,c6,f#6,g6] f6 d#6 c6 f6 [c4,f4,a4,d#6] c6 [c6,d#6] ~ d#6 c6 a#5!3 g5!2 [g5,a#5]!2 [f5,a5]!2 g5 [c4,f4,a4,g5] [f5,g#5] f5 [c5,d5,d#5] d#5 c5!2 a#4!2 g4!2 [a#3,d4,e4,g4,a#4] [g4,a#4] [a#3,c5] [a#4,c5] d#5 [c4,f4,a4,c5,d#5] f5 [d#5,f5] g5 [f5,g5] a#5 g5 c6 [c5,a#5,c6] [c5,d#5,c6,d#6] [c5,f5,c6,f6] [c5,f#5,c6,f#6] [c5,g5,c6,g6]!4 [c4,f4,a4,c5,g5,c6,g6] [c5,g5,c6,g6]!2 [c5,g5,c6,g6]!4 [g5,c6,g6] [c5,c6] [c5,d#5,c6,d#6] [c5,f5,c6,f6] [a#3,d4,e4,g4,c5,f#5,c6,f#6] [c5,g5,c6,g6] [a#3,c5,g5,c6,g6] [c5,g5,c6,g6]!2 [c4,f4,a4,c5,g5,c6,g6] [c5,g5,c6,g6]!2 [c5,g5,c6,g6]!4 [g5,g6] [c5,c6] [c5,d#5,c6,d#6] [c5,f5,c6,f6] [c5,f#5,c6,f#6] [c5,g5,c6,g6]!2 [c5,f#5,c6,f#6] [c5,g5,c6,g6] [c4,f4,a4,c5,g5,c6,g6] [c5,f#5,c6,f#6] [d4,g4,a#4,c5,g5,c6,g6], ~@10 [a#3,d4,e4,g4]@2 ~@3 [d4,g4,a#4]@4 ~ [c4,f4,a4]@3 ~@3 [a#3,d4,e4,g4]@2 ~@3 [d4,g4,a#4]@4 ~ [c4,f4,a4]@3 ~ [a#3,d4,e4,g4]@4 ~@3 [d4,g4,a#4]@4 ~ [c4,f4,a4]@2 ~@4 [d4,e4,g4]@2 ~@3 [d4,g4,a#4]@4 ~ [c4,f4,a4]@3 ~ [a#3,d4,e4,g4]@4 ~@3 [d4,g4,a#4]@4 ~ [c4,f4,a4]@3 ~@3 [d4,e4,g4]@2 ~@3 [d4,g4,a#4]@4 ~ [c4,f4,a4]@3 ~ [a#3,d4,e4,g4]@4 ~@4]/7", // Bdim Fdim Bdim Bm F#maj7 A#5 F# F …
  Y: "[[c5,g5,c6,g6] [c5,f#5,c6,f#6,g6] [c5,g5,c6,g6]!2 [c5,f#5,c6,f#6] [c5,g5,c6,g6]!3 [a#3,d4,e4,g4,f#6] [c6,g6] [a#3,f#6] [c6,g6] f#6 [c4,f4,a4,c6,g6] f#6 [c6,g6] [f#6,f#7] [c5,c7,g7] [c5,c6,f#7] [c5,c6,c7,g7] [c5,c6,f#7] [d5,d6] [d#5,d#6] [e5,e6] ~@8, ~@4 [c4,f4,a4]@2 ~@4 [d4,e4,g4]@3 ~@2 [a#3,d4,e4,g4]@4 ~@13]/2", // C5 C C5 Cdim C5 Em7b5 C5 D#m …
  Z: "[g#5,g#6] ~ [a5,a6] [b5,b6] ~ [a5,a6] [g#5,g#6] ~ [f#5,f#6]@6 ~@2", // G# A B A G# F#
  AA: "[c#5,c#6] ~ [d5,d6] [e5,e6] ~ [d5,d6] [c#5,c#6] ~ [b4,b5]@8", // C# D E D C# B
  AB: "[c#5,c#6] ~ [d5,d6] [e5,e6] ~ [d5,d6] [c#5,c#6] ~ [b4,b5]@7 ~", // C# D E D C# B
  AC: "[c#5,c#6] ~ [d5,d6] [e5,e6] ~ [d5,d6] [c#5,c#6] ~ [b4,e5,g#5,b5,e6]@7 ~", // C# D E D C# E
  AD: "g6 ~ f#6 ~ f6 ~ d#6 ~ c6 a#5 g5 f#5 f5 d#5 c5 a#4",
})).s("gm_piano").gain(0.36).pan(0.7)

// chords · piano · "HONKYTONKY" · soft notes
const piano_soft = note("<~@13 A B C D@3 E F ~@8 A B C D@3 E F ~@20 G H I ~@2 J ~@2 K ~@23>".pickRestart({
  A: "~@8 a#4 [e4,g4,a#4] [e4,g4] [e4,g4,a#4] [e4,a#4] ~@3, ~@12 g4@3 ~", B: "~@8 [g4,a#4]!2 [e4,g4,a#4]!2 ~@4",
  C: "~@8 a#4 [g4,a#4] a#4 [g4,a#4] a#4 ~@3", D: "~@9 a#4!4 ~@3", E: "~@8 a#4!2 [g4,a#4]!2 a#4 ~@3",
  F: "~@8 a#4 [g4,a#4]!2 a#4 g4@2 ~@2", G: "~@10 b4 d5 f4 ~@3, ~@9 f4@2 ~@5", H: "~@9 a#6 ~@6", I: "f6!2 ~@14",
  J: "~@3 a#5 ~@12", K: "~@12 a#3 ~@3",
})).s("gm_piano").gain(0.2).pan(0.7)

// chords · rock organ · "ORGAN"
const rock_organ = note("<~@21 A B C D ~@12 A B C D ~@8 E F G H@2 I J K@3 ~@7 L@2 M@2 N@2 O P Q@2 ~@13>".pickRestart({
  A: "[g5,b5,d6,g6]", B: "a#5@7 ~ a5@8, [f5,c6,f6]", C: "[g5,b5,d6,g6]@15 ~",
  D: "a#5@13 [g5,a5,b5] [g4,a4,b4,c5,d5,e5,f5] [d4,e4,f4]", E: "[e5,g#5,b5,e6]",
  F: "[f#5,a5,d6] [e5,a5,c#6], ~@8 f5 ~@7", G: "[e5,g#5,b5,e6]@15 ~",
  H: "[[f#5,a5,d6]@8 [a5,c#6]@7 ~ [g#5,b5,e6]@15 ~, ~@8 e5@23 ~]/2", I: "[f#5,a5,d6] [e5,a5,c#6]",
  J: "[e5,g#5,b5,e6]@7 ~ [f#5,a5,d6]@7 ~", K: "[[e5,a5,c#6]@8 [d5,g5,b5]@29 ~@11]/3",
  L: "[~ [e5,g#5,b5,e6]@2 [f#5,a5,d6]]/2", M: "[[e5,a5,c#6]@8 [e5,g#5,b5,e6]@15 ~ [f#5,a5,d6]@8, f5 ~@31]/2",
  N: "[[a5,c#6]@7 ~ [g#5,b5,e6]@15 ~ [f#5,a5,d6]@8, e5@23 ~@9]/2", O: "[e5,a5,c#6]@8 [e5,g#5,b5,e6]@7 ~",
  P: "[f#5,a5,d6]@7 ~ [e5,a5,c#6]@8", Q: "[[d5,g5,b5]@29 ~@3]/2",
})).s("gm_rock_organ").gain(0.35).pan(0.8)

// chords · brass section · "BRASS"
const brass_section = note("<~@28 A ~@51 B C D E F G C H I>".pickRestart({
  A: "~@12 [c4,c6] b4 ~@2, ~@6 c5 ~", // C
  B: "c4@2 [c4,c5] ~ [c4,c5]@2 [c4,c5] ~@2 [d4,f4,d5] [d#4,f#4,d#5] [e4,f#4,g4,e5] ~ [g4,a4,c5,g5,a5] [a4,d5,a5] [c5,e5,c6], c5 ~@15", // C Dm D#m Em Am7 D5 C
  C: "[c4,c5] ~ [c4,c5] ~ [c4,c5]@2 [c4,c5] ~@2 [d4,f4,d5] [d#4,f#4,d#5] [e4,g4,e5] ~ [g4,c5,g5] [a4,d5,a5] [c5,e5,c6]", // C Dm D#m Em C5 D5 C
  D: "[c4,c5]@2 [c4,c5] ~ [c4,c5]@2 [c4,c5] ~@2 [d4,f4,d5] [d#4,f#4,d#5] [e4,g4,e5] ~ [g4,c5,g5] [a4,d5,a5] [c5,e5,c6]", // C Dm D#m Em C5 D5 C
  E: "[c4,d5] ~ [c4,c5] ~ [c4,c5]@2 [c4,c5] ~@2 [d4,f4,d5] [d#4,f#4,d#5] [e4,g4,e5] ~ [g4,c5,g5] [a4,d5,a5] [c5,e5,c6], c5 ~@7", // Csus2 C Dm D#m Em C5 D5 C
  F: "c4@2 [c4,c5] ~ [c4,c5]@2 [c4,c5] ~@2 [d4,f4,d5] [d#4,f#4,d#5] [e4,g4,e5] ~ [g4,c5,g5] [a4,d5,a5] [c5,e5,c6], c5 ~@15", // C Dm D#m Em C5 D5 C
  G: "[d4,c5] ~ [c4,c5] ~ [c4,c5]@2 [c4,c5] ~@2 [d4,f4,d5] [d#4,f#4,d#5] [e4,g4,e5] ~ [g4,c5,g5] [a4,d5,a5] [c5,e5,c6], c4 ~@7", // D7 C Dm D#m Em C5 D5 C
  H: "[c4,c5] ~ [c4,c5] ~ c5@2 [c4,c5] ~@2 [d4,f4,c5,d5] [d#4,f#4,d#5] [e4,g4,e5] ~ [g4,c5,g5] [a4,d5,a5] [c5,e5,c6], ~@4 c4 ~@11", // C Dm7 D#m Em C5 D5 C
  I: "[c4,c5] ~ [c4,c5] ~@13", // C
})).s("gm_brass_section").gain(0.64)

// other · electric guitar jazz · "JAZZ GUIT"
const electric_guitar_jazz = note(`<
  ~@5 A B C D E F G H ~@12 E F G H ~@12 E F G H E F G H ~@9 I J K J K@3 J L ~@9 E F G H E F G H E F G H ~
>`.pickRestart({
  A: "c5@3 c5@3 ~ c5@2 c5 d#5 ~ c5@3 ~", B: "c5@3 c5@3 ~ c5 ~ c5 d#5@2 c5@3 ~", C: "c5@3 c5@4 f5 ~ d#5 ~ c5@4 ~",
  D: "c5@2 ~ c5@3 ~ c5 ~ c5 d#5 ~ c5@3 ~", E: "c4@3 ~ c4 a#3 g3 c4 ~ d#4 c4@4 ~@2",
  F: "c4@2 ~@2 c4 g3 a#3 c4 ~ d#4 c4@3 ~@3", G: "c4 ~ c4@3 g3 a#3 c4 ~ d#4 c4@3 ~@3",
  H: "c4@2 ~@2 c4 ~ a#3 c4 ~ d#4 c4@3 ~@3", I: "~@8 c4@3 ~ c4 g3 a#3 c4", J: "~ d4 c4@5 ~ c4 ~ c4@3 g3 a#3 c4",
  K: "~ d4 c4@5 ~ c4@3 ~ c4 g3 a#3 c4", L: "~ d4 c4@3 ~@11",
})).s("gm_electric_guitar_jazz").gain(0.16).pan(0.3)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@21 A B@2 C ~@12 A B@2 C ~@8 D E F E F E G H@3 ~@7 I@2 J@4 K L M@2 ~@13
>`.pickRestart({
  A: "d5 d5@2 [g4,d5]!2 ~ [g4,d5] [g4,d5]@2 [g4,d5] [g4,d5]@2 [g4,d5] [g4,d5]@3, [d3,g3], g4@3 ~@13", // G5
  B: "[d5 d5@2 [d5,g5]!2 ~ [d5,g5] [c5,d5,e5,g5] ~ [c5,g5] [c5,g5]@2 [c5,g5]!2 c5@2 [g4,d5]@3 [g4,d5,g5] [g4,d5]@2 [g4,d5] [g4,d5]@2 [g4,d5] [g4,d5]@2 [g4,d5]!2 [g4,d5]@2, [f3,a#3]@7 ~ [c3,f3]@8 [d3,g3]@16, g5 ~@6 g5@2 ~@7]/2", // G5 C C5 G5 A#5 F5 G5
  C: "[d5,g5] [d5,g5]@2 [d5,g5] [d5,g5]@2 [d5,g5] [d5,g5]@2 [d5,g5] [d5,g5]@2 [d5,g5] ~ d5@2, [a#2,f3,a#3]@15 ~, ~@13 [d5,g5]@2 ~", // G5 A#5 G5
  D: "[e3,b3,e4]@15 ~", E: "[d3,a3,d4] [c#3,a3,c#4]", F: "[e3,b3,e4]", G: "[e3,b3,e4] [d3,a3,d4]",
  H: "[[a3,c#4]@7 ~ [d3,g3,b3]@28 ~@12]/3", I: "[~@8 [e3,b3,e4]@15 ~ [d3,a3,d4]@8]/2",
  J: "[[c#3,a3,c#4] [e3,b3,e4]@2 [d3,a3,d4]]/2", K: "[c#3,a3,c#4] [e3,b3,e4]", L: "[d3,a3,d4]@8 [a3,c#4]@7 ~",
  M: "[[d3,g3,b3]@7 ~]/2", // G
})).s("gm_overdriven_guitar").gain(0.28).pan(0.8)

// drums · kick
const kick = s("bd").struct("<~@9 A@46 B@2 C D E@13 F B G H A@12 ~>".pickRestart({
  A: "x!2 ~@3 x ~@2", B: "x!2", C: "~@6 x!2 ~@7 x", D: "~ x ~ x ~@4 x ~ x ~@5", E: "~ x ~@2 x!2 ~@2",
  F: "~ x ~@2 x ~@3", G: "x", H: "~@7 x ~@3 x ~@4",
})).gain(0.5)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@9 A ~ A ~@4 B A ~ A ~ C ~ A ~ A ~ A ~@4 B A ~ A ~ C ~ A ~ A ~ A ~ A ~ A ~ C ~@8 C ~ C ~ C ~ C ~@2 A ~@8 A ~ A ~ A ~
  A ~ A ~ A ~@2
>`.pickRestart({
  A: "~@7 x ~@8", B: "~@7 x", C: "~@15 x",
})).gain(0.25)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@5 A@4 B C D@2 C@3 E B C D@2 ~@4 B C D F C@3 E B C D@2 ~@4 B C D@2 B C D@2 ~@9 G H@2 I J H@2 I K ~@9 B C D@2 B C D@2
  B C D@2 ~
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "x ~ x ~ x ~ x!2", C: "x!5 ~ x!2", D: "x!5 ~ x ~", E: "x ~ x ~ x ~ x ~ x ~@3 x!2 ~@2",
  F: "x!5 ~@3", G: "~@2 x!2", H: "x ~ x!6", I: "x ~ x ~ x!4", J: "x!4", K: "x!2 ~@2",
})).gain(0.45)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@9 A ~ B ~@5 A ~ B ~@5 A ~ B ~@5 A ~ B ~@5 A ~ B ~ A ~ B ~@10 B ~@2 A B ~@2 A ~@10 A ~ B ~ A ~ B ~ A ~ B ~@2
>`.pickRestart({
  A: "~@3 x ~@4", B: "~@7 x",
})).gain(0.3)

// drums · low tom
const low_tom = s("lt").struct("<~@20 A ~@3 B ~@11 A ~@3 B ~@7 B ~@9 C ~@7 C ~@21 D>".pickRestart({
  A: "~@7 x", B: "~@15 x", C: "~@7 x ~@8", D: "x!2 ~@6",
})).gain(0.5)

// drums · mid tom
const mid_tom = s("mt").struct("<~@20 A ~@3 B ~@11 A ~@3 B ~@7 C ~@9 D ~@7 D ~@8 E ~@13>".pickRestart({
  A: "~@10 x!4 ~@2", B: "~@7 x", C: "~@13 x!2 ~", D: "~@5 x!2 ~@9", E: "~@14 x!2",
})).gain(0.45)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@9 A B@2 C B@3 C A B@2 C ~@4 A B@2 ~ B@3 C A B@2 C ~@4 A B@2 C A B@2 C ~@9 B D@3 E D@3 F ~@9 A B@2 C A B@2 C A B@2 C
  ~
>`.pickRestart({
  A: "~ x ~@3 x ~@2", B: "~@5 x ~@2", C: "~@5 x ~ x", D: "~ x ~@6", E: "~ x ~ x ~ x ~@2", F: "~ x ~ x ~@4",
})).gain(0.5)

// drums · high tom
// … 26 more lines

More by Zucchero