Strudelify

L'urlo

Zucchero

KeyE majorTempo137 bpm
0:00/0:00
// L'urlo — Zucchero
// 137 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 108 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(137/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.

// chords · rock organ · "L_URLO          L'URLO"
const rock_organ = note(`<
  A B C B C B C B C B C B C B C B D E F G H G F G I J K L@6 M@2 G F G H G F G N@2 O P@6 Q R ~@18 S T U V W X Y Z AA AB
  AC AD AE AF AE AF AG AH AI@6 AJ AK AE@6 AL AM AN@2 AO
>`.pickRestart({
  A: "~@10 e6 ~ e6 ~ e6 ~", B: "[b5,d6,e6]@3 e5 ~ e5 [a5,c#6,e6] ~ [g#5,b5,e6] ~ e6 ~ e6 ~ e6 ~",
  C: "[b5,d6,e6]@2 ~ [b5,d6,e6] ~ [b5,d6] c#6@2 [g#5,b5,e6] ~ e6 ~ e6 ~ e6 ~, ~@5 e6@2 ~@9, ~@6 a5 ~@9", // E7 Bm E
  D: "[b5,d6,e6]@2 ~ [b5,d6,e6] ~ [b5,d6] c#6@2 [d6,e6] d6 [f5,g5,a5,c6] [b4,c5,d5,e5] [f4,g4,a4] [b3,c4,d4,e4] [f3,g3,a3] [c3,d3,e3], ~@5 e6@2 ~@9, ~@6 a5 ~ [g#5,b5]@2 ~@6", // E7 Bm Dsus2 F Cmaj7 F Cmaj7 F …
  E: "[e4,b4,d5]@3 e4 ~ e4 [e4,a4,c#5] ~ [e4,g#4,b4]@2 ~@6, b2 ~@15", // E7 A E
  F: "[b4,d5]@2 e4 [b4,d5] ~ e4 [e4,a4,c#5] ~ [e4,g#4,b4]@2 ~@6, e4 ~@15", // Bm A E
  G: "[e4,b4,d5]@3 e4 ~ e4 [e4,a4,c#5] ~ [e4,g#4,b4]@2 ~@6", // E7 A E
  H: "[b4,d5]@2 e4 [b4,d5] ~ e4 [e4,a4,c#5] ~ [e4,g#4,b4]@2 ~@2 [g#4,b4,e5]@2 ~@2, e4 ~@15", // Bm A E
  I: "[b4,d5]@2 e4 [b4,d5] ~ e4 [e4,a4,c#5] ~ [e4,g#4,b4] [d4,g4,a4] [b3,c4,d4,e4,f4] [f3,g3,a3] [e2,f2,g2,a2,b2] [c3,d3,e3] [f3,g3,a3,b3,c4] [d4,e4], e4 ~@15", // Bm A E Dsus4 Bdim F Em C …
  J: "[a4,d#5,f#5]@15 ~, f4 ~@15", // D#dim
  K: "[a#4,g5]@7 ~ f#5 [c#5,e5,f5] [g4,a4,b4,c5,d5] [e2,f2,c4,d4,e4,f4,g4] [g2,a2,b2,c3] [d3,e3] [f3,g3,a3,b3] [c4,d4], e5@4 [a4,d#5] ~@3", // D# C# G C Cmaj7 Dsus2 G7 Csus2 …
  L: "[[g#4,b4]@7 [g4,c#5]@9 [g#4,b4]@7 [g4,c#5]@9 [g#4,b4]@7 [g4,c#5]@9, e5@95 ~]/6", // G#m Gdim G#m Gdim G#m Gdim
  M: "[[c#5,e5,a5]@6 ~@19 f5 [c5,e5] [g4,a4,b4] [c4,d4,e4,f4] [f3,g3,a3,b3] [b2,c3,d3,e3] [g2,a2], ~@6 [b4,d5,g5]@21 ~@5]/2", // A C G Dm7 G7 Cmaj7 Gsus2 G
  N: "[[b4,d5]@2 e4 [b4,d5] ~ e4 [e4,a4,c#5] ~ [e4,g#4,b4]@2 ~@6 [d#6,f#6]@15 ~, e4 ~@14 a5@15 ~@2]/2", // Bm A E D#m
  O: "[a#5,e6,g6]@6 ~ e5 [a#5,b5,e6]@2 ~ [b5,e6]@2 [e5,a#5,b5,e6]@2 ~, ~@11 [e5,a#5] ~@4", // Edim E E5 E Edim
  P: "[[g#4,b4]@14 [g4,c#5]@18 [g#4,b4]@14 [g4,c#5]@18 [g#4,b4]@14 [g4,c#5]@17 ~, e5@95 ~]/6", // G#m Gdim G#m Gdim G#m Gdim
  Q: "[c#5,e5,a5]@6 [b4,d5,g5]@9 ~", R: "e5@3 d5@3 b4@2 a#4@3 a4@3 g4@2, d#5 ~@15",
  S: "[d#6,e6] ~ e6 [e6,g6]!2 d6 [d#6,e6] g6 [e6,g6]!2 ~ [d6,d#6] [e6,g6] g6 [e6,g6]!2, g6 ~@4 g6 ~@2", // Emaj7 Em Emaj7 Em D#maj7 Em
  T: "[e6,g6]!2 d6 [d#6,e6,g6] e6 [e6,g6]!2 g6 [d6,d#6] g6!2 [e6,g6]!2 [d6,d#6] [d6,e6,g6] [e6,g6], ~@9 e6@2 ~@5", // Em D# Em D#maj7 Em D#maj7 Em7 Em
  U: "g6 [e6,g6]!2 d6 [d#6,e6,g6] e6 [e6,g6]!2 g6!2 g6@5 e6, ~@4 e6@3 ~", // Em D# Em
  V: "b6@3 e6 a6@4 g6@3 b5 d6 e6@3, a#6 ~@3 g#6 ~@7 g6@4", W: "~@2 a4 a#4 b4 c5 c#5 d5 e5 f#5 g5 a5 a#5 b5 d6 [c6,c#6]",
  X: "b5 [b5,e6] a5 g5 e5 g5 a5 e5 [a#5,b5,d6] ~ [a#5,b5,d6] ~ [b5,d6]@4", // E5 A# Bm
  Y: "a5 g5 e5 g5 [d5,a5] g5 ~ a5 d6 g6 f#6 d6 a5 e6 d6 a5", // D5
  Z: "a5 g5@2 e5 [a#5,b5,d6] ~ [a#5,b5,d6] ~ [b5,d6]@2 [f5,g5,a5,c6] [f4,g4,a4,c5,d5,e5] [c4,d4,e4] ~ b6@2, e6@2 ~@9 b4@2 ~ a#6 ~", // A# Bm F Fmaj7 C
  AA: "b6@2 ~ b6@13, a#6 ~@2 a#6 ~@12", AB: "a6@3 ~@3 e6@7 ~ a5@2, d6@13 ~@3, g#6 ~@2 g6@10 ~@3",
  AC: "b5@3 ~@3 a5@2 g5@3 e5@3 g5@2, a#5 ~@2 d6@13, ~@6 a#5 ~@9",
  AD: "[b5,d6]@3 [f5,g5,a5,c6] [a4,b4,c5,d5,e5] [c4,d4,e4,f4,g4] [g3,a3,b3] [b2,c3,d3,e3,f3] [c2,d2] [e2,f2] [g2,a2,b2] [c3,d3,e3,f3] [g3,a3,b3,c4] [d4,e4,f4] [g4,a4,b4] [c5,d5,e5,f5,g5], a#5 ~@15", // Bm F Am C G Bdim Csus2 Fmaj7 …
  AE: "g5 g#5 e6@2 f#5 d6@2 e5 c#6@2 d5 b5@2 c#5 a5@2", AF: "g5 g#5 e6@2 f#5 d6@2 e5 c#6@2 d5 b5@2 c#5 a5 ~",
  AG: "[a5,d#6,f#6]@15 ~", // D#dim
  AH: "~ [d#6,f6] [a5,b5,c6,c#6,d6] [d5,e5,f5,g5] [f2,g2,a2,d4,e4,f4,g4,a4,b4] [b2,c3,d3,e3] [f3,g3,a3,b3,c4] [d4,e4,f4,g4] [e5,b5,e6]@6 ~@2, [a#5,e6,g6] ~ c5 ~@5", // D#sus2 Em7 Cmaj7 F Em7 E5 Edim
  AI: "[[g#5,b5]@14 [g5,c#6]@18 [g#5,b5]@13 ~ [g5,c#6,g6]@18 [g#5,b5]@14 [g5,c#6]@17 ~, e6@95 ~]/6", // G#m Gdim G#m Gdim G#m Gdim
  AJ: "[b5,d6,e6,g6]@3 ~@3 [b5,d6,e6,g6]@3 ~@3 [b5,d6,e6,g6]@3 ~", AK: "~@2 [b5,d6,e6,g6]@3 ~@3 [b5,d6,e6,g6]@3 ~@5",
  AL: "[c#6,e6,a6]@3 [b5,g6]@5, ~@3 d6@4 ~", AM: "e6@3 d6@3 b5@2 a#5@3 a5@2 g5@2 ~, d#6 ~@15",
  AN: "[~@6 [b5,d6]@18 [c6,e6,f6] a6@2 [c6,d6,e6,f6] [e5,f5,g5,a5,b5] [g4,a4,b4,c5,d5] [b3,c4,d4,e4,f4] [e3,f3,g3,a3], e5@24 ~ b6 ~@6, ~@6 g6@21 ~@5]/2", // Bm Fmaj7 Dm7 Em G Bdim Fmaj7
  AO: "[a2,b2,c3,d3] g2 ~@14", // D7
})).s("gm_rock_organ").gain(0.72).pan(0.8)

// other · distortion guitar
const distortion_guitar = note("<~ A B C D E D@2 F@2 ~@57 G@3 H ~@37>".pickRestart({
  A: "~@4 e3 ~@2 e3!3 ~ e3!3 ~ e3", B: "e3!3 ~ e3!5 ~@3 e3 ~@2 e3", C: "e3 ~ e3 ~ e3!2 ~ e3!4 ~ e3!2 ~ e3",
  D: "e3!3 ~ e3!2 ~ e3!4 ~ e3!2 ~ e3", E: "e3!3 ~ e3!2 ~ e3!4 ~ e3!4", F: "[e3!3 ~ e3@16 ~@12]/2", G: "e4!16",
  H: "e4!9 ~@7",
})).s("gm_distortion_guitar").gain(0.08).pan(0)

// bass · electric bass finger
const bass = note(`<
  ~@5 A@2 B C D E D E D E D E D E D E D E D E F G H I H J H K L@2 D E D E D E D E F M H N O P Q N R S T@2 ~@12 U V W X Y
  N H Z AA AB H AC H AD Q AE Q AF H AD AG AH H AI H N H AJ H AK Y AL AM AN AO AP AQ AR AS@3
>`.pickRestart({
  A: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~", B: "e1 ~ e1 ~ e1 ~ e1@2 e1 ~ e1 ~ e1 ~ e1 ~",
  C: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1@4", D: "e1@4 ~ e1 b1@2 d2@2 b1@2 d2@2 b1@2",
  E: "e1@4 ~ e1 b1@2 d2@2 b1@2 a1@2 g1@2", F: "b1@2 b1@2 b1@2 b1 ~ b1 ~ b1 ~ b1 ~ b1@2",
  G: "c2 ~ c2 ~ c2 ~ c2@2 ~@4 e2@4", H: "e1 ~ e1 ~ e1 ~ e1 ~ e1@2 g1 ~ g1@2 g#1@2",
  I: "a1 ~ a1 ~ a1 ~ a1@2 a1@2 b1@2 g1@2 a1@2", J: "a1 ~ a1@2 c#2 ~ c#2@2 d2 ~ d2@2 d#2 ~ d#2 ~",
  K: "a1@2 a1 ~ a1 ~ a1@2 a1@2 b1@2 g1@2 a1@2", L: "[a1@3 g1@10 ~ e2@2]/2", M: "c2@5 ~@6 e1@5",
  N: "a1 ~ a1@2 c#2 ~ c#2@2 d2 ~ d2@2 d#2@2 e2@2", O: "e1 ~ e1 ~ e1 ~ e1 ~ e1@2 g1 ~ g1@2 g#1 ~",
  P: "a1@2 a1 ~ a1 ~ a1@2 a1 ~ b1@2 g1@2 a1@2", Q: "e1 ~ e1@2 e1 ~ e1 ~ e1@2 g1 ~ g1@2 g#1@2", R: "a1@3 g1@5",
  S: "e2@3 d2@3 b1@2 a#1@3 a1@3 g1@2", T: "[d2 ~@3 a1@28]/2", U: "d3 d#3 e3 ~ e3 ~ e3@2 d3 d#3 e3@2 e3 ~ e3@2",
  V: "d3 d#3 e3@2 e3 ~ e3@2 ~ d#3 e3 ~ e3 ~ e3@2, ~@4 d3 ~@3", W: "~ d#3 e3 ~ e3 ~ e3 ~ e3 d3 b2@2 a#2 a2 g2@2, d3 ~@7",
  X: "e2 ~ e2@2 e2 ~ e2@2 e2@2 ~@6", Y: "e1 ~ e1 ~ e1 ~ e1 ~ e1@2 g1@2 g1@2 g#1@2",
  Z: "a1@2 a2 ~ g2 e2 d2 ~ d2 e2 g2@2 e2@3 ~", AA: "e1@2 e1 ~ e1@2 e1 ~ e1@2 g1@2 g1@2 g#1@2",
  AB: "a1 ~ a1@2 c#2 ~ c#2@2 g2 ~ g2@2 f#2@2 d2@2", AC: "a1@2 c#2@2 d2 ~ d2@2 d#2@2 d#2@2 e2 ~ g2 a2",
  AD: "a1@2 a1@2 c#2 ~ c#2@2 d2 ~ d2@2 d#2@2 e2@2", AE: "a1@2 g3@2 g3@2 e3@2 d3 ~ b2 d3 g3@4",
  AF: "a1 ~ a1@2 c#2@2 c#2@2 d2 ~ d2@2 d#2@2 e2@2", AG: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", AH: "c2@5 ~@7 e2@4",
  AI: "a1@2 a1 ~ a1 ~ a1 ~ a1@2 b1@2 g1@2 a1@2", AJ: "a1 ~ a1@2 a1 ~ a1 ~ a1@2 b1@2 g1@2 a1@2",
  AK: "a1 ~ a3 g3 e3 g3 e3 g3 a3 g3 e3 d3 a3 g3 e3 d3", AL: "a1 ~ a1@2 c#2 ~ c#2@2 d2 ~ d2@2 d#2 ~ d#2@2",
  AM: "e2 ~ e2@2 g#2 ~ g#2@2 a2 ~ a2@2 a#2 ~ a#2@2", AN: "b2 ~ b2@2 c#2 ~ c#2@2 d2 ~ d2@2 d#2@2 d#2@2",
  AO: "e2 ~ e2@2 e1@2 e1@2 g1 ~ g1@2 g#1@2 g#1@2", AP: "a1@2 a1@2 c#2@2 c#2@2 d2 ~ d2@2 d#2 ~ d#2@2", AQ: "e2@6 d2@9 ~",
  AR: "e2@3 d2@2 b1@3 a#1@3 a1@2 g1@3, d#2 ~@15", AS: "[e1@24 ~@4 e2@7 ~@13]/3",
})).s("gm_electric_bass_finger").gain(0.59)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@9 A@16 B C A D A D A D E F A@8 B G A D A D A D H I J@2 ~@16 A D A D A D A D A D A D A D A D B G A D A D A D A D A D
  A D A D ~@5
>`.pickRestart({
  A: "[e3,g#3,b3]@2 ~ [e3,g#3,b3,e4] [e3,g#3]@2 e3@2 [e3,g#3,b3]@2 ~ [e3,g#3,b3,e4] [e3,g#3,b3,e4]@2 [e3,b3] ~, ~@4 e4@7 ~@5, ~ b3 ~@2", // E E5
  B: "[a3,d#4]@3 [f#3,a3,d#4]@2 [f#3,a3]!2 ~, f#3 ~@3", C: "[a#3,e4]@7 ~ [f#3,a3,d#4]@7 ~, g3 ~@3",
  D: "[e3,g3]@2 ~ [e3,g3,c#4,e4] [e3,g3,c#4]@2 ~@2 [e3,g3]@2 ~ [e3,g3,c#4,e4] [e3,g3,c#4,e4]@2 [e3,g3,c#4] ~, ~@4 e4@7 ~@5", // Em C#dim Em C#dim
  E: "[c#4,e4,a4]@3 [c#4,e4,a4]!2 ~ [b3,d4,g4]@4 d4@2 [b3,d4,g4]@3 [b3,d4,g4]", // A G
  F: "[b3,d4,g4]@3 [b3,d4,g4] [b3,d4,g4]@2 [b3,d4,g4]@9 ~", G: "[a#3,e4]@7 ~@9, g3 ~@3",
  H: "[a3,c#4,e4]@4 ~@2 [b3,d4]@6 [g3,b3,d4]@3 ~, ~@3 g3@2 ~@3", I: "e4@3 d4@3 b3@2 a#3@3 a3@3 g3@2, d#4 ~@15",
  J: "[[a3,d4,f#4] ~@3 [a3,c#4,e4]@25 ~@3]/2", // D A
})).s("gm_acoustic_guitar_steel").gain(0.25).pan(0.9)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@9 A@16 B C A D A D A D E ~ A@8 B C A D A D A D F ~@19 A D A D A D A D A D A D A D A D B C A D A D A D A D A D A D A
  D ~@5
>`.pickRestart({
  A: "~@2 [e3,g#3,b3] ~@3 g#3@2 ~@2 [e3,g#3,b3] ~@3 g#3 ~", B: "~@2 f#3 ~@2 d#4!2 ~", C: "~@4 g3@3 ~@9",
  D: "c#4@2 [e3,g3,c#4] ~@3 [e3,g3,c#4]@2 c#4@2 [e3,g3,c#4] ~@5", E: "~@10 [b3,g4]@2 ~@2 d4 ~",
  F: "~@4 [a3,c#4,e4] ~@5 g3@2 ~@4", // A
})).s("gm_acoustic_guitar_steel").gain(0.13).pan(0.9)

// chords · distortion guitar
const distortion_guitar_2 = note(`<
  ~@9 A B A B A B A B A B A C A B A B D E F@2 G@2 H@2 I@2 A B A C A B A B D J F@2 G@2 H@2 K L M@2 ~@16 N O P Q P R S T P
  U V R W R X Y Z AA AB@2 AC@2 AD@2 AE@2 AF@2 AE@2 AF@2 AG L AH@2 ~
>`.pickRestart({
  A: "[e3,b3,d4] ~@2 [e3,b3,d4] ~@2 [e3,a3,c#4] ~ [e3,g#3,b3] ~@7", // E7 A E
  B: "[e3,b3,d4]@2 e3 [e3,b3,d4] ~ [e3,b3,d4] [e3,a3,c#4]@2 [e3,g#3,b3] ~@7", // E7 A E
  C: "[e3,b3,d4]@2 e3 [e3,b3,d4] ~ [e3,b3,d4] [e3,a3,c#4]@2 [e3,g#3,b3] ~@3 [g#3,b3,e4]@2 ~@2", D: "[b2,f#3,b3]@15 ~",
  E: "[c3,e3,g3,a#3]", // C7
  F: "[[b3,e4,g#4]@12 ~@2 [a3,c#4,e4,g4]@9 ~ [a3,c#4,e4,g4]@2 ~ [a3,c#4,e4,g4]@2 [a3,c#4,e4,g4]@2 ~]/2", // E A7
  G: "[[b3,e4,g#4]@12 ~@2 [a3,c#4,e4,g4]@10 [a3,c#4,e4,g4]@2 ~ [a3,c#4,e4,g4]@2 [a3,c#4,e4,g4]@2 ~]/2", // E A7
  H: "[[b3,e4,g#4]@13 ~ [a3,c#4,e4,g4]@17 ~]/2", I: "[[c#4,e4,a4]@6 [b3,d4,g4]@25 ~]/2", J: "[c3,e3,g3,a#3] ~@7",
  K: "[c#4,e4,a4]@3 [b3,d4,g4]@5", L: "e4@3 d4@3 b3@2 a#3@3 a3@3 g3@2, d#4 ~@15",
  M: "[[a3,d4,f#4] ~@3 [a3,c#4,e4]@27 ~]/2", N: "[e3,g#3,b3,e4]", O: "[e3,g3,c#4,e4]@7 ~", P: "[e3,g#3,b3,e4]@15 ~",
  Q: "[e3,c#4,e4]@15 ~, g3@13 ~@3", R: "[e3,g3,c#4,e4]@15 ~", S: "[e3,g#3,b3,e4]@4 ~ [e3,g#3,b3,e4]@3",
  T: "[e3,g3,c#4,e4]@5 [e3,g3,c#4,e4]@2 ~", U: "[e3,g3,c#4,e4]@10 [e3,g3,c#4,e4]@5 ~",
  V: "[e3,g#3,b3,e4]@10 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@2 ~", W: "[e3,g#3,b3,e4]@9 ~ [e3,g#3,b3,e4]@5 ~",
  X: "[e3,g#3,b3,e4]@8 ~@2 [e3,g#3,b3,e4]@5 ~", Y: "[e3,g3,c#4,e4]", Z: "[b2,f#3,b3]@7 ~",
  AA: "[g3,c4]@10 [a3,b3] [e3,f3] [b2,c3,d3] [g2,a2] [e2,f2] ~, c3@9 ~@7", // C5 Asus2 Fmaj7 Bm Gsus2 Fmaj7
  AB: "[[b3,d4]@14 [a3,c#4,g4]@17 ~, g#4@3 ~@5]/2", AC: "[[b3,d4,g#4]@13 ~ [a3,c#4,g4]@18]/2",
  AD: "[[b3,d4,g#4]@12 ~@2 [a3,c#4,g4]@17 ~]/2", AE: "[[b3,d4,g#4]@13 ~ [a3,c#4,g4]@17 ~]/2",
  AF: "[[b3,d4,g#4]@13 ~ [a3,c#4]@18, ~@7 g4@8 ~]/2", AG: "e4@3 d4@5, d#4 ~@15", AH: "[[e2,b2,e3]@15 ~]/2",
})).s("gm_distortion_guitar").gain(0.11)

// chords · rock organ
const rock_organ_2 = note(`<
  ~@25 A B C@2 D E F@2 ~@12 G@2 H@2 I@2 J K L@2 M N@2 O P O P O P O P O P O P Q ~@37
>`.pickRestart({
  A: "[a5,d#6,f#6]", B: "[a#5,e6,g6]@5 ~@3", C: "[d#6 ~@13 [g5,c#6]@17 ~, e6]/2", D: "e6@13 ~ d#6 e6, d#6 ~@13 g6@2",
  E: "e6 [e6,g6] g6 [e6,g6]!3 e6 [e6,g6] g6 [e6,g6] g6!2 [e6,g6] [e6,g6]@2 ~, ~@5 e6 ~@2", // Em
  F: "[d#6 ~@13 [g5,c#6]@18, e6]/2", G: "[d#6 ~@13 g5@18, e6@31 ~, ~@7 c#6@8 ~]/2",
  H: "[d#6 ~@13 [c#6,g6]@18, e6@31 ~]/2", I: "[d#6 ~@13 [g5,c#6]@17 ~, e6@31 ~]/2", J: "[c#6,e6,a6]@3 [b5,d6,g6]@5",
  K: "e6@3 d6@3 b5@2 a#5@3 a5@3 g5 ~, d#6 ~@15", L: "[[d5,f#5,a5] ~ [c#5,e5,a5]@14]/2", M: "[g#5,d6]@15 ~",
  N: "[~ [g#5,d6], [g5,c#6]@9 ~@7]/2", O: "[g5,c#6]", P: "[g#5,d6]",
  Q: "[g5,c#6]@7 ~ [a#5,b5,e6]@2 ~ [b5,e6]@5, ~@11 a#5 ~@4", // Gdim E E5
})).s("gm_rock_organ").gain(0.23).pan(0.3)

// chords · rock organ
const rock_organ_3 = note("<~@53 A@2 B C B C B C B C B C B C B C B C ~@37>".pickRestart({
  A: "[[a4,d5,f#5] ~@3 [a4,c#5,e5]@28]/2", B: "[g#4,d5]", C: "[g4,c#5]",
})).s("gm_rock_organ").gain(0.05).pan(0.9)

// chords · overdriven guitar
const overdriven_guitar = note("<~@54 A@8 B@8 C ~@37>".pickRestart({
  A: "[~@16 g#4@12 ~@4 [c#4,g4]@15 ~ [d4,e4]@14 ~@2 g4@15 ~ g#4@13 ~@3 g4@14 ~@2 d4@15 a3, ~@15 [b3,d4]@15 ~ a3@15 ~ [e3,g#3]@15 a3@15 ~@2 [b3,d4]@15 ~ [a3,c#4]@15 ~ b3@15 ~@2, ~@63 c#4@15 ~@34 g#4@13 ~@3]/8", // C#dim Dsus2 Bm E Bm A
  B: "[[c#4,g4]@15 ~ d4@15 ~ c#4@15 ~ g#4@13 ~@3 g4@12 ~@4 g#4@13 ~@3 c#4@14 ~@2 d4@15 a3, ~@15 b3@15 ~ a3@14 ~@2 [b3,d4]@15 ~ a3@15 ~ [b3,d4]@15 ~ a3@14 ~@2 b3@15 ~@2, ~@16 g#4@13 ~@3 g4@13 ~@18 c#4@13 ~@20 g4@12 ~@4 g#4@13 ~@3]/8", // C#dim Bm
  C: "[c#4,g4] ~", // C#dim
})).s("gm_overdriven_guitar").gain(0.09).pan(0.2)

// drums · kick
const kick = s("bd").struct(`<
  ~@9 A B A B C B A B@2 D B@2 A E B A E F E B E D@2 E@3 D E D E D E@4 G E@8 F ~@17 E@17 G E@14 ~@3 H ~
>`.pickRestart({
  A: "x ~ x!3 ~ x!2", B: "x ~ x!3 ~ x ~", C: "x ~ x!5 ~", D: "x ~ x ~ x ~ x!2", E: "x!4", F: "x!2 ~@2", G: "x",
  H: "~@3 x",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct("<~@9 A@17 B A@17 C A@8 ~@17 D A@17 ~ A@16 ~@3>".pickRestart({
  A: "~@3 x!2 ~@6 x!2 ~@3", B: "~@3 x!2 ~@11", C: "~@4 x ~@2 x!3 ~ x ~@4", D: "x!9 ~@7",
})).gain(0.56)

// drums · low tom
const low_tom = s("lt").struct("<~@44 [~@12 x!2 ~ x] ~@61 [~@7 x!5 ~@4] ~>").gain(0.64)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@106 [~@3 x!4 ~@9] ~>").gain(0.32)

// drums · mid tom
const mid_tom = s("mt").struct("<~@65 A B ~@5 C ~@15 C ~@16 D E ~>".pickRestart({
  A: "~ x ~@6", B: "x ~@2 x ~@2 x ~@9", C: "~@8 x!8", D: "~@14 x!2", E: "x!3 ~@13",
})).gain(0.56)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@8 A ~ B@2 C D@3 E ~@3 F ~@3 G H I ~ J K L M N O P Q R S T U V W X ~@2 Y Z AA AB AC AD AE AF AG ~@10 R AH AI AJ AK AL
  AM AN AO AP AQ C AR AS AT AU AV AW AX AY AZ BA AR BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT ~@2
>`.pickRestart({
  A: "~@8 x!7 ~", B: "~@10 x!3 ~@3", C: "~@10 x!3 ~ x ~", D: "~@2 x!3 ~@5 x!3 ~@3", E: "~@2 x!3 ~ x!10", F: "~@7 x!8 ~",
  G: "~@4 x!4", H: "x", I: "~@2 x!3 ~ x ~ x!8", J: "~@3 x!13", K: "~@2 x ~@2 x!2 ~", L: "x ~@3 x ~@2 x!2 ~ x ~ x ~@3",
  M: "~@4 x ~@2 x!2 ~ x ~@5", N: "~ x!2 ~@2 x!2 ~", O: "~@4 x ~@2 x!2 ~ x ~ x ~@3", P: "~@4 x ~@3 x ~ x ~ x ~ x!2",
  Q: "~@3 x", R: "~@5 x ~@2", S: "~@10 x ~@4 x", T: "~@4 x!3 ~ x!2 ~@2 x!3 ~", U: "~@6 x ~@6 x ~@2",
  V: "~@7 x!2 ~ x ~@3 x ~", W: "~@7 x ~@6 x ~", X: "~@7 x ~@2 x ~ x ~@3", Y: "~@7 x ~@8",
  Z: "~@2 x!2 ~@2 x ~ x ~@2 x!3 ~@2", AA: "x ~@7 x ~@2 x!2 ~@3", AB: "x!2 ~ x!2 ~@3 x ~@2 x!2 ~ x ~",
  AC: "x ~@6 x!2 ~@7", AD: "~@2 x ~@2 x ~@2 x!2 ~ x!2 ~ x ~", AE: "x ~@3 x ~@5 x ~ x!2 ~ x",
  AF: "x ~@5 x ~ x!2 ~ x!2 ~ x ~", AG: "x!2 ~@2", AH: "~@9 x ~@6", AI: "~@11 x!2 ~@3", AJ: "~@9 x ~@5 x", AK: "x!2",
  AL: "x!3 ~ x!2 ~@4 x ~@5", AM: "x!9 ~@7", AN: "~@2 x ~ x!2 ~@4 x ~@3 x ~", AO: "x ~@2 x ~@12", AP: "~@3 x!2 ~@3",
  AQ: "x!2 ~ x ~@4 x!3 ~ x ~@3", AR: "~@8 x!2 ~ x!2 ~ x ~", AS: "x ~@7 x!2 ~ x!2 ~@3",
  AT: "x!2 ~ x ~ x!2 ~ x ~@3 x ~@3", AU: "~@7 x", AV: "~@4 x ~ x ~@2 x ~@2 x ~@3", AW: "~@4 x!2 ~@2",
  AX: "x ~ x ~ x!2 ~ x!2 ~ x ~ x!2 ~@2", AY: "~@6 x!3 ~@7", AZ: "x ~@2 x ~@2 x ~@9", BA: "x!2 ~ x!2 ~@4 x ~@2 x ~ x ~",
// … 60 more lines

More by Zucchero