Strudelify

Muoio per te

Zucchero

KeyG♯ minorTempo85 bpm
0:00/0:00
// Muoio per te — Zucchero
// 85 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 2 "SITAR" sitar (copy of ch 1 acoustic guitar steel)
// note: Full arrangement: all 79 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): NYLON STR.
setcpm(85/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 · acoustic guitar steel
const acoustic_guitar_steel = note("<A@4 B@6 C@3 ~@11 D@6 E@8 F@6 G@3 H@8 I@5 E@8 J@8 K@2 ~>".pickRestart({
  A: "[g#3@2 ~@3 g#3 ~@3 c#4@2 g#3 ~ g#3!2 ~@2 b3@2 c#4@2 g#3!2 ~@3 b3 ~ a#3@2 a#3 ~ g#3@2 ~@3 g#3 ~@3 c#4@2 d#4@2 g#3 ~@3 b3@2 c#4@2 g#3!2 ~@5 a#3@2 ~ c#4, ~@2 g#3@2 ~@2 g#3@2 g#3@3 ~@5 g#3@4 ~@4 g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@4 ~@2 g#3@2 g#3@4 ~@4 g#3@7 ~, ~@3 d#4@4 e4@4 d#4@4 d#4@2 ~@6 c#4@2 ~@2 c#4@3 ~ c#4@4 d#4@4 e4@5 ~@3 d#4@4 ~@4 c#4@3 b3@2 ~@2 a#3@2, ~@59 c#4@3 ~@2]/4",
  B: "[g#3@2 ~@3 g#3@3 g#3@2 ~@3 g#3 ~@3 c#4@2 g#3 ~ g#3!2 ~@2 b3@2 c#4@2 g#3!2 ~@3 b3 ~ a#3@2 a#3 ~ g#3@2 ~@3 g#3 ~@3 c#4@2 d#4@2 g#3 ~@3 b3@2 c#4@2 g#3!2 ~@5 a#3@2 ~ c#4 g#3@2 ~@3 g#3 ~@3 c#4@2 g#3 ~ g#3!2 ~@2 b3@2 c#4@2 g#3!2 c#4, ~@2 g#3@2 ~@6 g#3@2 ~@2 g#3@2 g#3@3 ~@5 g#3@4 ~@4 g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@4 ~@2 g#3@2 g#3@4 ~@4 g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@3 ~@5 g#3@4 ~@4, ~@3 d#4@4 ~@4 d#4@4 e4@4 d#4@4 d#4@2 ~@6 c#4@2 ~@2 c#4@3 ~ c#4@4 d#4@4 e4@5 ~@3 d#4@4 ~@4 c#4@3 b3@2 ~@2 a#3@2 ~@24, ~@67 c#4@3 ~@5 d#4@4 e4@4 d#4@4 d#4@2 ~@7]/6",
  C: "[~@2 b3 ~ a#3@2 a#3 ~ g#3@2 ~@3 g#3 ~@3 c#4@2 d#4@2 g#3 ~@3 b3@2 c#4@2 g#3!2 ~@5 a#3@2 ~ c#4 ~@8, g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@4 ~@2 g#3@2 g#3@4 ~@4 g#3@7 ~@9, ~@3 c#4@3 ~ c#4@4 d#4@4 e4@5 ~@3 d#4@4 ~@4 c#4@3 b3@2 ~@2 a#3@2 ~@8, ~@35 c#4@3 ~@10]/3",
  D: "[~@8 g#3@2 ~@3 g#3 ~@3 c#4@2 g#3 ~ g#3!2 ~@2 b3@2 c#4@2 g#3!2 ~@3 b3 ~ a#3@2 a#3 ~ g#3@2 ~@3 g#3 ~@3 c#4@2 d#4@2 g#3 ~@3 b3@2 c#4@2 g#3!2 ~@5 a#3@2 ~ c#4 g#3@2 ~@3 g#3 ~@3 c#4@2 g#3 ~ g#3!2 ~@2 b3@2 c#4@2 g#3!2 c#4, ~@10 g#3@2 ~@2 g#3@2 g#3@3 ~@5 g#3@4 ~@4 g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@4 ~@2 g#3@2 g#3@4 ~@4 g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@3 ~@5 g#3@4 ~@4, ~@11 d#4@4 e4@4 d#4@4 d#4@2 ~@6 c#4@2 ~@2 c#4@3 ~ c#4@4 d#4@4 e4@5 ~@3 d#4@4 ~@4 c#4@3 b3@2 ~@2 a#3@2 ~@24, ~@67 c#4@3 ~@5 d#4@4 e4@4 d#4@4 d#4@2 ~@7]/6",
  E: "[~@2 b3 ~ a#3@2 a#3 ~ g#3@2 ~@3 g#3 ~@3 c#4@2 d#4@2 g#3 ~@3 b3@2 c#4@2 g#3!2 ~@5 a#3@2 ~ c#4 g#3@2 ~@3 g#3 ~@3 c#4@2 g#3 ~ g#3!2 ~@2 b3@2 c#4@2 g#3!2 ~@3 b3 ~ a#3@2 a#3 ~ g#3@2 ~@3 g#3 ~@3 c#4@2 d#4@2 g#3 ~@3 b3@2 c#4@2 g#3!2 ~@5 a#3@2 ~ c#4 g#3@2 ~@3 g#3 ~@3 c#4@2 g#3 ~ g#3!2 ~@2 b3@2 c#4@2 g#3!2 c#4, g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@4 ~@2 g#3@2 g#3@4 ~@4 g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@3 ~@5 g#3@4 ~@4 g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@4 ~@2 g#3@2 g#3@4 ~@4 g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@3 ~@5 g#3@4 ~@4, ~@3 c#4@3 ~ c#4@4 d#4@4 e4@5 ~@3 d#4@4 ~@4 c#4@3 b3@2 ~@2 a#3@2 ~@58 b3@2 ~@2 a#3@2 ~@24, ~@35 c#4@3 ~@5 d#4@4 e4@4 d#4@4 d#4@2 ~@6 c#4@2 ~@2 c#4@3 ~ c#4@4 d#4@4 e4@5 ~@3 d#4@4 ~@4 c#4@3 ~ c#4@3 ~@5 d#4@4 e4@4 d#4@4 d#4@2 ~@7]/8",
  F: "[~@2 b3 ~ a#3@2 a#3 ~ g#3@2 ~@3 g#3 ~@3 c#4@2 d#4@2 g#3 ~@3 b3@2 c#4@2 g#3!2 ~@5 a#3@2 ~ c#4 ~ b3@2 c#4@2 g#3@2 c#4@2 b3@2 c#4@2 g#3@2 c#4@2 b3@2 c#4@2 g#3@2 d#4@2 a#3@2 d#4@2 a#3@2 ~ g#3@2 ~@3 g#3 ~@3 c#4@2 g#3 ~ g#3!2 ~@9, g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@4 ~@2 g#3@2 g#3@4 ~@4 g#3@7 ~@35 g#3@2 ~@2 g#3@2 g#3@3 ~@13, ~@3 c#4@3 ~ c#4@4 d#4@4 e4@5 ~@3 d#4@4 ~@4 c#4@3 b3@2 ~@2 a#3@2 ~@56, ~@35 c#4@3 ~@37 d#4@4 e4@4 d#4@4 ~@9]/6",
  G: "[~@10 b3 ~@2 b3@11 g3@2 b3 ~@4 g3@9 ~@2 b3 ~@2 b3@2 g#3, ~@8 f#3@16 ~@5 b3@10 ~ g#3@5 ~@3, ~@11 c#4@13 ~@3 c#4@13 ~@3 c#4@5]/3",
  H: "[~@2 b3@2 ~@2 b3@2 ~@2 b3 ~@2 b3@2 ~@3 b3@2 ~@2 b3@2 ~@2 b3 ~@2 b3@2 ~@3 b3@2 c#4@2 b3@2 ~@2 b3 c#4@2 ~@5 b3@2 c#4@2 b3@2 ~@2 b3 c#4@2 b3@2 ~@3 b3@2 c#4@2 b3@2 ~@2 b3 c#4@2 b3@2 ~@3 b3@2 c#4@2 b3@2 [d#3,g3]@27 ~@5 g#3@2 ~@3 g#3 ~ e4, ~@4 c#4@4 a3@5 ~@2 a3@7 ~@2 g#3@6 ~ g#3@9 f#3@6 ~ f#3@8 ~ e3@7 e3@9 f3@7 f3@9 ~@34 g#3@2 ~@2 g#3@2, ~@11 c#4@7 ~@2 c#4@4 ~@3 c#4@5 ~@13 b3@4 ~@74 d#4@4 ~]/8", // D#
  I: "[~ c#4@2 g#3 ~ g#3!2 ~@2 b3@2 c#4@2 g#3!2 ~@3 b3 ~ a#3@2 a#3 ~ g#3@2 ~@3 g#3 ~@3 c#4@2 d#4@2 g#3 ~@3 b3@2 c#4@2 g#3!2 ~@5 a#3@2 ~ c#4 g#3@2 ~@3 g#3 ~@3 c#4@2 g#3 ~ g#3!2 ~@2 b3@2 c#4@2 g#3!2 c#4, g#3@3 d#4@4 d#4@2 ~@6 c#4@2 ~@2 c#4@3 ~ c#4@4 d#4@4 e4@5 ~@3 d#4@4 ~@4 c#4@3 b3@2 ~@2 a#3@2 ~@24, ~@8 g#3@4 ~@4 g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@4 ~@2 g#3@2 g#3@4 ~@4 g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@3 ~@5 g#3@4 ~@4, ~@51 c#4@3 ~@5 d#4@4 e4@4 d#4@4 d#4@2 ~@7]/5",
  J: "[~@2 b3 ~ a#3@2 a#3 ~ g#3@2 ~@3 g#3 ~@3 c#4@2 d#4@2 g#3 ~@3 b3@2 c#4@2 g#3!2 ~@5 a#3@2 ~ c#4 ~ b3@2 c#4@2 g#3@2 c#4@2 b3@2 c#4@2 g#3@2 c#4@2 b3@2 c#4@2 g#3@2 d#4@2 a#3@2 d#4@2 a#3@2 ~@2 b3@2 c#4@2 g#3@2 c#4@2 b3@2 c#4@2 g#3@2 c#4@2 b3@2 c#4@2 g#3@2 d#4@2 a#3@2 d#4@2 a#3@2 ~@2 b3@2 c#4@2 g#3@2 c#4@2 b3@2 c#4@2 g#3@2 c#4@2 b3@2 c#4@2 g#3@2 d#4, g#3@7 ~@3 g#3@2 ~@2 g#3@2 g#3@4 ~@2 g#3@2 g#3@4 ~@4 g#3@7 ~@89, ~@3 c#4@3 ~ c#4@4 d#4@4 e4@5 ~@3 d#4@4 ~@4 c#4@3 b3@2 ~@2 a#3@2 ~@88, ~@35 c#4@3 ~@90]/8",
  K: "[~ a#3@2 d#4@2 a#3@2 ~ g#3@2 ~@3 g#3 ~@3 c#4@2 g#3 ~ g#3!2 ~@9, ~@10 g#3@2 ~@2 g#3@2 g#3@3 ~@13, ~@11 d#4@4 e4@4 d#4@4 ~@9]/2",
})).s("gm_acoustic_guitar_steel").gain(0.18)

// bass · acoustic bass · "BASSO"
const bass = note(`<
  ~@4 A B C D C E C F C B C D C E C G H I J K L B C D C E C F C B C D C E C G H I J K M@5 N@6 B C D C E C F C B C D C E
  C G H I J I J I J K O
>`.pickRestart({
  A: "~@7 g#1 g#1@5 ~@2 g#1", B: "b1@5 ~@2 d#2 e1@5 ~@2 e1", C: "~@2 e1@2 d#1@4 g#1@5 ~@2 g#1",
  D: "b1@5 ~@2 d#2 e1@4 ~@3 e1", E: "b1@4 ~@3 d#2 e1@5 ~@2 e1", F: "b1@5 ~@2 d#2 e1@6 ~ e1", G: "b1@5 ~@2 d#2 a#2@8",
  H: "~ d#2 g#2@2", I: "c#3 d3", J: "d#3 g#2", K: "f#2@7 d#3 e2@4 d#2@4", L: "g#2@2 ~@2 d#2@3 ~ g#1@5 ~@2 g#1",
  M: "[g#2@2 ~@6 b1@14 ~ f#2 g2@14 ~ g2 g#2@14 ~ g#2 a2@14 ~ a2 e2@8]/5",
  N: "[~@8 d#2@16 c#2@16 d2@16 d#2@28 ~@4 g#1@5 ~@2 g#1]/6", O: "g#2 ~@7",
})).s("gm_acoustic_bass").gain(0.42)

// chords · tremolo strings · "ARCHI"
const tremolo_strings = note(`<
  ~@4 A B C B C B C B C B C B C B C D E F G H I B C B C B C B C B C B C B C D E F G H J K L M N O P Q R@3 B C B C B C B
  C B C B C B C D E F S F S F G H T
>`.pickRestart({
  A: "~@8 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~", // G#m
  B: "[b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3", // G#m
  C: "[b3,d#4,g#4] ~ [b3,d#4,g#4] ~ [c#4,e4,b4]@2 a#4 ~ [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~", // G#m C#m7 G#m
  D: "[b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~ [d#4,a#4] ~ [d#4,a#4] ~@3 [d#4,a#4] ~", // G#m D#5
  E: "[d#4,a#4] ~@3 [d#4,b4]@2 a#4 ~ [e4,g#4,b4] ~@3 [e4,g#4,b4] ~@3", // D#5 G#m E
  F: "[e4,g#4,c#5] ~@3 [e4,g#4,b4,c#5] ~@3 [f4,g#4,d5] ~@3 [f4,g#4,d5] ~@3", // C#m C#m7 Ddim
  G: "[g4,a#4,c#5,d#5] ~@3 [g4,a#4,d#5] ~@3 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~", // D#7 D# G#m
  H: "[b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~ [b3,d#4,g#4] ~ [b3,d#4,g#4] ~ [a#3,d#4,g4]@4", // G#m D#
  I: "[b3,g#4] ~@7 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~", J: "[b3,g#4] ~@7 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@5",
  K: "~@6 [d#4,f#4,b4]@2 g4 ~ [d#4,g4,b4] ~@5", L: "~@6 [d#4,g4,b4]@2 g#4 ~ [d#4,g#4,b4] ~@5",
  M: "~@6 [g#4,b4]@2 [e4,a4] ~ [c#4,e4,a4] ~@5, ~@6 d#4 ~@9", N: "~@6 [c#4,e4,a4]@2 [b3,g#4] ~ [b3,e4,g#4] ~@5",
  O: "~@6 [b3,e4,g#4]@2 [d#4,f#4] ~ [b3,d#4,f#4] ~@5", P: "~@6 [b3,d#4,f#4]@2 [c#4,e4] ~ [b3,c#4,e4] ~@5",
  Q: "~@6 [b3,c#4,e4]@2 [b3,c#4,f4] ~ [b3,c#4,f4] ~@5", // C#m7 C#7
  R: "[~@4 [b3,c#4,f4]@4 [a#3,d#4,g4]@26 ~@6 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~]/3", // C#7 D# G#m
  S: "[g4,a#4,c#5,d#5] ~@3 [g4,a#4,d#5] ~@3 [e4,g#4,b4] ~@3 [e4,g#4,b4] ~@3", T: "[b3,g#4] ~@15",
})).s("gm_tremolo_strings").gain(0.4)

// other · banjo
const banjo = note("<~@4 A@2 B@2 C@2 D@2 E ~@63 F@2 G>".pickRestart({
  A: "[~@7 [c#5,d#5,c#6] [e5,d#6,e6] [d#5,d#6] [c#5,c#6] [e5,e6] [d#5,d#6]@10 ~@2 [f#5,f#6]@6 ~ [e5,e6]]/2", // C#sus2 Emaj7 D# C# E D# F# E
  B: "[[d#5,d#6]@3 [e5,e6] [d#5,d#6]@2 [c#5,c#6] ~ [e5,e6] [d#5,d#6] [c#5,c#6] [e5,e6] [d#5,d#6]@8 ~@4 [b4,b5]@6 ~ [c#5,c#6]]/2", // D# E D# C# E D# C# E …
  C: "[[b4,b5]@3 [c#5,c#6] [b4,b5]@2 [a#4,a#5] ~ [e5,e6] [d#5,d#6] [c#5,c#6] [e5,e6] [d#5,d#6]@11 ~ [f#5,f#6]@7 [e5,e6]]/2", // B C# B A# E D# C# E …
  D: "[[d#5,d#6]@3 [e5,e6] [d#5,d#6]@2 [c#5,c#6] ~ [d#5,e5,e6] [d#5,d#6] [c#5,c#6] [e5,e6] [d#5,d#6]@10 ~@2 [b4,b5]@7 [c#5,c#6]]/2", // D# E D# C# Emaj7 D# C# E …
  E: "[b4,b5]@3 [c#5,c#6] [b4,b5]@2 [a#4,a#5] ~@9", // B C# B A#
  F: "[~@8 [e5,e6] [d#5,d#6] [c#5,c#6] [e5,e6] [d#5,d#6]@9 ~@3 [b4,b5]@3 [c#5,c#6] [a#4,a#5]@4]/2", G: "[g#4,g#5] ~@15",
})).s("gm_banjo").gain(0.3)

// other · celesta
const celesta = note("<~@5 A B ~ C@2 D@2 E ~@66>".pickRestart({
  A: "~@15 g#6", B: "~ d#6@2 c#6 ~ e6 ~ d#6 ~ g#5@4 ~@3", C: "[~ d#6@3 ~ e6 ~ d#6@2 g6@2 g#6@7 ~@13 g#6]/2",
  D: "[~ d#6@3 ~ e6 ~ d#6 ~ g5@2 g#5@11 ~@7 c#7 ~ b6]/2", E: "~ d#6 ~ c#6@2 e6@2 d#6 ~@8",
})).s("gm_celesta").gain(0.25)

// chords · synth strings 1 · "SYN.STRING"
const synth_strings_1 = note("<~@44 A@8 B@3 ~@24>".pickRestart({
  A: "[~@8 f#4@16 g4@16 g#4@15 ~ a4@16 g#4@16 [d#4,f#4]@15 ~ e4@16 [b3,f4]@8, ~@8 [d#4,b4]@47 ~ b4@64 ~@8, ~@56 e4@31 ~@17 c#4@15 ~@9]/8", // D#m Bdim G#m
  B: "[~@4 [d#4,g4]@13 ~@7]/3", // D#
})).s("gm_synth_strings_1").gain(0.21)

// other · soprano sax · "SAX"
const soprano_sax = note("<~@53 A B ~@7 C@3 D E F G H I ~@5 J@2 K>".pickRestart({
  A: "~@14 d#4 e4", B: "d#5 c#5 f#4 g4 f#5 e5@2 c#5 d#5@7 ~", C: "[~@8 d#5@12 c#5@4 a#4@15 b4 g#4@7 ~]/3",
  D: "~ b4 g#4 d#5 a#4 b4 d#5 f#5@2 g5!2 a#5!2 b5!2 a#5",
  E: "c#6@3 [a#5,b5] g5@2 ~ e5 d#5@2 g#5@2 ~@3 d#5, b5 ~@3 g#5 ~@11", // Bmaj7
  F: "c#5 g#5 d#5 c#5 g#5@2 d#5 g#5 b4@2 ~ b4@2 ~ a#4!2, ~@5 g#5 ~@2",
  G: "a#4@2 g#4 a#4 [a#4,b4] a#4 g#4 f#4 d#4 ~ a#4 g#4@3 ~@2", H: "~@2 d#4 a#4 g#4@3 c#4 d#4 f#4 e4@4 c#4 d#4",
  I: "e4 f#4 d#4 c#4 b3@3 a#3 g#3@4 ~@4", J: "[~@8 e5 d#5 c#5 e5 d#5@6 ~@6 b4@3 c#5 a#4@4]/2", K: "g#4 ~@7",
})).s("gm_soprano_sax").gain(0.31)

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

// drums · snare
const snare = s("sd").struct("<~@4 A@20 B A@19 B A@7 C ~ B A@23 ~>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~ x ~@2",
})).gain(0.32)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@5 A B C D E F G H A B C I A B C I A B C ~ A B C D E F G H A B C I A B C I A B C ~ A B C D E F G H ~@2 A B C D E F G
  H A B C I A B C I A ~ A ~ A B C ~
>`.pickRestart({
  A: "~@5 x ~ x ~@8", B: "~@8 x!3 ~@2 x ~@2", C: "~@7 x ~@7 x", D: "~@5 x ~@5 x ~@4", E: "~ x ~ x ~@5 x ~@5 x",
  F: "~ x ~@5 x ~ x ~@6", G: "~@3 x ~@7 x ~@3 x", H: "~@3 x ~@12", I: "~@5 x ~@10",
})).gain(0.07)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@6 A ~ B ~ B ~ A ~ A ~ B ~ A ~ B ~ A ~@3 A ~ B ~ B ~ A ~ A ~ B ~ A ~ B ~ A ~@3 A ~ B ~ B ~ A ~@3 A ~ B ~ B ~ A ~ A ~
  B ~ A ~ B ~ A ~ A ~ A ~@2
>`.pickRestart({
  A: "~@7 x ~@8", B: "~@3 x ~@12",
})).gain(0.25)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct(`<
  ~@6 A ~@7 A ~@3 A ~@3 A ~@3 A ~@7 A ~@3 A ~@3 A ~@3 A ~@9 A ~@7 A ~@3 A ~@7 A ~@2
>`.pickRestart({
  A: "~@3 x",
})).gain(0.14)

// drums · ride
const ride = s("rd").struct("<~@20 A B@3 C ~@15 A B@3 D B@7 E ~@17 A B@7 C>".pickRestart({
  A: "~@2 x!2", B: "x!4", C: "x", D: "x ~ x!2", E: "x!3 ~",
})).gain(0.22)

// drums · congas
const congas = s("conga:33").struct(`<
  ~@4 A B C B C B C B D B C B C B C B C B C B E B C B C B C B D B C B C B C B C B C B E B C B C B C B F ~ A B C B C B C
  B D B C B C B C B C B C B C B C B G
>`.pickRestart({
  A: "~@8 x!2 ~ x!3 ~ x", B: "x!2 ~ x!3 ~ x!3 ~ x!3 ~ x", C: "x!6 ~ x!3 ~ x!3 ~ x", D: "x!6 ~@2 x!2 ~ x!3 ~ x",
  E: "x ~@6 x!3 ~ x!3 ~ x", F: "x!6 ~@10", G: "x",
})).gain(0.69)

stack(
  acoustic_guitar_steel, bass, tremolo_strings, banjo, celesta, synth_strings_1, soprano_sax, kick, snare, hihat,
  hihat_soft, open_hat, open_hat_soft, ride, congas
)

More by Zucchero