Strudelify
Cose della vita (Can't Stop Thinking of You) cover art

1993 · Tutte storie

Cose della vita (Can't Stop Thinking of You)

Ramazzotti

KeyE majorTempo89 bpm
0:00/0:00
// Cose della vita (Can't Stop Thinking of You) — Ramazzotti
// 89 bpm, 4/4, key E 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 103 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(89/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 · pad poly · "POLYSYNTH"
const pad_poly = note(`<
  ~@9 A B C@2 D E A F D G D H I J K L M E A F D E A F D G D H I J K L ~@8 M E A F N O P Q N R N S N O P Q T U V W X@2 Y
  Z AA@2 AB@2 AC AD AE AF AG AH AG AI AJ AK AL AM ~@8 AN AD AE AF AO ~
>`.pickRestart({
  A: "[f#3,a3,c#4]@3 [f#3,a3,d4]@5, f#2", B: "[f#3,a3,c#4]@6 [f#3,a3,d4]@9 ~",
  C: "[[f#3,c#4]@6 [f#3,d4]@9 ~ [f#3,c#4]@6 [f#3,d4]@10, f#2@11 ~@5, a3@15 ~ a3@16]/2", // F#5 D F#5 D
  D: "[f#3,a3,c#4]@5 ~ [f#3,a3,d4]@10, f#2", E: "[a2,e3,a3,c#4]@3 [e2,e3,g#3,b3]@5",
  F: "[a2,e3,a3,c#4]@3 [e2,g#3,b3,e4]@5", G: "[a2,a3,c#4]@3 [e2,g#3,b3]@5, e3@15 ~",
  H: "[a2,e3,a3,c#4]@6 [e2,e3,g#3,b3]@9 ~", I: "[b2,f#3,b3,d4] [a2,f#3,a3,d4]", J: "[e2,g#3,b3], e4@7 ~",
  K: "[b2,f#3,b3,d4]@7 ~ [a2,f#3,a3]@8, ~@4 d4@3 ~", L: "[e2,g#3,b3,e4]@15 ~", M: "[f#3,a3,c#4]@6 [f#3,a3,d4]@9 ~, f#2",
  N: "[g#3,b3,d#4]@5 ~ [g#3,b3,e4]@10, g#2", O: "[b2,f#3,b3,d#4]@3 [f#2,f#3,a#3,c#4]@5",
  P: "[g#3,b3,d#4]@3 [g#3,b3,e4]@5, g#2", Q: "[b2,f#3,b3,d#4]@3 [f#2,a#3,c#4,f#4]@5",
  R: "[b2,b3,d#4]@3 [f#2,a#3,c#4]@5, f#3@15 ~", S: "[b2,f#3,b3,d#4]@6 [f#2,f#3,a#3,c#4]@9 ~",
  T: "[c#3,g#3,c#4,e4] [b2,g#3,b3,e4]", U: "[f#2,a#3,c#4], f#4@7 ~",
  V: "[c#3,g#3,c#4,e4]@7 ~ [b2,g#3,b3]@8, ~@4 e4@3 ~", W: "[f#2,a#3,c#4,f#4]@15 ~", X: "[d#5 e5, [g#4,b4]]/2",
  Y: "[f#4,b4,d#5]", Z: "[f#4,a#4,c#5]", AA: "[d#5@15 ~ e5@15 ~, [g#4,b4]@31 ~]/2",
  AB: "[[b4,d#5]@16 [a#4,c#5]@12 [d2,d#2,e2,f2,g2] [f#2,g#2,a2,b2,c3] [a#2,c#3,d3,d#3,e3,f3,g3] [f#3,g#3,a3,a#3,b3,d4], f#4@15 ~]/2", // B A#m F#dim D#7 Bm7
  AC: "[a3,c4,e4]@5 ~ [a3,c4,f4]@10, a2, f4 ~@15", AD: "[c3,g3,c4,e4]@3 [g2,g3,b3,d4]@5",
  AE: "[a3,c4,e4]@3 [a3,c4,f4]@5, a2", AF: "[c3,g3,c4,e4]@3 [g2,b3,d4,g4]@5", AG: "[a3,c4,e4]@5 ~ [a3,c4,f4]@10, a2",
  AH: "[c3,c4,e4]@3 [g2,b3,d4]@5, g3@15 ~", AI: "[c3,g3,c4,e4]@6 [g2,g3,b3,d4]@9 ~", AJ: "[d3,a3,d4,f4] [c3,a3,c4,f4]",
  AK: "[g2,b3,d4], g4@7 ~", AL: "[d3,a3,d4,f4]@7 ~ [c3,a3,c4]@8, ~@4 f4@3 ~", AM: "[g2,b3,d4,g4]@15 ~",
  AN: "[a3,c4,e4]@6 [a3,c4,f4]@9 ~, a2", AO: "[a3,c4,e4,a4]",
})).s("gm_pad_poly").gain(0.32)

// bass · electric bass finger · "FINGERED"
const bass = note(`<
  ~@9 A@5 B A B A B A C D E D F A B A B A B A B A B A C D G D F H I J K L M N O A B A B P Q P Q P Q P R@2 Q P Q S T S U
  V W X Y V Z AA AB AC AD AC AD AC AD AC AE AF AG AF AH AI AJ AK AL AM AN B AO AC AD AC AD AP ~
>`.pickRestart({
  A: "f#1@3 d1@5", B: "a1@3 e1@5", C: "a1@6 e1@6 f#1 ~ a1 f#1", D: "b1@5 ~ b1@2 a1@8",
  E: "e1@3 ~ c#2@2 e2@5 ~ e2@2 ~@2", F: "e1@3 ~ f#2@2 e2@4 f#2@2 e2@3 ~", G: "e1@3 ~ c#2@2 e2@4 ~@2 e2@2 ~@2",
  H: "a1@6 c#2@5 ~ c#2@4", I: "b1@13 ~@3", J: "f#1@3 ~@4 c#2", K: "f#1@9 ~ f#1 ~ e1@4", L: "a1@3 c#2@5",
  M: "b1@5 ~ b1@6 f#1@3 ~", N: "f#1@3 c#2@5", O: "b1@7 ~", P: "g#1@3 e1@5", Q: "b1@3 f#1@5",
  R: "[b1@6 f#1@6 g#1 ~ b1 g#1@7 e1@10]/2", S: "c#2@5 ~ c#2@2 b1@8", T: "f#1@3 ~ d#2@2 f#2@5 ~ f#2@2 ~@2",
  U: "f#1@3 ~ g#2@2 f#2@4 g#2@2 f#2@3 ~", V: "g#1@7 ~ g#1 ~ g#1@6", W: "e1@7 b1 e1 ~ e1@3 ~ e1 f#1",
  X: "b1@7 ~ b1 ~ b1@6", Y: "f#1@7 ~ f#1 ~ f#1@4 d#1 f#1", Z: "e1@6 b1 e1 ~@2 e1@3 ~ e1 f#1", AA: "b1@7 ~ b1 ~ b1@5 ~",
  AB: "f#1@7 ~ f#1 ~ f#1@5 ~", AC: "a1@3 f1@5", AD: "c2@3 g1@5", AE: "c2@6 g1@6 a1@2 c2 a1", AF: "d2@5 ~ d2@2 c2@8",
  AG: "g1@3 ~ e2@2 g2@5 ~ g2@2 ~@2", AH: "g1@3 ~ a2@2 g2@4 a2@2 g2@3 ~", AI: "c1@6 e1@5 ~ e1@4", AJ: "d1@13 ~@3",
  AK: "a1@3 ~@4 e1", AL: "a1@10 a1 ~ g1@4", AM: "c1@3 e1@5", AN: "d1@5 ~ d2@6 a1@3 ~", AO: "d1@7 ~", AP: "a1",
})).s("gm_electric_bass_finger").gain(0.55)

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~@22 A@2 B C D@3 ~@8 E@2 F@2 G H I@2 J H K H L M L M N@2 O@2 P Q R Q S Q T U V@2 W@2 X Y Z AA AB AC@3 ~@8 AD@2 AE@2 AF
  AG AH@2 AI AG AJ AG AK AL AK AM AN ~
>`.pickRestart({
  A: "[~@5 [a3,b3,c4,d4,e4] [f4,g4,a4,b4,b5] c#6@3 c#6@2 b5 a5 f#5@12 ~@6, ~@6 e6@7 ~@19, ~@10 b5 ~@21]/2", // Am G7
  B: "~@3 [e5,f5,g5] f#6@2 e6@4 f#6@2 e6@3 [d#4,f#4,g4,a4,a#4,b4,c5,c#5,d5,e5,f5], ~@4 e6 ~@11", C: "[g5,e6] ~@15, f#6",
  D: "[~@32 b5 ~@5 b5@7 ~@3, e6@13 ~@3]/3", E: "[[f#4,d5] [g#4,e5], b4]/2", F: "[[f#4,d5]@16 [g#4,e5]@15 ~, b4@15 ~]/2",
  G: "[a4,c#5,e5]@3 [g#4,b4,c#5,e5]@5", H: "[a4,b4,d5,f#5]", I: "[f#4,a4,c#5]/2",
  J: "[a4,c#5,e5]@6 ~ c#5@9, ~@3 [g#4,b4,e5]@5", K: "[f#4,a4,c#5]@3 [e4,g#4,b4,c#5]@5", L: "f#5", M: "e5",
  N: "[d#5@6 e5@10 d#5@6 [a#4,c#5]@9 ~, b4@21 ~@11, g#5 f#5]/2", // A#m
  O: "[d#5@6 e5@10 d#5@6 [a#4,c#5]@6 [f2,g2,a2,a#2,b2,c3] [d3,e3,f3] [g3,a3,b3,c4,c#4,d4] [d#4,e4,f4,f#4,g4,g#4,a4], b4@21 ~@11, g#5@4 f#5@3 ~]/2", // A#m F Dm G
  P: "[g#5,b5,d#6]@3 [g#5,b5,e6]@5, [a#4,b4,c5] ~@15", Q: "[b5,d#6]@3 [a#5,c#6]@5, f#5@15 ~",
  R: "[g#5,d#6]@5 ~ [g#5,e6]@10, b5", S: "d#6@3 e6@5, [g#5,b5]", T: "d#6@6 e6@9 ~, [g#5,b5]",
  U: "[f#5,b5,d#6]@3 [f#5,a#5,c#6]@5", V: "[[g#4,e5] [a#4,f#5], c#5]/2",
  W: "[[g#4,e5]@16 [a#4,f#5]@12 ~ [f2,g2,a2] [b2,c3,d3,e3] [f3,g3,a3,b3], c#5@7 ~]/2", X: "[g#4,b4,d#5]",
  Y: "[g#4,b4,e5]", Z: "[f#4,b4,d#5]", AA: "[a#4,f#5], c#5@7 ~", AB: "[b4,d#5,g#5]@15 ~",
  AC: "[[e5,g#5]@16 d#5@16 [a#4,c#5]@12 c#2 [f2,g2,a2,b2,c3] [d3,e3,f3,g3,a3] [b3,c4,d4,e4], b4@31 ~@17, ~@16 f#5@29 ~@3]/3", // E A#m F Dm Cmaj7
  AD: "[[a4,f5] [b4,g5], d5]/2", AE: "[[a4,f5]@16 [b4,g5]@15 ~, d5@15 ~]/2", AF: "[c5,e5,g5]@3 [b4,d5,e5,g5]@5",
  AG: "[c5,d5,f5,a5]", AH: "[a4,c5,e5]/2", AI: "[c5,e5,g5]@6 ~ e5@9, ~@3 [b4,d5,g5]@5",
  AJ: "[a4,c5,e5]@3 [g4,b4,d5,e5]@5", AK: "a5", AL: "g5", AM: "g5@12 ~@2 [e3,f3,g3] [c4,d4]",
  AN: "[c5,e5,a5], [e4,f4] ~@15", // Am Fmaj7
})).s("gm_rock_organ").gain(0.24).pan(0.4)

// chords · rock organ · "ORGAN 3" · soft notes
const rock_organ_soft = note("<~@22 A ~ B C ~@2 D ~@27 E F ~@10 G H ~@6 I ~@23 J ~@2>".pickRestart({
  A: "~@4 [d3,d#3,e3,f3] [f#3,g3,g#3,a#3,c#4,d#4] f#4 ~@9", // D#7
  B: "~ [b3,c4,d4] [d#4,e4,f4,f#4,g4,g#4,a4] [a#4,b4,c5,c#5,d5,d#5] ~@10 [c4,d4,e4,f4] g#4", C: "[d#5,f#5] ~@15",
  D: "c#6@3 ~@5", E: "~@12 [f#2,g#2] [c#3,d#3] [f#3,g#3,a#3] ~", F: "c#5 ~@15",
  G: "~@12 [a#1,b1,c2,c#2,d2,e2] d#2 [f#2,g#2,a#2] [c#3,d#3,f#3]", H: "g#3 ~@15",
  I: "~@12 [b1,c2,d2,e2] [d#2,f#2] ~ [f#3,g#3,a#3,c#4,f4]", J: "~@12 [e2,f2] [g2,a2,b2,c3,d3] ~ [a3,b3]",
})).s("gm_rock_organ").gain(0.05).pan(0.4)

// chords · electric guitar clean · "CLEAN GT"
const electric_guitar_clean = note(`<
  ~@8 A@6 ~@2 B@2 ~@8 C@4 ~@2 B@2 ~@3 D E F G@2 H I@3 J K ~@8 L@2 M@2 N@4 ~ O P Q R ~@11 S@3 ~@2 T@2 U V@2 W X@3 Y Z ~@7
>`.pickRestart({
  A: "[~@10 e2@2 f2@2 f#2@27 ~ e2@2 f2@2 f#2@27 ~ e2@2 a2@2 f#2@17 ~]/6", B: "[~@5 e2 a2 f#2@8 ~]/2",
  C: "[~@10 e2@2 f2@2 f#2@27 ~ e2@2 a2@2 f#2@17 ~]/4", D: "~ f#3 b3@2 ~ f#3 b3@2, b2 a2",
  E: "~@6 e4@3 e4@2 ~ e4 e4@3, e2@11 e2@5, ~ g#3@7, ~ b3@3", F: "~ b3 ~ b3, b2 a2, ~ f#3@3 ~ f#3@3",
  G: "[e2@5 ~ e4@8 ~@2 [b3,c#4,e4]@15 ~, ~@14 a2@17 ~, ~@15 [e3,a3]@16 ~]/2", H: "~@3 a4@5, ~ b3@7, ~ d4@3",
  I: "[~@22 c#4@8 ~@2 [a2,e3,a3]@6 [c#3,b3,c#4,e4]@9 ~, ~@6 [f#3,a3,b3]@25 [b3,c#4]@7 ~@10, ~@3 e4@12 e4@4 ~@5, ~@9 g#4@7 ~@8, ~@5 f#4@3 ~@4]/3", // A5 C#m7 B7 Bsus2
  J: "~@3 a4@4 ~, ~ b3@6 ~, ~@2 d4@5 ~", K: "f#2@3 c#3@5", L: "[~@5 f#2 b2 g#2@8 ~]/2",
  M: "[~@10 f#2@2 b2@2 g#2@11 ~@7]/2", N: "[~@10 f#2@2 b2@2 g#2@9 ~@9]/2", O: "~ g#3 c#4@2 ~ g#3 c#4@2, c#3 b2",
  P: "~@6 f#4@3 f#4@2 ~ f#4 f#4@3, f#2@11 f#2@5, ~ a#3@7, ~ c#4@3", Q: "~ c#4 ~ c#4, c#3 b2, ~ g#3@3 ~ g#3@3",
  R: "f#2@5 ~ f#4@9 ~", S: "[~@7 a2@16 ~, ~@5 g2@16 ~@3, ~@3 c3@8 ~]/3",
  T: "[~@22 g4@3 g4@2 ~ g4 g4@3, d3@20 d4@7 g2@5, ~ a3@4 a3@11, ~@2 d4@4 d4@2 g2 b3@7, ~ c3@3]/2",
  U: "~ d4 ~ d4, d3 c3, ~ a3@3 ~ a3@3", V: "[g2@5 ~ g4@8 ~@2 [d4,e4,g4]@15 ~, ~@14 c3@17 ~, ~@15 [g3,c4]@16 ~]/2",
  W: "~@3 c5@5, ~ d4@7, ~ f4@3",
  X: "[~@22 e4@8 ~@2 [c3,g3,c4]@6 [e3,d4,e4,g4]@9 ~, ~@6 [a3,c4,d4]@25 [d4,e4]@7 ~@10, ~@3 g4@12 g4@4 ~@5, ~@9 b4@7 ~@8, ~@5 a4@3 ~@4]/3", // C5 Em7 D7 Dsus2
  Y: "~@3 c5@4 ~, ~ d4@6 ~, ~@2 f4@5 ~", Z: "a2@3 e3@5",
})).s("gm_electric_guitar_clean").gain(0.26).pan(0.6)

// chords · electric guitar clean · "CLEAN GT" · soft notes
const electric_guitar_clean_2 = note(`<
  ~@40
  [~@3 e4@2 e2@10 ~, ~@2 b3@13 ~]
  ~@27
  [~@3 f#4@2 f#2@10 ~, ~@2 c#4@13 ~]
  ~@19
  [~@3 g4@2 g2@10 ~, ~@2 d4@13 ~]
  ~@14
>`).s("gm_electric_guitar_clean").gain(0.13).pan(0.6)

// other · rock organ · "ORGAN 3"
const rock_organ_2 = note("<~@29 A B C D E F E G ~@33 H ~@3 I ~@2 J K L M N O N P ~@18>".pickRestart({
  A: "~@2 [b3,e4] f#4 ~ e4 ~@3 e4 b3 c#4 e4!2 ~@2", B: "~ b3 a4!2 ~ [b3,a4] ~ a3 b4!2 a3 ~ b4 a3 a4 b4",
  C: "~ b3 e4 f#4 b3 e4 b3 ~ e4!2 ~@2 e4!2 ~@2", D: "~@2 e4 f#4 ~ e4 b3 ~ [e4,b4]!2 b3!2 [e4,b4]!2 ~@2",
  E: "~ b3 e4 f#4 b3 e4 b3!2 e4!2 ~ b3 e4!2 ~@2", F: "~@3 [e4,a4] ~ [e4,a4] ~@2 [e4,b4]!2 ~ b3 [e4,b4]!2 ~ [e4,b4]",
  G: "[b4,e5] e4 [b4,e5]!2 e4 [b4,e5] ~@2 [b4,e5]!2 ~ e4 [b4,e5]!2 ~@2", H: "~@4 b4!2 ~@2 b4!2 ~ e4 b4!2 ~@2",
  I: "~@3 b3 b4!2 ~ b3 b4!2 ~ b3 b4!2 ~@2", J: "~@2 [d4,g4] a4 ~ g4 ~@3 g4 d4 e4 g4!2 ~@2",
  K: "~ d4 c5!2 ~ [d4,c5] ~ c4 d5!2 c4 ~ d5 c4 c5 d5", L: "~ d4 g4 a4 d4 g4 d4 ~ g4!2 ~@2 g4!2 ~@2",
  M: "~@2 g4 a4 ~ g4 d4 ~ [g4,d5]!2 d4!2 [g4,d5]!2 ~@2", N: "~ d4 g4 a4 d4 g4 d4!2 g4!2 ~ d4 g4!2 ~@2",
  O: "~@3 [g4,c5] ~ [g4,c5] ~@2 [g4,d5]!2 ~ d4 [g4,d5]!2 ~ [g4,d5]", // C5 G5
  P: "[d5,g5] g4 [d5,g5]!2 g4 [d5,g5] ~@2 [d5,g5]!2 ~ g4 [d5,g5]!2 ~@2", // G5
})).s("gm_rock_organ").gain(0.25).pan(0.7)

// other · rock organ · "ORGAN 3" · soft notes
const rock_organ_soft_2 = note("<~@29 A B C A ~ D ~ E ~@33 F ~@6 G H I G ~ J ~ K ~@18>".pickRestart({
  A: "~@4 b3 ~@11", B: "~@11 a3 ~@4", C: "~@7 c#4 ~@7 c#4", D: "~@2 b3 ~ b3 ~@2 b3 ~@8", E: "~@7 e4 ~@8",
  F: "~@3 e4 ~@3 e4 ~@8", G: "~@4 d4 ~@11", H: "~@11 c4 ~@4", I: "~@7 e4 ~@7 e4", J: "~@2 d4 ~ d4 ~@2 d4 ~@8",
  K: "~@7 g4 ~@8",
})).s("gm_rock_organ").gain(0.15).pan(0.7)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  A@7 B@2 ~@16 C D C E F ~@22 G H I@2 J@2 ~@8 K L M@2 ~@7 N ~@8 O P Q@2 ~@7 R S R T ~@2
>`.pickRestart({
  A: "[~@10 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@28 e3@2 [g2,e3]@2 [e2,b2,e3]@28 e3@2 [g2,e3]@2 [e2,b2,e3]@4 e2 ~ [e2,b2,e3] ~ [b3,e4]@20 e3@2 [g2,e3]@2 [e2,b2,e3]@2, ~@42 [e2,b2]@4 ~@28 [e2,b2]@4 ~@7 [e2,b2]@21 [e2,b2]@4 ~@2]/7", // E5 C E5 C E5 C E5
  B: "[~@3 e2 [e2,b2,e3] ~ [b3,e4]@25 ~, ~@5 [e2,e3]@26 ~]/2", C: "~@6 f#4 a4 b4@3 a4 b4!2 a4 f#4",
  D: "a4!2 e4 c#4 e4 f#4 a4 f#4@6 ~@3", E: "c#5@2 e5 ~ f#5@2 e5@4 ~@2 c#5@2 f#5@2", F: "a5", G: "~@7 d#4",
  H: "d#5@6 c#5@4 b4 ~@5", I: "[~@4 b4 c#5 a#4@6 b4 c#5 g#4@4 f#4 d#4 g#4@4 f#4@6 c#4 b3]/2",
  J: "[a#3 b3 a#3 f#3 b3 c#4 d#4 ~ a#4 b4 a#4 f#4 d#5@2 f#5 g#5@15 ~@2, ~@7 f#4@2 ~@23]/2", K: "~@2 g#4 ~ d#5@11 b4",
  L: "c#5@7 ~", M: "[~@8 d#5@2 f#5 ~ g#5 ~ b5@16 ~@2]/2", N: "c6", O: "~@2 a4 ~ e5@3 [c5,d5] d5@6 c5 b4", P: "a4@15 ~",
  Q: "[~ a4 ~ c5 b4 c5 d5 g5@7 ~@2]/2", R: "~@6 a4 c5 d5@3 c5 d5!2 c5 a4", S: "c5!2 g4 e4 g4 a4 c5 a4@6 ~@3",
  T: "e5@2 g5 ~ a5@2 g5@4 ~@6",
})).s("gm_overdriven_guitar").gain(0.29).pan(0.3)

// other · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note("<~@5 A@2 B@2 ~@94>".pickRestart({
  A: "[~@2 [b2,e3] [e2,b2,e3] ~ e3@21 ~@6]/2", B: "[~@2 [e2,b2,e3] [b2,e3] ~ b2@26 ~]/2",
})).s("gm_overdriven_guitar").gain(0.16).pan(0.3)

// other · marimba
const marimba = note(`<
  ~@59
  [~@2 f#4 g#4 b4!2 b3!2 b4!2 ~ b4 ~ b4 b3!2]
  ~
  [~@2 f#4 g#4 b4!2 b3!2 b4!2 ~ b3 b4!2 b3!2]
  ~
  [~@2 f#4 g#4 b4!2 b3!2 b4!2 ~ b3 b4!2 b3!2]
  [~@3 f#4!3 ~@2 f#4 ~@2 f#4 ~ f#4!3]
  ~@38
>`).s("gm_marimba").gain(0.28).pan(0.6)

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

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

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

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

// drums · open hat
const open_hat = s("oh").struct(`<
// … 49 more lines

More by Ramazzotti