Strudelify
La Solitudine cover art

1993 · Laura Pausini

La Solitudine

Laura Pausini

KeyD♭ majorTempo130 bpm
0:00/0:00
// La Solitudine — Laura Pausini
// 130 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 127 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano · "A.PIANO 1"
const piano = note(`<
  A B C@2 D E F G A B C@2 D E F G A B C@2 D E F H I@2 J@2 K L M@2 N@2 O@2 K L P@2 Q@6 R@2 S@2 T@2 U@2 V@2 W@2 X@2 Y@2 Z
  AA AB AC AD AE AF AG AH AI AB AC AD AE AF AG AH AJ AK AL AM AN AK AL AM AO AB AC AD AP AF AQ AH AI AB AR AD AS AF AQ
  AH AT AB AC AD AU@4 AV@4 AW@4 AX@8
>`.pickRestart({
  A: "bb4@6 bb4@5 ~ bb4@4", B: "c5@15 ~", C: "a4@3 bb4@3 d4@2", D: "f4@5 ~ f4@5 ~ f4@4", E: "g4@15 ~",
  F: "c5@6 d5@5 ~ g4@4", G: "c5@6 d5@5 ~ f4@4", H: "c5@3 ~ d5@2 eb5@4 g4@6",
  I: "[f5@4 bb4@2 f5@4 bb4@4 f5@6 bb4@2 c5@4 f5@5 ~]/2", J: "[f5@2 bb4 f5@2 bb4@2 f5@3 d5 eb5@2 f5@3]/2",
  K: "f5@4 bb4@2 f5@4 bb4@4 f5 ~", L: "f5@3 ~ bb4@2 c5@4 d5@6", M: "[bb4@2 eb5 bb4@2 eb5@2 bb4@3 d5 eb5@2 f5@3]/2",
  N: "[bb4@5 ~ d5@4 bb4@4 c5@6 bb4@2 c5@4 f5@5 ~]/2", O: "[bb4@2 bb4 f5@2 bb4@2 c5@3 d5 eb5@2 f5@3]/2",
  P: "[eb5@2 d5 eb5@2 d5@2 eb5@3 d5 eb5@2 f5@3]/2", Q: "[f5@2 f4 ~ bb4@2 f5@4 bb4@3 ~ c5@5 ~ d5@2 eb5@4 f5@6]/2",
  R: "[f5@2 f4 ~ bb4@2 f5@4 bb4@3 ~@3 [ab3,bb4,db5,gb5]@8 ~@8, ~@7 ab2@5 ~@4, ~@15 [eb3,ab4]@9 ~@8]/2", // Gb Ab5
  S: "[[db3,ab3,db4,f4]@29 ~@3]/2", T: "[[bb2,ab3,db4,f4]@15 ~]/2", U: "[[bb3,db4]@14 bb3 db4, [gb2,ab3,f4]@31 ~]/2",
  V: "[[bb2,ab3,bb3,db4,eb4]@31 ~]/2", W: "[[db3,ab3,db4]@28 f4@3 ~, f4@27 ~@5]/2",
  X: "[ab3@28 ab3@3 ~, [bb2,db4,f4]@15 ~]/2", Y: "[[gb2,ab3,bb3,db4,f4]@31 ~]/2", Z: "[ab2,gb3,bb3,db4,eb4]@15 ~",
  AA: "[ab2,ab3,db4,eb4,gb4]@15 ~", AB: "[db3,ab3,db4,f4]@15 ~", AC: "[c3,ab3,c4,eb4,f4]@15 ~",
  AD: "[bb2,ab3,db4,f4]@15 ~", AE: "[ab2,ab3,db4,eb4,f4]@15 ~", AF: "[gb2,bb3,db4,f4]@15 ~",
  AG: "[ab3,db4,eb4]@11 ~ [db4,eb4,ab4]@4, f2@15 ~", AH: "[eb2,gb3,bb3,db4,gb4]@15 ~", AI: "[ab2,db4,eb4,gb4,bb4]",
  AJ: "[ab2,ab3,db4,eb4,ab4]", AK: "[gb2,gb3,bb3,db4]@15 ~", AL: "[f2,ab3,bb3,eb4]@15 ~", AM: "[eb2,gb3,bb3,db4]",
  AN: "[f2,ab3,eb4,ab4]@9 ~ [f2,ab3,db4,ab4]@6", AO: "[ab2,ab3,bb3,db4,eb4,gb4]@15 ~",
  AP: "[ab3,db4,eb4,f4]@7 ~ [ab3,eb4,f4]@8, ab2@15 ~", AQ: "[ab3,db4,eb4]@7 ~ [db4,eb4,ab4]@8, f2@15 ~",
  AR: "[ab3,c4,eb4,f4]@7 ~ [ab3,c4,eb4,f4]@7 ~, c3@15 ~", AS: "[ab3,db4,eb4,f4]@7 ~ [ab3,db4,eb4]@8, ab2@15 ~",
  AT: "[ab3,db4,eb4,gb4]@15 ~, ab2 ~@15", // Absus4
  AU: "[[ab3,db4,eb4,f4]@7 ~ [ab3,eb4,f4]@8 [gb2,bb3,db4,f4]@15 ~ [ab3,db4,eb4]@7 ~ [db4,eb4,ab4]@8 [eb2,gb3,bb3,db4,gb4]@15 ~, ab2, ~@32 f2@15 ~@17]/4", // Db Fm7 Gbmaj7 Absus4 Dbsus2 Ebm7
  AV: "[[db4,eb4,gb4,bb4]@16 [db3,ab3,db4,f4]@15 ~ [ab3,c4,eb4,f4]@7 ~ [ab3,c4,eb4,f4]@7 ~ [bb2,ab3,db4,f4]@15 ~, ab2, ~@32 c3@15 ~@17]/4", // Ebm7 Db Fm7 Bbm7
  AW: "[[ab3,db4,eb4,f4]@7 ~ [ab3,db4,eb4]@8 [gb2,bb3,db4,f4]@15 ~ [ab3,db4,eb4]@7 ~ [db4,eb4,ab4]@8 [eb2,gb3,bb3,db4,gb4]@15 ~, ab2, ~@32 f2@15 ~@17]/4", // Db Absus4 Gbmaj7 Absus4 Dbsus2 Ebm7
  AX: "[[ab3,db4,eb4,ab4]@16 [ab4,ab5]@4 [db3,db5] ~ gb3@2 ~@2 [ab4,ab5]@5 ~ [db4,ab4,ab5]@4 [db4,db5]@2 [db4,db5]@9 ~ [eb3,db4,ab4,ab5]@6 [gb4,gb5]@6 [f4,f5]@3 ~ [gb4,gb5]@5 ~ [f4,f5]@4 [db4,db5]@6 [db3,f3]@6 f3@2 db3@2 [db3,gb3,bb3]@5 ~ [db3,f3,ab3]@30 ~@2, ab2, ~@16 gb2@15 ~@97, ~@10 db4 [db4,db5]@2 ~@51, ~@24 ab3@7 ~ [ab3,bb3,f4]@16 ~@6 bb3@9 ~ [gb3,ab3,bb3]@15 ~ [ab3,db4,db5]@9 ~@39]/8", // Absus4 Ab Db Ab Db5 Db Dbsus2 Gb …
})).s("gm_piano").gain(0.25)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2 A@2 F G C@2 D@2 H I J K L M N O H I J K L M N O H P Q K L M R S T@2 U V W X Y Z AA AB
  AC V AD AE AF AG AA AH H R AI AJ AK AL AM N AN AO W AP AQ AR AS AP AT AU AV AW AK AX AA N AN AY AZ BA AK BB BC BD BE R
  AZ K BF BG BH BI AN R W BJ BF BK BL N AN R W AP BF BM BN H L BM BO T@2
>`.pickRestart({
  A: "[bb1@15 ~]/2", B: "g2/2", C: "eb2/2", D: "f2/2", E: "g1/2", F: "g2@13 ~ d2@2", G: "g1 g2", H: "bb1@15 ~",
  I: "a1@15 ~", J: "g1", K: "f2", L: "eb2", M: "d2", N: "c2@15 ~", O: "f2@7 ~ f1@8", P: "a2@15 ~", Q: "g2@5 g1 d2 g2",
  R: "ab1@15 ~", S: "ab2@12 g2 gb2 f2 [d2,eb2,e2]", T: "db2/2", U: "bb2@6 ~ bb1", V: "bb2@15 ~", W: "gb2@12 ~@2 gb2 ~",
  X: "gb2@7 ~ gb2@7 ~", Y: "bb1@14 bb1 ~", Z: "bb1@4 ~@2 bb1@2 bb2 ~ bb1 ~ bb1 ~ c2@2", AA: "db2@12 ~@2 db2 ~",
  AB: "db2@15 ~", AC: "bb2@6 ~ bb2", AD: "gb2@6 ~ db2", AE: "gb2@7 ~ gb1@7 [f2,gb2]",
  AF: "ab2@8 ~@2 eb2 ~@3 eb2 ~, g2 ~@15", AG: "ab2@8 ~@2 ab1 ~ ab1 ~ bb1@2", AH: "c2@12 ~@2 c2 ~",
  AI: "gb2@8 gb2@3 ~ gb1@3 ~", AJ: "f2@6 ~ gb2", AK: "eb2@7 ~@3 eb2@2 ~@2 eb2@2",
  AL: "ab2@4 ab1@3 ~@3 ab1@2 ab2@2 ab1@2", AM: "db2@11 ~ db2@4", AN: "bb1@6 ~ bb1", AO: "ab1@8 ab2@7 ~, ~@8 gb2 ~@7",
  AP: "f2@12 ~@2 f2 ~", AQ: "eb2@4 ~ eb2 gb2 eb2", AR: "ab2@5 ~ ab2 ~@3 ab2@2 eb2@4", AS: "gb2@12 ~@2 db2 ~",
  AT: "eb2@12 ~@2 c2 ~", AU: "f2@8 ~@2 f2@5 ~", AV: "gb2@4 ~ db2 gb2 ~", AW: "f2@12 ~@2 f2 gb2",
  AX: "ab2@5 ~ ab2@2 ab1@4 ab1 ~ ab1@2", AY: "ab1@6 ~ ab1", AZ: "gb2@10 ~@2 gb2@3 ~", BA: "f2@7 ~ f1@5 ~ ab2@2",
  BB: "ab2 eb2 ab1@2 ~ ab2 ab1 ab2", BC: "db2@7 ~ db2 ~@3 db2 ~ db3@2", BD: "c2@7 ~ ab2@8",
  BE: "bb1@7 ~ bb2@4 bb1 ~ bb2@2", BF: "eb2@6 ~ eb2", BG: "ab1@5 ~ bb2@2 ab2@2 eb2@2 ab2@2 eb2@2, ~@6 ab2 ~@9",
  BH: "db2@9 ~ ab2@2 db3 ~ ab2@2", BI: "c3@7 ~ c2@8", BJ: "f2@15 ~", BK: "ab1@4 ~@2 ab2@2 ~@2 gb2@2 eb2 ~ ab2@2",
  BL: "db2@6 ~ db2", BM: "ab2", BN: "gb2", BO: "db2@5 gb2@3",
})).s("gm_fretless_bass").gain(0.52)

// chords · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
  ~@40 A B ~@2 C D E@2 F@2 B G H@4 I@2 B G F@2 J@2 K L G L M N J@2 D L O P@4 Q R S@2 T R S@2 U V@2 W@2 X@2 Y@2 V@2 Z@2
  X@2 AA@2 V@2 W@2 X@2 Y@2 V@2 Z@2 X@2 AB@5 ~@4
>`.pickRestart({
  A: "d5", B: "c5", C: "g5, gb5 ~@15", D: "f5", E: "[bb5@3 ab5]/2", F: "f5/2", G: "db5", H: "[~@32 c5@31 ~, f5]/4",
  I: "db5/2", J: "gb5/2", K: "~ db5, f5", L: "eb5", M: "bb5, a5 ~@15", N: "ab5", O: "db5@7 eb5",
  P: "[~ ab5 bb5@2 ab5@2 gb5@2, db5, ~@16 a5 ~@47]/4", Q: "[eb5,ab5]", R: "[bb4,db5,bb5]",
  S: "[eb5 db6 [bb4,gb5]@2, [ab4,ab5] ~, ~ db5@3]/2", T: "eb5@5 db5@3, [ab4,ab5]", U: "[gb5,bb5,db6,gb6]",
  V: "[f6@5 gb6 f6 ~ c6@8, ab5, db6 ~, ~@7 eb6@9]/2", W: "[bb5 ab5, [f5,db6]@31 ~]/2", X: "[[f5,bb5] [f5,ab5], db6]/2",
  Y: "[[db5,bb5]@2 ~ db6, gb5, ~ [ab5,bb5]]/2", Z: "[bb5 [eb5,ab5], [f5,db6]@31 ~]/2",
  AA: "[bb5 [bb5,eb6], [gb5,db6]]/2", AB: "[bb5 [bb5,eb6] ~@3, db6@13 ~@3, gb5@2 ~@3]/5",
})).s("gm_percussive_organ").gain(0.25)

// chords · percussive organ · "ORGAN 2" · soft notes
const percussive_organ_soft = note("<~@40 A@4 B C D@2 ~@13 E ~@2 F@4 G@4 F@4 H I H I ~@47>".pickRestart({
  A: "[~@32 d5@16 eb5 d5@5 c5@6 bb4@4, f5@31 ~]/4", B: "d5", C: "c5", D: "[db5,gb5]/2", E: "bb5 ~", F: "ab4/4",
  G: "[gb4@2 ~ db6 gb4@4, db5, ~ ab4 ~@2]/4", H: "gb4", I: "ab4",
})).s("gm_percussive_organ").gain(0.15)

// chords · pad warm · "WARM PAD"
const pad_warm = note(`<
  A@2 B@2 C@2 D@2 E@2 F@2 C@2 G@2 E@2 B@2 C@2 D@2 H@2 I@2 J@2 K@2 L@2 I@2 M@2 K@2 H@2 I@2 J@2 N@2 O@2 P@2 Q@2 R@2 O@2
  S@2 T@2 U@2 V@2 W@2 X@2 Y@2 Z@2 AA@2 AB@2 Y@2 X@2 AC AD X@2 AC AE AF@2 AG@2 X@2 Y@2 AH@2 AA@2 X@2 Y@2 AF@2 AG@2 X@2
  Y@2 AH@2 AA@2 X@2 Y@2 AI@2 AJ@2 AK@3
>`.pickRestart({
  A: "[f3,bb3,c4,d4]/2", B: "[a3@3 g3, [bb3,d4,f4]]/2", C: "[d4 c4, [eb3,bb3,g4]]/2", D: "[f3,bb3,c4,eb4,g4]/2",
  E: "[bb3,c4,d4,f4]/2", F: "[a3,bb3,d4,f4]/2", G: "[g3,a3,bb3,c4,d4,f4]/2", H: "[[bb3,f4] [a3,f4], [c4,d4]]/2",
  I: "[[g3,d4] [f3,d4], [bb3,f4]]/2", J: "[[eb3,d4,g4]@2 ~ f3, bb3, ~ [c4,f4]]/2", K: "[[g3,f4] [f3,g4], [bb3,eb4]]/2",
  L: "[[bb3,c4] [a3,c4], [d4,f4]]/2", M: "[[eb3,g3,d4]@2 ~ f3, bb3, ~ [c4,f4]]/2", N: "[ab3,bb3,db4,gb4]/2",
  O: "[ab3,db4,eb4,f4]/2", P: "[ab3,c4,db4,f4]/2", Q: "[ab3,bb3,db4,f4]/2", R: "[ab3,bb3,c4,db4,eb4,f4]/2",
  S: "[c4@3 bb3, [ab3,db4,f4]]/2", T: "[f4@3 eb4, [gb3,bb3,db4]]/2", U: "[ab3,bb3,db4,eb4,gb4]/2",
  V: "[[ab3,db4] [ab3,c4], [eb4,f4]]/2", W: "[[ab3,bb3,f4] [ab3,eb4,f4], db4]/2",
  X: "[[gb3,f4,bb4]@2 ~ ab3, db4, ~ [eb4,ab4]]/2", Y: "[[bb3,ab4] [ab3,bb4], [db4,gb4]]/2",
  Z: "[[eb4,db5] [eb4,c5], [f4,ab4]]/2", AA: "[[f4,bb4] [ab3,f4], [db4,ab4]]/2",
  AB: "[[gb3,bb3,f4]@2 ~ ab3, db4, ~ [eb4,ab4]]/2", AC: "[bb3,db4,eb4,gb4]", AD: "eb4@8 db4@7 ~, [ab3,f4,ab4]",
  AE: "[bb3,db4,gb4,bb4]", AF: "[[db4,ab4] [c4,ab4], [eb4,f4]]/2", AG: "[[bb3,f4] [ab3,eb4,f4], [db4,ab4]]/2",
  AH: "[[db4,eb4] [c4,eb4], [f4,ab4]]/2", AI: "[[gb3,bb3,f4] [f3,ab3,bb3], db4]/2",
  AJ: "[[eb3,db4] [db4,eb4], [gb3,bb3]]/2", AK: "[[f3,ab3]@5 [gb3,bb3]@3 [f3,ab3]@16, db4]/3",
})).s("gm_pad_warm").gain(0.32)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@48 A B A B C B D E A F A B A B D G H ~ H I J K L@2 H ~ H I J K L@2 ~@8 H M H M J K L@2 H M H M J K L@2 H M H M J K
  L@2 H M H M J K L@2 ~@7
>`.pickRestart({
  A: "~@6 db4 ~@5 db4 ~@3", B: "~@4 db4 ~@5 db4 ~@5", C: "~@6 f4 ~@5 db4 ~@3", D: "~@6 eb4 ~@5 eb4 ~@3",
  E: "~@4 eb4 ~@5 db4@6, ~@5 eb4@2 ~", F: "~@2 ab3 ~ db4 ~@5 db4 ~@5", G: "~@4 eb4 ~@5 eb4 ~@5",
  H: "db4@4 ~@2 db4 ~@3 db4 ~@3 eb4 ~", I: "~@8 ab4@4 ab3@3 ~", J: "db4@4 ~@2 db4 ~@3 db4 ~@5",
  K: "ab3@6 db4 ~@3 ab3 ~@5", L: "gb3@6 db4 ~@3 db4 ~@5", M: "~@4 [f3,f4] ~ [gb3,gb4]@2 [ab3,ab4]@8",
})).s("gm_electric_guitar_muted").gain(0.4).pan(0.8)

// other · pad new age · "FANTASIA"
const pad_new_age = note("<~@24 A ~ A ~ A ~ A B A ~ A C A ~ A B ~@87>".pickRestart({
  A: "~@10 bb5 ~@3 c6 ~", B: "~@8 f6 ~@7", C: "~@8 bb5 ~@7",
})).s("gm_pad_new_age").gain(0.48)

// chords · orchestral harp · "HARP"
const orchestral_harp = note("<~ A ~ A ~ B ~ B ~ A ~ A ~ B ~ B ~ A ~ A ~ B ~ B ~@17 A ~ A ~ B ~@81>".pickRestart({
  A: "~@4 [bb4,f5] ~@5 [bb4,f5] ~@5", B: "~@4 [bb4,g5] ~@5 [bb4,g5] ~@5",
})).s("gm_orchestral_harp").gain(0.24).pan(0.8)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@82 A@5 B C@7 D E@3 F@4 D C@7 D E@3 F@4 G@3 H I@4>".pickRestart({
  A: "[~@15 eb4@10 db4@6 bb4@16 eb5@5 ~ ab4@10 gb4@17, ~@52 db5@3 ~@25]/5", B: "db5",
  C: "[f5@15 eb5@16 db5@32 bb5@16 ab5@16 gb5@17]/7", D: "ab5", E: "[f5@15 eb5@16 db5@14 ~ eb5@2]/3",
  F: "[f5@7 ab5@8 bb5@16 ab5@16 gb5@17]/4", G: "db5/3", H: "ab5@5 gb5@7 f5@4", I: "[gb5@6 f5@3 db5@6 db5@48 ~]/4",
})).s("gm_string_ensemble_2").gain(0.4).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  A@50 B A B A B@4 A B A B A C A B A B A B A D A B A B A B@2 C B@2 A E A@2 B C B A B@2 F B@2 G B A B@2 F A B G B A B A B
  A B D B@2 A B A B A C A@4 H A ~
>`.pickRestart({
  A: "x", B: "x ~@6 x", C: "x ~@2 x ~@4", D: "x ~@2 x ~@3 x", E: "x ~@2 x ~ x ~@2", F: "x ~@2 x", G: "x ~@2 x ~@2 x!2",
  H: "x ~@4 x ~@2",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct("<[~ x]!95 [~@4 x!2 ~@2] [~ x]!15 [~ x ~@2 x ~@3] [~ x]!8 ~@7>").gain(0.72)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@87 [~@7 x] ~@15 [~ x ~@6] ~@23>").gain(0.48)

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

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

// drums · high tom
const high_tom = s("ht").struct("<~@83 [~ x ~@6] ~@3 [~@5 x ~@2] ~@39>").gain(0.56)

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

// drums · crash · soft notes
const crash_soft = s("cr").struct("<A ~@2 B ~@12 A ~@7 A ~@7 A ~@87 A ~ C D E A ~>".pickRestart({
  A: "x", B: "~@5 x ~@2", C: "~@3 x", D: "x ~@2 x ~ x ~@2", E: "x ~@4 x ~@2",
})).gain(0.24)

// drums · ride
const ride = s("rd").struct("<~@3 A ~@3 B C ~@10 D ~@20 C E F G ~@78 H I J C ~>".pickRestart({
  A: "~ x ~ x ~ x ~@2", B: "~@14 x!2", C: "x", D: "~@5 x ~@2", E: "x!2 ~@6", F: "~@10 x!3 ~@3", G: "~ x ~@6",
  H: "x ~@2 x ~@2 x ~", I: "x ~@2 x ~ x ~@2", J: "x ~@4 x ~@2",
})).gain(0.4)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<[~@2 x!2 ~@2 x!2]!125 ~@2>").gain(1.22)

// drums · claves
// … 16 more lines

More by Laura Pausini