Strudelify

Non ho paura del mostro

Daniele

KeyD majorTempo86 bpm
0:00/0:00
// Non ho paura del mostro — Daniele
// 86 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 82 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(86/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 · "NON PAURA DEL MOSTRO"
const bass = note(`<
  ~@4 A B C B D B D E D B F B C B D B G H I J K L M N O B D E D B D B C B F B D E D B G B C B P H I J K L M N O B D B D
  E D B D B C B D B D E Q H I J K L M N R ~
>`.pickRestart({
  A: "~@21 d2@2 e2", B: "g2@2 g2 e2@2 ~ a2@2 ~ d2@6 e2 ~@5 a1@2 b1",
  C: "d2 ~ d2 b1@2 ~ d2 ~@2 e2@9 ~@3 d2@2 e2, ~@9 d2 ~@14", D: "d2@2 d2 b1@2 ~ d2 ~@2 e2@9 ~@3 d2@2 e2, ~@9 d2 ~@14",
  E: "g2 ~ g2 e2@2 ~ a2@2 ~ d2@6 e2 ~@5 a1@2 b1", F: "d2@2 d2 b1@2 ~ d2 ~@2 d2 e2@9 ~@2 d2@2 e2",
  G: "d2@2 d2 b1@2 ~ d2 ~@2 e2@11 ~ d2@3, ~@9 d2 ~@14", H: "a1@5 g1@4 a1@5 ~ g1@2 e1@4 g1@2 ~",
  I: "a1@5 g1@4 a1@7 ~ e1 a1@3 d2@2 ~", J: "g1@4 ~ d2@4 g1@3 ~@5 f1 f1@3 f#1@2 ~",
  K: "g1@5 f1@4 g1@6 ~@2 e1 g1@2 ~ g#1@2 ~", L: "a1@5 g1@3 e1 a1@6 ~@2 e1 e1@3 g1@2 ~",
  M: "a1@5 g1@4 a1@7 ~ e1 a1@2 ~ a#1@2 ~", N: "b1@4 ~ a1@4 b1@10 ~ b1 a2@2 ~",
  O: "b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2 b1@2 ~@7 d2@2 e2", P: "d2@2 d2 b1@2 ~ d2 ~@2 e2@9 ~@2 d2 b1@2 ~, ~@9 d2 ~@14",
  Q: "d2@2 d2 b1@2 ~ d2 ~@2 e2@10 ~@2 b1@3, ~@9 d2 ~@14", R: "b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~@10",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · electric guitar clean · "NON PAURA DEL MOSTRO"
const electric_guitar_clean = note(`<
  A B@2 C@2 D@2 E@2 D@2 E@2 F@2 E@2 F@2 G@2 H I J K L M N@2 F@2 E@2 D@2 E@2 F@2 E@2 F@2 G@2 F@2 O@2 H I J P L M N@2 F@2
  E@2 D@2 E@2 D@2 E@2 D@2 Q@2 H I J R L M N@2 ~
>`.pickRestart({
  A: "~@9 [d4,e4,g4,a4,b4]@2 ~", B: "[[g4,b4]@37 ~@5 [c4,e4,g4,b4]@4 ~@2, e4@35 ~@13, d4@11 ~@5, c4@31 ~@17]/2",
  C: "[[b3,d4,e4,f#4,a4]@41 ~@7]/2", D: "[[g4,b4]@37 ~@5 [c4,e4,g4,b4]@4 ~@2, e4@35 ~@13, c4@31 ~@17]/2",
  E: "[[b3,d4,f#4,a4]@41 ~ [b3,d4,f#4,a4]@4 ~@2]/2", F: "[[g4,b4]@37 ~@5 [c4,e4,g4,b4]@4 ~@2, [c4,e4]@35 ~@13]/2",
  G: "[[b3,d4,f#4,a4]@41 ~@7]/2", H: "[d4,e4,a4,b4]@12 ~@2 [e4,g4,a4,d5] ~@3 [d4,e4,a4,b4]@4 ~@2",
  I: "[d4,e4,a4,b4]@12 ~@2 [e4,a4,b4,e5] ~@3 [d4,e4,a4,b4]@4 ~@2", // Dsus2 Esus4 Dsus2
  J: "[f3,a3,b3,e4]@12 ~@2 [b3,e4,f4,a4] ~@3 [f3,a3,b3,e4]@6", // Fmaj7 Esus4 Fmaj7
  K: "~@2 [c#4,f#4,c#5]@3 ~@3 [d4,g4,d5]@4 ~@2 [e4,a4,b4,e5]@9 ~", // F#5 G5 Esus4
  L: "[d4,e4,a4,b4]@12 ~@2 [e4,a4,b4,e5] ~@3 [a4,b4,e5,a5]@4 ~@2", // Dsus2 Esus4 Asus2
  M: "[e4,a4]@9 ~@5 [e4,a4,b4,e5] ~@3 [a4,b4,e5,a5]@4 ~@2, [b4,e5]@7 ~@17", // A5 Esus4 Asus2 E5
  N: "[[b3,e4,f#4,b4]@6 ~ [g4,a4,d5]@14 ~@3, ~@7 d4@13 ~@4]/2", O: "[[f#4,a4]@23 ~, [b3,d4]@11 ~]/2",
  P: "~@2 [c#4,f#4,c#5]@3 ~@3 [d4,g4,d5]@4 ~@2 [e4,a4,b4,e5]@10", Q: "[[d4,f#4]@43 ~@5, a4@23 ~, b3@41 ~@7]/2",
  R: "~@2 [c#4,f#4,c#5]@3 ~@3 [d4,g4,d5]@3 ~@3 [e4,a4,b4,e5]@9 ~", // F#5 G5 Esus4
})).s("gm_electric_guitar_clean").gain(0.48).pan(0.7)

// other · lead 8 bass lead · "NON PAURA DEL MOSTRO"
const lead_8_bass_lead = note("<~@57 A B C@3 D E@2 F D G@2 F D H@2 ~@9>".pickRestart({
  A: "b4@9 c5@2 a4@11 ~@2", B: "b4 ~@2 b4 ~@2 b4@2 ~ c5@2 a4@7 g4@5 ~",
  C: "[f#4@8 ~ g4@2 d4@30 ~@6 [b4,b5]@9 ~ [c5,c6]@2 [a4,a5]@11 ~@2]/3", // B C A
  D: "[b4,b5] ~@2 [b4,b5] ~@2 [b4,b5]@2 ~ [c5,c6]@2 [a4,a5]@7 [g4,g5]@5 ~", // B C A G
  E: "[[f#4,f#5]@8 ~ [g4,g5]@2 d4@30 ~@7, ~@11 d5@20 ~@17]/2", F: "[b4,b5]@9 [c5,c6]@2 [a4,a5]@11 ~@2",
  G: "[[f#4,f#5]@8 ~ [g4,g5]@2 d4@31 ~@6, ~@11 d5@22 ~@15]/2", // F# G
  H: "[[f#4,f#5]@8 ~ [g4,g5]@2 d4@31 ~@6, ~@11 d5@24 ~@13]/2", // F# G
})).s("gm_lead_8_bass_lead").gain(0.4).pan(0.7)

// other · pad metallic · "NON PAURA DEL MOSTRO"
const pad_metallic = note(`<
  ~@29 A@4 B@4 ~@7 C D@2 E@2 F G H I F J K@2 L M N@3 M O@2 P Q R@2 P Q S@2 F G H I F J T@2 ~
>`.pickRestart({
  A: "[a4@17 ~ [b3,b4]@4 ~ [a3,a4]@18 ~ [g4,b4]@5 ~@19 [g3,g4]@4 ~ f#4@18 ~@7, e4@34 ~@13 [f#4,a4]@18 ~@6 f#3@16 ~@9, ~@48 d4@41 ~@7]/4", // B A G F#m
  B: "[[a3,a4]@17 ~ [b3,b4]@5 [a3,a4]@18 ~ [g4,b4]@5 ~@19 [g3,g4]@5 f#4@18 ~@7, e4@35 ~@12 [f#4,a4]@18 ~@6 f#3@16 ~@9, ~@48 d4@41 ~@7]/4", // A B A G F#m
  C: "~@12 d5@6 a4@5 ~", D: "[b4@6 b4 g4]/2", E: "[f#4@15 ~]/2", F: "~@3 [e3,e4]@6 [a3,a4]@5 [g3,g4] [e3,e4]@9",
  G: "~@3 [e3,e4]@6 [a3,a4]@5 [g3,g4] [e3,e4]@8 ~", H: "~@3 [d3,d4]@6 [g3,g4]@5 [e3,e4] [d3,d4]@9",
  I: "~@3 [d3,d4]@6 [g3,g4]@5 [e3,e4] [d3,d4]@8 ~", J: "~@3 [e3,e4]@6 [a3,a4]@5 [g3,g4] [e3,e4]@7 ~@2",
  K: "[b3@35 ~@13, b2@11 ~@5]/2", L: "b4@9 c5@2 a4@11 ~@2", M: "b4@2 ~ b4@2 ~ b4@2 ~ c5@2 a4@5 ~@2 g4@6",
  N: "[f#4@9 g4@2 d4@30 ~@6 b4@9 ~ c5@2 a4@11 ~@2]/3", O: "[f#4@9 g4@2 d4@30 ~@7]/2", P: "d5@8 ~ e5@2 c5@11 ~@2",
  Q: "d5@2 ~ d5@2 ~ d5@2 ~ e5@2 c5@5 ~@2 b4@6", R: "[a4@9 b4@2 f#4@31 ~@6]/2", S: "[a4@9 b4@2 f#4@32 ~@5]/2",
  T: "[~@9 e4@25 ~@14, [b2,b3]@37 ~@11]/2", // B
})).s("gm_pad_metallic").gain(0.48).pan(0.4)

// chords · epiano1 · "NON PAURA DEL MOSTRO"
const epiano1 = note(`<
  ~ A@2 B@2 C@2 D@2 E@2 F@4 G@2 H@2 I@2 J K L M N O P Q R@2 S@2 E@2 T U@3 V@2 W@4 X@2 Y@2 J Z L M N O P Q AA@2 AB@2 AC@2
  AD@2 AE@2 AF AG AH@2 AI@2 J K L M N AJ AK@2 ~
>`.pickRestart({
  A: "[[a2,e3,g3]@41 ~ [a2,e3,g3]@6]/2", B: "[[g2,d3,g3]@45 [d2,d3]@2 [e2,e3]]/2",
  C: "[[g2,g3]@2 [g2,g3] [e2,e3]@2 ~ [a2,a3]@2 ~ [d2,d3]@6 [e2,e3] ~@5 [a1,a2]@2 [b1,b2] [d2,d3] ~ [d2,d3] [b1,b2]@2 ~ [d2,d3] ~@2 [e2,e3]@9 ~@3 [d2,d3]@2 [e2,e3], g4@36 ~@6 [c4,g4]@5 ~, c4@31 ~@2 [d2,d3] ~@14]/2", // G E A D E A B D …
  D: "[[g2,g3]@2 [g2,g3] [e2,e3]@2 ~ [a2,a3]@2 ~ [d2,d3]@6 [e2,e3] ~@5 [a1,a2]@2 [b1,b2] [d2,d3]@2 [d2,d3] [b1,b2]@2 ~ [d2,d3] ~@2 [e2,e3]@9 ~@3 [d2,d3]@2 [e2,e3], [b3,f#4]@41 ~ [b3,f#4]@5 ~, ~@33 [d2,d3] ~@14]/2", // G E A D E A B D …
  E: "[[g2,g3]@2 [g2,g3] [e2,e3]@2 ~ [a2,a3]@2 ~ [d2,d3]@6 [e2,e3] ~@5 [a1,a2]@2 [b1,b2] [d2,d3]@2 [d2,d3] [b1,b2]@2 ~ [d2,d3] ~@2 [e2,e3]@9 ~@3 [d2,d3]@2 [e2,e3], g4@36 ~@6 [c4,g4]@5 ~, c4@31 ~@2 [d2,d3] ~@14]/2", // G E A D E A B D …
  F: "[[g2,g3] ~ [g2,g3] [e2,e3]@2 ~ [a2,a3]@2 ~ [d2,d3]@6 [e2,e3] ~@5 [a1,a2]@2 [b1,b2] [d2,d3]@2 [d2,d3] [b1,b2]@2 ~ [d2,d3] ~@2 [e2,e3]@9 ~@36 [a3,d4]@2 e4@2 ~ [d4,g4] ~@6 a2@5 ~, [b3,f#4]@41 ~@6 g4@36 ~@13, ~@33 [d2,d3] ~@13 d4@30 ~@3 b3 ~@5 [b3,e4]@9 ~, ~@48 a2@41 ~@7, ~@24 c4@17 ~@7]/4", // G E A D E A B D …
  G: "[d4@36 a3@2 b3 [b3,e4]@2 ~ [a3,d4]@2 b3@2 ~@2, [g2,f#4]@41 ~ g2@6, b3@19 ~@5, ~@36 d4@6 ~@2 e4 ~@3]/2", // E5 D5 Gmaj7
  H: "[[c4,g4]@35 [d4,g4] ~@2 [b3,e4]@4 [a2,c4,e4,g4]@5 ~, a2@5 ~, d4@11 ~@5]/2", // C5 G5 E5 Am7
  I: "[~@33 d4@14 ~, g2@23 ~, f#4@41 ~@7, a3@30 a4@17 ~, d4@27 d5@20 ~]/2", J: "[d4,e4,a4]@19 ~@5",
  K: "[d4,e4]@7 ~, a4 ~", L: "[a3,b3,e4]@7 ~", M: "~@12 [a4,b4] ~ a4 ~ g4 ~ e4 ~ d4 ~ b3 ~",
  N: "~@3 a3@2 ~@4 a3@2 ~@3 e3 a3@2 ~@3 e3 a3@2 ~", O: "~@3 a3@2 ~@4 a3@2 ~@3 e3 a3@2 ~@7",
  P: "b2@4 ~ a2@4 b2@13 ~@2, [b3,f#4]@5 ~", Q: "b3@2 ~ b3 ~@2 b3 ~ f#3 b3@2 ~ b3@2 ~@7 [d2,d3]@2 [e2,e3]",
  R: "[[g2,g3]@2 [g2,g3] [e2,e3]@2 ~ [a2,a3]@2 ~ [d2,d3]@6 [e2,e3] ~@5 [a1,a2]@2 [b1,b2] [d2,d3]@2 [d2,d3] [b1,b2]@2 ~ [d2,d3] ~@2 [e2,e3]@9 ~@3 [d2,d3]@2 [e2,e3], g4@36 ~@6 [c4,g4]@5 ~, c4@33 [d2,d3] ~@14]/2", // G E A D E A B D …
  S: "[[g2,g3] ~ [g2,g3] [e2,e3]@2 ~ [a2,a3]@2 ~ [d2,d3]@6 [e2,e3] ~@5 [a1,a2]@2 [b1,b2] [d2,d3]@2 [d2,d3] [b1,b2]@2 ~ [d2,d3] ~@2 [d2,d3] ~ [d4,g4]@2 ~ [b3,e4]@3 a3@4 [d2,d3]@2 [e2,e3], f#4@41 ~@7, b3@38 ~@3 d4@3 ~@4, ~@11 [e2,e3]@3 ~@2]/2", // G E A D E A B D …
  T: "[g2,g3]@2 [g2,g3] [e2,e3]@2 ~ [a2,a3]@2 ~ [d2,d3]@6 [e2,e3] ~@5 [a1,a2]@2 [b1,b2], [b3,f#4]@23 ~", // G E A D E A B B5
  U: "[[d2,d3] ~ [d2,d3] [b1,b2]@2 ~ [d2,d3] ~@2 [d2,d3,g4] ~@2 e4@2 ~ d4 ~@2 a3@2 b3 ~@33 [a3,d4]@2 e4@2 ~ g4@2 ~@5 a2@5 ~, d4@9 [e2,e3]@9 ~@5 d4@30 ~@3 b3 ~@5 [b3,e4]@9 ~, ~@12 d4 ~@10 g4@36 ~@13, ~@24 a2@41 ~@7, ~@24 c4@34 ~ d4 ~@12]/3", // D B D G5 D5 E E5
  V: "[d4@36 a3@2 b3 b3@2 ~ [a3,d4]@2 b3@2 ~@2, [g2,f#4]@41 ~ g2@6, a3@30 ~@6 d4@5 ~@7, ~@39 e4 ~@4 e4 ~@3]/2", // D5 Gmaj7
  W: "[d4@29 ~ a4@2 [b4,e5] ~@2 [d5,g5] ~@2 [b4,e5]@4 d5@2 b4 a4@2 ~ a4@24 ~@3 f#4@3 ~@12 a3@3 b3@3, a2@40 ~@2 a2@5 ~ g2@46 ~@2, g4@36 ~@12 b4@30 d4@9 e4@7 ~@2, c4@34 ~@38 g4@10 ~@2 b3@9 ~@3, ~@30 d5 ~@16 d5@29 ~@5 a3@8 ~@7]/4", // E5 G5 E5
  X: "[[c4,e4]@35 ~@4 e4@9, a2@23 ~, b4@3 d5, ~@37 b4@11, ~@19 a4@5]/2", // C
  Y: "[a4@33 e4@5 ~@4 e4@2 d4 b3@3, g2@7 ~, [b3,d4]@38 b3@3 b3@2 ~@5, ~@33 a4@13 ~@2, ~@39 d4@5 ~@4]/2", // Bm
  Z: "[d4,e4,a4]@7 ~", // Dsus2
  AA: "[[g2,g3]@2 [g2,g3] [e2,e3]@2 ~ a2@2 ~ [d2,d3]@6 [e2,e3] ~@5 [a1,a2]@2 [b1,b2] [d2,d3]@2 [d2,d3] [b1,b2]@2 ~ [d2,d3] ~@2 [e2,e3]@9 ~@3 [d2,d3]@2 [e2,e3], g4@3 ~, c4@34 ~@8 [c4,g4]@5 ~, ~@6 a3 ~@26 [d2,d3] ~@14]/2", // G E D E A B D B …
  AB: "[[g2,g3]@2 [g2,g3] [e2,e3]@2 ~ [a2,a3]@2 ~ [d2,d3]@6 [e2,e3] ~@5 [a1,a2]@2 [b1,b2] [d2,d3]@2 [d2,d3] [b1,b2]@2 ~ [d2,d3] ~@2 [d2,d3] ~ [d4,g4]@2 ~ [b3,e4]@3 a3@4 [d2,d3]@2 [e2,e3], f#4@41 ~@7, b3@38 ~@3 d4@3 ~@4, ~@11 [e2,e3]@3 ~@2]/2", // G E A D E A B D …
  AC: "[[g2,g3] ~ [g2,g3] [e2,e3]@2 ~ [a2,a3]@2 ~ [d2,d3]@6 [e2,e3] ~@5 [a1,a2]@2 [b1,b2] [d2,d3]@2 [d2,d3] [b1,b2]@2 ~ [d2,d3] ~@2 [e2,e3]@9 ~@3 [d2,d3]@2 [e2,e3], g4@36 ~@6 [c4,g4]@5 ~, c4@31 ~@2 [d2,d3] ~@14]/2", // G E A D E A B D …
  AD: "[[g2,g3]@2 [g2,g3] [e2,e3]@2 ~ [a2,a3]@2 ~ [d2,d3]@6 [e2,e3] ~@5 [a1,a2]@2 [b1,b2] [d2,d3]@2 [d2,d3] [b1,b2]@2 [e4,a4] [d2,d3] ~ e4 [d2,d3] ~ d4 ~@2 e3 a3 ~ e3 g3 ~ a3 [d2,d3,b3]@2 [e2,e3], b3@32 b3@9 ~@7, g4@22 ~@11 e2@9 ~@6, ~@33 e3@2 ~@13]/2", // G E A D E A B D …
  AE: "[[g2,g3]@2 [g2,g3] [e2,e3]@2 ~ [a2,a3]@2 ~ [d2,d3]@6 [e2,e3] ~@2 d4@2 e4 [a1,a2]@2 [b1,b2] [d2,d3] ~ [d2,d3] [b1,b2,e4]@2 ~ d4@2 b3 d2 ~@2 a#3 a3 g3 a3 ~@2 g3@2 ~ [d2,d3]@2 [e2,e3], [c4,g4]@14 ~ d4@2 ~@4 g4 ~ g4@12 d4@3 ~@10, ~@27 d4 ~@2 d2 ~@2 e2@9 ~@6]/2", // G E A D E A B D …
  AF: "[g2,g3]@2 [g2,g3] [e2,e3]@2 ~ [a2,a3]@2 ~ [d2,d3]@6 [e2,e3] ~@3 a#4 ~ b4 d5 b1, [d4,a4]@18 ~@3 a1@2 ~", // G E A D E D5
  AG: "d5 e5 d2 ~ b4 ~ [d2,a#4] a4 g4 e4@2 d4 g4@2 ~ b4 ~ g4@2 ~@2 d2@2 e2, d2@2 d5@2 ~@5 d2 ~@4 a4@2 ~@4 g4@3 ~, ~@3 b1@2 ~@4 e2@9 ~@6", // Gm
  AH: "[[g2,g3]@2 [g2,g3] [e2,e3]@2 ~ [a2,a3]@2 ~ [d2,d3]@6 [e2,e3] ~@2 [g4,b4]@2 [a4,c5] [a1,b4,d5]@2 b1 d2@2 d2 [b1,e4]@2 ~ d2 ~@2 d2 ~@2 g4@2 ~ e4 ~ a4@3 g4 [d2,e4]@2 e2, [c4,g4]@17 ~@6 b4@15 ~@10, ~@23 g4@13 ~@12, ~@29 [a4,c5]@6 e4@2 ~@11, ~@11 e2@3 ~@2]/2", // G E A D E G Am Bm7 …
  AI: "[g2 ~ g2 e2@2 ~ a2@2 ~ g6@2 ~@4 e2 ~@7 b1 d2@2 d2 ~@3 d2 ~@2 d2 ~@8 e4@3 b3@2 ~, b3@18 ~@6 a5@6 a4@6 a5@5 ~@7, f#4@8 ~@3 d6@3 d5@3 f#5@3 a6@4, f#6@9 d2@6 ~@6 a1@2 ~@4 b1@2 ~@4 e2@9 ~@6, ~@11 d6@9 e6@6 g5@6 g4@6 d6@4 e6@5 ~]/2",
  AJ: "~@3 a3 ~@5 a3@2 ~@3 e3 a3@2 ~@7",
  AK: "[b2@4 ~ a2@4 ~@5 [d4,d5]@10 [b2,f#3,b3]@2 ~ [f#3,b3] ~@2 b2@2 ~ b2@2 ~ b2@2 ~@10, [b3,f#4]@13 ~ g4@27 ~@7, ~@9 b2@13 ~@5 b2@2 ~@19]/2", // D B5
})).s("gm_epiano1").gain(0.48)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@5 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@10
>`.pickRestart({
  A: "~@11 x ~@12",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct("<~@4 A B@7 C B@15 D B@3 E B@23 D B@3 E B@19 F ~>".pickRestart({
  A: "~@2 x ~@6 x!2 ~", B: "~ x ~ x", C: "~@3 x ~@5 x!2 ~", D: "~ x!3", E: "~@6 x ~@8 x ~@2 x ~ x ~@3", F: "~ x!2 ~",
})).gain(0.72)

// drums · low tom
const low_tom = s("lt").struct("<~@4 A ~@7 B ~@15 C ~@3 D ~@23 C ~@3 D ~@19 E ~>".pickRestart({
  A: "~@3 x ~@3 x", B: "~@4 x!2 ~ x", C: "~@5 x ~ x", D: "~ x", E: "~@9 x!2 ~@13",
})).gain(0.64)

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

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@4 A ~@7 B ~@15 C ~@3 D ~@23 C ~@3 D ~@19 E ~>".pickRestart({
  A: "x ~@12 x ~@10", B: "~ x", C: "~@13 x!2 ~@4 x!2 ~@3", D: "~@7 x", E: "~@7 x!2 ~@15",
})).gain(0.56)

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

// drums · crash
const crash = s("cr").struct(`<
  ~@5 A ~@3 A ~@2 B A ~@3 A ~@3 A ~@3 A ~ A@3 ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A@3 ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A C
  A D ~
>`.pickRestart({
  A: "x", B: "x ~@22 x", C: "~@6 x!2", D: "x!2 ~@6",
})).gain(0.56)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@21 A@7 B ~@20 A@7 B ~@16 A@7 C ~>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~@3 x ~@5 x ~@7 x ~@6", C: "~ x ~ x ~@4",
})).gain(2.03)

stack(
  bass, electric_guitar_clean, lead_8_bass_lead, pad_metallic, epiano1, kick, kick_soft, snare, low_tom, hihat,
  hihat_soft, mid_tom, open_hat, crash, cabasa
)

More by Daniele