Strudelify

Le cose che hai amato di piu

Biagio Antonacci

KeyC majorTempo82 bpm
0:00/0:00
// Le cose che hai amato di piu — Biagio Antonacci
// 82 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 90 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 30, guitar program 24.
setcpm(82/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(`<
  ~@15 A B C D A B C D C B D A C B D E F G H I J G K I L M N O P O Q G H R S C B D A C B D E F G H I J G K I L M N O P O
  Q T U V W T X V Y G H I Z@2 AA AB AC@2
>`.pickRestart({
  A: "c2", B: "e1", C: "a1", D: "f1", E: "g1", F: "g1@15 ~", G: "c2@5 ~ c2@10", H: "a1@5 ~ a1@8 e1@2",
  I: "f1@5 ~ f1@10", J: "g1@3 g1@5", K: "a1@3 a1@4 e1", L: "g1@5 ~ g1@8 a1 c2", M: "d2@5 ~ d2@10",
  N: "a1@6 a1@7 ~ a1@2", O: "g1@5 ~ g1@9 d2", P: "g2@3 g2@5", Q: "g2@6 g1@6 g1@3 ~", R: "f1@3 f1@5", S: "g1@5 ~ g1@9 ~",
  T: "d#2@5 ~ d#2@10", U: "c2@5 ~ c2@8 g1@2", V: "g#1@5 ~ g#1@10", W: "a#1@3 a#1@5", X: "c2@3 c2@4 g1",
  Y: "a#1@5 ~ a#1@8 c2 d#2", Z: "[g1@3 g1@13]/2", AA: "c2@4 ~@2 c2@9 ~", AB: "c2@2 ~ c2@4 ~", AC: "c2/2",
})).s("gm_electric_bass_finger").gain(0.47)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@10 A@2 B C@2 ~@7 D@2 E F G@2 H I J@2 K@5 L@3 M@2 N O P Q R@4 ~@4 S T I U@2 K@5 L@3 M@2 N O P V W@2 X Y Z AA@2 AB
  AC@3 AD@2 ~@4
>`.pickRestart({
  A: "a3/2", B: "b3", C: "[f3@16 e3@15 ~, c4]/2", D: "[~ b3 a3 g3 ~@3 c4, c4@7 ~, ~ e3]/2", E: "d3@12 d3 ~@3, b3",
  F: "a3@12 a3 ~@3, c3", G: "[g3@2 ~ b3 ~@3 c4, c3@7 ~ a3@8, ~@2 c4@5 ~]/2", H: "d3@3 d3, b3", I: "~@3 a3, c3",
  J: "[c4@4 b3 [g3,b3] [a3,c4] [b3,d4], g3@5 ~@3]/2", K: "[g3@2 a3@2 f3@2 ~ d4 e4@2, c4@7 ~@3, ~@3 g3@2]/5",
  L: "[a3@2 f3@2 ~ b3, c4@5 ~, ~@2 g3]/3", M: "[[f3,d4]@16 [c4,e4]@15 ~, a3@15 ~]/2", N: "g4 f4", O: "e4@8 d4@7 ~",
  P: "[d4,g4,b4] [c4,f4,a4]", Q: "[d4,g4,b4]@8 [f4,a4,d5]@7 ~",
  R: "[[g3,c5]@2 b4 ~@3 c4 b3, [e3,c4]@2 [f3,a4] [g3,g4], ~ a3@2 ~, ~@3 e4@2 d4@3]/4", S: "a3@3 c4",
  T: "d3@11 ~ d3@4, b3", U: "[c3@4 ~ [g4,b4] [a4,c5] [b4,d5], g3@5 g3@3, ~ b2]/2", V: "[d4,g4,b4] [f4,a4,d5]",
  W: "[d#5@2 d5 g4, [g3,a#3]]/2", X: "[g#3,d#4,c5]", Y: "d#4@2 ~ g#4, a#4@3 ~, ~ d4", Z: "[a#3,g4]",
  AA: "[d#4 ~ g4@2, ~ c5@3]/2", AB: "d#4 d4, [a#3,f4]", AC: "[g3 a3 f3, c4]/3", AD: "[g3,b3]/2",
})).s("gm_string_ensemble_2").gain(0.36)

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~ A@2 ~@3 B C D E F G H I J ~@3 B C D E F G H K@2 G L M N O ~@18 G H P Q R S T U ~@28 V W@3
>`.pickRestart({
  A: "[~@12 [c4,d4,g4] ~ [c4,g4]@12 ~@6]/2", B: "f3@9 ~@3 g3 a3 c4 d4, e3 ~@15", C: "c4@9 ~@7",
  D: "[e3,g3,b3]@5 ~ e3@2", E: "a3@15 ~, g3 ~@15", F: "f3@13 ~@3", G: "c5@2 e4 ~ e4@10 ~@2", H: "b4 d4 d4@6",
  I: "a4 c4 c4@3 g4 f4@2", J: "e4@9 ~@7", K: "[a4@2 c4@2 c4@4 ~@2 c4 ~ [c4,d4]@2 c4@7 ~@11]/2", L: "b4@2 d4 ~ d4@12",
  M: "a4 c4 ~ a4@2 g4 f4 ~, ~ c4 ~@2", N: "g4@5 d4 g4 c5", O: "b4@5 ~@3", P: "a4 c4 c4@2 ~ g4 f4@2",
  Q: "e4@7 ~ c5@4 [b3,d4] [c4,e4] [b3,d4]@2", R: "~@6 [c4,g4]@8 d4 ~", S: "~@3 g4@3 d4@2, e4@13 ~@3", T: "c4",
  U: "g4@9 ~@7", V: "~@12 g3 a3 c4 d4", W: "[c4@7 ~ [g3,a3,c4]@2 g3 ~ d3@2 c3@34, ~ a3@3, ~@12 e3 ~@35]/3",
})).s("gm_electric_guitar_jazz").gain(0.47).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B C D E F@3 G H@2 I@4 D E F@3 G H@2 I@4 J@4 K L M N O P@2 Q R@2 S@3 T U L M N O I@4 J@4 K L M N O P@2 Q V W S@3 T U
  X Y Z AA AB@2 AC AD L M N AE AF@2 AG@3
>`.pickRestart({
  A: "[e2,c3,g3]", // C
  B: "[e2,c3,g3]@3 ~ [e2,c3]@2 [e2,c3,g3,c4,g4]@3 ~ [e2,c3]@2 [e2,c3,g3,c4,g4]@2 ~ [e2,c3], ~@3 [g3,c4,g4]@3 ~@3 [g3,c4,g4]@3 ~@2 [g3,c4,g4]@2", // C C5
  C: "[e2,c3]@3 ~ [e2,c3]@2 [e2,c3,g3,c4,g4]@3 ~@3 [g3,c4,g4]@2 ~ [g3,g4], ~@3 [g3,c4,g4]@3 ~@3 [g3,c4,g4]@3 ~@4, ~@5 [e2,c3]@2 [e2,c3]", // C C5 G C5 C
  D: "[e2,c3,g3,c4,g4]@3 ~ [e2,c3]@2 [e2,c3,g3,c4,g4]@3 ~@6 g3, ~@3 [g3,c4,g4]@3 ~@3 [g3,c4,g4]@3 [g3,c4,g4]@4, ~@5 [e2,c3]@2 [e2,c3]", // C C5 C
  E: "[e2,b2,g3]@3 ~ [e2,b2]@2 [e2,b2,g3,b3,g4]@3 ~@3 [g3,b3,g4]@2 ~ [g3,b3,g4], ~@3 [g3,b3,g4]@3 ~@3 [g3,b3,g4]@3 ~@4, ~@5 [e2,b2]@2 [e2,b2]", // Em E5 Em G E5
  F: "[[a2,e3]@3 ~ [a2,e3]@2 [a2,e3,a3,c4,g4]@3 ~ [a2,e3]@2 [a2,e3,a3,c4]@2 [a2,e3,a3,c4]@2 [f2,c3]@3 ~ [f2,c3]@2 [f2,c3,a3,c4,g4]@3 ~@3 [a3,c4,g4]@2 ~ a3 [e2,c3,g3,c4]@3 ~ [e2,c3]@2 [e2,c3,g3,c4,g4]@3 ~@3 [g3,c4,g4]@2 [e2,c3,g3,c4,g4]@2, ~@3 [a3,c4,g4]@3 ~@3 [a3,c4,g4]@3 g4@7 [a3,c4,g4]@3 ~@3 [a3,c4,g4]@3 ~@3 g4@4 ~@13, ~@16 f3@16 ~@3 [g3,c4,g4]@3 ~@3 [g3,c4,g4]@3 ~@4, ~@13 [f2,c3]@2 [f2,c3] ~@5 [e2,c3]@2 ~]/3", // A5 Am7 A5 Am F5 F Am7 C …
  G: "[e2,b2,g3,b3]@3 ~ [e2,b2]@2 [e2,b2,g3,b3,g4]@3 ~ [e2,b2]@2 [g3,b3]@2 [g3,b3]@2, ~@3 [g3,b3,g4]@3 ~@3 [g3,b3,g4]@3 [e2,b2,g4]@4", // Em E5 Em E5 G Em
  H: "[~@2 a3 ~ [a2,e3]@2 [a3,c4,g4]@4 ~@4 a3!2 [f2,c3,a3,c4]@3 ~ [f2,c3]@2 [f2,c3,a3,c4,g4]@3 ~ [f2,c3]@2 [a3,c4]@2 [a3,c4]@2, [a2,e3]@3 [a3,c4,g4]@3 [a2,e3]@6 [a2,e3]@4 ~@12 [f2,c3,g4]@4, ~@10 [a3,c4,g4]@4 g4@5 ~@13, ~@14 c4@2 ~@3 [a3,c4,g4]@3 ~@3 [a3,c4,g4]@3 ~@4]/2", // A5 Am7 F F5 F F5 Am A5 …
  I: "[[a2,e3]@3 ~ [a2,e3]@2 [a2,e3,a3,c4,g4]@3 ~@5 [a2,e3]@2 [e2,b2,g3]@3 ~ [e2,b2]@2 [e2,b2,g3,b3,g4]@3 ~@5 [e2,b2]@2 [f2,c3]@3 ~ [f2,c3]@2 [f2,c3,a3,c4,g4]@3 ~@5 c3@2 [e2,c3,g3]@3 ~ [e2,c3]@2 [e2,c3,g3,c4,g4]@3 ~@5 [e2,c3]@2, ~@3 [a3,c4,g4]@3 ~@3 [a3,c4,g4]@3 g4@7 ~@9 g4@7 ~@7 [f2,c3]@4 f2@18, ~@10 [a2,e3]@4 ~@12 [e2,b2]@4 ~@2 b3 ~@2 [a3,c4,g4]@3 ~@3 [a3,c4,g4]@3 a3@20, ~@12 [a3,c4]@4 ~@3 [g3,b3,g4]@3 ~@3 [g3,b3,g4]@3 [g3,b3]@4 f3@32, ~@44 [c4,g4]@7 [g3,c4,g4]@3 ~@3 [g3,c4,g4] [e2,c3]@2 [g3,c4,g4]@4]/4", // A5 Am7 A5 Em E5 Em E5 F5 …
  J: "[[a2,e3]@3 ~ [a2,e3]@2 [a2,e3,a3,c4,g4]@3 ~@5 [a2,e3]@2 [e2,b2,g3]@3 ~ [e2,b2]@2 [e2,b2,g3,b3,g4]@3 ~@5 [e2,b2]@2 [f2,c3]@3 ~ [f2,c3]@2 [f2,c3,a3,c4,g4]@3 ~@7 [g2,d3,g3]@3 ~ [g2,d3]@2 [g2,d3,g3,c4,g4]@3 ~@5 [g2,d3]@2, ~@3 [a3,c4,g4]@3 ~@3 [a3,c4,g4]@3 g4@7 ~@9 g4@7 ~@7 [f2,c3]@4 [f2,c3]@18, ~@10 [a2,e3]@4 ~@12 [e2,b2]@4 ~@2 b3 ~@2 [a3,c4,g4]@3 ~@3 [a3,c4,g4]@3 a3@20, ~@12 [a3,c4]@4 ~@3 [g3,b3,g4]@3 ~@3 [g3,b3,g4]@3 [g3,b3]@4 f3@32, ~@44 [c4,g4]@7 [g3,c4,g4]@3 ~@3 [g3,c4,g4] [g2,d3]@2 [g3,c4,g4]@4]/4", // A5 Am7 A5 Em E5 Em E5 F5 …
  K: "[g2,d3,g3]@3 ~ [g2,d3]@2 [g2,d3,g3,b3,g4]@3 ~@5 [g2,d3]@2, ~@3 [g3,b3,g4]@3 ~@3 [g3,b3,g4]@3 [g3,b3,g4]@4, ~@5 [g2,d3]@2 ~", // G5 G G5 G G5
  L: "[e2,c3,g3,c4,e4]@2 ~@2 [e2,c3]@2 [e2,c3,g3,c4,e4]@3 ~@3 [g3,e4]@2 [e2,c3,g3,e4]@2, ~ [e2,c3] ~@3 [e2,c3]@2 ~, ~@3 [g3,c4,e4]@3 ~@3 [g3,c4,e4]@3 c4@4", // C
  M: "[a2,c3,a3,c4,e4]@3 ~ [a2,c3]@2 [a2,c3,a3,c4,e4]@3 ~@5 [a2,c3]@2, ~@3 [a3,c4,e4]@3 ~@3 [a3,c4,e4]@3 [a3,c4,e4]@4, ~@5 [a2,c3]@2 ~", // Am
  N: "[f2,c3,f3,a3,c4,e4]@3 [f3,a3,c4,e4]@3 [f3,a3,c4,e4]@3 [f2,c3] ~@4 [f2,c3]@2, ~@3 [f2,c3]@6 [f3,a3,c4,e4]@3 [f3,a3,c4,e4]@4, ~@5 [f2,c3]@2 ~", // Fmaj7 F5 Fmaj7 F5
  O: "[g2,d3,g3,c4,d4]@3 ~ [g2,d3]@2 [g2,d3,g3,b3,d4]@3 ~ [g2,d3]@2 [g2,d3]@2 [g2,d3]@2, ~@3 [g3,c4,d4]@3 ~@3 [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@4", // Gsus4 G5 G G5 Gsus4 G
  P: "[[c3,g3,c4,e4]@3 [e2,c3,g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~@8 [a2,e3,a3,c4,e4]@3 [e3,a3,c4,e4]@2 ~ [a3,c4,e4]@3 ~@5 [a2,e3]@2, ~@5 [e2,c3]@3 c3@2 c3@4 ~@5 a2@6 [a3,c4,e4] a2@2 [a3,c4,e4]@4, ~@9 e2@5 [e2,c3]@18, ~@9 [g3,c4,e4]@3 g3@20, ~@12 [c4,e4]@4 ~@5 e3@4 e3@5 ~@2]/2", // C Am A5 C Am C
  Q: "[f2,c3,f3,a3,c4,e4]@3 ~@3 [f3,a3,c4,e4]@3 ~@5 [f2,c3]@2, ~@3 [f3,a3,c4,e4]@3 ~@3 [f3,a3,c4,e4]@3 [f3,a3,c4,e4]@4, ~@2 [f2,c3]@3 [f2,c3]@2 ~", // Fmaj7 F5 Fmaj7 F5
  R: "[[g2,d3,g3,c4,d4]@3 ~@3 [g3,b3,d4]@3 ~@5 d3@2 [a2,d3,a3,d4,f4]@3 ~ d3@2 [a2,d3,a3,d4,f4]@3 ~@5 [a2,d3]@2, ~@3 c4@29, ~@3 [g3,d4]@3 ~@3 [g3,b3,d4]@3 [g3,b3]@20, ~@2 [g2,d3]@3 [g2,d3]@2 g2@9, ~@12 d4@4 ~@3 [a2,a3,d4,f4]@3 ~@3 [a3,d4,f4] [a2,d3]@2 [a3,d4,f4]@4]/2", // Gsus4 G Dm D5 G5 G G5 Dm …
  S: "[[a2,e3,a3,c4,e4]@3 [a2,e3] ~@2 [a3,c4,e4]@2 ~@8 [g2,d3,g3,b3,d4,g4]@3 ~@3 [g3,b3,d4,g4]@2 ~@8 [g2,d3,b3,d4,g4]@3 ~ [g2,d3]@2 [g2,d3,g3,b3,d4,g4]@3 ~@3 [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4], ~@3 [a3,c4,e4]@3 ~@3 [a3,c4,e4]@3 [a3,c4,e4]@32 ~@4, ~@2 [a2,e3]@2 [a2,e3] [a2,e3]@2 [a2,e3]@16 ~, ~@19 [g3,b3,d4,g4]@3 ~@3 [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@3 g3@4 [g3,b3,d4,g4]@3 ~@3 [g3,b3,d4,g4]@3 ~@4, ~@10 [g2,d3]@2 [g2,d3] [g2,d3]@2 [g2,d3] ~@5 [g2,d3]@2 [g2,d3]]/3", // Am A5 Am G G5 G Am A5 …
  T: "[g2,d3,g3,b3,d4,g4]@3 ~@3 [g3,b3,d4,g4]@3 ~ [g3,b3,d4,g4]@2 [g2,g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4], ~@3 [g3,b3,d4,g4]@3 ~@3 d3@5 ~@2, ~@4 [g2,d3]@5 g2@3 ~@2 [g2,d3]@2", // G G5
  U: "[g2,d3,g3,b3,d4,g4]@3 ~@3 [g3,b3,d4,g4]@2 ~@6 [g2,d3]@2, ~@3 [g3,b3,d4,g4]@3 ~@3 [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@4, ~@2 [g2,d3]@2 [g2,d3] [g2,d3]@2 ~", // G G5 G G5
  V: "[g2,d3,g3,c4,d4]@3 ~@3 [g3,b3,d4]@3 ~@5 [g2,d3]@2, ~@3 c4@13, ~@3 [g3,d4]@3 ~@3 [g3,b3,d4]@3 [g3,b3,d4]@4, ~@2 [g2,d3]@3 [g2,d3]@2 ~", // Gsus4 G G5 G G5
  W: "[a2,d3,a3,d4,f4]@2 ~ [a2,a3,d4,f4] d3 ~ [a2,d3,a3,d4,f4]@2 ~ [a3,d4,f4] [a2,d3]@2 [a3,d4,f4]@2 [a2,d3] ~", // Dm D5 Dm D5
  X: "[g2,d#3,a#3,d#4,g4]@2 ~@2 [g2,d#3]@2 [g2,d#3,a#3,d#4,g4]@3 ~@3 [a#3,g4]@2 [g2,d#3,a#3,g4]@2, ~ [g2,d#3] ~@3 [g2,d#3]@2 ~, ~@3 [a#3,d#4,g4]@3 ~@3 [a#3,d#4,g4]@3 d#4@4", // D# Cm D# Cm D#
  Y: "[c3,d#3,c4,d#4,g4]@3 ~ [c3,d#3]@2 [c3,d#3,c4,d#4,g4]@3 ~@5 [c3,d#3]@2, ~@3 [c4,d#4,g4]@3 ~@3 [c4,d#4,g4]@3 [c4,d#4,g4]@4, ~@5 [c3,d#3]@2 ~", // Cm
  Z: "[g#2,d#3,g#3,c4,d#4,g4]@3 [g#3,c4,d#4,g4]@3 [g#3,c4,d#4,g4]@3 [g#2,d#3] ~@4 [g#2,d#3]@2, ~@3 [g#2,d#3]@6 [g#3,c4,d#4,g4]@3 [g#3,c4,d#4,g4]@4, ~@5 [g#2,d#3]@2 ~", // G#maj7 G#5 G#maj7 G#5
  AA: "[a#2,f3,a#3,d#4,f4]@3 ~ [a#2,f3]@2 [a#2,f3,a#3,d4,f4]@3 ~ [a#2,f3]@2 [a#2,f3]@2 [a#2,f3]@2, ~@3 [a#3,d#4,f4]@3 ~@3 [a#3,d4,f4,a#4]@3 [a#3,d4,f4,a#4]@4", // A#sus4 A#5 A# A#5 A#sus4 A#
  AB: "[[d#3,a#3,d#4,g4]@3 [g2,d#3,a#3,d#4,g4]@2 ~ [a#3,d#4,g4]@2 ~@8 [c3,g3,c4,d#4,g4]@3 [g3,c4,d#4,g4]@2 ~ [c4,d#4,g4]@3 ~@5 [c3,g3]@2, ~@5 [g2,d#3]@3 d#3@2 d#3@4 ~@5 c3@6 [c4,d#4,g4] c3@2 [c4,d#4,g4]@4, ~@9 g2@5 [g2,d#3]@18, ~@9 [a#3,d#4,g4]@3 a#3@20, ~@12 [d#4,g4]@4 ~@5 g3@4 g3@5 ~@2]/2", // D# Cm C5 Cm D#
  AC: "[g#2,d#3,g#3,c4,d#4,g4]@3 ~@3 [g#3,c4,d#4,g4]@3 ~@5 [g#2,d#3]@2, ~@3 [g#3,c4,d#4,g4]@3 ~@3 [g#3,c4,d#4,g4]@3 [g#3,c4,d#4,g4]@4, ~@2 [g#2,d#3]@3 [g#2,d#3]@2 ~", // G#maj7 G#5 G#maj7 G#5
  AD: "[a#2,f3,a#3,d#4,f4]@3 ~@3 [a#3,d4,f4]@3 ~@5 [a#2,f3]@2, ~@3 d#4@13, ~@3 [a#3,f4]@3 ~@3 [a#3,d4,f4]@3 [a#3,d4,f4]@4, ~@2 [a#2,f3]@3 [a#2,f3]@2 ~", // A#sus4 A# A#5 A# A#5
  AE: "[g2,d3,g3,b3,d4]@3 ~ [g2,d3]@2 [g2,d3,g3,b3,d4]@3 ~ [g2,d3]@2 [g2,d3]@2 [g2,d3]@2, ~@3 [g3,b3,d4]@3 ~@3 [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@4", // G G5 G G5 G
  AF: "[[g2,d3,g3,b3,d4]@3 ~ [g2,d3]@2 [g2,d3,g3,b3,d4]@3 ~ [g2,d3]@2 [g2,d3]@2 ~@2 [e2,c3,g3]@3 ~ [e2,c3]@2 [e2,c3,g3,c4,g4]@3 ~ [e2,c3]@2 [e2,c3,g3,c4,g4]@2 ~ [e2,c3], ~@3 [g3,b3,d4]@3 ~@3 [g3,b3,d4]@3 [b3,d4]@20, ~@12 g3@4 ~@3 [g3,c4,g4]@3 ~@3 [g3,c4,g4]@3 ~@2 [g3,c4,g4]@2, ~@7 [g2,d3]@9]/2", // G G5 G G5 C G Bm C5 …
  AG: "[[e2,c3]@3 ~ [e2,c3]@2 [e2,c3,g3,c4,g4]@3 ~@3 [g3,c4,g4]@2 ~ [g3,g4] [c3,e3,c4]@32, ~@3 [g3,c4,g4]@3 ~@3 [g3,c4,g4]@3 ~@3 e2@32 ~, ~@5 [e2,c3]@2 [e2,c3] ~@16]/3", // C C5 G C C5 C
})).s("gm_acoustic_guitar_steel").gain(0.37).pan(0.3)

// chords · distortion guitar · G5
const distortion_guitar = note("<~@57 [~@15 [g2,d3,g3]] ~@32>").s("gm_distortion_guitar").gain(0.39).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B C B A B A B A B A B A B A B A B A B A@2 B A B A B A B C
  B A B A B A B A B A B A B A B A B A B A B D B A B A B A B C ~
>`.pickRestart({
  A: "x ~@2 x ~@4", B: "x ~@2 x ~@2 x ~@9", C: "x", D: "x ~@5 x ~@4 x ~@4",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct("<~ [~ x ~ x]!31 ~@18 [~ x ~ x]!9 ~@27 [~ x ~ x]!2 ~@2>").gain(0.64)

// drums · clap
const clap = s("cp").struct("<~@15 A@16 B A@17 C A@8 B A@13 D A@7 D A@5 ~@4>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x ~@4 x ~@5", C: "~@4 x ~@4 x ~@6", D: "~@4 x ~@4 x ~@2 x ~@3",
})).gain(0.64)

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

// drums · hihat
const hihat = s("hh").struct("<[x ~ x ~ x!4] [x!16]!31 ~@18 [x!16]!9 ~@27 [x!16]!2 ~@2>").gain(0.56)

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

// drums · crash
const crash = s("cr").struct("<~@32 A ~@13 A ~@12 A ~@13 A ~@7 A ~@6 A ~>".pickRestart({
  A: "x",
})).gain(0.56)

// drums · ride
const ride = s("rd").struct("<~@32 [x!8]!18 ~@9 [x!8]!27 ~@4>").gain(0.56)

// drums · tambourine
const tambourine = s("tb").struct("<~ [~ x ~ x]!48 [~ x ~@2] [~ x ~ x]!38 ~@2>").gain(0.48)

// drums · shaker
const shaker = s("sh").struct("<~@32 [x!16]!18 ~@9 [x!16]!27 ~@4>").gain(0.56)

stack(
  bass, string_ensemble_2, electric_guitar_jazz, acoustic_guitar_steel, distortion_guitar, kick, snare, clap, low_tom,
  hihat, mid_tom, crash, ride, tambourine, shaker
)

More by Biagio Antonacci