Strudelify
Gente della notte cover art

JOVA BEACH PARTY: CHIARO DI LUNA

Gente della notte

Jovanotti

KeyC majorTempo84 bpm
0:00/0:00
// Gente della notte — Jovanotti
// 84 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 90 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 25.
setcpm(84/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 · epiano1
const epiano1 = note(`<
  ~@3 A B C D E F@2 G@4 H@2 I J G@2 K@2 L M N O@8 H@2 I J P@4 Q R O@6 H@2 I J S T U V O@4 W@2 L M X Y@2 Z AA AB@6 AC X
  Y@2 Z AA AB@6 AC ~
>`.pickRestart({
  A: "~@8 [e5,g5] [f5,a5]@2 e5@2 d5@2 ~, ~@11 c5@5, ~@11 d#5 ~@4", // Em F
  B: "[g4,c5]@11 ~ [c#5,d5] ~ b4 g4, ~@6 g4 ~, ~@13 e5@3", C: "[f4,a4]@6 ~ [f4,a#4] ~ [f4,a4]@5 [g4,c5] ~",
  D: "[g4,e5]@11 ~ [c#5,d5] e5 b4 g4, d5 ~@11 g4@2 ~@2", E: "[f4,a4]@7 [f4,a#4] ~ [f4,a4]@2 [c4,g4]@2 [c4,f4]@3",
  F: "[~@2 g3 ~ c4 g3 c4 [a3,f4]@2 e4@2 g3@2 ~ d5 ~@5 [c4,f4] c4 f4 [c4,f4,a#4]@2 [c4,f4,a4]@2 [c4,e4,g4]@2 ~ f4 e4, c2@15 ~ f2@16, c3@11 ~@2 c3@3 ~@2 f3@10 ~ f3@3, ~@4 e4@2 ~ c4@5 ~@2 g4@4 ~@2 a4@2 ~@10, ~@9 g3 ~@5 e5@3 ~@14]/2", // Dm F5 Fsus4 F C
  G: "[~@2 g3 ~ [g3,c4] g3 c4 [a3,f4]@2 e4@2 g3@2 ~ d5 ~@5 [c4,f4] c4 f4 [c4,f4,a#4]@2 [c4,f4,a4]@2 [c4,e4,g4]@2 ~ f4 e4, c2@15 ~ f2@16, c3@11 ~@2 c3@3 ~@2 f3@10 ~ f3@3, ~@4 e4@2 ~ c4@5 ~@2 g4@4 ~@2 a4@2 ~@10, ~@9 g3 ~@5 e5@3 ~@14]/2", // C5 Dm F5 Fsus4 F C
  H: "[[d2,d4]@4 c4@2 ~ a4 [g2,g4]@3 [g#2,g#3,e4,g#4]@5, [a3,f4]@13 ~ d4@8 ~@10, ~ c3 ~@2, ~@14 g4 ~@17]/2", // D G C#m Dm
  I: "[a2,a4] [g2,g4], [e4,c5]", J: "[f2,c4,f4,a4] [a#2,a#3,d4,f4,a4]",
  K: "[~@2 g3 ~ [g3,c4] g3 c4 [a3,f4]@2 e4@2 g3@2 ~ d5 ~@5 [c4,f4] c4 f4 [c4,f4,a#4]@2 [c4,f4,a4]@2 [c4,e4,g4]@3 ~@2, c2@15 ~ f2@16, c3@11 ~@2 c3@3 ~@2 f3@10 ~@4, ~@4 e4@2 ~ c4@5 ~@2 g4@4 ~@2 a4@2 ~@10, ~@9 g3 ~@5 e5@3 ~@14]/2", // C5 Dm F5 Fsus4 F C
  L: "~@3 f4 c#4 ~@2 c#4, d4@3 ~@5, ~ a4@3 ~ a4@3", M: "~@2 a4@4 c4@2 b3@2 d4@5 ~, c4@5 ~@11",
  N: "~ e4@3, ~@3 [g3,c4]@13", // C5
  O: "[~@2 g3 ~ [g3,c4] g3 c4 [a3,f4]@2 e4@2 g3@2 ~ d5 ~@5 [c4,f4] c4 f4 [c4,f4,a#4]@2 [c4,f4,a4]@2 [c4,e4,g4]@2 ~ f4 e4, c3@11 ~@2 c3@3 f2@16, ~@4 e4@2 ~ c4@5 ~@2 g4@4 f3@10 ~ f3@3, ~@9 g3 ~@5 e5@3 ~@2 a4@2 ~@10]/2", // C5 Dm F5 Fsus4 F C
  P: "[~@2 g3 ~ [g3,c4,e4] g3 c4 [a3,f4]@2 e4@2 g3@2 ~ d5 ~@5 [c4,f4] c4 f4 [c4,f4,a#4]@2 [c4,f4,a4]@2 [c4,e4,g4]@2 ~ f4 e4, c2@15 ~ f2@16, c3@11 ~@2 c3@3 ~@2 f3@10 ~ f3@3, ~@7 c4@5 ~@2 g4@4 ~@2 a4@2 ~@10, ~@9 g3 ~@5 e5@3 ~@14]/2", // C Dm F5 Fsus4 F C
  Q: "~@2 g3 ~ [g3,c4] g3 c4 [a3,f4]@2 e4@2 g3@2 ~ [g3,a#3]@2, c3@11 ~@2 c3@3, ~@4 e4@2 ~ c4@5 ~@4, ~@9 g3 ~@6", // C5 Dm Gm
  R: "[f3,a3]@4 [c4,f4] c4 f4 [c4,f4,a#4]@2 [c4,f4,a4]@2 [c4,e4,g4]@2 ~ f4 e4, ~@4 a4@2 ~@7 f3@3", // F F5 Fsus4 F C
  S: "~@6 [f4,a4] [e4,g4]@2 [d4,f4] [c4,e4]@2 ~ a3 c4@2, ~@3 g3", // F Em Dm C
  T: "~@4 e3 a3 d4 [f3,c4]@2 [f3,d4] c4@3 a3@3, ~@2 g3 ~@2 f3@3, ~@13 g#3 ~@2", // F5 Dm
  U: "~@4 [d#4,e4] c4@2 [d#4,e4] c4@2 [d#4,e4] c4@2 [d#4,e4] c4@2, ~@4 g3@3 ~ g3@8", // Emaj7
  V: "~@4 a3 f3 a3 f3@2 a3@2 g3@2 f3@3, ~@7 a#3 ~ f3 ~ f3 ~@4",
  W: "[[f3,a3,d4]@4 ~@2 d2 ~ [a3,c4]@4 [a3,c4,d4]@3 ~ [g#3,b3,d4]@3 ~ [g#3,b3]@2 [e2,e3,g#3,b3]@10, d2@3 ~@13, ~@4 [f3,d4]@8 f3@7 ~ [f3,d4] ~@11, ~ a3 ~@6]/2", // Dm Am D7 G#dim G#m E Dm
  X: "[c3,g3,c4,e4]@4 ~@2 [g4,e5] [g4,d5]@2 [g4,c5] e5 d5 c5 d5 ~ c3, c2, ~@2 c3@5 c5, ~@5 g4 g4@2", // C G5 C5
  Y: "[~@2 f3 ~ [f4,a4,c5]@2 ~ [f4,a#4,d5] ~ [f4,a#4,d5] [f4,a4,c5] ~ [f4,g4,c5] a4@2 ~ c3@2 ~ c3 [c4,e4,g4] ~ [c4,e4,g4] [c4,f4,g4]@2 [c4,e4]@2 ~@3 e4!2, f2@6 f3@5 f3@4 g4@4 ~@6 g4@7, ~@7 f2@8 ~ c2@14 ~@2, ~@13 [f4,c5]@6 ~@2 c3@2 ~@2 c3 ~ c3@4 ~, ~@7 c4]/2", // F A# F Fsus2 C Csus4 C F5
  Z: "c3 ~@3 [f3,a3,c4]!3 ~ c3 ~ c3 ~@2 [f3,a3]@3, f2@3 c3, ~@3 c3@4 [f3,a#3,d4]@2 [f3,a3,c4]@2 [f3,g3,b3]@2 ~@3", // F A# F G7
  AA: "[c3,g3]@2 ~@2 [c4,d4,g4]@3 [c4,d4,g4]@2 ~ [c4,e4,g4] ~ a4 g4@2 [c4,a4], c2@7 ~, ~@3 c3@4 ~@2 c3@7, ~@6 c4 ~", // C5 Csus2 C F
  AB: "[~ [c4,a4] [c4,g4] [c4,a4] c5@2 g4 [g4,c5]@2 [g4,d5] ~ e5@2 d5 c5 ~ c3@2 [c5,g5] c3 g5 f5 e5 [c3,c5,f5]@2 ~@2 d5@2 ~@5 g4 ~ f3 ~ f3 g4 ~@2 a4 ~ f3 d5 f3 ~ c3@2 ~@2 [e4,g4,c5]@2 c3 g4 c3 [e4,g4] ~ e4@2 d4 c4 g3 a3 c4 ~ [g3,c4]@2 ~ g3 ~ c3 [g3,c4] c3 d4 ~ c4 [g3,c4] [c4,d#4,e4] ~ [c4,e4] g4 e4 [c4,g4]@2 c3 c4@2 e4 [c4,e4,g4] ~ a4 g4@3, f2@14 ~@2 c2@13 ~@3 f2@15 ~ c2@14 ~@2 f2@14 ~ c2@14 ~@3, ~@3 f3@6 ~ f3@4 ~@7 c3@2 ~@3 c3@6 ~ f3@2 ~@5 f3@3 ~@8 c3@2 ~@5 c3@2 ~@2 c3@5 ~@2 c3@2 ~@5 c3@3 c3@2 ~@2 c3@2 ~@4 c3@2 c3@5, ~@4 f4 ~@6 g4@4 [g4,e5]@2 ~@3 c5@3 ~@2 [c5,e5]@2 c5 ~ c5@5 ~ [g4,a4]@2 [g4,c5]@2 c5@2 g4@2 [g4,c5]@2 g4@2 c5@5 ~@3 [e4,a4]@2 ~@2 d#4 ~@4 g3@2 ~@5 [g3,a3]@2 ~@2 g3@3 ~@4 c4@2 ~@3 g4 ~@4 c4@3 ~]/6", // F C5 F C5 G5 C5 F5 C …
  AC: "~ [f4,a4,c5] ~ f3 [f4,a4,c5] ~ [f4,a4,c5] [a#4,d5] ~ [f4,a#4,d5]!2 f3 [a#4,d5] ~@2 f4, f2, ~@5 f3@2 f4@2 ~@3 f4@2 f3@2, ~@8 f3@2 ~@3 [a4,c5]@3", // F A# Am
})).s("gm_epiano1").gain(0.35)

// bass · fretless bass
const bass = note(`<
  ~@4 A@2 B@2 C D E F G H I J K L M N O P Q R S T U V W T U V W X Y Z AA M N O P T U AB W T U V W X Y Z AA M N O P T U V
  W I AC Q R M N O P M N O P M N O P M N O P M N O P M N O P ~
>`.pickRestart({
  A: "[c2@31 g1]/2", B: "[c2@15 g1]/2", C: "c2 ~ c2@12 ~ c2", D: "f1@13 ~ f1 g1", E: "c1 ~ c1@13 g1", F: "f1@7 c2",
  G: "c2 ~ c2@11 c2 e1@2", H: "f1", I: "d2 c2", J: "g1@6 g#1@8 c2 b1", K: "a1 g1", L: "f1 a#1",
  M: "c2@6 c2 c2@6 ~ f1 g1", N: "f1 ~ f1@9 ~ g1 a1 c2 a1", O: "c2 c1 c1@13 g1", P: "f1 ~ f1@14", Q: "d2 c#2",
  R: "c2 b1", S: "c2", T: "c2@3 c2@3 ~ c2@2 ~ c2@5 c2", U: "f1@2 ~ f1 f1@2 ~ f1@2 ~ f1@3 ~ f1@2",
  V: "c2@4 c2@3 c2@2 ~ c2@5 c2", W: "f1@2 ~ f1 f1@2 f1@3 f1 ~ f1@3 f1@2", X: "d2@5 ~ d2 ~ c2@4 ~ c2 d2 c2",
  Y: "b1@3 ~ b1 ~ e1@6 ~ e1 c2 b1", Z: "a1@4 ~ a1 c2 a1 g1 ~ g1@4 ~ g1", AA: "f1@6 ~ f1 a#1@3 a#1 a#1@4",
  AB: "c2@4 c2@3 c2@2 ~ c2@3 ~ e1@2", AC: "b1@3 e1@5",
})).s("gm_fretless_bass").gain(0.72)

// other · electric guitar jazz
const electric_guitar_jazz = note("<~@11 A B ~@8 C D E F ~@19 G H ~@17 D E F ~@24>".pickRestart({
  A: "~@9 g3 a3 c4 d4@4", B: "c4", C: "~@10 g3@3 f3 e3@2", D: "d3 e3", E: "f3@5 ~ f3 g3 g#3@5 g#3 g3 f3", F: "e3",
  G: "~@9 e3 f3 g3 a3 c4 d4 ~", H: "e4@15 ~",
})).s("gm_electric_guitar_jazz").gain(0.35).pan(0.4)

// other · rock organ
const rock_organ = note(`<
  A B C D A B C D A B C D A B E F G@2 A B C H I J ~@9 E F K@2 ~@12 E F K@2 ~@10 I J ~@12 L M@2 N@2 O@2 P Q M@2 R ~
>`.pickRestart({
  A: "c5@6 g5 e5, ~@12 f#5 ~@3", B: "c5@6 f5 e5, ~@12 e5 ~@3", C: "c5@11 f#5 g5@2 e5@2", D: "c5@6 e5 d5", E: "d5@7 a5",
  F: "g5@3 g#5@5", G: "[~ g5 f5@2, a5]/2", H: "c5@6 f5 e5", I: "d5 c#5", J: "c5@4 ~ f5@3, ~ b4",
  K: "[~@6 d6 e6 ~@8, a5, ~ g5 ~@2]/2", L: "c6@10 g5 a5 g5 e5 d5 c#5, b5 ~@15",
  M: "[c5 d5 c5@8 d#5 e5 d5 c5 d5 e5@9 f#5 g5@4 g#5 a5 g5]/2",
  N: "[a5@2 g5 g5@2 e5@2 d5@2 e5 c5@16 d#5 e5 d5 d#5 e5 d5, ~@29 c5@2 ~]/2",
  O: "[c5 d5 ~@24 d#5 e5 d5 [c5,d#5] ~ d5, ~ c5@12 ~@2 e5, ~@9 g5@23]/2", // Cm
  P: "c5 d5 ~@5 f5 ~ f5 e5 d5@2 c5 d5 [c5,b5], ~@2 c5@9 ~@5", Q: "c6@10 g5 a5 g5 e5 d5 c#5",
  R: "a5@2 g5 g5@2 e5@2 d5@2 e5 c5@6",
})).s("gm_rock_organ").gain(0.25).pan(0.6)

// other · rock organ · soft notes
const rock_organ_soft = note("<~@14 A B@2 ~@7 C ~@8 A B@2 D ~@12 A B@2 D ~@8 E@2 ~@27>".pickRestart({
  A: "~@14 g#5 ~", B: "[~@3 e5@9 ~@4]/2", C: "[c5,e5]@15 ~", D: "c6",
  E: "[d3@4 [c3,c5]@4 [b2,b4]@3 [e2,e4,b4,d5]@5, [f4,d5]@11 ~@5, a4 g#4]/2", // C B E7 Dm
})).s("gm_rock_organ").gain(0.17).pan(0.6)

// chords · percussive organ
const percussive_organ = note(`<
  ~@37 A B A C ~@12 A B A C ~@8 A B A C A B A C A B A C A B A C A B A C A B A C ~
>`.pickRestart({
  A: "[e4,g4]", B: "[f4,a4]", C: "[f4,a4]@3 [e4,g4]",
})).s("gm_percussive_organ").gain(0.18)

// chords · percussive organ · soft notes
const percussive_organ_soft = note("<A@4 ~@4 A@4 B@2 ~@4 C@4 ~@68>".pickRestart({
  A: "[[e4,g4] [f4,a4] [e4,g4] [f4,a4], c4]/4", B: "[[e4,g4] [f4,a4], c4]/2",
  C: "[[e4,g4]@4 [f4,a4]@4 [e4,g4]@4 [f4,a4]@3 [e4,g4], c4]/4", // Em F Em F Em
})).s("gm_percussive_organ").gain(0.11)

// chords · drawbar organ
const drawbar_organ = note(`<
  ~@3 A B@4 ~@6 C@4 ~@15 C@4 D E F E ~@8 C@4 D E F E ~@8 D E F E D E F E D E F E D E F E D E F E D E F E ~
>`.pickRestart({
  A: "~@14 [g4,a4,b4,c5,d5] [e5,f5,g5,a5,b5]", B: "[[e5,g5] [f5,a5] [e5,g5] [f5,a5], c6]/4",
  C: "[~@4 c5@4 g4@3 g#4@5 ~@4 g4@4 ~@4 [a4,a#4,d5]@4, d5@11 e5@17 ~@4, [f4,a4]@2 b4@2 [a4,c5]@3 ~, ~@3 f4]/4", // A#maj7 F Am
  D: "c6@11 [d#6,e6] d6 [c6,d#6] e6 d6", E: "c6 d6 c6@9 [d#6,e6] d6 [c6,d#6] e6 d6",
  F: "c6@11 [d#6,e6] d6 d#6 e6 d6, ~@13 c6@2 ~", // Emaj7
})).s("gm_drawbar_organ").gain(0.14).pan(0.6)

// chords · drawbar organ · soft notes
const drawbar_organ_soft = note("<~@24 A B@8 ~@8 B@8 ~@8 B@4 ~@29>".pickRestart({
  A: "[g4,c5,e5]@15 ~", B: "[[e4,g4] [f4,a4] [e4,g4] [f4,a4], c4]/4",
})).s("gm_drawbar_organ").gain(0.09).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@62 [~@2 e4 ~] ~@27>").s("gm_acoustic_guitar_steel").gain(0.13).pan(1)

// other · electric guitar clean · C5
const electric_guitar_clean = note("<~@46 [~@15 f4, ~@7 [c4,g4]] [g4 f4 g4 f4 g4 f4 g4 f4 g4 ~@7] ~@42>")
  .s("gm_electric_guitar_clean").gain(0.17).pan(0.9)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  A B A B A B A B C D C D C D E F G H C D C D I J@2 C D C D C D C D E F G H C D C D C D C D C D C D E F G H C D C D C D
  C D K L@2 M@2 D C D C D C D C D C D C D C D C D C D C D C D ~
>`.pickRestart({
  A: "[c3,e3,g3,c4]@2 [c3,e3,g3,c4]@2 [e3,g3,c4,e4]@2 [g3,c4,e4] [e3,g3,c4,e4]@2 c4 ~ [e3,g3] [g3,c4,e4] g3 ~ [c3,e3], e4@4 c3@5 [c3,e3,g3,e4]@2 c3@3 g3@2, ~@10 c4@2 e3@3 ~, ~@13 [c4,e4]@3", // C Em C
  B: "[c3,f3,a3,c4]@2 [c3,f3,a3,c4]@2 [c3,f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [a3,c4] ~ [f3,a3] [f3,a3,c4,e4] f3 [c3,f3] [c3,f3,a3], f2, e4@4 e4@5 [f3,e4]@2 c3@3 ~@2, ~@7 c3@3 [a3,c4]@2 ~ [a3,c4,e4]@3", // F Am F Fmaj7 F5 F Fmaj7 Am
  C: "[c3,e3,g3,c4,e4]@2 ~ [c3,e3,g3] [c4,e4] ~ [e3,g3,c4] [g3,c4,f4]@2 ~ g3 [c3,g3,d4,e4]@2 [e3,g3,c4,e4] [c3,e3,g3,c4] [e3,g3,c4,e4], ~@2 [g3,c4,e4]@2 [c3,e3,g3]@3 [c3,f3]@3 e3@3 ~@3, ~@5 [c4,e4]@2 ~@2 [g3,c4,e4]@2 ~@5", // C Csus4 C F5 C
  D: "[c3,f3,a3,c4]@2 [c3,f3,a3,c4] [f3,a3,c4] [c4,f4]!2 [f3,a3,c4] [c3,f3,a#3,c4]@2 [f3,a3,c4,f4]@2 ~ f3 [a3,c4]!2 [f3,a3,c4,f4], f2@6 f4@3 c3@4 [c3,f3,f4]@3, f4@4 [c3,f3,a3]@3 f2@9, ~@11 [f3,g3,c4,f4]@2 ~@3", // F F5 F Fsus4 F Am F F5 …
  E: "[d3,a3,d4,f4]@2 [d3,a3,d4,f4]!2 [d3,a3,d4,f4]@2 [d3,a3,d4,f4] [d3,a3,c4,f4]@2 [d3,a3,c4]!2 [d3,a3] [d3,a3,c4] [d3,a3]!3, ~@9 f4@3 f4@4, ~@13 c4@3", // Dm Dm7 D7 D5 D7 D5
  F: "[b2,d3,g3,b3]@2 [b2,d3,g3,b3] [b2,d3,g3] [b2,d3,g3,b3,g4]@2 [b3,e4] [e3,g#3,b3,e4]@2 [e3,g#3,b3,e4]@2 [b2,e3,g#3,b3,e4]!2 [e3,g#3,b3] [e2,b2,e3,g#3,b3] [b2,e3], g4@4 ~@3 e2@6 e4@3", // G E5 E E5
  G: "[a3,c4]@2 [a3,c4] [e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 [e3,a3,c4] [a2,e3,g3,c4,e4]@2 [a2,e3,g3,c4] ~ [a2,e3] [a2,e3,g3]!2 [a2,e3,g3,c4] [a2,e3,g3], [a2,e3,e4]@4 ~@5 e4@3 e4@4, ~@5 [a2,e3,g3,c4] c4 ~", // Am Am7 A5 A7 Am7 A7 A5 Am7
  H: "[f3,a3,c4]@2 [f3,a3,c4]!2 [c3,f3,a3,c4,f4]@2 [f3,a3,c4] [a#2,d3,a3,d4,f4]@2 [a3,d4] ~ [a#2,d3,a3] [a#2,d3,a3,d4,f4] ~ a#2@2, f2@7 ~@2 [a#2,d3,f4]@3 ~ [d3,a3,d4,f4]@3, f4@2 ~@3 [a3,d4] ~@2", // F A#maj7 D5 A#maj7 A# Dm D5
  I: "~ a4 f4 d4 ~ a4 f4 c#4, d4@5 ~@3 c#4@5 ~@3",
  J: "[~@2 a4@2 f4@2 c4@2 ~@2 g#4@2 f4@2 b3 ~ [c4,e4]@15 ~, c4@5 ~@3 b3@5 ~@2 [c3,g3]@15 ~@2]/2", // C C5
  K: "~ a4 f4 d4 ~ a4 f4 c4, d4@5 ~@3 c4@5 ~@3",
  L: "[[b3,d4,f4] ~ [b3,d4,f4] ~ [b3,d4,f4] ~ [b3,e4,g#4]@3 ~ [b3,e4,g#4] [b3,e4,g#4,b4]!2 ~ [b3,e4,g#4,b4] ~ f4@2 a4@2 f4@2 d4@2 ~@2 a4@2 f4@2 c#4@2, ~@15 d3@9 ~@8, ~@15 a3@6 ~@11, ~@16 d4@4 ~@4 c#4@5 ~@3]/2", // Bdim E
  M: "[~@2 a4@2 f4@2 c4@2 ~@2 g#4@2 f4@2 b3 ~ [c4,e4]@2 ~ [c3,e3,g3] [c4,e4] ~ [e3,g3,c4] [g3,c4,f4]@2 ~ g3 [c3,g3,d4,e4]@2 [e3,g3,c4,e4] [c3,e3,g3,c4] [e3,g3,c4,e4], c4@5 ~@3 b3@5 ~@2 [c3,e3,g3]@3 [g3,c4,e4]@2 [c3,e3,g3]@3 [c3,f3]@3 e3@3 ~@3, ~@21 [c4,e4]@2 ~@2 [g3,c4,e4]@2 ~@5]/2", // C Csus4 C F5 C
})).s("gm_acoustic_guitar_steel").gain(0.06).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@25 A@8 B A@15 B A@10 C ~@4 A@24 ~>".pickRestart({
  A: "x ~@2 x ~@3 x ~@2 x ~@3 x ~", B: "x ~@2 x ~@2 x ~ x ~ x ~@3 x ~", C: "x ~@2 x ~@3 x ~@2 x ~@5",
})).gain(0.56)

// drums · snare
const snare = s("sd").struct("<~@25 A@36 ~@4 A@7 B A@7 C A@8 ~>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x!3 ~", C: "~@2 x!2 ~@2 x ~",
})).gain(0.72)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@72 [~@11 x ~@4] ~@7 [~@3 x ~ x ~@5 x ~ x!3] ~@9>").gain(0.32)

// drums · low tom
const low_tom = s("lt").struct("<~@80 [~@14 x!2] ~@9>").gain(0.48)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@24 A B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B C@2 D ~@4 E F@2 G E F@2 G H F@2 G E F@2 G H F@2 G E F@2 G ~
>`.pickRestart({
  A: "~@12 x!2 ~@2", B: "~ x!15", C: "x!16", D: "x!12 ~@4", E: "~ x ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2",
  F: "x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2", G: "x!2 ~@2 x!2 ~@2 x!2 ~ x!3 ~@2", H: "~ x ~@3 x ~@2 x!2 ~@2 x!2 ~@2",
})).gain(0.56)

// drums · mid tom
const mid_tom = s("mt").struct("<~@80 [~@13 x ~@2] ~@9>").gain(0.48)

// drums · open hat
const open_hat = s("oh").struct("<~@24 [~@7 x] ~@35 [~@3 x] ~@4 [~ x ~ x ~ x ~ x]!24 ~>").gain(0.48)

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

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

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@23 [~@7 x] ~@38 [~@7 x] ~ [~@7 x] ~@25>").gain(0.16)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@25
  [~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x]!35
  [~ x ~ x ~ x ~ x ~ x ~ x ~@4]
  ~@4
  [~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x]!24
  ~
>`).gain(0.32)

// drums · bongos
const bongos = s("bongo:18").struct("<~@23 [~@10 x!2 ~@2 x ~] ~@38 [~@10 x!2 ~@2 x ~] ~ [~@10 x!2 ~@2 x ~] ~@25>")
  .gain(1.26)

// drums · congas
const congas = s("conga:13").struct("<~@18 A B ~ C D E ~@38 E D E ~@25>".pickRestart({
  A: "~@4 x!4 ~ x!2 ~@5", B: "~@3 x ~ x!3 ~@8", C: "~@9 x ~ x ~@4", D: "~@11 x!4 ~", E: "~@10 x ~ x!3 ~",
// … 45 more lines

More by Jovanotti