Strudelify

Non m'annoio

Jovanotti

KeyC majorTempo114 bpm
0:00/0:00
// Non m'annoio — Jovanotti
// 114 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 99 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(114/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · piano
const piano = note(`<
  ~@7 A B C D C D C E F B C G C D F H C I ~ J C E F K C E C E ~ H C I ~ J C E F K C E F H C H C ~@4 J C E F J C E F ~@2
  H C I ~ B C D C D L ~@23
>`.pickRestart({
  A: "~@7 [f4,a4,c5]!2 ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", B: "[c4,e4,g4] ~@7",
  C: "~@7 [c3,f3,a3]!2 ~ [c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~", D: "[c3,e3,g3] ~@7", E: "[c3,e3,g3] ~@15",
  F: "~@7 [c4,f4,a4]!2 ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~", G: "[c3,e3,g3]@3 ~@13", H: "[g3,c4] ~@15",
  I: "[e3,g3] ~@15, c3 ~@7", J: "[c3,e3] ~@7", K: "[c4,e4,g4] ~@15",
  L: "~@7 [c3,f3,a3]!2 ~ [c3,f3,a3] ~ [c3,f3,a3] ~@3", // F
})).s("gm_piano").gain(0.24)

// bass · fretless bass
const bass = note(`<
  ~@4 A@2 B C A@2 B@2 A@2 B@2 A@2 B@2 A D A@2 E F A@2 B@2 A@2 B@2 E F A@2 E F A@2 B@2 A@2 B G A@4 ~@4 A@2 B@2 A@2 B@2 E
  F A@2 E F A@2 B@2 A@2 B@2 A@2 B@2 A@2 H ~ A@2 E F A@2 I ~ A@2 E F ~
>`.pickRestart({
  A: "c2@2 ~@2 c2@2 ~ c2 f2 g2 a#2@2 f2 g2 a#2 c3", B: "c2@2 ~@2 c2@2 ~ c2 c3 ~ g2 f2 c3 a#2 g2 f2, ~@9 a#2@2 ~@5",
  C: "c2@2 ~@2 c2@2 ~ g1 ~@8", D: "c2@2 ~@2 c2@2 ~@2 f2 a#2 c3 ~ f2 a#2 c3 ~",
  E: "c2@2 ~@2 c2@2 ~ c2 c3 ~ g2 f2 c3 ~ g2 f2, ~@9 a#2@2 ~@2 a#2@2 ~", F: "g1 ~@3 g1@2 ~ c2 ~ g2@2 g3@3 b2@2",
  G: "c2@3 ~@13", H: "c2@2 ~@2 c2@2 ~@2 f2 a#2 c3@2 f2 a#2 c3@2", I: "c2@2 ~@2 c2@2 ~ c2 c3 ~ g2 ~@5, ~@9 a#2@2 ~@5",
})).s("gm_fretless_bass").gain(0.5)

// other · lead 8 bass lead
const lead_8_bass_lead = note(`<
  ~@23 A B ~@9 C ~@2 A B ~@10 A B ~@16 A B ~@2 D ~ D ~ D ~ D ~@9 A B ~@2 A B ~@2 A B ~@2
>`.pickRestart({
  A: "~@8 f6 d6 c6 d6 d5@2 f5 ~", B: "d5 f5 ~@6", C: "f6 d6 c6 d6 d5@2 f5 ~ d5@2 f5 ~@5",
  D: "f6 d6 ~ d6 d5@2 f5 ~ d5@2 ~@6",
})).s("gm_lead_8_bass_lead").gain(0.25)

// other · lead 8 bass lead · soft notes
const lead_8_bass_lead_soft = note("<~@71 A ~ A ~ A ~ A ~@21>".pickRestart({
  A: "~@2 c6 ~@7 f5@2 ~@4",
})).s("gm_lead_8_bass_lead").gain(0.19)

// other · distortion guitar
const distortion_guitar = note("<~@25 A ~@9 A ~@3 A ~@25 A ~@3 A ~@19 A ~@7 A ~>".pickRestart({
  A: "[g2,g3]@2 ~@2 [g2,g3]@2 ~ [c3,c4] b3 [d3,e3,f3,g3,a3] [b2,c3] ~@5", // G C Dm Cmaj7
})).s("gm_distortion_guitar").gain(0.37).pan(0.1)

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

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

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

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@3 A ~@17 B C D ~@12 C D ~@10 C D C D E A C@2 ~@10 C D ~@19 D ~@2 C D ~@2 C D ~@3
>`.pickRestart({
  A: "~@5 x ~ x", B: "~@3 x ~@4", C: "~ x ~@6", D: "~ x ~@3 x ~ x", E: "~@7 x",
})).gain(0.48)

// drums · mid tom
const mid_tom = s("mt").struct("<~@25 A ~@8 B A ~@3 A ~@24 B A ~@3 A ~@19 A ~@7 A ~>".pickRestart({
  A: "~@7 x", B: "~@13 x!3",
})).gain(0.4)

// drums · high tom
const high_tom = s("ht").struct("<~@25 A ~@9 A ~@3 A ~@25 A ~@3 A ~@19 A ~@7 A ~>".pickRestart({
  A: "~@9 x!4 ~ x ~",
})).gain(0.24)

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

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

// drums · ride
const ride = s("rd").struct("<~@94 x ~@4>").gain(0.4)

// drums · tambourine
const tambourine = s("tb").struct(`<
  A@7 B A@13 C D@3 ~ A@8 D ~ D@3 ~ A@8 D@4 A@3 E A@8 D ~ D@3 ~ A@14 F G D@3 ~ D@3 ~ D@3 ~@2
>`.pickRestart({
  A: "x!2 ~ x!3 ~ x!9", B: "x!2 ~ x!3 ~@10", C: "x!8 ~@8", D: "x!16", E: "x!2 ~ x!3 ~ x!4 ~@5", F: "x!4", G: "x!2 ~@2",
})).gain(0.32)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<A@21 ~@5 A@8 ~@6 A@8 ~@4 A@12 ~@6 A@14 B C ~@13>".pickRestart({
  A: "~ x ~ x ~@4", B: "~ x!3 ~ x!3 ~ x!3 ~ x!3", C: "~ x!3 ~ x!3 ~@8",
})).gain(0.24)

// drums · bongos
const bongos = s("bongo:4").struct("<~@25 A ~@8 B A ~@3 A ~@24 B A ~@3 A ~@19 A ~@7 A ~>".pickRestart({
  A: "~@7 x", B: "~@12 x ~@2 x",
})).gain(1.05)

// drums · bongos · soft notes
const bongos_soft = s("bongo:4").struct("<~@34 [~@13 x!2 ~] ~@29 [~@13 x!2 ~] ~@34>").gain(0.63)

// drums · bongos
const bongos_2 = s("bongo:18").struct("<~@25 A ~@9 A ~@3 A ~@25 A ~@3 A ~@19 A ~@7 A ~>".pickRestart({
  A: "~@9 x!4 ~@3",
})).gain(1.05)

// drums · congas
const congas = s("conga:13").struct("<~@25 A ~@9 A ~@3 A ~@25 A ~@3 A ~@19 A ~@7 A ~>".pickRestart({
  A: "~@9 x!4 ~@3",
})).gain(1.79)

// drums · congas
const congas_2 = s("conga:18").struct("<~@25 A ~@9 A ~@3 A ~@25 A ~@3 A ~@19 A ~@7 A ~>".pickRestart({
  A: "~@7 x",
})).gain(1.79)

// drums · shaker
const shaker = s("sh").struct("<A B@6 C B@17 ~ B@9 ~ B@3 ~ B@15 C B@9 ~ B@3 ~ B@15 D B@3 ~ B@3 ~ B@3 ~@2>".pickRestart({
  A: "x!5 ~ x!3 ~ x!3 ~ x!2", B: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", C: "x ~ x!3 ~ x!3 ~@7", D: "x ~ x!3 ~ x!2 ~@8",
})).gain(0.4)

stack(
  piano, bass, lead_8_bass_lead, lead_8_bass_lead_soft, distortion_guitar, kick, snare, hihat, open_hat, mid_tom,
  high_tom, crash, crash_soft, ride, tambourine, tambourine_soft, bongos, bongos_soft, bongos_2, congas, congas_2,
  shaker
)

More by Jovanotti