Strudelify
Un'emergenza d'amore cover art

Un'emergenza d'amore

Laura Pausini

KeyF majorTempo99 bpm
0:00/0:00
// Un'emergenza d'amore — Laura Pausini
// 99 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 16 piano (copy of ch 5 choir aahs)
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(99/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 · fretless bass
const bass = note(`<
  ~ A B A B A B A C A D E F G H G I A J A J G K L M N O P Q N R S T A J A J U V L J A W A B A X G H Y Z N AA AB AC N AD
  AE AF A AG E J G H AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU A AV AW AX AY AZ AY BA BB BC BD BE BF BG BH BI A AV AW AX
  BJ
>`.pickRestart({
  A: "bb1@5 ~ c2@9 ~", B: "d2@5 ~ d2 ~ d2@6 ~@2", C: "d2@6 d1 ~ d1@4 d2@4", D: "d2@5 ~ d2 ~ d2@8", E: "bb1@6 c2@9 ~",
  F: "d2@4 ~@2 d2 ~ d2@8", G: "g1@5 ~ a1@9 ~", H: "bb1@5 ~ bb1 ~ bb1@4 a1@3 ~", I: "d2@4 ~@2 d2 ~ d2@7 ~",
  J: "d2@5 ~ d2 ~ d2@7 ~", K: "bb1@5 ~ bb1@2 bb1@4 a1@3 ~", L: "g1@6 a1@9 ~", M: "d2@6 d2 ~ d2@7 ~",
  N: "g2@5 ~ g2 ~ g2@8", O: "f2@5 ~ f2 ~ f2@7 ~", P: "e2@3 a1@5", Q: "d2@5 ~ d2 ~ d2@2 e2@2 f2@2 a2@2",
  R: "f2@3 f2 ~@2 f2@2 f2@6 ~@2", S: "e2@7 ~ e2@7 ~", T: "a1@9 ~ a1 ~ g1@2 a1@2", U: "g1@3 a1@4 ~",
  V: "bb1@5 ~ bb1@2 bb1@3 ~ a1@2 d2@2", W: "d1@6 d1 ~ d1@4 d2@4", X: "d2@5 ~ d1 ~ d1@4 f1@2 a1@2",
  Y: "g1@6 a1@2 a1@6 c2 ~", Z: "d2@6 d2 ~ d2@4 f2@2 ~@2", AA: "f2@3 f2 f2@3 ~", AB: "e2@6 a1 ~ a1@6 d2 ~",
  AC: "d2@5 ~ d2 ~ d2@4 a2@3 ~, ~@12 g2 ~@3", AD: "f2@3 f2 ~@2 f2@2 f2@7 ~", AE: "e2@5 ~ e2 ~ e2@5 ~ g2@2",
  AF: "a2 e2 a1@2", AG: "d2@6 d2@2 d2@5 ~ c2@2", AH: "g1@5 ~ a1@10", AI: "d2@3 d2 ~@2 d2@2 d2@4 d1@4",
  AJ: "g1@5 ~ g1 ~ g1@7 ~", AK: "a1@6 g1 d1 ~ d1@2 ~ a1@2 d2 a1", AL: "g1@5 ~ g1 ~ g1@5 ~@3",
  AM: "a1@6 d2 d1 ~ d1@2 ~ a1@2 d2@2", AN: "db2@5 ~ db2 ~ db2@2 ~ db2 ab1@2 db2@2", AO: "c2@5 ~ f2 f2@2 f1@3 c2@3 ~",
  AP: "bb1@5 ~ bb1 ~ bb1@2 db2@4 ~@2", AQ: "c2 ~ c2@2 c2@2 c2@2 c2@2 c2@2 c3@4", AR: "db2@5 ~ db2@2 eb2@5 ~ f1 ~",
  AS: "f1@6 f1 ~ f1@8", AT: "db1@5 ~ eb1@10", AU: "f1@5 ~ f1@2 f1@4 ab1@2 c2@2, ~@6 f2 ~@9",
  AV: "db2@5 ~ db2 ~ db2@4 c2@3 ~", AW: "bb1@5 ~ c2 ~ c2@5 ~ eb1@2", AX: "f1@4 ~@2 f1 g1 ab1@2 g1@2 f1@2 eb1@2",
  AY: "db1@5 ~ eb1@9 ~", AZ: "f1@5 c2 f1@2 f1@5 ~ eb1@2", BA: "f1@5 c2 f1@2 f1@8", BB: "bb1@5 ~ c2@10",
  BC: "db2@6 db2@2 db2@4 c2@3 ~", BD: "bb1@5 ~ c2@7 ~ eb1@2", BE: "f1@5 ~ f2 ~ f1@4 f1@2 eb1@2",
  BF: "db1@5 ~ eb1@7 ~ f1 c2", BG: "f1@5 ~ f1!2 ~ f1@3 c2@2 eb1@2", BH: "db1@2 db1 ~@3 eb1@2 eb1@4 ~@4",
  BI: "f1@2 f1 ~@3 f1!2 ~ f1 f1@2 c2 ~ f1 ~", BJ: "f1@15 ~",
})).s("gm_fretless_bass").gain(0.53)

// other · string ensemble 2
const string_ensemble_2 = note(`<
  ~@33 A@2 B C D E F C ~@18 B G B C H C B C I@3 J K L@2 M N@2 O P Q R S P T@2 U V@2 W X Y Z@3 K Q W X Y ~
>`.pickRestart({
  A: "[d5@3 e5@4 f5@8 ~]/2", B: "d5@3 e5@5", C: "d5@7 ~", D: "d5@5 db5@2 ~", E: "d5", F: "d5 e5", G: "f5@7 ~",
  H: "d5@3 db5", I: "[a5,a6]/3", J: "[f5,f6]", K: "[c6,c7]", L: "[[bb5,bb6]@3 [ab5,ab6]@13]/2", M: "[g5,g6]",
  N: "[[f6,c7]@14 [c6,c7] [bb5,bb6], f5]/2", O: "[ab5,ab6]@3 [g5,g6]@5", P: "[f5,f6]@7 ~", Q: "~@3 [g5,g6]@5",
  R: "[ab5,ab6]@6 [ab5,ab6] [g5,g6]", S: "~@3 [g5,g6]@5, [f5,f6] ~", T: "[[c6,c7]@7 [bb5,bb6]]/2",
  U: "[c6,c7]@3 [bb5,bb6]@5", V: "[[ab5,ab6]@11 [g5,g6]@5]/2", W: "[ab5,ab6]@3 [g5,g6]",
  X: "[f5,f6]@3 g6@5, ~@3 g5@4 ~", Y: "f6@3 ~, f5@5 ~@3", Z: "[[c6,c7]@19 [bb5,bb6]@5]/3",
})).s("gm_string_ensemble_2").gain(0.29)

// other · synth drum
const synth_drum = note("<~@90 [~@2 b4 ~@2 b5 ~@2 b5 ~@2 e5 ~@2 b4 ~] ~@3 [~@2 b4 ~@2 g5 ~@2 c6 ~@2 g5 ~@4] ~@5>")
  .s("gm_synth_drum").gain(0.45)

// other · sitar
const sitar = note(`<
  A B@2 C@2 B@2 D@2 E ~@6 A E ~@22 A B@2 F A F A F A F ~@8 G H@2 I ~@12 J K@2 L@2 ~ J M@2 K@2 N@2 ~ J M@2 K@2 N@2 ~ J
  M@2 O
>`.pickRestart({
  A: "~@4 a5 g5 f5 e5", B: "[d5@2 f5 e5@2 c5@2 d5@4 ~ a5 g5 f5 e5]/2", C: "[d5@2 f5 e5@2 c5@2 a4@4 ~ a5 g5 f5 e5]/2",
  D: "[d5@3 ~ f5@2 e5@4 c5@4 a4@7 ~@3 a5@2 g5@2 f5@2 e5@2]/2", E: "d5@7 ~@9", F: "d5 ~@3", G: "~@8 a5 ~ g5@2 f5 ~ e5@2",
  H: "[d5@4 f5@2 e5@4 c5@4 d5@5 ~@13]/2", I: "d5@2 f5 g5 ~@4", J: "~@8 c6@2 bb5@2 ab5 ~ g5@2",
  K: "[f5@4 ab5@2 g5@3 ~ eb5@3 ~ f5@8 ~@2 c6@2 bb5@2 ab5@2 g5@2]/2", L: "[f5@3 ~ ab5@2 bb5@4 eb6@4 c6@5 ~@13]/2",
  M: "[f5@4 ab5@2 g5@4 eb5@4 f5@10 c6@2 bb5@2 ab5 ~ g5@2]/2", N: "[f5@3 ~ g5@2 ab5@4 eb6@4 c6@5 ~@13]/2", O: "f5 ~@3",
})).s("gm_sitar").gain(0.29)

// other · piccolo
const piccolo = note("<~@9 A B A B@2 A B A@2 B A C B A B A ~@18 A B A C B A B A ~@49>".pickRestart({
  A: "g4 c5 f5 a4 d5 g5 c5 f5", B: "g4 c5 f5 a4 d5 g5 c5 d5", C: "g4 c5 f5 a4 d5 g5 a5@2",
})).s("gm_piccolo").gain(0.26)

// chords · epiano1
const epiano1 = note(`<
  ~ A B C D E F G H ~@8 A I J K L M N O P Q R@2 P S T U A B C D E F G H G H A I J K L M N V P Q R@2 W X T Y A B C D E F
  G Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AI AJ AK AL AM AN AO AP AI AJ AK AL AM AN AO AQ@2
>`.pickRestart({
  A: "[f3,bb3,d4]@3 [g3,c4,e4]@5", B: "[a3,d4,f4]@10 a3@2 c4@3 ~", C: "[bb3,d4,f4]@3 [c4,e4,g4]@5",
  D: "[d4,f4,a4]@15 ~", E: "[bb3,d4,f4]@3 [g3,c4,e4]@5", F: "[f3,a3,d4]@13 ~@3",
  G: "[bb3,d4,f4]@3 [e4,g4]@5, ~@6 c4@7 ~@3", H: "[a3,d4,f4]@3 ~", I: "[a3,d4,f4]@5 c4@3",
  J: "[bb3,c4,d4,f4]@3 [c4,d4,e4,g4]@5", K: "[a3,d4,f4]@5 c4@2 f4", L: "[bb3,d4,f4]@5 ~ [c4,d4,e4,g4]@10",
  M: "[d4,f4,a4]@9 ~ c4@2 d4@2 a4@2", N: "[bb3,d4,f4]@6 [c4,e4,g4]@9 ~", O: "~@3 a3@3 a3@2",
  P: "[eb4,g4,bb4]@5 bb3 eb4@2", Q: "[d4,f4,a4]@5 d4 f4@2",
  R: "[[bb3,d4,g4]@5 ~ [db4,e4,g4]@8 [e4,g4]@4 [d4,f4]@4 [e4,g4]@4 [f4,a4]@4 ~@2]/2", S: "[d4,f4,a4]@10 d4@2 f4@3 ~",
  T: "[g3,bb3,e4]@10 bb3@5 ~", U: "~ [a3,g4]!3 [a3,db4,g4]@2 ~@2, ~@2 d4 ~ d4 ~ d4 ~@9",
  V: "[d3,a3,d4,f4]@6 [d3,a3,e4,g4]@6 [d3,a3,d4,f4]@3 ~", W: "[eb4,g4,bb4]@5 bb3 ~ g4, ~@3 eb4",
  X: "[d4,f4,a4]@9 ~ [d4,f4,a4]@4 [e4,g4]@2", // Dm Em
  Y: "~@2 [a3,g4]@2 [a3,g4]@2 [a3,g4]@2 [a3,db4,g4]@4 [a3,d4,f4]@3 ~, ~@2 d4 ~ d4 ~ d4 ~@9", // A7 Dm
  Z: "[a3,d4,f4]@4 [a3,f4,c5]!3 ~", AA: "[bb3,d4,f4]", AB: "[c4,e4,g4]@3 [d4,f4,a4]@4 ~",
  AC: "[bb3,d4,f4]@15 ~, bb2@13 ~@3", AD: "[c4,e4,g4]@3 [a3,d4,f4]@2 ~@3", AE: "[db3,f4,ab4,c5]@15 ~",
  AF: "[eb4,g4,bb4]@6 [c4,f4,ab4]@9 ~", AG: "[bb3,db4]@6 [bb3,db4,ab4]@4 [bb3,db4,f4]@5 ~, ab4 ~@3",
  AH: "[c3,bb3,e4,g4]@3 bb3 [bb3,e4,g4]@3 ~", AI: "[ab3,db4,f4]@3 [bb3,eb4,g4]@5", AJ: "[c4,f4,ab4]@10 c4@2 eb4@3 ~",
  AK: "[db4,f4,ab4]@3 [eb4,g4,bb4]@5", AL: "[f4,ab4,c5]@15 ~", AM: "[db4,f4,ab4]@3 [bb3,eb4,g4]@5",
  AN: "[ab3,c4,f4]@13 ~@3", AO: "[db4,f4,ab4]@3 [g4,bb4]@5, ~@6 eb4@7 ~@3", AP: "[c4,f4,ab4]@3 ~",
  AQ: "[[c4,f4,ab4]@31 ~]/2", // Fm
})).s("gm_epiano1").gain(0.36).pan(0.6)

// other · electric guitar muted
const electric_guitar_muted = note("<~@10 A ~ B ~ B ~ B ~ B ~ B ~ B ~@21 B ~ B ~ B ~ B ~@49>".pickRestart({
  A: "~@2 a2 ~ f3!2 ~@10", B: "~@4 f3!2 ~@10",
})).s("gm_electric_guitar_muted").gain(0.29).pan(0.3)

// other · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B@2 C@2 B@2 D@2 E ~@6 A E ~@22 A B@2 F A F A F A F ~@8 G H@2 I ~@12 J K@2 L@2 ~ J M@2 K@2 N@2 ~ J M@2 K@2 N@2 ~ J
  M@2 O
>`.pickRestart({
  A: "~@4 a4 g4 f4 e4", B: "[d4@2 f4 e4@2 c4@2 d4@4 ~ a4 g4 f4 e4]/2", C: "[d4@2 f4 e4@2 c4@2 a3@4 ~ a4 g4 f4 e4]/2",
  D: "[d4@3 ~ f4@2 e4@4 c4@4 a3@7 ~@3 a4@2 g4@2 f4@2 e4@2]/2", E: "d4@7 ~@9", F: "d4 ~@3", G: "~@8 a4 ~ g4@2 f4 ~ e4@2",
  H: "[d4@4 f4@2 e4@4 c4@4 d4@5 ~@13]/2", I: "d4@2 f4 g4 ~@4", J: "~@8 c5@2 bb4@2 ab4 ~ g4@2",
  K: "[f4@4 ab4@2 g4@3 ~ eb4@3 ~ f4@8 ~@2 c5@2 bb4@2 ab4@2 g4@2]/2", L: "[f4@3 ~ ab4@2 bb4@4 eb5@4 c5@5 ~@13]/2",
  M: "[f4@4 ab4@2 g4@4 eb4@4 f4@10 c5@2 bb4@2 ab4 ~ g4@2]/2", N: "[f4@3 ~ g4@2 ab4@4 eb5@4 c5@5 ~@13]/2", O: "f4@15 ~",
})).s("gm_acoustic_guitar_steel").gain(0.48)

// other · electric guitar clean
const electric_guitar_clean = note(`<
  ~ A@2 B C B D B C ~@24 B E B C F G F H B I ~@16 B J B C F G K H L ~ L ~ M ~ G ~ N O N P B Q B O N O N P B Q B O N O N
  P B Q B R@2
>`.pickRestart({
  A: "[bb2@3 c3@12 ~]/2", B: "bb2@3 c3@5", C: "d3@7 ~", D: "d2@3 d2 ~@12", E: "d2@15 ~", F: "g2@3 a2@5", G: "bb2@7 ~",
  H: "d2", I: "e3@15 ~", J: "d3@15 ~", K: "g2@3 a2@4 d2", L: "g2", M: "ab2", N: "db3@3 eb3@5", O: "f2@7 ~",
  P: "f3@3 eb3 f3 ab3 f3@8 ~@2", Q: "db3@7 ~", R: "[f2@31 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.43).pan(0)

// chords · electric guitar clean
const electric_guitar_clean_2 = note(`<
  ~ A B C D A B E F ~@8 G H I J K L M N O P Q R S T U V A B W X Y Z AA AB AC AD G H I J K L M N O P Q R S T U V A B W X
  Y Z AA AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AN AO AP AQ AR AS AT AU AN AO AP AQ AR AS AT AU AV
>`.pickRestart({
  A: "~@4 c4 ~@2 c4 ~@8", B: "~@2 a3 ~ f4!4 e4 ~@2 e4 f4 ~@3", C: "~@4 c4!2 ~@4 d3!2 g3 ~@2 g3",
  D: "~@2 g3 ~@3 [a3,d4]!2 ~ [a3,d4] ~@2 [a3,d4] ~@3", E: "~ a3 f3 ~ c4 ~ c4!2 ~ d3!2 ~ g3 ~ d3 g3",
  F: "~ d3!4 ~ [f4,a4,d5]!4 ~ [f4,a4,d5]@3 [f4,a4,d5]@2", G: "~@6 f3 ~@2 f3 d3 ~@5", H: "~@8 d3 ~@3 d3 ~@3",
  I: "d3 ~@3 f3 ~@6 d3!2 ~ d3 ~", J: "a2 f3 d3 ~ f3 ~@2 f3 e3 ~ a2 e3 f3@2 d3 f3", K: "~@4 g3@2 ~@6 d3 ~ d3!2",
  L: "~@4 f3!2 d3 ~@4 d3!2 ~ d3!2", M: "~@4 d3 ~@2 d3 ~@6 f3!2", N: "~@2 c3 ~ d3 ~@11",
  O: "[eb4,g4,bb4]@3 [eb4,g4,bb4]@3 [eb4,g4,bb4]@7 ~@3", P: "[d4,f4,a4]@3 [d4,f4,a4]@3 [d4,f4,a4]@7 ~@3",
  Q: "[bb3,d4,g4]@2 ~ [bb3,d4,g4]@2 ~ [a3,db4,g4]@2 ~ [a3,db4,g4]@2 ~@5", // Gm A7
  R: "[e4,g4]@3 [d4,f4]@3 [e4,g4]@4 [f4,a4]@5 ~", // Em Dm Em F
  S: "[eb4,g4,bb4]@2 ~ [eb4,g4,bb4]@3 [eb4,g4,bb4]@3 [eb4,g4,bb4]@5 ~@2", // Eb
  T: "[d4,f4,a4]@2 ~ [d4,f4,a4]@3 [d4,f4,a4]@3 ~@7", U: "[bb3,e4,g4]@3 [bb3,e4,g4]@3 [bb3,e4,g4]@3 ~@5 [bb3,e4]!2",
  V: "~@4 [e4,g4] [a3,e4,g4] ~@2 [a3,e4,g4]!3 ~ [a3,e4,g4]!4", W: "~@2 f3 ~ c4 ~@4 a3!2 ~ d4 ~@2 d4",
  X: "~@2 d4 d3!3 [d3,f4,a4,d5] [f4,a4,d5] ~ [f4,a4,d5]!2 ~@2 g4 [d4,e4] ~, ~@12 [f4,a4,d5]@3 ~", // Dm Dsus2 Dm
  Y: "~@6 g3 a3 ~ g3 a3 ~@5", Z: "~ a3!2 ~ d4 ~ a3 d4@2 ~ d4 ~ bb3@2 c4 ~", AA: "~@2 g3 ~ bb3 ~ c4@2 ~@2 d3!3 ~@2 d3",
  AB: "d3 ~@8 [a4,d5]!2 [f4,a4,d5]!5", AC: "~@2 f3 ~ c4@2 g3 c4 ~@2 a3 ~ d4@2 d4@2", AD: "~@4 d4 ~ a3 d4@4 ~ c4@3 ~",
  AE: "~@6 [f4,a4,d5]!2 [f4,a4,d5]@2 [f4,a4,d5]!2 [f4,a4,d5]@2 [f4,a4,d5]!2", AF: "[d3,g4,d5] e3 f3@2, bb4 ~@7",
  AG: "a3@3 d3@4 ~", AH: "d3@4 e3@4 f3@7 ~", AI: "a3@3 ~", AJ: "f3@2 g3@2 ab3@3 ~", AK: "g3@5 ~ f3@8 ~@2",
  AL: "f3@6 f3 f3@7 ab3 ~", AM: "~@5 [c4,e4,g4]!3 ~ [bb3,e4,ab4]!3 [bb3,e4,ab4]@2 g4 ~", AN: "~@4 eb4 ~@2 eb4 ~@8",
  AO: "~@2 c4 ~ ab4!4 g4 ~@2 g4 ab4 ~@3", AP: "~@2 ab3 ~ eb4 ~@4 c4!2 ~ f4 ~@2 f4",
  AQ: "~@2 f4 f3!3 [f3,ab4,c5,f5] [ab4,c5,f5] ~ [ab4,c5,f5]!2 ~@2 bb4 [f4,g4] ~, ~@12 [ab4,c5,f5]@3 ~", // Fm Fsus2 Fm
  AR: "~@6 bb3 c4 ~ bb3 c4 ~@5", AS: "~ c4!2 ~ f4 ~ c4 f4@2 ~ f4 ~ db4@2 eb4 ~",
  AT: "~@2 bb3 ~ db4 ~ eb4@2 ~@2 f3!3 ~@2 f3",
  AU: "~@6 [ab4,c5,f5]!2 [ab4,c5,f5]@2 [ab4,c5,f5]!2 [ab4,c5,f5]@2 [ab4,c5,f5]!2", AV: "[f4,ab4,c5,f5]@15 ~",
})).s("gm_electric_guitar_clean").gain(0.35).pan(1)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_3 = note(`<
  ~@3 A B ~@3 C ~@9 D E F ~@2 G ~@6 H ~ I ~@3 J K L ~@5 D E F ~@2 G ~@6 H ~ I ~@3 J K L ~@13 M N O ~@5 M N O ~@5 M N O
  ~@3
>`.pickRestart({
  A: "~@14 d3 ~", B: "~ d3 ~@14", C: "~@5 d3 ~@4 [f4,a4,d5] ~@5", D: "~@9 d3!2 ~@2 d3!3", E: "~@10 d3 ~@2 f3 ~@2",
  F: "~@6 a2 ~@9", G: "~@10 d3 ~@5", H: "~@9 [d4,f4,a4]@4 ~@3", I: "~@3 [a3,e4,g4] ~@2 [a3,e4,g4]!2 ~@8",
  J: "~@15 [a3,b3,c4]", K: "g3 ~@15", L: "~@9 a3 ~@6", M: "~@15 [c4,d4,eb4]", N: "bb3 ~@15", O: "~@9 c4 ~@6",
})).s("gm_electric_guitar_clean").gain(0.18).pan(1)

// drums · kick
const kick = s("bd").struct("<~ A@31 B A@25 C A@9 D A D A D A E A@24 F>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~@2 x", C: "x ~@5 x ~ x ~ x!2 ~@4", D: "x ~@6 x ~ x ~@6",
  E: "x ~ x ~ x ~ x ~@2 x!3 ~@2 x ~", F: "x",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct("<~ A@8 ~ B ~ B ~ B ~ B@17 A@9 C A@56 ~>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~ x ~@2",
})).gain(0.72)

// drums · hihat
const hihat = s("hh").struct("<~ A B@7 C@18 D E C@3 F A B@9 A B@7 A B@7 G H@7 A B@31 I>".pickRestart({
  A: "x ~@2 x ~ x ~ x!3 ~ x ~@3 x", B: "x!2 ~ x!3 ~ x!3 ~ x!3 ~ x", C: "x!8", D: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x!2",
  E: "x ~ x ~ x ~ x!3 ~ x!3 ~ x ~", F: "x ~ x ~ x ~ x ~ x!3 ~ x ~ x ~", G: "x!2 ~ x!13", H: "x!2 ~ x!7 ~ x!3 ~ x",
  I: "x",
})).gain(0.24)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~ A B@7 ~@24 A B@9 A B@7 A B@7 C D@7 A B@31 ~>".pickRestart({
  A: "~ x!2 ~ x ~ x ~@3 x ~ x!3 ~", B: "~ x ~ x ~ x ~ x", C: "~ x ~@6", D: "~ x ~@3 x ~ x",
})).gain(0.08)

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

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~ A ~@7 B ~@7 A ~@19 A ~@62>".pickRestart({
  A: "~ x ~@2", B: "x",
})).gain(0.08)

// drums · tambourine
const tambourine = s("tb").struct("<~ [x!8]!98 x>").gain(0.24)

// drums · claves
// … 10 more lines

More by Laura Pausini