Strudelify

Il mio sbaglio piu grande

Laura Pausini

KeyG majorTempo93 bpm
0:00/0:00
// Il mio sbaglio piu grande — Laura Pausini
// 93 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 72 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 24.
setcpm(93/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(`<
  ~@9 A B C D E F G F G F H I J K L M N O P M N Q B C D R F G F S F H I J T U V W X Y Z AA ~ AB AC ~ F G F S F H I AD F
  S F G F H I J AE
>`.pickRestart({
  A: "~@7 b1", B: "e2@7 g2", C: "c2@14 e1 g1", D: "a1@14 b1 d2", E: "e2@3 e2@2 ~ d2@4 d1!2 [d1,d2]@4",
  F: "g1 ~ g1@2 ~@2 g1 a1 ~ a1 a1@3 ~ a1 b1", G: "c2 ~ c2@3 ~ c2 d2 ~ d2 d2@2 ~@2 d2 a1",
  H: "c2 ~ c2@2 ~@2 c2 d2 ~ d2 d2@4 c2 d2", I: "e2 ~ e2@2 ~@2 e2 f2 ~@2 f1@6, ~@9 f2@7",
  J: "a1@2 ~@4 d2@2 ~@2 d1 ~ [d1,d2]@4", K: "g1@3 d2", L: "g1 ~ g1@2 ~@2 g1 a1 ~ a1 a1@2 ~@3 a1",
  M: "c2 ~ c2@2 ~@2 c2 d2 ~ d2 d2@2 ~@2 f1 f#1", N: "g1 ~ g1@2 ~@2 g1 a1 ~ a1 a1@2 ~@2 a1 b1",
  O: "c2 ~ c2@4 ~ d2 ~ d2 d2@2 e2 d2 b1 a1", P: "g1 ~ g1@2 ~@2 g1 a1 ~ a1 a1@3 ~@2 a1",
  Q: "c2 ~ c2@2 ~@2 c2 d2 ~ d2 d2@2 e2 d2 b1 a1", R: "e2@2 ~ e2@2 ~ d2@4 d1!2 [d1,d2]@4",
  S: "c2 ~ c2@2 ~@2 c2 d2 ~ d2 d2@2 ~@2 d2 a1", T: "a1", U: "~@3 e3@4 d2, c2@13 ~@3, ~@3 g2@11 ~@2",
  V: "~@6 g2@7 ~ g2 a2, g1", W: "~@6 d3@8 g1 g#1, d2@7 ~", X: "~@6 e2 a2@7 a1@2, a1@3 ~",
  Y: "~@3 e3@4 d2, c2@13 ~@3, ~@3 g2@12 ~", Z: "~@6 d3@8 g2 a2, d2@7 ~", AA: "d3@2 ~ d3 g2 a2 d2@5 ~ d2@3 ~",
  AB: "~@13 g2 c3 d3", AC: "g3@15 ~", AD: "a1 ~ a1@3 ~ d2!2 ~ d2!3 e2 d2 b1 a1", AE: "g1@15 ~",
})).s("gm_fretless_bass").gain(0.58)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@14 A@6 B ~@14 A@6 B ~ C@3 D C@3 D ~@4 A@6 B E A@6 B ~@2>".pickRestart({
  A: "[b3 c4@2 [a3,d4], g3@3 ~]/2", B: "[g3,b3] [a3,c4]", C: "[a3 ~ b3, c4@2 ~, ~ g3@2]/3", D: "[a3,d4]", E: "[d4,g4]",
})).s("gm_string_ensemble_2").gain(0.21)

// other · lead 1 square
const lead_1_square = note("<~@43 A B C@2 D E F ~@3 G@2 ~@17>".pickRestart({
  A: "~ e4@5 d4@2", B: "e4@6 d4@9 ~", C: "[b3@3 d4@8 a3@2 d4@2 a3]/2", D: "a3@5 ~@3", E: "~@4 b4@10 a4 g4",
  F: "b4 g4@5 ~@2", G: "[~@3 b4@3 a4@2]/2",
})).s("gm_lead_1_square").gain(0.24).pan(0.3)

// chords · overdriven guitar
const overdriven_guitar = note("<~@14 A B@5 C D ~@13 E F@5 C G ~@12 E F@5 H@2 E I@5 C D ~>".pickRestart({
  A: "g4@2 ~ g4@2 ~ g4@2 [d4,g4]@2 ~@3 d4@3, ~@2 d4@3 d4@3 ~@2 d4@3 ~@3, ~@11 g4@5", // G5
  B: "[[d4,g4]@2 ~@6 g4@2 ~@6 g4@2 ~@6 g4@2 ~@6 g4@2 ~@3 d4@3 g4@2 ~@6 g4@2 ~@3 d4@3 g4@2 ~@6 g4@2 ~@3 d4@3 g4@2 ~@3 d4@3, ~@2 d4@3 d4@5 d4@3 d4@5 d4@3 d4@5 d4@3 d4@5 d4@2 ~@6 d4@2 ~ d4@5 d4@2 ~@6 d4@2 ~ d4@5 d4@3 ~@5 d4@3 ~@3, ~@3 g4@5 ~@3 g4@5 ~@3 g4@5 ~@3 g4@4 ~@4 g4@5 ~@3 g4@4 ~@4 g4@5 ~@3 g4@4 ~@4 g4@4 ~@4 g4@4 ~]/5", // G5
  C: "g4@2 ~@6 g4@2 ~@3 d4@2 ~, ~@2 d4@2 ~ d4@5 d4@2 ~@4, ~@3 g4@5 ~@3 g4@5",
  D: "[a2,e3] ~@5 [d3,a3] ~@3 [d3,a3] ~ [d3,a3]!2 ~@2", // A5 D5
  E: "g4@2 ~ g4@2 ~ g4@2 [d4,g4]@2 ~@3 d4@3, ~@2 d4@3 d4@3 ~@2 d4@2 ~@4, ~@11 g4@4 ~", // G5
  F: "[[d4,g4]@2 ~@3 d4@3 g4@2 ~@6 g4@2 ~@6 g4@2 ~@6 g4@2 ~@3 d4@3 g4@2 ~@6 g4@2 ~@3 d4@3 g4@2 ~@6 g4@2 ~@3 d4@3 g4@2 ~@3 d4@3, ~@2 d4@2 ~@6 d4@3 d4@5 d4@3 d4@5 d4@3 d4@5 d4@2 ~@6 d4@2 ~ d4@5 d4@2 ~@6 d4@3 d4@5 d4@3 ~@5 d4@3 ~@3, ~@3 g4@4 ~@4 g4@5 ~@3 g4@5 ~@3 g4@4 ~@4 g4@5 ~@3 g4@4 ~@4 g4@4 ~@4 g4@4 ~@4 g4@4 ~@4 g4@4 ~]/5", // G5
  G: "[a2,e3] ~@5 [d3,a3] ~@2 [d3,a3]!2 ~ [d3,a3]!2 ~@2", // A5 D5
  H: "g4@2 ~@6 g4@2 ~@3 d4@3, ~@2 d4@2 ~ d4@5 d4@2 ~@4, ~@3 g4@5 ~@3 g4@5",
  I: "[[d4,g4]@2 ~@3 d4@3 g4@2 ~@6 g4@2 ~@6 g4@2 ~@6 g4@2 ~@3 d4@3 g4@2 ~@6 g4@2 ~@3 d4@3 g4@2 ~@6 g4@2 ~@3 d4@3 g4@2 ~@3 d4@3, ~@2 d4@2 ~@6 d4@3 d4@5 d4@3 d4@5 d4@3 d4@5 d4@2 ~@6 d4@2 ~ d4@5 d4@2 ~@6 d4@3 d4@5 d4@3 ~@5 d4@3 ~@3, ~@3 g4@4 ~@4 g4@5 ~@3 g4@5 ~@3 g4@4 ~@4 g4@5 ~@3 g4@4 ~@4 g4@5 ~@3 g4@4 ~@4 g4@4 ~@4 g4@4 ~]/5", // G5
})).s("gm_overdriven_guitar").gain(0.2).pan(0.3)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@2 A B C D E F G H ~@4 I ~ J ~ I ~ J ~ K A B C D K F G H ~@4 I ~ J ~ I ~ J ~@5 L ~@7 I ~ J ~ I ~ J ~ I ~ J ~ I ~ J ~
  K
>`.pickRestart({
  A: "~ g2 [d4,g4] g2 ~@2 [g2,d4,g4] ~ g2 ~@5 [d4,g4] d3", B: "~@2 [c3,g3] c3 ~ c3 [c3,g3] c3 ~ d3 a3 d3 a3 g3 e3 ~",
  C: "~@13 g2 [d4,g4] ~", D: "~@9 [d3,a3] ~ d3 a3 [d3,a3] d3@2", E: "~@3 g2 d3 ~@2 d3 ~@3 g3@2 ~@3",
  F: "~@2 [c3,g3] c3 g3 ~ [c3,g3] ~@2 d3 [d3,a3] d3 [d3,a3] g3 d3 ~", // C5 D5
  G: "~@2 [g2,g3] ~@2 g2 g3 g2 ~ g2 g3 g2 g3!2 g2 ~", H: "~@2 [g2,g3] ~ g3 g2 g3 g2 ~@3 g3 [g2,g3] [g2,g3]@2 ~",
  I: "~@10 g3 a3 b3@2 g3@2", J: "g2 ~ d4 g2 [d4,g4] g2 ~@5 g2 [d4,g4] g2 d4 g2",
  K: "g4 [d4,g4,b4]!6 [g4,b4] [d4,g4,b4]!2 [g4,b4] [d4,g4,b4]!5", L: "[a3,c4,e4]@13 ~@3",
})).s("gm_distortion_guitar").gain(0.1).pan(0.4)

// chords · distortion guitar · soft notes
const distortion_guitar_soft = note(`<
  ~@2 A ~@2 B C ~@2 D ~@6 E ~@3 E ~ F A ~@2 B F ~@2 D ~@6 E ~@3 E ~@15 E ~@3 E ~@3 E ~@3 E ~ F
>`.pickRestart({
  A: "~@13 d3 ~@2", B: "~@12 d3 ~@3", C: "~@4 g3 ~@11", D: "~@10 g2 ~@5", E: "~@7 g2 ~@8",
  F: "[d4,b4] ~@6 d4 ~@2 d4 ~@5", // G
})).s("gm_distortion_guitar").gain(0.07).pan(0.4)

// other · timpani
const timpani = note("<~@13 A B ~@2 C D ~@15 A B ~@2 C D ~@14 C B ~@2 C D ~@2 C B ~@2 C D ~@4>".pickRestart({
  A: "~@14 a2 ~", B: "e2 ~@15", C: "~@15 g2", D: "d2 ~@15",
})).s("gm_timpani").gain(0.49).pan(0.3)

// chords · piano
const piano = note(`<
  ~@10 A B C D E@2 F@4 G H ~@9 A B C I J@2 F@2 E@2 K H L M N O P M Q R ~@4 J@2 F@2 E@2 K S F@2 J@2 F@2 K H ~
>`.pickRestart({
  A: "g4@9 ~ g4@3 a4@3", B: "g4@13 ~@3", C: "g4@12 ~@2 e4 f#4", D: "g4@3 a4@5",
  E: "[[g1,g2]@4 [b3,d4,g4]@2 [g1,g2] ~ [a1,a2]@4 [c4,d4]@2 [a1,a2] c4 ~@2 c4 ~ [c4,d4]@2 c2 [c4,d4] ~@2 d2@2 [d4,f#4]@2 d2@2, ~@7 [d4,g4]@4 ~ g4@7 ~ g4@4 ~ [d4,f#4]@3 ~@4, ~@7 b3@2 ~@7 c2@5 ~@3 d2@2 ~@6]/2", // G A Csus2 A Csus2 D G5 D
  F: "[[g1,g2]@4 [b3,d4,g4]@2 [g1,g2] ~ [a1,a2]@4 [c4,d4]@2 [a1,a2] c4 ~@2 c4 ~ [c4,d4]@2 ~ [c4,d4] ~@2 d2@2 [d4,f#4]@2 d2@2, ~@7 [d4,g4]@4 ~ g4@7 ~ g4@4 ~ [d4,f#4]@3 ~@4, ~@7 b3@2 ~@7 c2@4 ~@2 c2@2 d2@2 ~@6]/2", // G A Csus2 A Csus2 D G5 D
  G: "e2@4 b3@2 ~ [b3,d4] [f2,b3,d4,g4]@7 ~, ~ [d4,g4] ~@2, ~@3 e2 ~@4", H: "[a2,e3]@2 ~@4 [d3,a3] ~@9",
  I: "g4@3 a4@4 ~",
  J: "[[g1,g2]@4 [b3,d4,g4]@2 [g1,g2] ~ [a1,a2]@4 [c4,d4]@2 [a1,a2] c4 ~@2 c4 ~ [c4,d4]@2 ~ [c4,d4] ~@2 d2@2 [d4,f#4]@2 d2@2, ~@7 [d4,g4]@4 ~ g4@7 ~ g4@4 ~ [d4,f#4]@3 ~@4, ~@7 b3@2 ~@7 c2@5 ~ c2@2 d2@2 ~@6]/2", // G A Csus2 A Csus2 D G5 D
  K: "~@3 b3 b3@2 ~ [b3,d4] [f2,b3,d4,g4]@7 ~, e2 [d4,g4] ~@2, ~@3 e2 ~@4", L: "[c4,e4,a4]@13 ~@3, a2@15 ~",
  M: "[c3,c4,d4,e4,g4]@15 ~", N: "[g2,b3,d4,g4]@15 ~", O: "a3@4 a3 ~ [d3,a3,d4,f#4]@9 ~, [d3,d4,g4]@3 ~@5",
  P: "[a2,c4,e4,a4]@15 ~", Q: "[d3,b3,d4,g4]@7 ~", R: "[d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]@4 ~",
  S: "[a2,c4,g4]@3 ~ a2 ~ [d3,g4]@2 c4 ~ d3@2 c4 ~ c4 ~, ~@3 [c4,g4]@3 c4 ~@2 [c4,g4]@2 ~ g4@3 ~, ~@13 d3@2 ~", // Am7 G5 C5
})).s("gm_piano").gain(0.41).pan(0.3)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B A B A B A B C B D E F G H I H J H J K L ~ C B A B A B A B D E M G H J H J H I K L N ~@7 O P Q R H J H J H I S T H
  J H J H J S L ~
>`.pickRestart({
  A: "[g2,d3,g3] ~ [g2,d3,g3]@2 [b3,d4,g4] [g2,d3,g3] [b3,d4,g4] [a2,e3,a3,c4,d4,g4] ~@2 [c4,d4,g4]@3 c4 ~ c4, ~@9 [a2,e3,a3]@4 [d4,g4]@3, ~@7 [a2,e3,a3]", // G5 G G5 G Am7 Csus2 A5 G5 …
  B: "[c3,g3,c4,e4] ~ [c3,g3,c4]@2 [g3,c4,e4] c3 [g3,c4] [d3,a3,d4,f#4] ~@2 [a3,d4,f#4]@2 a3 ~ d3 a3, ~@9 d3@4 [a3,d4,f#4]@2 ~", // C C5 C C5 D
  C: "[g2,d3,g3] ~ [g2,d3,g3]@2 [b3,d4,g4] [g2,d3,g3] [b3,d4,g4] [a2,e3,a3,c4,d4,g4] ~@2 [c4,d4,g4]@2 ~ c4 ~ c4, ~@9 [a2,e3,a3]@4 [d4,g4]@3, ~@7 [a2,e3,a3]", // G5 G G5 G Am7 Csus2 A5 G5 …
  D: "[b3,e4] ~ [b3,e4] e3 [b3,e4,g4]@2 ~@2 [e2,e3] ~ [e2,e3]@2 [b3,e4,g4]@2 ~ [b3,e4], e2@5 ~ [e2,e3]@2 ~@6 [e2,e3]@2, g4@2 ~@5 [b3,e4,g4]@2 [b3,e4,g4]@3 ~@4", // E5 Em E Em E5 E Em
  E: "[c3,d4,g4]@2 c4 ~ [c4,d4,g4]@2 ~@2 c3 ~ c3@2 [c4,d4]@2 ~ [c4,d4], c4 ~@2 c3@2 ~ c3@2 ~@6 c3@2, ~@7 [c4,d4,g4]@2 [c4,d4,g4]@3 g4@4", // Csus2
  F: "a2@2 d4 [a2,c4] [c4,d4,g4]@2 a2 ~ a2 ~ a2@2 [c4,d4,g4]@2 ~ [c4,d4,g4], [c4,g4]@4 ~@3 [c4,d4,g4]@2 [c4,d4,g4]@3 ~@2 a2@2, d4 ~@15", // Am Csus2 C5 Csus2
  G: "[e2,b3,e4,g4]@2 b3 e2 [b3,e4,g4] ~ [d3,a3,d4,f#4] ~ [a3,d4,f#4] d3 [a3,d4,f#4] ~@3 a3 ~, ~@6 [a3,d4,f#4] ~, ~@13 d3@2 ~", // Em D
  H: "[b3,d4] d3 [b3,d4] ~ [b3,d4,g4]@2 [g2,d3] [a2,e3,c4,d4,g4]@2 ~ [a2,e3]@2 [c4,d4,g4]@2 ~ [c4,d4], [g2,g4]@3 [g2,d3]@2 ~@4 [c4,d4,g4]@3 ~@2 [a2,e3]@2", // Bm G G5 Am7 A5 Csus2 G G5 …
  I: "[c3,g4]@2 [c4,d4] ~ [c4,d4,g4]@2 c3 [d3,c4,d4,f#4]@2 ~ d3@2 [c4,d4,f#4]@2 d3 c4, [c4,d4] ~@2 c3@2 ~@4 [c4,d4,f#4]@3 ~@4", // C5 Csus2 D7 Csus2 D7
  J: "[c3,g4]@2 [c4,d4] ~ [c4,d4,g4]@2 c3 [d3,c4,d4,f#4]@2 ~ d3@2 [c4,d4,f#4]@2 ~ c4, [c4,d4] ~@2 c3@2 ~@4 [c4,d4,f#4]@3 ~@2 d3@2", // C5 Csus2 D7 Csus2 D7
  K: "[e2,g4]@2 d4 e2 [d4,g4]@2 e2 [d4,g4]@2 [d4,g4] [d4,g4]@2 f2@2 [d4,g4]@2, d4 ~@6 f2@4 ~@5", // Em G5
  L: "[a2,e3,a3] ~@5 [d3,a3,d4] ~@3 [a3,d4] ~@2 d3 ~@2, ~@9 d3@3 [a3,d4]@2 ~@2", // A5 D5
  M: "[a2,g4]@2 d4 [a2,c4] [c4,d4,g4]@2 a2 ~ a2 ~ a2@2 [c4,d4,g4]@2 ~ [c4,d4,g4], [c4,d4] ~@6 [c4,d4,g4]@2 [c4,d4,g4]@3 ~@2 a2@2", // A7 Am Csus2
  N: "[a2,e3,g3]@13 ~@3", // A7
  O: "[g2,d4,g4]@2 ~@2 [b3,d4,g4]@2 g2 [a2,c4,d4,g4]@2 ~ a2@2 [c4,d4,g4]@2 ~ c4, b3 ~ b3@2 ~@5 [c4,d4,g4]@3 ~@4, ~@3 g2@2 ~@9 a2@2", // G5 G Am7 Csus2
  P: "[c3,d4,g4]@2 c4 ~ [c4,d4,g4]@2 c3 [d3,d4,g4]@2 ~ d3@2 [c4,d4,g4]@2 d3 [c4,d4,g4], c4 ~@2 c3@2 ~@2 c4 ~ [c4,d4,g4]@3 ~@4", // Csus2 G5 Csus2
  Q: "[g2,b3,d4,g4]@3 ~ [b3,d4,g4]@2 g2 [a2,c4,d4,g4]@2 ~ a2@2 [c4,d4,g4]@2 ~ c4, ~@3 g2@2 ~@4 [c4,d4,g4]@3 ~@2 a2@2", // G Am7 Csus2
  R: "[c3,d4,g4]@2 c4 c3 [c4,d4,g4]@2 c3 [d3,d4,g4]@2 ~ d3@2 [c4,d4,g4]@2 ~ [c4,d4,g4], c4 ~@6 c4 ~ [c4,d4,g4]@3 ~@2 d3@2", // Csus2 G5 Csus2
  S: "[e2,g4]@2 d4 e2 [d4,g4]@2 e2 [d4,g4]@2 [d4,g4] [d4,g4]@2 ~@2 [d4,g4]@2, d4 ~@6 f2@4 ~ f2@4", // Em G5
  T: "g4@2 d4 [d4,g4]@2 ~ a2 d4 g4@2 d4 [d4,g4]@2 d4 d3 d4, a2@5 ~@3 d3@5 ~@3, d4 ~@4 [d4,g4]@2 ~ d4 ~@4 g4@3", // G5
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.7)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@10 A@2 B ~@18 A@2 C ~@38>".pickRestart({
  A: "[~@3 f#4@2 ~@2 d4@7 ~ d4 ~@3 f#4@2 ~@2 d4@8 ~, e3@15 ~ c3@15 ~, ~@2 e4@3 g4@13 e4@3 g4@10 ~]/2",
  B: "e4@2 ~ d4@2 ~@2 c4@7 ~@2, ~@2 g4@3 g4@9 ~@2", C: "e4@2 ~ d4@2 ~@2 c4@7 ~@2, ~@2 g4@2 ~ g4@9 ~@2",
})).s("gm_electric_guitar_clean").gain(0.35).pan(0.7)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note("<A ~ A ~ A ~ A ~ A ~@13 B A ~ A ~ A ~ A ~@41 B>".pickRestart({
  A: "~@10 [a2,e3]@5 ~", B: "[g2,d3]@11 ~@5",
})).s("gm_acoustic_guitar_nylon").gain(0.25).pan(0.2)

// chords · piano
const piano_2 = note("<~@14 A B@2 ~ A C@2 ~@14 A B@2 ~ A C@2 ~@13 A D@4 C@2 ~ A E ~@2 A F@2 ~@2>".pickRestart({
  A: "~@2 [b3,d4,g4]@2 [b3,e4] [b3,d4] [a3,c4] [g3,b3]", B: "[[g3,c4]@3 [a3,d4]@15 [b3,d4]@6 [a3,c4,d4]@8]/2",
  C: "[[g3,c4]@3 [a3,d4]@15 [d4,g4]@6 [c4,f4,g4]@8]/2", // C5 D5 G5 Csus4
  D: "[[g3,c4]@3 [a3,d4]@15 [b3,d4]@6 [a3,c4,d4]@10 [g3,g4]@6 [a3,a4]@2 [b3,b4]@2 [a3,a4]@2 [g3,g4]@6 [b3,d4,g4]@4 [b3,e4]@2 [b3,d4]@2 [a3,c4]@2 [g3,b3]@2]/4", // C5 D5 Bm D7 G A B A …
  E: "[g3,c4]@3 [a3,d4]@5 ~@8", F: "[[g3,c4]@3 [a3,d4]@15 [d4,g4]@6 [c4,f4,g4]@2 [c4,f4,g4]@5 ~]/2",
})).s("gm_piano").gain(0.05)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A B A B A B A B A B A C D@7 E F D@8 A B A C D@7 E G@7 H ~@3 I D@7 J D@7 E K
>`.pickRestart({
  A: "x ~@14 x", B: "x!2 ~@6", C: "x ~@2 x ~@2 x ~@2 x ~@6", D: "x ~ x ~@4 x ~ x!2 ~@5", E: "x!2 ~ x ~ x ~@2",
  F: "x ~@9 x!2 ~@4", G: "x ~@2 x ~@4", H: "x!2 ~ x ~@4", I: "~@5 x ~ x ~@2 x!2 ~ x ~ x",
  J: "x ~ x ~@4 x ~ x!3 ~ x ~ x", K: "x",
})).gain(0.72)

// drums · rim
const rim = s("rim").struct("<~@43 [~ x ~ x]!7 ~ [~ x ~ x]!4 ~@17>").gain(0.72)

// drums · clap
const clap = s("cp").struct("<~@10 [~@3 x]!3 ~@18 [~@3 x]!3 ~@17 [~ x ~ x]!4 ~@17>").gain(0.64)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@3 A ~ A ~ A ~ A ~ A ~@20 A ~@10 B@7 ~@22>".pickRestart({
  A: "~@9 x ~@6", B: "~@7 x ~ x ~@6",
})).gain(0.32)

// drums · low tom
const low_tom = s("lt").struct("<~@13 A ~@20 A ~@19 B ~@7 C ~@9>".pickRestart({
  A: "~@7 x ~@8", B: "~@5 x ~@10", C: "~@5 x ~ x",
})).gain(0.56)

// drums · hihat
const hihat = s("hh").struct("<~@2 [x!8]!20 ~ [x!8]!28 [x!16]!4 [x!8]!16 ~>").gain(0.56)

// drums · mid tom
const mid_tom = s("mt").struct("<~@13 A ~@20 A ~@19 A ~@7 B ~@9>".pickRestart({
  A: "~@3 x ~@4", B: "~@9 x ~@6",
})).gain(0.56)

// drums · open hat
const open_hat = s("oh").struct("<~@22 [~@3 x] ~@49>").gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  ~@10 A ~@2 B A ~@3 A ~@2 A@3 ~@7 A ~@2 B A ~@3 A ~@2 A ~@12 A ~@3 A ~@3 A ~@3 A ~@3 A
>`.pickRestart({
  A: "x", B: "~@3 x",
})).gain(0.56)

// drums · tambourine
const tambourine = s("tb").struct("<~@2 A@19 ~@2 A@19 ~ A@8 B@4 A@15 ~@2>".pickRestart({
  A: "x!16", B: "~ x ~ x",
})).gain(0.4)

// drums · shaker
const shaker = s("sh").struct("<~@22 [x!16] ~@28 [x!16]!4 ~@17>").gain(0.32)

stack(
  bass, string_ensemble_2, lead_1_square, overdriven_guitar, distortion_guitar, distortion_guitar_soft, timpani, piano,
// … 3 more lines

More by Laura Pausini