Strudelify
Con le mani cover art

1987 · Blue's

Con le mani

Zucchero

KeyE majorTempo113 bpm
0:00/0:00
// Con le mani — Zucchero
// 113 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: bank select 127 (Roland MT-32 map) read through the MT-32 patch table: ch 8 "Trumpet" Trumpet 2 -> trumpet
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 130 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(113/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 · piano · "Ac Piano"
const piano = note(`<
  ~@8 A B@2 C@2 D@2 E@2 F@2 G@2 H@2 C@2 I@2 B@2 F@2 J K L K M N O@2 B@4 P Q R S T@2 U ~@4 A V@2 W@2 X@2 Y@2 Z@2 AA@2 Z@2
  J K L K M N O@2 B@4 P Q R S T@2 U ~@8 N F@2 AB@2 AC@2 AD K L K M N O@2 B@4 P AE AF@2 AG@2 AH@2 ~@7
>`.pickRestart({
  A: "[g#3,b3,e4]@15 ~", B: "[[g3,b3,d4]@7 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [g#3,b3,e4]@17 ~]/2",
  C: "[[g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [g#3,b3,e4]@18]/2", // G A E
  D: "[[g3,b3,d4,e4]@7 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [g#3,b3,e4]@17 ~]/2", // Em7 A E
  E: "[[g3,b3,d4]@7 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [g#3,b3,e4]@18]/2", // G A E
  F: "[[g3,b3,d4]@7 ~ [e3,a3,c#4] ~ [e3,a3,c#4]@3 ~ [e3,g#3,b3]@17 ~]/2", // G A E
  G: "[[g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [g#3,b3,e4]@17 ~]/2", // G A E
  H: "[[g3,b3,d4]@7 ~ [e3,f3,a3,c#4] ~ [e3,a3,c#4]@3 ~ [e3,g#3,b3]@10 ~@2 a3 g3 ~@2 e3 ~, ~@13 e4 g#3 ~, ~@29 b3@2 ~]/2", // G A E
  I: "[[g3,b3,d4]@7 ~ [e3,a3,b3,c#4] ~ [e3,a3,b3,c#4]@3 ~ [e3,g#3,b3]@17 ~]/2", // G A E
  J: "[g3,b3,d4]@7 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@5 ~", K: "[f#3,b3,d#4]@15 ~", L: "[a3,c#4], e3@7 ~", M: "[f#3,a3,c#4]",
  N: "[g#3,b3,e4]@7 ~", O: "[[g3,b3,d4]@7 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [g#3,b3,e4]@15 ~@3]/2",
  P: "[g3,b3,d4]@7 ~ [f#3,a3,d4]@7 ~", Q: "[a3,c#4,e4]@15 ~", R: "[g3,c4,e4]@7 ~ [a3,d4,f#4]@7 ~", S: "[a3,c#4,e4]",
  T: "[[g3,c4,e4]@7 ~ [a3,d4,f#4]@6 [b3,e4,g#4]@18]/2", U: "[g3,b3,d4]@7 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@6",
  V: "[[g3,b3,d4]@7 ~ [e3,b3,c#4] ~ [e3,b3,c#4]@3 ~ [g#3,b3]@17 ~, ~@14 e3@15 ~@3]/2", // G C#m7 G#m
  W: "[[g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [e3,a3,c#4] ~ [e3,a3,c#4]@3 ~ [e3,g#3,b3]@11 ~ [b3,e4] ~@5]/2", // G A E E5
  X: "[[g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [e3,b3,c#4] ~ [e3,b3,c#4]@3 ~ [e3,g#3,b3]@9 ~@3 [g4,b4] g#4 e4 ~ e5 ~]/2", // G C#m7 E G
  Y: "[[g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [e3,b3,c#4] ~ [e3,b3,c#4]@3 ~ [g#3,b3]@18, ~@7 e3@8 ~]/2", // G C#m7 G#m
  Z: "[[g3,b3,d4]@7 ~ [e3,b3,c#4] ~ [e3,b3,c#4]@3 ~ [e3,g#3,b3]@17 ~]/2", // G C#m7 E
  AA: "[[g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [e3,b3,c#4] ~ [e3,b3,c#4]@3 ~ [e3,g#3,b3]@17 ~]/2", // G C#m7 E
  AB: "[[g3,b3,d4,e4]@4 [g3,b3,d4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [g#3,b3,e4]@9 ~@3 [b4,e5] ~ [a4,e5] ~ [g4,e5] g#4]/2", // Em7 A E E5 A5 C
  AC: "[~@8 [e3,a3,c#4] ~ [e3,a3,c#4]@3 ~ [e3,g#3,b3]@17 ~]/2", AD: "[g3,b3,d4]@7 ~ [e3,a3,c#4] ~ [e3,a3,c#4]@4 ~@2",
  AE: "[c#4,e4,a4]@15 ~", // A
  AF: "[[g3,c4,e4]@7 ~ f#4@2 g4@3 ~ c#4@4 ~@8 a3@5 ~, ~@8 [a3,d4]@5 ~ [e4,a4]@17 ~, ~@18 c#4@13 ~, ~@10 a3@3 ~@3, ~@22 b3@9 ~]/2", // C D5 A5
  AG: "[[g3,c4,e4]@7 ~ [a3,d4,f#4]@5 ~ [g#3,b3,e4]@18]/2", // C D E
  AH: "[[g3,d4]@7 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@5 ~@17, b3@9 ~@7]/2", // G5 A
})).s("gm_piano").gain(0.52).pan(0.8)

// bass · electric bass finger · "El Bass"
const bass = note(`<
  A@2 B@2 A@2 C@2 ~@24 D@2 E F ~@14 A@2 C@2 ~@16 D@2 E F ~@14 A@2 B@2 A@2 C@2 ~@8 D@2 E F ~@14 A@2 B@2 A@2 G@2
>`.pickRestart({
  A: "[b1 c#2 e2 c#2 e2 ~@2 g1@2 b1 d2 ~ f#1 a1 c#2 ~]/2", B: "[b1 c#2 e2 c#2 e2 d#2 e2 g1@9]/2",
  C: "[b1@2 c#2@2 e2@2 c#2@2 e2@2 d#2@2 e2@2 g1@15 ~@2 d2]/2", D: "b1@5 ~ b1 ~ b1@7 ~", E: "b1@5 ~ b1 ~ b1@8",
  F: "f#1@3 ~ f#1@4 a1@4 b1@3 ~", G: "[b1 c#2 e2 c#2 e2 d#2 e2 e1@4 ~@5]/2",
})).s("gm_electric_bass_finger").gain(0.64)

// other · distortion guitar · "El Guit"
const distortion_guitar = note(`<
  A@2 B@2 A@2 C@2 ~@24 D E D E ~@14 A@2 C@2 ~@16 D E D E ~@14 A@2 B@2 A@2 C@2 ~@8 D E D E ~@14 A@2 F@2 A@2 G ~
>`.pickRestart({
  A: "[b2 c#3 e3 c#3 e3 ~@2 g2@2 b2 d3 ~ f#2 a2 c#3 ~]/2", B: "[b2 c#3 e3 c#3 e3 ~@2 [b3,d4,e4]@8 ~]/2",
  C: "[b2 c#3 e3 c#3 e3 ~@2 [b3,d4,e4]@9]/2", D: "b3@15 ~", E: "a3", F: "[b2 c#3 e3 c#3 e3 ~@2 [b3,d4,f#4]@9]/2",
  G: "b2 c#3 e3 c#3 e3 ~@3",
})).s("gm_distortion_guitar").gain(0.46).pan(0.4)

// other · distortion guitar · "El Guit" · soft notes
const distortion_guitar_soft = note("<~@32 A B A C ~@34 A B A C ~@30 A B A C ~@22>".pickRestart({
  A: "[f#3,d#4]@15 ~", B: "c#4, e3@7 ~", C: "[c#4,e4]",
})).s("gm_distortion_guitar").gain(0.26).pan(0.4)

// other · brass section · "Brass"
const brass_section = note(`<
  A@2 B@2 A@2 C@2 ~@24 D@2 E@2 F G H@2 I G J@2 ~@4 F K A@2 C@2 ~@16 D@2 E@2 F G H@2 I G J@2 ~@4 F K A@2 B@2 L@2 C@2 ~@8
  D@2 E@2 F G H@2 I G J@2 ~@4 F K A@2 M@2 L@2 N@2
>`.pickRestart({
  A: "[[b3,b4]@2 [c#4,c#5]@2 [e4,e5]@2 [c#4,c#5]@2 [e4,e5] ~@5 [g3,g4]@4 [b3,b4]@2 [d4,d5] ~@3 [f#3,f#4]@2 [a3,a4]@2 [c#4,c#5] ~@3]/2", // B C# E C# E G B D …
  B: "[[b3,b4]@2 [c#4,c#5]@2 [e4,e5]@2 c#4@2 [e4,e6]@2 [d#4,d#5,d#6]@2 [e4,e5,e6] ~ [d4,a4,d5,e5,a5]@16 ~@2, ~@6 c#5 ~ e5 ~@23]/2", // B C# E D# E Dsus2
  C: "[[b3,b4]@2 [c#4,c#5]@2 [e4,e5]@2 c#4@2 [e4,e6]@2 [d#4,d#5,d#6]@2 [e4,e5,e6] ~ [d4,a4,d5,e5,a5]@18, ~@6 c#5 ~ e5 ~@23]/2", // B C# E D# E Dsus2
  D: "[[b3,b4]@31 ~]/2", E: "[[b3,b4,b5]@25 ~ [a3,a4,a5] ~ [a#3,a#4,a#5] [b3,b4,b5] ~@2]/2", F: "[e4,e5]",
  G: "[d4,d5] [c#4,c#5]", H: "[[b3,b4]@3 [a3,a4]]/2", I: "[g#3,g#4]", J: "[b3,b4]/2", K: "[d4,d5]@8 [c#4,c#5]@7 ~",
  L: "[[b3,b4]@2 [c#4,c#5]@2 [e4,e5]@2 [c#4,c#5]@2 e5@2 ~@4 [g3,g4]@4 [b3,b4]@2 [d4,d5] ~@3 [f#3,f#4]@2 [a3,a4]@2 [c#4,c#5] ~@3, ~@8 e4 ~@23]/2", // B C# E C# G B D F# …
  M: "[[b3,b4]@2 [c#4,c#5]@2 [e4,e5]@2 c#4@2 [e4,e6]@2 [d#4,d#5,d#6]@2 [e4,e5,e6] ~ [f#4,b4,d5,f#5]@18, ~@6 c#5 ~ e5 ~@23]/2", // B C# E D# E Bm
  N: "[[b3,b4]@2 [c#4,c#5]@2 [e4,e5]@2 c#4@2 [e4,e6]@2 [d#4,d#5,d#6]@2 [e4,e5,e6] ~ [e4,e5,e6]@5 ~@13, ~@6 c#5 ~ e5 ~@23]/2", // B C# E D# E
})).s("gm_brass_section").gain(0.35)

// other · synth strings 1 · "Synthstr"
const synth_strings_1 = note("<~@54 A B@4 C@3 A B@4 D@3 ~@26 A B@4 E@3 ~@26>".pickRestart({
  A: "e4", B: "[d4@4 c#4@3 b3@13 a3@3 g#3@9]/4", C: "[d4@8 c#4@5 b3@34 ~]/3", D: "[d4@4 c#4@3 b3@17]/3",
  E: "[d4@8 c#4@5 b3@35]/3",
})).s("gm_synth_strings_1").gain(0.48).pan(0.4)

// other · trumpet
const trumpet = note(`<
  A@2 B@2 C@2 D@2 ~@26 E@2 F G H@2 I G J@2 ~@4 F K L@2 D@2 ~@18 E@2 F G H@2 I G J@2 ~@4 F K L@2 B@2 A@2 D@2 ~@10 E@2 F G
  H@2 I G J@2 ~@4 F M A@2 N@2 O@2 P@2
>`.pickRestart({
  A: "[b4 c#5 e5 c#5 e5 ~@2 g4@2 b4 d5 ~ f#4 a4 c#5 ~]/2", B: "[b4@2 c#5@2 e5@2 c#5 ~ e6@2 d#6@2 e6 ~ a4@17 ~]/2",
  C: "[b4@2 c#5@2 e5@2 c#5@2 e5@2 ~@4 g4@4 b4@2 d5 ~@3 f#4@2 a4@2 c#5 ~@3]/2",
  D: "[b4@2 c#5@2 e5@2 c#5 ~ e6@2 d#6@2 e6 ~ a4@5 ~ a4@3 [g5,g#5] a5@7 ~]/2", E: "[b5@25 ~ a5 ~ a#5 b5@2 ~]/2", F: "e5",
  G: "d5 c#5", H: "[b4@3 a4]/2", I: "g#4", J: "b4/2", K: "d5@8 c#5@7 ~",
  L: "[b4@2 c#5@2 e5@2 c#5@2 e5@2 ~@4 g4@4 b4@2 d5@2 ~@2 f#4@2 a4@2 c#5 ~@3]/2", M: "d5@7 ~ c#5@7 ~",
  N: "[b4@2 c#5@2 e5@2 c#5 ~ e6@2 d#6@2 e6 ~ f#5@17 ~]/2",
  O: "[~@2 c#5@2 e5@2 c#5@2 e5@2 ~@4 g4@4 b4@2 d5@2 ~@2 f#4@2 a4@2 c#5 ~@3]/2",
  P: "[b4@2 c#5@2 e5@2 c#5 ~ e6@2 d#6@2 e6 ~ e6@5 ~@13]/2",
})).s("gm_trumpet").gain(0.47).pan(0.9)

// other · alto sax · "Saxsolo"
const alto_sax = note("<~@95 A B C@2 D E F G H I ~@25>".pickRestart({
  A: "~@13 b4 c#5 b4", B: "e5 ~ e5@3 ~ c#5@5 ~@5", C: "[~@8 g4 f#4 e4 c#4 f#4 c#4 e4@4 c#4@2 e4 f#4 ~ g#4@5 ~@4]/2",
  D: "g#4@2 b4 b4@3 c#5 ~ f#4@2 e4@2 e4@2 c#4@2", E: "e5 ~ e5@4 c#5@5 ~@5", F: "~@2 g5@8 c#5@4 e5 ~",
  G: "e5 ~ e5@4 c#5@4 e5 ~@5", H: "~@2 a4@2 ~ a4@3 b4@2 b4@3 g#4@3, ~@2 a#4 ~@2 a#4 ~@2 a#4 ~@7", I: "e4@4 c#4 ~@11",
})).s("gm_alto_sax").gain(0.72)

// chords · electric guitar clean · "RythmGui"
const electric_guitar_clean = note(`<
  ~@8 A B C D E F G H ~@20 A B C D E F G H ~@30 A B C D E F G H ~@26 A I@7 ~@14
>`.pickRestart({
  A: "[b3,e4] ~ [b3,d4] ~ [b3,e4] ~@2 [b3,d4] [b3,e4] ~ [b3,d4] ~ [b3,e4] ~@3", // E5 Bm E5 Bm E5 Bm E5
  B: "[g3,b3,d4] ~ g3 [g3,b3,d4] [b3,d4]@2 [g3,d4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [c#4,e4]@2 a3 ~, ~@4 g3 ~@7 a3 ~@3", // G Bm G5 A C#m
  C: "[b3,e4] ~ [b3,d4] ~ [b3,e4] ~@2 [b3,d4] [b3,e4] ~ [b3,d4] ~ [b3,e4]@2 g3 ~", // E5 Bm E5 Bm E5 Bm E5
  D: "[g3,b3,d4]@2 g3 [b3,d4] [g3,b3,d4] ~ [b3,d4] ~ [a3,c#4,e4] ~ [a3,e4] ~ a3 ~ [a3,c#4,e4] ~, ~@5 c#4 ~@2", // G Bm G Bm A A5 A
  E: "[b3,e4] ~ [b3,d4] ~ [b3,e4] ~@2 [b3,d4] [b3,e4] ~ [b3,d4] ~ [b3,e4]@2 ~ [b3,e4]", // E5 Bm E5 Bm E5 Bm E5
  F: "~@2 [g3,b3,d4] ~ [g3,b3,d4]@2 g3 [b3,d4] b3 ~ [a3,c#4,e4] ~ [c#4,e4]@2 a3 ~, ~@12 a3 ~@3", // G Bm A C#m
  G: "[b3,e4] ~ [b3,d4] ~ [b3,e4]@2 ~ [b3,d4] [b3,e4] ~ [b3,d4] ~ [b3,e4]@2 g3 ~", // E5 Bm E5 Bm E5 Bm E5
  H: "[g3,b3,d4] ~ [g3,b3,d4] [g3,b3,d4,e4] [b3,d4]@2 g3 ~ [a3,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]@2 ~@2, ~@4 g3 ~@11", // G Em7 Bm A5 A
  I: "[[g3,b3,d4] ~ g3 [g3,b3,d4] [b3,d4]@2 [g3,d4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ e4@2 a3 ~ [b3,e4] ~ [b3,d4] ~ [b3,e4] ~@2 [b3,d4] [b3,e4] ~ [b3,d4] ~ [b3,e4]@2 g3 ~ [g3,b3,d4]@2 g3 [b3,d4] [g3,b3,d4] ~ [b3,d4] ~ [a3,c#4,e4] ~ [a3,e4] ~ a3 ~ [a3,e4] ~ [b3,e4] ~ [b3,d4] ~ [b3,e4] ~@2 [b3,d4] [b3,e4] ~ [b3,d4] ~ [b3,e4]@2 ~ [b3,e4] ~@2 [g3,b3,d4] ~ [g3,b3,d4]@2 g3 [b3,d4] b3 ~ [a3,c#4,e4] ~ e4@2 a3 ~ [b3,e4] ~ [b3,d4] ~ [b3,e4]@2 ~ [b3,d4] [b3,e4] ~ [b3,d4] ~ [b3,e4]@2 g3 ~ [g3,b3,d4] ~ [g3,b3,d4] [g3,b3,d4,e4] [b3,d4]@2 g3 ~ [a3,e4] ~ [a3,c#4,e4] ~ [c#4,e4]@3 ~, ~@4 g3 ~@7 c#4@28 ~@2 c#4@4 c#4@28 ~@2 c#4@30 ~@6, ~@12 a3 ~@63 a3 ~@23 g3 ~@7 a3 ~@3]/7", // G Bm G5 A E5 Bm E5 Bm …
})).s("gm_electric_guitar_clean").gain(0.26).pan(0.1)

// bass · slap bass 2 · "SlapBass"
const bass_2 = note(`<
  ~@8 A B A C A D A E A B A C A D A E A B A C A D A F ~@3 G H I H I H I H J K L K M N O ~@4 A B A C A D A E A B A C A D
  P F ~@3 G H I H I H I H J K L K M N O ~@8 A B A C A D P Q ~@3 G H I H I H I H J K L K M N O ~@8
>`.pickRestart({
  A: "e2 e1 e1@2 ~@2 e1 ~ e1@2 ~@6", B: "g1@8 a1 ~ a1@5 d2", C: "g1@8 a1 ~ a1@4 ~ d2", D: "g1@7 ~ a1 ~ a1@5 d2",
  E: "g1@7 ~ a1 ~ a1@3 ~@2 d2", F: "g1@7 ~ a1 ~ a1@3 ~@3", G: "~@15 e1", H: "b1 c#2 e2 c#2 e1 ~@3",
  I: "g1@2 g2@2 ~@4 a1@2 a2@2 ~@3 e1", J: "g1@2 g2@3 ~@3 f#1@2 f#2@2 ~@2 g#1@2", K: "a1@5 ~ a1 ~ a1@8",
  L: "c2@8 d2 ~ d2@6", M: "c2@8 d2 ~ d2@4 ~ e1", N: "e1 c#2 e2 b1 e1 ~@3", O: "g1@2 g2@2 ~@3 a1 a1@2 a2@2 ~@4",
  P: "e2 e1 e1@3 ~ e1 ~ e1@2 ~@6", Q: "g1@8 a1 ~ a1@3 ~@2 d2",
})).s("gm_slap_bass_2").gain(0.72)

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

// drums · snare
const snare = s("sd").struct("<A@3 B A@31 C A@33 D A@3 C A@29 E A@2 F G A@20 H ~>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x!3 ~", C: "~@2 x ~@4 x", D: "~@4 x ~@7 x ~ x!2", E: "~@4 x ~@2 x!2 ~@3 x ~@3",
  F: "~@2 x ~@2 x!2 ~", G: "~@4 x ~@2 x!2 ~@7", H: "~ x ~@2",
})).gain(0.8)

// drums · hihat
const hihat = s("hh").struct(`<
  A B@2 C A B@2 D E F G F G F H I E F G F G F H J E F G F G F H K E F G L G F G F G F H M A B A B A B H N I O E F G F G
  F H I E F G F G F H J E F G L G F G F G F P Q A D A R A B H N K S H N T U E F G F G F H@2 E F G V G F G F G F H I A B
  A B A B H N S L H@2 W ~
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "x!3 ~", D: "x!2 ~@2", E: "~ x!4 ~ x!2", F: "x ~ x!5 ~", G: "x!5 ~ x!2", H: "x!7 ~",
  I: "x!5 ~@3", J: "x!6 ~@2", K: "x!8", L: "~@2 x!5 ~", M: "x!4 ~@4", N: "x ~ x ~ x ~ x ~ x!3 ~ x ~@3", O: "~ x!2 ~@5",
  P: "~ x!6 ~", Q: "x!2 ~@6", R: "~ x ~ x", S: "x!5 ~ x ~", T: "x!4 ~@2 x ~", U: "~ x ~@2", V: "~@2 x!4 ~@2",
  W: "x!3 ~@5",
})).gain(0.56)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@8 A B A B A B C ~ A B A B A B C ~ A B A B A B C ~ A B A B A B A B A B C ~@11 A B A B A B C ~ A B A B A B C ~ A B A B
  A B A B A B C ~@15 A B A B A B C ~ A B A B A B A B A B C ~@15
>`.pickRestart({
  A: "~@5 x ~@2", B: "~ x ~@6", C: "~@7 x",
})).gain(0.32)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@7 A ~@7 A ~@19 B ~@11 C ~@5 A ~@19 B ~@7 C ~ A ~ D ~@17 E ~@3 D ~@11 C ~@10
>`.pickRestart({
  A: "~@5 x ~@2", B: "~ x", C: "~@14 x!2", D: "~@3 x", E: "~@15 x",
})).gain(0.72)

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

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

// drums · crash
const crash = s("cr").struct(`<
  A ~@3 A ~ B ~ A ~@7 A ~@7 A ~@7 A ~@2 C ~@3 B ~@3 B A ~ A ~ A ~ A ~@3 A ~@7 A ~@7 A ~@2 C ~@3 B ~ B A ~ A ~ A@3 ~ A
  ~@3 A ~ B ~ A ~@7 A ~@2 C ~@3 B ~@4 A ~ A ~ A ~ A ~ B ~ A ~ B ~
>`.pickRestart({
// … 57 more lines

More by Zucchero