Strudelify

Ti prendo e ti porto via

Rossi Vasco

KeyD majorTempo128 bpm
0:00/0:00
// Ti prendo e ti porto via — Rossi Vasco
// 128 bpm, 4/4, key D 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 126 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(128/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(`<
  ~@8 A@6 B C@2 D ~@2 C E F@2 G H I J G H I J ~@4 K L K L K L K M N O P Q N Q R@2 G H I J G H I J G H I J G H I J G H I
  J G H I J S ~ S ~@5 T ~ U V G H I J G H I J G H I J G H I J W X ~ G H I J G H I J G H I J G H I J Y@2 ~
>`.pickRestart({
  A: "d1@3 ~@13", B: "d1@3 ~@3 c3@2 ~@3 f2 f#2@2 a2@2, ~@5 a2 ~@2", C: "d2", D: "e2", E: "g2", F: "[a2@13 ~@3]/2",
  G: "d2!8", H: "f#1!8", I: "b1!8", J: "g1!7 a1", K: "d2@3 ~@13", L: "g1@3 ~@13",
  M: "g1@3 ~@5 b1@2 d2@2 b1@2 a1@2, ~@8 a1 ~@7", N: "d1 ~@3", O: "e1 ~@3", P: "f#1 ~@3", Q: "g1 ~@3",
  R: "[a1@13 ~@3]/2", S: "d1 ~ d1 ~@4 d1!2 ~ d1@2 ~@4", T: "d1@3 ~ d1@2 ~@10", U: "a1!2", V: "a1!4", W: "g1", X: "g1 ~",
  Y: "d1/2",
})).s("gm_electric_bass_finger").gain(0.44)

// other · electric guitar muted
const electric_guitar_muted = note("<~@76 [d3!2 a2!2 b2!2 d3 b2 d3!2 a2!2 b2!2 d3 b2]!4 ~@46>")
  .s("gm_electric_guitar_muted").gain(0.14).pan(0.3)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@4 A@2 ~@26 A@2 ~@18 B C D E B C D E F C G H@5 B C D E B C I@2 ~@4 J@6 K@2 F C G H@5 F C G L@6 ~@2 F C G H@5 F C G
  H@5 M@2 ~
>`.pickRestart({
  A: "[d1,d2,a2,d3]/2", B: "[d3,f#3,a3,d4]", C: "[f#3,a3,c#4,f#4]", D: "[b2,d3,f#3,b3]", E: "[g3,b3,d4,g4]",
  F: "[d3,f#3,a3,d4]@3 ~@5", G: "[b3,d4,f#4,b4]",
  H: "[~@2 a4 b4 ~ c#5 ~@2 [d3,f#3,a3,d4]@8 ~@4 a4 e5 c#5 ~@6 f#5 ~@2 [g3,b3,d4,g4]@8, [g3,b3,d4,g4] ~ [f#3,a3,c#4,f#4] [b3,d4,f#4] ~, ~@14 d5@19 ~@13 d5@10 ~@6 g5@18]/5", // D G F#m Bm
  I: "[b4 ~ [c#4,c#5] [d4,d5] ~ [f#4,f#5] ~@2 [g3,b3,d4]@8, [b2,d3,f#3,b3] ~, ~@7 [g4,g5]@9]/2", // C# D F# G Bm G
  J: "[f#4 g4 f#4 g4 f#4 g4, [a3,d4]@31 ~, d2@11 ~]/6", K: "[~@16 e4@15 ~, [a1,a3,d4,a4]@31 ~]/2",
  L: "[~@2 a4 b4 ~ c#5 ~@2 [d3,f#3,a3,d4]@8 ~@4 a4 e5 c#5 ~@6 f#5 ~@2 [g3,b3,d4,g4]@16, [g3,b3,d4,g4] ~ [f#3,a3,c#4,f#4] [b3,d4,f#4] ~@2, ~@14 d5@19 ~@13 d5@10 ~@6 g5@18 ~@16]/6", // D G F#m Bm
  M: "[d2,d3,f#3,a3,d4]/2", // D
})).s("gm_synth_strings_1").gain(0.26)

// chords · synth bass 2
const synth_bass_2 = note("<~@4 A@4 B@8 ~ C ~@14 A@4 D@8 ~ C ~@22 E F G H E F G H ~@50>".pickRestart({
  A: "[d1,d2] ~@3", B: "~@10 d2@3 ~@3", C: "~@4 d4 ~ d4 ~",
  D: "[a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~", E: "[d2,a2,d3]",
  F: "[f#2,c#3,f#3]", G: "[b2,f#3,b3]", H: "[g2,d3,g3]",
})).s("gm_synth_bass_2").gain(0.13).pan(0.7)

// chords · rock organ
const rock_organ = note(`<
  ~@3 A B@2 C@2 ~@8 D@4 E@2 F@2 G@7 H I B C@2 ~@8 D@4 E@2 J@2 G@3 K G@3 L M G@2 K G@3 N O P Q R Q P Q S T@2 U@2 ~@7 V
  G@3 K G@3 L M G@2 K G@3 N W X ~ G@3 K G@3 L M G@2 K G@3 L Y ~@2
>`.pickRestart({
  A: "~@10 g4 [a4,b4,c5,d5,e5,f5] [g5,a5,b5,c6,c#6,d6,d#6,e6,f6,f#6] [f4,g4,a4,b4,c5,d5,e5,f5,g5,a5,a#5] [f3,g3,a3,b3,c4,d4,e4] e3", // Dm7 Fmaj7
  B: "[d2,d3,d4]@4 [d5,a5,c6,d6,f6]@3 ~@3 [d5,a5,c6,d6,f6]@4 ~@2", // D Dm7
  C: "[[d2,d3,d4]@4 [d5,a5,c6,d6,f6]@4 ~@2 [d5,a5,c6,d6,f6]@3 ~ [d5,a5,c6,d6,f6]@14 [b4,c5,g5] [e4,f4,g4,a4,b4,e5,f5] [g3,a3,b3,c4,d4,e4,f4,g4] [e3,f3,a3,b3], ~@7 [d2,d3,d4] ~@8]/2", // D Dm7 Cmaj7 Em G7 Esus4 D
  D: "[~@32 a5@16 b5@14 [g4,a4,b4,c5,d5,e5,f5] [a3,b3,c4,d4,e4,f4], d6@61 ~@3]/4", E: "[[a4,f#5] [b4,g5], d5]/2",
  F: "[~@8 a4 a#4 b4 c5 c#5 d5 d#5 e5 f5 f#5 g5 g#5 a5 a#5 b5 c6 c#6 [c3,d3,d#3,e3,f3,g3,d6] [a3,b3,c4,e4,f4,d#6] [a4,b4,c5,d5,e5,e6] [f5,g5,a5,b5,c#6,d6,d#6,e6,f6] [a4,b4,c5,d5,e5,f5,g5,a5,a#5,b5,c6] [g3,a3,b3,c4,d4,f4,g4] [c3,e3,f3], a5@5 ~@3, e5@15 ~@17, d5@13 ~@19]/2", // C F7 Am Am7 G7 Fmaj7
  G: "d3 d2 d4 d2 d3 d4 d2 d3 d4 d2 d3 d4 d2 d3 d4 d2",
  H: "d3 d2 d4 d2 d3 d4 d2 d3 d4 d2 d3 d4 d2 [d1,e1,f1,f#1,g1] [a1,b1,c#2,d2,f#2,g2] [b2,c#3,d3,e3]", // Dmaj7 C#m7
  I: "[f#3,g3,a3,b3] ~@3 [d5,a5,c6,d6,f6]@3 ~@3 [d5,a5,c6,d6,f6]@4 ~@2, [d2,d3,d4] ~@3", // Gmaj7 Dm7 D
  J: "[a5@20 a5 ~@4 [c3,d3,d#3,e3,f3,g3] [a3,b3,c4,e4,f4] [a4,b4,c5,d5,e5] [f5,g5,a5,b5,c#6,d6,d#6,e6,f6] [a4,b4,c5,d5,e5,f5,g5,a5,a#5,b5,c6] [g3,a3,b3,c4,d4,f4,g4] [c3,e3,f3], [d5,e5]@3 ~]/2", // C Fmaj7 Am Am7 G7 Fmaj7 Dsus2
  K: "d3 d2 d4 d2 d3 d4 d2 d3 [d4,g4,a4,d5] [d2,g4,a4,d5] d3 d4 d2 d3 d4 d2, ~@2 [g4,a4,d5] ~@3 [g4,a4,d5] ~", // Dsus4 Gsus2
  L: "d3 d2 [d4,g4,a4,d5] d2 d3 d4 d2 d3 d4 d2 d3 d4 d2 [d1,e1,f1,f#1,g1] [a1,b1,c#2,d2,f#2,g2,g4,a4,d5] [b2,c#3,d3,e3], ~@4 [g4,a4,d5]@2 ~@2 [g4,a4,d5]@2 ~ [g4,a4,d5]@2 ~@3", // Dsus4 Dmaj7 C#m7 Gsus2
  M: "[d3,f#3,g3,a3,b3] d2 d4 d2 d3 d4 d2 d3 d4 d2 d3 d4 d2 d3 d4 d2", // Gmaj7
  N: "d3 d2 [d4,g4,g#4,a4,d5] d2 d3 d4 d2 d3 d4 d2 d3 d4 d2 [d1,e1,f1,f#1,g1] [a1,b1,c#2,d2,f#2,g2,g4,a4,d5] [b2,c#3,d3,e3], ~@4 [g4,a4,d5]@2 ~@2 [g4,a4,d5]@2 ~ [g4,a4,d5]@2 ~@3", // Dsus4 Dmaj7 C#m7 Gsus2
  O: "[d3,f#3,g3,a3,b3] d2 d4 d2 d3 d4 d2 d3 [d4,f#4,a4,d5] [d2,f#4,a4,d5] d3 d4 d2 d3 d4 d2, ~@2 [f#4,a4,d5] ~@3 [f#4,a4,d5] ~", // Gmaj7 D
  P: "d3 d2 [d4,f#4,a4,d5] d2 d3 d4 d2 d3 d4 d2 d3 d4 d2 d3 [d4,f#4,a4,d5] d2, ~@4 [f#4,a4,d5]@2 ~@2 [f#4,a4,d5]@2 ~ [f#4,a4,d5]@2 ~@3", // D
  Q: "d3 d2 d4 d2 d3 d4 d2 d3 [d4,f#4,a4,d5] [d2,f#4,a4,d5] d3 d4 d2 d3 d4 d2, ~@2 [f#4,a4,d5] ~@3 [f#4,a4,d5] ~", // D
  R: "d3 d2 [d4,g4,a4,d5] d2 d3 d4 d2 d3 d4 d2 d3 d4 d2 d3 [d4,g4,a4,d5] d2, ~@4 [g4,a4,d5]@2 ~@2 [g4,a4,d5]@2 ~ [g4,a4,d5]@2 ~@3", // Dsus4 Gsus2
  S: "d3 d2 [d4,g4,a4,d5] d2 d3 d4 d2 d3 d4 d2 d3 [d4,d5] [c#5,d5,d#5,e5,f5,f#5,g5,g#5] [g#3,a#3,c4,d4,d#4,f4,g4,g#4,a#4,c5] [g#2,a#2,c3,d3,d#3,f3] [d#2,g2], ~@4 [g4,a4,d5]@2 ~@2 [g4,a4,d5]@2 ~ [g4,a4]@2 ~@3", // Dsus4 D G#maj7 Fm7 D# Gsus2
  T: "[d3 ~ d3@2 [g5,c6,f6]@4 d3 ~ [c#3,d3,d#3,f#3,g3,g#3,a3,a#3,b3] [c4,d4,e4,g4,g#4,a4,b4] [g5,c6,f6]@6 [e5,f5,g5,b5] [f4,g4,b4,c5] [a3,b3,d4,e4] [e3,f3,g3] ~@10, ~@12 c5 ~@19]/2", // Csus4 Cmaj7 Csus4 Em Fsus2 Asus4 Em
  U: "[d3 ~ d3@2 [g5,c6,f6]@4 d3 ~ [c#3,d3,d#3,f#3,g3,g#3,a3,a#3,b3] [c4,d4,e4,g4,g#4,a4,b4] [g5,c6,f6]@14 ~ [e5,f5,g5,b5] [b4,c5] [b3,d4,e4,f4,g4] [e3,f3,g3,a3] ~, ~@12 c5 ~@19]/2", // Csus4 Cmaj7 Csus4 Em Cmaj7 Em7 Fmaj7
  V: "~@9 [c3,d3,d#3,e3,f3] [g3,a3,b3,c4,e4,f4] [a4,b4,c5,d5] [e5,f5,g5,a5,b5,f6] [b4,c5,d5,e5,f5,g5,a5,a#5,b5,c6,c#6,d6,d#6,e6] [a3,b3,c4,d4,f4,g4,a4] [c3,e3,f3,g3]", // Cmaj7 D7 Em Dm7 C
  W: "[g2,f#3,g3,a3,b3] ~ g2 ~ [g4,a4,d5]@3 ~ g2 ~ g2@2 [g4,a4,d5]@3 ~", // Gmaj7 Gsus2
  X: "g2 ~ g2 ~ [g4,a4,d5]@2 [g4,a4,d5]!2 ~ [g4,a4,d5] ~@6", Y: "[f#3,g3,a3,b3] ~@15",
})).s("gm_rock_organ").gain(0.26)

// chords · rock organ · soft notes
const rock_organ_soft = note(`<
  ~@3 A ~@3 B ~@8 C ~ D E ~@3 F ~@7 G ~@3 B ~@8 C ~ D E ~@3 F ~@7 G ~@7 G ~@7 H I J I K ~@7 F ~@7 G ~@7 G ~ L M ~@7 G
  ~@7 G ~@3
>`.pickRestart({
  A: "~@9 [b2,c3,d3,d#3,e3,f3,f#3,g3,g#3,a3] [b3,c4,d4,e4,f4] ~@4 [c3,d3]", B: "~@11 f5 [e5,b5] [c5,d5,b5] ~@2",
  C: "c#6 ~@15", D: "~@15 a#5", E: "~@13 [a5,a#5] g5 ~", F: "~@9 [b2,f#3] [g#3,d4] g4 f#6 ~ e4 d3",
  G: "~@13 [c#1,g#1] [a#1,e2] a2", H: "~@12 a5 ~ g3 f2", I: "~@10 f3 [c#4,d#4,f4,f#4] ~@4",
  J: "~ [a#5,c#6,d6,d#6] [d5,f#5,g#5,a5] a4 [c4,b4] ~ f3 ~@9", // D#7 D Cmaj7
  K: "~@10 [c#6,d6,d#6] [f#5,g#5,a5,a#5] [a4,d5] [c4,b4] ~ f3", L: "~@10 [g4,a4,d5] ~ [g4,a4,d5]!2 ~ [g4,a4,d5]",
  M: "[g4,a4,d5] ~@15", // Gsus2
})).s("gm_rock_organ").gain(0.13)

// other · piano
const piano = note(`<
  ~@24 A B C@2 A D@3 ~@20 A B E@2 A D@3 A B C@2 A D@3 ~@20 A B E@2 A D@3 A F C@2 A G@2 ~@23
>`.pickRestart({
  A: "d4@3 ~", B: "f#3 g3 a3 e4@5", C: "[d4@5 [f#3,f#4] [e3,e4] [d3,d4]@6 ~@3]/2",
  D: "[f#3 g3 a3 e4@3 e3 f#3@2 f#3@4 [f#3,f#4] [e3,e4] [d3,d4]@6 ~@3]/3", // F# E D
  E: "[d4@5 [f#3,f#4] [e3,e4] [d3,d4]@6 a3@2 g3]/2", F: "f#3 g3 a3 e4@4 ~",
  G: "[f#3 g3 a3 e4@3 e3 f#3@2 f#3@4 [f#3,f#4] [e3,e4] [d3,d4]]/2", // F# E D
})).s("gm_piano").gain(0.05)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@3 A B@10 C B@2 D E F G H I@2 J K L M J K L M B@5 H B H B H B H B D E F G H I@2 J K L M J K L M J K L M J K L M J K L
  M J K L M ~@10 N@2 J K L M J K L M J K L M J K L M O@2 ~ J K L M J K L M J K L M J K L M P@2 ~
>`.pickRestart({
  A: "~@11 d4 d5 d2@3, d2@13 ~@3", B: "[d2,a2,d3] ~@3", C: "[d2,a2,d3]@2 ~ [d3,a3,d4]@5", D: "[e2,b2,e3] ~@3",
  E: "[f#2,c#3,f#3] ~@3", F: "[g2,d3,g3]@4 ~@6 [a3,d4] ~ [a3,d4] ~ [a3,d4] ~",
  G: "[a3,d4] ~ [a3,d4] ~@13, [d2,a2,d3] ~@3", H: "[g2,d3,g3] ~@3",
  I: "[e3@10 ~@2 d#3 ~ a3@14 ~@4, a2@7 ~, a3@7 ~@9, ~@3 e3@4 ~]/2", J: "[d2,a2,d3]", K: "[f#2,c#3,f#3]",
  L: "[b2,f#3,b3]", M: "[g2,d3,g3]", N: "[[a2,e3,a3] a3 ~ e4, ~ [a2,e3]@3, ~@8 a3@3 a3@5, ~@9 e4@3 ~@4]/2",
  O: "[[g2,d3,g3]@3 ~]/2", P: "[d2,a2,d3]/2",
})).s("gm_overdriven_guitar").gain(0.26).pan(0.6)

// chords · electric guitar clean
const electric_guitar_clean = note("<A B C@2 ~@20 D@8 ~@20 D@24 ~@12 D@16 ~@3 D@12 E@6 ~>".pickRestart({
  A: "~@7 a3, d3@3 d3@5, d4 d4@2 d4, ~ a3@3 a3@3 ~, ~@5 e4@3", B: "~@5 d3@3, f#2, ~ d3@4 ~@3, ~ a3@3, ~@3 d4@5",
  C: "[~@17 d4@14 ~, b2@3 b2@3 [b2,d4]@2 [d3,g3,a3]@8, ~ a3@3 a3@3 a3 ~@8, ~@4 d4@8 ~@3 g2@17, ~@5 e4@3 ~@8]/2", // Bm Dsus4
  D: "[~@44 d4@6 ~@10 d4@3 ~, d3@14 d4@5 d4@3 ~@5 d4@3 ~@2, ~@2 f#3@10 d4@8 a3@16 a3@14 ~@2 a3@11 ~, ~@4 a3@14 f#3@16 f#3@16 g3@13 ~, ~@6 d4@4 e4@12 d4@4 e4@16 e4@8 ~@8 e4@5 ~]/4",
  E: "[~@44 d4@6 ~@10 d4@3 ~ [a3,d4]@32, d3@14 d4@5 d4@3 ~@5 d4@3 ~@18, ~@2 f#3@10 d4@8 a3@16 a3@14 ~@2 a3@11 ~@33, ~@4 a3@14 f#3@16 f#3@16 g3@13 [d3,f#3]@33, ~@6 d4@4 e4@12 d4@4 e4@16 e4@8 ~@8 e4@5 ~@33]/6", // D5 D
})).s("gm_electric_guitar_clean").gain(0.35).pan(0.3)

// chords · melodic tom
const melodic_tom = note("<~@23 A ~@7 B@8 ~@28 B@8 ~@39 B@8 C ~@3>".pickRestart({
  A: "~@8 d3 ~@5 d#2 ~", B: "[~@15 f#2@113, ~ f#3@15, ~@7 a#2@57]/8", C: "~@8 f#3 ~@5 a#2 f#2",
})).s("gm_melodic_tom").gain(0.56)

// chords · lead 1 square
const lead_1_square = note(`<
  ~@4 A@4 B@3 C B@3 C B D E F B F G@2 H I J K H I J K A@5 L A L A L M N B D E F B F G@2 H I J K H I J K H I J K H I J K
  ~@2 O@2 ~@16 H I J K H I J K H I J K H I J K P@2 ~ Q R S K Q R T K Q R S K Q R T K ~@3
>`.pickRestart({
  A: "[d2,a2,d3] ~@3", B: "[d1,d2,a2,d3] ~@3", C: "[d#1,d2,a2,d3] ~@3", D: "[e1,e2,b2,e3] ~@3",
  E: "[f#1,f#2,c#3,f#3] ~@3", F: "[g1,g2,d3,g3] ~@3", G: "[[a1,a2,e3,a3]@7 ~]/2", H: "[d2,a2,d3]", I: "[f#2,c#3,f#3]",
  J: "[b2,f#3,b3]", K: "[g2,d3,g3]", L: "[g2,d3,g3] ~@3", M: "[d2,a2,d3]@4 ~@6 a5@3 ~ g#5 ~",
  N: "g5 ~ f#5 ~ f5@2 ~ e5 ~@8, [g2,d3,g3] ~@3", O: "[f#5@2 g5@2 a5@2 d6@4 d5 ~ d5 e5 d5@9 ~@9]/2",
  P: "[[g2,d3,g3]@3 ~]/2", Q: "~@5 g6 ~ d7, [d2,a2,d3]", R: "~@4 a6 e7 ~ d7, [f#2,c#3,f#3]",
  S: "~@5 g6 a6 d7, [b2,f#3,b3]", T: "~@5 e6 f#6 d6, [b2,f#3,b3]",
})).s("gm_lead_1_square").gain(0.32).pan(0.4)

// chords · lead 1 square · soft notes
const lead_1_square_soft = note("<~@43 A ~@63 B C D ~ B C ~@2 B C D ~ B C ~@5>".pickRestart({
  A: "~@8 d#5 d5 c#5 c5 b4 a#4 a4 g#4", B: "~@4 f#6 ~ a6 ~", C: "~@6 c#7 ~", D: "~@4 f#6 ~@3",
})).s("gm_lead_1_square").gain(0.16).pan(0.4)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@7 A B@14 C D C@7 E ~@3 F B@14 C D C@7 E C@7 G C@7 E C ~ C ~ B@6 H I C@7 E C@7 G C J ~ C@7 E C@7 K ~@3
>`.pickRestart({
  A: "~@11 x ~@4", B: "~@4 x ~@2 x ~@4 x ~@3", C: "~ x ~ x", D: "~@4 x ~@6 x!2 ~@3", E: "~@4 x ~@6 x!3 ~@2", F: "~@3 x",
  G: "~@4 x ~@5 x ~ x ~ x!2", H: "~@12 x!4", I: "x!16", J: "~ x ~@2", K: "~@4 x ~@6 x!4 ~",
})).gain(0.42)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@24 A B A B A B A B ~@20 A B A B A B A B A B A B A B A C A B A B A B A B ~@4 D@6 E ~ A B A B A B A B A B A B A B A C
  A C ~ A B A B A B A B A B A B A B A B ~@3
>`.pickRestart({
  A: "~@7 x ~ x ~@6", B: "~@7 x ~ x ~@5 x", C: "~@7 x ~@8", D: "~@15 x", E: "x!12 ~@4",
})).gain(0.21)

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

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

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

// drums · crash
const crash = s("cr").struct(`<
  ~@8 A ~@7 A ~@5 A ~ A ~@3 A ~@6 B A ~@7 A ~@5 A ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 C ~ C ~@9 A ~@3 A ~@3 A ~@3 A
  ~@3 A@2 ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@2
// … 9 more lines

More by Rossi Vasco