Strudelify
Chissa' Se Stai Dormendo cover art

1992 · Lorenzo 1992

Chissa' Se Stai Dormendo

Jovanotti

KeyG majorTempo85 bpm
0:00/0:00
// Chissa' Se Stai Dormendo — Jovanotti
// 85 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 108 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/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@5 B C D E F C G@2 H E H I J C K L M@2 N@4 O@2 M@2 P@3 Q R S T U V@6 N@2 M@2 N@2 W X M@4 Y@5 Z R S T U AA@6 M@2 AB@2
  M@2 N@2 M@4 AC@3 AD@2 Q R S T AE@2 AF@6 AG@6
>`.pickRestart({
  A: "[~@4 [d1,d2]@14 ~ d2 ~@7 e1@8 e2 ~@8 d1@7 d1 ~@7 e1 e1@7 ~ g1@6 ~ g1@2 ~ g1@2, ~@20 e2@14 ~@2 d2@15 ~ e2@15 ~@13]/5", // D
  B: "~ b1@3 c2@12", C: "e2 a1@3 g1@11 g1", D: "b1@4 c2@11 ~", E: "e2 a1@3 g1@12", F: "b1@4 c2@9 c2@3",
  G: "[b1@4 ~@5 g2!3 g2@2 g3 g3@5 ~@7 g1 g1@4, ~@4 c2@15 ~@13]/2", H: "b1 c2@3", I: "c2@4 g1@11 g1", J: "d2 c2@3",
  K: "b1@4 c2@6 ~ g2 c3@4", L: "c3@4 g1@7 g1 g1@4", M: "[b1@4 c2@14 ~ c2 g1@11 ~]/2", N: "[b1@4 c2@14 ~ c2 g1@12]/2",
  O: "[b1@4 c2@15 ~ g1@6 ~ g1 g1@4]/2",
  P: "[b1@4 c2@5 g2 d3@2 c3 b2@2 g2@3 e2 c2 c2@6 ~ c2 ~ c2@6 c2 c2@5 ~ c2 c2@5]/3", Q: "~@2 c2 ~ b1@4 ~@2 b1 b1@5",
  R: "~@2 b1 ~ e2@7 ~ e2 ~@2 d2", S: "~@2 c2@6 ~@2 c2 c2@5", T: "~@2 c2 ~ c2@6 ~ c2 c2@4", U: "~@2 c2@2 b1@5 ~ b1 b1@5",
  V: "[~@2 b1@2 e1@6 ~ e1 c2@7 ~ [d1,d2]@14 ~ d2 ~@7 e1@8 e2 ~@8 d1@7 d1 ~@7 e1 e1@7 ~ g1@6 ~ g1 g1@4, ~@36 e2@14 ~@2 d2@15 ~ e2@15 ~@13]/6", // D
  W: "b1@4 c2@4 ~@2 c2 e1@2 f1@2 g1", X: "a1 ~ c2 ~ g1@6 ~ g1 g1@4",
  Y: "[b1@4 c2@14 ~ c2 ~@9 g2 ~ g2 ~ g2 ~ g2 g1@6 g2 b1@2 c2@2 d2@2 g2!2 ~ c2@6 ~ c2 ~ c2@6 c2 c2@5 ~ c2 c2@5, ~@4 g1@3 ~@9]/5",
  Z: "~@2 c2@2 b1@4 ~@2 b1 b1@5",
  AA: "[~@2 b1@2 e1@6 ~ e1 c2@7 ~ [d1,d2]@14 ~ d2 ~@7 e1@8 ~@9 d1@7 d1 ~@7 e1 e1@7 ~ g1@6 ~ g1 g1@4, ~@36 e2@14 ~ e2@2 ~@15 e2@15 ~@13, ~@52 d2@15 ~@29]/6", // D
  AB: "[b1@4 c2@14 ~ c2 ~@7 g1 g1@4]/2",
  AC: "[b1@4 c2@14 ~ c2 ~@15 d1 d1@5 ~ d2 f1@2 g1@2 a1, ~@10 d1@7 ~@7, ~@23 d2@18 ~@7]/3",
  AD: "[d2 ~ d2 ~ c2@6 ~ c2 ~ c2@5 ~ c2 c2@5 ~ c2 c2@5]/2", AE: "[~ c2 b1@4 d#2@4 e2@3 f#2 g2@2]/2",
  AF: "[b2@4 c2@16 [d1,d2]@14 ~ d2 ~@7 e1@8 e2 ~@8 d1@7 d1 ~@7 e1 e1@7 ~ [d1,d2]@12, ~@36 e2@14 ~@2 d2@15 ~ e2@15 ~@13]/6", // D
  AG: "[~@3 d2 ~@7 e1@8 e2 ~@8 d1@7 d1 ~@7 e1 e1@7 ~ g1@32 ~@12, ~@4 e2@14 ~@2 d2@15 ~ e2@15 ~@45]/6",
})).s("gm_fretless_bass").gain(0.32)

// chords · epiano1
const epiano1 = note(`<
  A@5 B@2 C@6 D@2 E@5 F B@2 G@6 B@2 H@2 I J@2 K L M@7 B@2 N@6 B@2 O@5 P I J@2 K L M@7 B@6 Q@4 R@4 S T I J@2 K L U@2 V@7
  W@4 ~
>`.pickRestart({
  A: "[~@4 d5 ~ d4 ~ d4 ~ d4 f#4 d5 ~ d4 ~ d4 ~ d4 f#4 d5 ~ c4 ~ c4 ~ c4 f#4 d5 ~ c4 ~ c4 ~ c4 f#4 d5 ~ d4 ~ d4 ~ d4 f#4 d5 ~ d4 ~ d4 ~ d4 f#4 d5 ~ c4 ~ c4 ~ c4 f#4 d5 ~ c4 ~ c4 ~ c4 f#4 [g2,a3,b3,d4,f#4]@12, ~@4 d3@14 ~@2 e3@15 ~ d3@14 ~@2 e3@15 ~@13, ~@5 g4@2 f#4@2 g4@2 ~@2 g4@2 f#4@2 g4@2 ~@2 g4@2 f#4@2 g4@2 ~@2 g4@2 f#4@2 g4@2 ~@2 g4@2 f#4@2 g4@2 ~@2 g4@2 f#4@2 g4@2 ~@2 g4@2 f#4@2 g4@2 ~@2 g4@2 f#4@2 g4@2 ~@13, ~@6 g3@7 ~ g3@6 ~@2 a3@7 ~ a3@6 ~@2 g3@7 ~ g3@6 ~@2 a3@7 ~ a3@6 ~@12]/5", // Gmaj7
  B: "[b2 [c3,b3,d4]@4 [g2,a3,b3,d4,f#4]@3, ~@2 [e4,g4]@7 ~@7]/2", // G Gmaj7 Em
  C: "[b2@4 [c3,b3,d4]@16 [g2,a3]@12 b2@4 [c3,b3,d4,g4]@15 ~ [g2,a3,b3]@12 b2@4 [c3,b3,d4,e4,g4]@14 ~@2 [g2,a3,b3,d4,f#4]@12, ~@4 [e4,g4]@14 ~@2 [b3,d4,f#4]@15 ~ e4@13 ~@3 [d4,f#4]@15 ~@29]/6", // G Gsus2 G Cmaj7 Gmaj7 Em Bm D
  D: "[b2 [c2,b3,d4]@4 [g2,a3,b3,d4,f#4]@3, ~@2 [e4,g4]@7 ~@7]/2", // G Gmaj7 Em
  E: "[b2@4 [c2,b3,d4,e4,g4]@15 ~ [g2,a3]@12 b2@4 [c2,b3,d4,g4]@15 ~ [g2,a3,b3]@12 b2@4 [c2,b3,d4,e4,g4]@11 ~, ~@20 [b3,d4,f#4]@15 ~ e4@13 ~@3 [d4,f#4]@15 ~@13]/5", // Cmaj7 Gsus2 G Cmaj7 Bm D
  F: "[c2,b3,d4,e4,g4] [g2,a3,b3,d4,f#4]@3", // Cmaj7 Gmaj7
  G: "[b2@4 [c3,b3,d4,e4,g4]@15 ~ [g2,a3]@12 b2@4 [c3,b3,d4,g4]@15 ~ [g2,a3,b3]@12 b2@3 ~ [c3,b3,d4,e4,g4]@14 ~@2 [g2,a3,b3,d4,f#4]@12, ~@20 [b3,d4,f#4]@15 ~ e4@13 ~@3 [d4,f#4]@15 ~@29]/6", // Cmaj7 Gsus2 G Cmaj7 Gmaj7 Bm D
  H: "[b2 [c3,b3,d4]@4 [c2,b3,d4,e4,g4]@3, ~@2 [e4,g4]@7 ~@7]/2", // G Cmaj7 Em
  I: "[b3,d4,e4,g4]@2 c2 ~ c2@6 c2@6, ~@4 [a3,d4,f#4]@11 ~", // Em7 D
  J: "[[a3,d4,f#4]@2 c2@2 [b2,b3,d4,f#4]@7 ~ [b2,a3,b3,d#4]@8 [e2,b3,e4,g4]@5 ~@3 [e2,b3,e4,g4] ~@2 [d2,a3,d4,f#4], ~@6 f#4@3 ~@7]/2", // D Bm B7 Em D
  K: "~@2 c2@9 ~ c2@4, ~@2 [b3,d4,e4,g4]@13 ~", L: "[b3,d4,e4,g4]@2 c2 ~ c2@6 c2@5 ~, ~@4 [a3,d4,f#4]@11 ~",
  M: "[[a3,d4,f#4]@2 c2@2 [b2,a3,d4,f#4]@7 ~ [b2,a3,d#4,f#4]@8 [b3,e4,g4]@15 ~ d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 g4 ~ f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 [g2,a3,b3,d4,f#4]@12, ~@2 d2 ~@33 d3@14 ~@2 e3@15 ~ d3@14 ~@2 e3@15 ~@13, ~@37 g4@2 ~@6 g4@2 ~@6 g4@2 ~@6 g4@2 ~@14 g4@2 ~@6 g4@2 ~@6 g4@2 ~@17, ~@38 g3@7 ~ g3@6 ~@2 a3@7 ~ a3@5 ~@3 g3@7 ~ g3@6 ~@2 a3@7 ~ a3@5 ~@13]/7", // D Bm7 B7 Em Gmaj7
  N: "[b2@4 [c3,b3,d4]@16 [g2,a3]@12 b2@4 [c3,b3,d4,g4]@15 ~ [g2,a3,b3]@12 b2@3 ~ [c2,b3,d4,e4,g4]@15 ~ [g2,a3,b3,d4,f#4]@12, ~@4 [e4,g4]@14 ~@2 [b3,d4,f#4]@15 ~ e4@13 ~@3 [d4,f#4]@15 ~@29]/6", // G Gsus2 G Cmaj7 Gmaj7 Em Bm D
  O: "[b2@4 [c3,b3,d4]@16 [g2,a3]@12 b2@4 [c3,b3,d4,g4]@15 ~ [a3,c4,f4]@15 ~ [f2,a3,c4]@10 [f2,a3,c4] ~, ~@4 [e4,g4]@14 ~@2 [b3,d4,f#4]@15 ~ e4@13 ~@31]/5", // G Gsus2 G F Em Bm
  P: "[a3,c4] ~ [c2,b3,d4,e4,g4]@6", // Am Cmaj7
  Q: "[b2@4 [c3,b3,d4]@16 [g2,a3]@12 b2@4 [c3,b3,d4,g4]@15 ~ [g2,a3,b3,d4,f#4]@12, ~@4 [e4,g4]@14 ~@2 [b3,d4,f#4]@15 ~ e4@13 ~@3 c3 ~@11]/4", // G Gsus2 G Gmaj7 Em Bm
  R: "[b2@4 [c3,b3,d4,e4,g4]@15 ~ [g2,a3]@12 b2@4 [c3,b3,d4,g4]@15 ~ [d2,g3,a3,c4,e4]@4 [d2,g3,a3,c4,e4]@4 [d2,g3,a3,c4,e4]@4, ~@20 [b3,d4,f#4]@15 ~ e4@13 ~@15]/4", // Cmaj7 Gsus2 G Am7 Bm
  S: "[d2,g3,a3,c4,e4]!3 ~", T: "[d2,g3,a3,c4,e4] [c2,b3,d4,e4,g4]@3",
  U: "[[a3,d4,f#4]@2 [c2,d2] ~ [b2,a3,d4,f#4]@7 ~ [b2,a3,d#4,f#4]@8 [b3,e4,g4]@12]/2", // D Csus2 Bm7 B7 Em
  V: "[~@4 [c2,e3,g3,b3,d4]@15 ~ [d2,a3,b3,f#4]@16 ~@2 a3@13 ~ [d2,a3,b3,d4,f#4]@16 [e2,a3,c4,d4,e4]@15 ~ [d2,a3,b3,f#4]@16 ~@2 a3@10, ~@20 d4@14 ~@2 [e2,c4,d4,e4]@15 ~@33 d4@14 ~@2 [e2,c4,d4,e4]@12]/7", // Cmaj7 Bm7 Am Bm7 C
  W: "[~@4 [d2,a3,b3,d4,f#4]@16 [e2,a3,c4,d4,e4]@15 ~@3 a4@25 ~, ~@18 [g2,b3,d4,f#4]@13 ~]/4", // Bm7 Am Gmaj7
})).s("gm_epiano1").gain(0.2)

// chords · pad choir
const pad_choir = note("<A@6 ~@26 B C D@2 E F G@8 ~@14 B C D@2 E F G@8 ~@12 H@3 C D@2 E F I@2 J@7 K@5>".pickRestart({
  A: "[~@4 [d3,a4,b4]@16 ~@2 a4@13 ~ [d3,a4,b4,d5,f#5]@16 [e3,a4,c5,d5,e5]@15 ~ [d3,a4,b4]@16 ~@12, ~@4 [d5,f#5]@14 ~@2 [e3,c5,d5,e5]@15 ~@33 [d5,f#5]@14 ~@14]/6", // Bm7 Am Bm7 D C D
  B: "~ [c2,b3,d4,e4,g4]@3", C: "[b3,d4,e4,g4]@2 c2 ~ c2@6 c2@6, ~@4 [a3,d4,f#4]@11 ~",
  D: "[[a3,d4,f#4]@2 c2@2 [b2,b3,d4,f#4]@7 ~ [b2,a3,b3,d#4]@8 [e2,b3,e4,g4]@5 ~@3 [e2,b3,e4,g4] ~@2 [d2,a3,d4,f#4], ~@6 f#4@3 ~@7]/2", // D Bm B7 Em D
  E: "~@2 c2@9 ~ c2@4, ~@2 [b3,d4,e4,g4]@13 ~", F: "[b3,d4,e4,g4]@2 c2 ~ c2@6 c2@5 ~, ~@4 [a3,d4,f#4]@11 ~",
  G: "[[a3,d4,f#4]@2 [c2,d2] ~ [b2,a3,d4,f#4]@7 ~ [b2,a3,d#4,f#4]@8 [b3,e4,g4]@15 ~ [d3,a4,b4]@16 ~@2 a4@13 ~ [d3,a4,b4,d5,f#5]@16 [e3,a4,c5,d5,e5]@15 ~ [d3,a4,b4]@16 ~@12, ~@36 [d5,f#5]@14 ~@2 [e3,c5,d5,e5]@15 ~@33 [d5,f#5]@14 ~@14]/8", // D Csus2 Bm7 B7 Em Bm7 Am Bm7 …
  H: "[~ [d3,g3,a3,d4,e4]@8 [c2,b3,d4,e4,g4]@3]/3", // Dsus4 Cmaj7
  I: "[[a3,d4,f#4]@2 [c2,d2] ~ [b2,a3,d4,f#4]@7 ~ [b2,a3,d#4,f#4]@8 [b3,e4,g4]@12]/2", // D Csus2 Bm7 B7 Em
  J: "[~@4 [c2,e3,g3,b3,d4]@15 ~ [d3,a4,b4]@16 ~@2 a4@13 ~ [d3,a4,b4,d5,f#5]@16 [e3,a4,c5,d5,e5]@15 ~ [d3,a4,b4]@16 ~@2 a4@10, ~@20 [d5,f#5]@14 ~@2 [e3,c5,d5,e5]@15 ~@33 [d5,f#5]@14 ~@2 [e3,c5,d5,e5]@12]/7", // Cmaj7 Bm7 Am Bm7 D C D C
  K: "[~@4 [d3,a4,b4,d5,f#5]@16 [e3,a4,c5,d5,e5]@15 ~ [d3,a4,b4,d5,f#5]@32 ~@12]/5", // Bm7 Am Bm7
})).s("gm_pad_choir").gain(0.07)

// chords · tuba
const tuba = note(`<
  ~@3 A B@3 C D@3 E@2 ~@18 F@2 G@2 H I J ~ K L@2 M N@2 ~@13 O P Q@3 H I J ~ R S@2 T@4 U@3 ~@9 V W X G@2 H I J Y Z AA@2
  ~@3 AB@4 AC@3
>`.pickRestart({
  A: "~@15 d4", B: "[~ e4 ~ g4 f#4@14 d4 d#4 e4@16 ~ d4 e4 ~ g4 f#4 a4@6]/3", C: "~ g4 f#4 ~ g4@11 ~",
  D: "[~@2 [c5,d5] ~@3 a4 ~ a4 ~ a4 ~ a4 ~@2 e5@3 d5 ~ g4@2 g4 ~ g4 ~ g4 ~ g4@8 a4 ~ a4 ~ a4 ~ a4 ~ a4 ~@2 d#5, ~@2 b4@15 ~@7, ~@15 d#5 ~@32]/3", // Csus2
  E: "[e5@2 d5 ~ g4@2 g4 f#4 g4 a4 [g4,b4] c5 g4 ~ g4 ~ g4 ~ g4 ~@13, ~@12 d5@7 ~@13]/2", // G
  F: "[~@3 c5 d5@16 [g4,b4] ~ [e4,g4] ~ [c4,e4] [d4,f#4] ~ [e4,g4]@5, ~@4 c#5 ~@27]/2", // G Em C D Em
  G: "[~ [g4,b4] ~ [f#4,a4]@4 ~ [d4,f#4] [e4,g4] ~ [f#4,a4] ~ f#4 d4@4 ~@14]/2", // G F#m D Em F#m
  H: "~@4 [e4,g4] [f#4,a4] ~ [g4,b4] ~ [a4,c5] ~@2 [b4,d5] ~@2 [a4,c5]", // Em F#m G Am Bm Am
  I: "~@2 [g4,b4]@2 [g4,b4] ~ [e4,g4] ~ [c4,e4] [d4,f#4] ~ [e4,g4] ~@4", // G Em C D Em
  J: "~ [g4,b4] ~ [f#4,a4]@4 ~ [d4,f#4] [e4,g4] ~ [f#4,a4] ~ f#4 d4 ~", // G F#m D Em F#m
  K: "~@4 [e5,g5] [d5,f#5] ~ [b4,e5] ~ d5 e5@4 [b4,d5] ~, ~@9 b4@5 ~@2", L: "[[g4,b4] ~ [g4,d5] [g4,b4]@17 ~@11 d4]/2",
  M: "~ e4 ~ g4 f#4@9 a4!2 ~", N: "[a4!2 g4 ~ d5@5 ~ b4@2 a4@8 ~@12]/2", O: "~@11 b4 c5 d5 b4 c5",
  P: "a4 b4 g4 a4 f4 g4 e4 f4 g4 f4 ~ e4 f4 g4 a4 b4",
  Q: "[c5 d5 e5 f5 [g4,b4] ~ [e4,g4] ~ [c4,e4] [d4,f#4] ~ [e4,g4]@5 ~ [g4,b4] ~ [f#4,a4]@4 ~ [d4,f#4] [e4,g4] ~ [f#4,a4] ~ f#4 d4@4 ~@14, ~ g5@4 ~@7]/3", // G Em C D Em G F#m D …
  R: "~@4 [e5,g5] [d5,f#5] ~ [b4,e5] ~ d5 e5@3 ~ [b4,d5] ~, ~@9 b4@5 ~@2", // Em D E5 Bm
  S: "[[g4,b4] ~ [g4,d5] [g4,b4]@17 ~@6 d5 e5 f#5 g5 f#5 e5]/2", // G G5 G
  T: "[~ d5 ~ b4@16 ~ e4 f#4 e4@13 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~@2 e5@2 d5 ~@2 g4 ~ g4 ~ [d4,g4] d4 [d4,g4] ~ d4@4, ~@60 g4 ~@3]/4", // G5
  U: "[~ b3@3 a4 ~ a4 ~ a4 ~ [c#4,a4] ~ a4 ~@2 e5@3 d5 ~ g4 ~ g4 ~ g4 ~ g4 ~ g4 ~@2 d4@3 ~@14, ~ a#3 ~@2 a3@6 d4@2 b3@23 ~@13]/3", // F#m
  V: "~@13 d4 e4 ~", W: "f#4 g4 a4 ~@2 f#4 g4 ~ a4 b4 c5 ~ d5@2 ~ e5, ~@12 c#5 ~@3",
  X: "e5@2 ~ g5 [g4,b4] ~ [e4,g4] ~ [c4,e4] [d4,f#4] ~ [e4,g4]@5, ~@4 d5@5 ~@7", Y: "~@4 [d4,b4]@8 ~@2 f#4 b4",
  Z: "d#5 f#5 a5 f#5 g5@12", AA: "[~@2 d5 e5 d5@14 ~@14]/2",
  AB: "[~@4 a4 ~ a4 ~ a4 ~ a4 ~ a4 ~@2 e5@2 ~ d5 ~ g4 ~ g4 ~ g4 ~ g4 ~ g4 ~@2 g4@3 ~@2 a4 ~ a4 ~ a4 ~ a4 ~ a4 ~@2 e5@2 ~ d5 ~ g4 ~ g4 ~ g4 ~ g4 ~ g4!2 f#4 g4]/4",
  AC: "[a4 b4 c5 ~ d5@32 ~@12]/3",
})).s("gm_tuba").gain(0.29)

// chords · epiano1
const epiano1_2 = note(`<
  ~@20 A B@2 C@4 D@2 E@2 ~@9 F@5 ~@3 G@3 H@4 I@4 ~@9 F@5 ~@3 A B@2 J@4 K@6 ~@8 L@8 M ~@2
>`.pickRestart({
  A: "~@6 [d4,f#4] ~ [a3,b3,d4,f#4] ~@3 [a3,b3,d4,f#4] ~@2 [a3,b3,d4,f#4]", // D Bm7
  B: "[~ [a3,b3,d4,f#4] ~@4 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~ [b3,d4,g4] ~@2 [d4,e4,g4,b4]@3 ~@4 [d4,f#4] ~ [a3,b3,d4,f#4] ~@3 [a3,b3,d4,f#4] ~@2 [a3,b3,d4,f#4]]/2", // Bm7 Em7 G Em7 D Bm7
  C: "[~@6 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@2 [d4,e4,g4,b4]@3 ~@4 [a3,b3,d4,f#4] ~ [a3,b3,d4,f#4] ~@3 [b3,d4,f#4] ~@2 [a3,b3,d4,f#4]@3 ~@4 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@2 [d4,e4,g4,b4]@3 ~@4 [a3,b3,d4,f#4] ~ [a3,b3,d4,f#4] ~@3 [a3,b3,d4,f#4] ~@2 [a3,b3,d4,f#4]]/4", // Em7 Bm7 Bm Bm7 Em7 Bm7
  D: "[~@6 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~ b3 ~ [b3,d4,e4,g4] ~@2 [d4,e4,g4,b4]@4 ~@3 [a3,b3,d4,f#4] ~ [a3,b3,d4,f#4] ~@4 [a3,b3,d4,f#4] ~@2]/2", // Em7 Bm7
  E: "[[a3,b3,d4,f#4] ~@5 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@2 [d4,e4,g4,b4]@4 ~@13]/2", // Bm7 Em7
  F: "[~@4 [d2,a3,b3]@16 ~@2 a3@13 ~ [d2,a3,b3,d4,f#4]@16 [e2,a3,c4,d4,e4]@15 ~@13, ~@4 [d4,f#4]@14 ~@2 [e2,c4,d4,e4]@15 ~@45]/5", // Bm7 Am D C
  G: "[~@6 [a3,b3,d4,f#4] ~ [a3,b3,d4,f#4] ~@3 [b3,d4,f#4] ~@2 [a3,b3,d4,f#4]@3 ~@4 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@2 [d4,e4,g4,b4]@3 ~@4 [a3,b3,d4,f#4] ~ [a3,b3,d4,f#4] ~@3 [a3,b3,d4,f#4] ~@2 [a3,b3,d4,f#4]]/3", // Bm7 Bm Bm7 Em7 Bm7
  H: "[~@6 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~ b3 ~ [b3,d4,e4,g4] ~@2 [d4,e4,g4,b4]@4 ~@3 [a3,b3,d4,f#4] ~ [a3,b3,d4,f#4] ~@3 [b3,d4,f#4] ~@2 [a3,b3,d4,f#4]@3 ~@4 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@2 [d4,e4,g4,b4]@3 ~@4 [a3,b3,d4,f#4] ~ [a3,b3,d4,f#4] ~@3 [a3,b3,d4,f#4] ~@2 [a3,b3,d4,f#4]]/4", // Em7 Bm7 Bm Bm7 Em7 Bm7
  I: "[~@6 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~ b3 ~ [b3,d4,e4,g4] ~@2 [d4,e4,g4,b4]@4 ~@3 [a3,b3,d4,f#4] ~ [a3,b3,d4,f#4] ~@3 [b3,d4,f#4] ~@2 [a3,b3,d4,f#4]@3 ~@4 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@2 [d4,e4,g4,b4]@3 ~@14]/4", // Em7 Bm7 Bm Bm7 Em7
  J: "[~@6 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@2 [d4,e4,g4,b4]@3 ~@4 [a3,b3,d4,f#4] ~ [a3,b3,d4,f#4] ~@3 [b3,d4,f#4] ~@2 [a3,b3,d4,f#4]@3 ~@4 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@2 [d4,e4,g4,b4]@3 ~@4 [d4,f#4] ~ [a3,b3,d4,f#4] ~@3 [a3,b3,d4,f#4] ~@2 [a3,b3,d4,f#4]]/4", // Em7 Bm7 Bm Bm7 Em7 D Bm7
  K: "[~@6 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@2 [d4,e4,g4,b4]@3 ~@4 [a3,b3,d4,f#4] ~ [a3,b3,d4,f#4] ~@3 [b3,d4,f#4] ~@2 [a3,b3,d4,f#4]@3 ~@4 [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~@3 [b3,d4,e4,g4] ~@2 [d4,e4,g4,b4]@3 ~@4 [a3,c4,d4,e4,g4]@14 ~@2 [a3,c4,d4,e4,g4] ~@2 [a3,c4,d4,e4,g4] ~@2 [a3,c4,d4,e4,g4]@6 ~@14]/6", // Em7 Bm7 Bm Bm7 Em7 Am7
  L: "[~@4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 g4 ~ f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 g4 ~ f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4@2 g4@2 f#4 d5 ~@2 f#4, ~@4 d3@14 ~@2 e3@15 ~ d3@14 ~@2 e3@15 ~ d3@14 ~@2 e3@15 ~ d3@14 ~@2 e3@12, ~@5 g4@2 ~@6 g4@2 ~@6 g4@2 ~@6 g4@2 ~@14 g4@2 ~@6 g4@2 ~@6 g4@2 ~@6 g4@2 ~@6 g4@2 ~@6 g4@2 ~@6 g4@2 ~@14 g4@2 ~@6 g4@2 ~@6 g4@2 ~, ~@6 g3@7 ~ g3@6 ~@2 a3@7 ~ a3@5 ~@3 g3@7 ~ g3@6 ~@2 a3@7 ~ a3@5 ~@3 g3@7 ~ g3@6 ~@2 a3@7 ~ a3@5 ~@3 g3@7 ~ g3@6 ~@2 a3@7 ~ a3@2]/8",
  M: "~ g4@2 f#4 ~@12",
})).s("gm_epiano1").gain(0.11).pan(0.8)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A B@3 C ~@3 A B@2 C A B@10 D B@8 ~@8 A B@10 D B@8 ~@4 A B@13 C E B@8 C ~@11
>`.pickRestart({
  A: "~ x", B: "x!2", C: "x", D: "x ~@2 x ~@4", E: "~ x ~@2",
})).gain(0.26)

// drums · low tom
const low_tom = s("lt").struct("<~@31 A B ~@6 C ~@19 A B ~@6 C ~@19 D E ~@19>".pickRestart({
  A: "~@13 x ~ x", B: "~ x!2 ~@13", C: "~@8 x!2 ~@6", D: "~@11 x!2 ~ x ~", E: "x",
})).gain(0.23)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@2 A B C D@14 E F G@9 H ~ I J@3 K J@2 L M N O P Q D@7 R G@5 H ~ I J@3 K J@2 L M N O P S T U T V G@9 H ~ I J@3 K J@3 W
  M N O P M N O P ~@3
>`.pickRestart({
  A: "~@3 x ~@12", B: "~@11 x ~ x!3", C: "x!2 ~@4 x!2 ~@2 x!2 ~@2 x!2", D: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2",
  E: "~@2 x!2 ~@12", F: "~@4 x ~ x!3 ~ x!3 ~ x!2", G: "x!5 ~ x!3 ~ x!3 ~ x!2", H: "x!4 ~@12", I: "~@5 x ~ x!5 ~ x!3",
  J: "x!6 ~ x!5 ~ x!3", K: "x!10 ~ x!5", L: "x!6 ~ x!2 ~ x!2 ~@4", M: "~@7 x ~ x ~@6", N: "~@15 x",
  O: "~ x ~ x ~@7 x ~@3 x", P: "~ x ~@9 x ~@3 x", Q: "~@6 x!2 ~@2 x!2 ~@2 x!2", R: "~@2 x!3 ~ x!3 ~ x!3 ~ x!2",
  S: "~@13 x ~@2", T: "x ~@7 x ~@4 x ~@2", U: "x!3 ~@10 x ~@2", V: "x!3 ~@3 x!3 ~ x!3 ~ x!2", W: "x!4 ~@3 x ~ x ~@6",
})).gain(0.13)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@20
  [~@5 x ~ x ~ x ~@5 x]!10
  ~@22
  [~@5 x ~ x ~ x ~@5 x]!6
  ~@18
  [~@5 x ~ x ~ x ~@5 x]!10
  ~@22
>`).gain(0.03)

// drums · mid tom
const mid_tom = s("mt").struct("<~@31 A ~@7 B ~@19 A ~@7 B ~@19 C ~@20>".pickRestart({
  A: "~@11 x ~@4", B: "~@4 x!4 ~@8", C: "~@8 x!3 ~@5",
})).gain(0.19)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@4 A B A@2 ~ B A@2 ~ B A@2 ~ B A@2 C D@9 E F G H@2 I J K H L M N O P Q B A@2 ~ B A@2 C D@5 E F G H@2 I J K H L M N O
  P R S@3 C D@9 T B K H@2 I J K H@2 U V N O P W N O P Q ~@2
>`.pickRestart({
  A: "~ x ~@6", B: "~ x ~@2", C: "~@3 x ~@2 x!2", D: "~ x ~ x ~@2 x!2", E: "~ x!7", F: "x ~ x ~@4 x ~@4 x ~ x ~",
  G: "x!6 ~@2", H: "x ~ x!4 ~@2", I: "x ~@3 x ~ x ~ x ~ x ~ x ~@2 x", J: "x ~@5 x ~@4 x ~@4", K: "~@2 x!4 ~@2",
  L: "x ~@3 x ~ x ~ x!2 ~@2 x ~@3", M: "~@6 x ~ x ~ x!2 ~@4", N: "~@3 x ~@7 x!2 ~ x ~", O: "~ x ~@4 x!2",
  P: "~@7 x ~ x ~@2 x ~ x ~", Q: "x!2 ~@6", R: "x!2 ~@5 x", S: "~@7 x", T: "~ x!2 ~@5", U: "x ~@5 x ~ x ~ x!2 ~@4",
  V: "~@3 x ~@2 x ~ x ~ x!2 ~@4", W: "x ~ x ~@3 x ~ x ~ x!2 ~@4",
})).gain(0.1)

// drums · high tom
const high_tom = s("ht").struct("<~@31 [~@9 x ~@6] ~@27 [~@9 x ~@6] ~@27 [~@8 x!2 ~@6] ~@20>").gain(0.23)

// drums · crash
const crash = s("cr").struct(`<
  ~@8 A B@3 C ~@3 A B@2 C A B@10 C D ~@3 E ~@2 F ~@8 A B@10 C D ~@3 E ~@2 F ~@4 A B@13 C G H ~@3 E ~@12 D ~@2
>`.pickRestart({
  A: "~ x", B: "x!2", C: "x", D: "~ x ~@2", E: "~ x ~@6", F: "~@9 x ~@2 x ~@3", G: "~@5 x ~@10", H: "x!2 ~@2",
})).gain(0.13)

// drums · ride
const ride = s("rd").struct("<A B C D ~@36 A B C D ~@24 A B C D ~@24 A E B C D A B C D ~@3>".pickRestart({
  A: "~@4 x ~@7 x ~ x!2", B: "~ x ~@2 x ~ x!2 ~@8", C: "~@4 x ~ x!2 ~@8", D: "~@2 x!3 ~@11", E: "~ x ~@2 x ~@7 x ~ x!2",
})).gain(0.19)

// … 15 more lines

More by Jovanotti