Strudelify

Non ti sopporto piu

Zucchero

KeyF majorTempo112 bpm
0:00/0:00
// Non ti sopporto piu — Zucchero
// 112 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 106 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/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 · slap bass 2
const bass = note(`<
  ~@4 A B A C A B A D E@3 F G@3 H E@3 F G@3 H A B A C A B A D E@3 F G@3 H E@3 F G@3 H ~@15 A B A C A B A D ~@14 A B A C
  A B A D A B A C A B A D I
>`.pickRestart({
  A: "d2!2 a1@2 f1@2 e1@2 d1@3 ~@5", B: "c2@2 ~ c2 ~@4 c2@2 ~ c2 ~ a1 c2 db2", C: "a1@2 ~ a1 ~@4 c2@2 ~ c2 ~ e2 d2 c2",
  D: "a1@2 ~ a1 ~@4 c2@3 c2 ~@4", E: "g1@3 g2 ~@2 e1@2 d1 ~@7", F: "g1@3 g2 ~@2 e1@2 d1@2 ~@6",
  G: "c2@3 c3 ~@2 a1@2 bb1 ~@7", H: "c2@3 c3 ~@2 a1@2 g1@2 ~@6", I: "d2 ~@15",
})).s("gm_slap_bass_2").gain(0.36)

// other · celesta
const celesta = note(`<
  ~@5 A@2 B ~ C ~ D ~@17 A@2 B ~ C ~ D ~@32 A@2 B ~ C ~ E ~@15 A@2 B ~ C ~ D ~ A@2 B ~ C ~ F ~
>`.pickRestart({
  A: "[~@4 [c5,c6]@2 [d5,d6] [a4,a5]@2 ~@7]/2", B: "~@2 f6 ~ [e5,e6] ~ a4 [c5,c6], ~@4 f5 ~@7 a5 ~@3",
  C: "~@8 [c5,c6]@3 ~ [d5,d6]@2 [a4,a5]@2", D: "~@4 [f5,f6]@3 ~ [e5,e6]@3 ~ [d5,d6]@2 ~@2",
  E: "~@4 [f5,f6]@2 ~@2 [e5,e6]@3 ~ [d5,d6]@2 ~@2", F: "~@4 [f5,f6]@3 ~ [e5,e6]@3 ~ [d5,d6]@2 [d5,d6]@2",
})).s("gm_celesta").gain(0.31)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@4 A B A C A D A E ~@16 A B A C A D A E ~@31 A B A C A D A E ~@14 A B A C A D A E A B A C A D A E ~
>`.pickRestart({
  A: "c4 d4 ~ d4 ~@2 c4 ~ c4 d4 ~ d4 ~@4", B: "~@5 c4 ~ c4!2 ~ c4 ~ c4 ~@3",
  C: "~@2 c4!2 ~ c4 ~@2 c4 ~ c4 ~@2 e4 d4 c4", D: "~@4 c4 ~@2 c4 ~ c4!2 ~@3 c4 ~", E: "~@6 c4 ~@3 c4!2 ~@4",
})).s("gm_electric_guitar_muted").gain(0.36)

// other · electric guitar muted · soft notes
const electric_guitar_muted_2 = note("<~@5 A ~ B ~@21 A ~ B ~@36 A ~ B ~@19 A ~ B ~@5 A ~ B ~@5>".pickRestart({
  A: "~@2 c4!2 ~@12", B: "~@7 c4 ~@8",
})).s("gm_electric_guitar_muted").gain(0.2)

// chords · pad warm
const pad_warm = note(`<
  ~@4 A B@2 C@2 B@2 ~@17 A B@2 C@2 B@2 ~@17 D@2 E@2 D@2 F@2 G@2 H@2 I J ~ A B@2 C@2 B@2 ~ D@2 E@2 D@2 F@2 G@2 H@2 K ~ A
  B@2 C@2 B@2 ~ A B@2 C@2 B@2 ~ L
>`.pickRestart({
  A: "[a3,c4,d4,f4]@7 ~", B: "[~@7 [a3,c4,d4,g4]@8 ~]/2", C: "[~@7 [a3,c4,d4,f4]@8 ~]/2",
  D: "[d4@16 c4@15 ~, [f4,a4]@31 ~]/2", E: "[g4@16 f4@15 ~, [d4,bb4]@31 ~]/2", F: "[g4@8 f4@7 ~, [d4,bb4]@31 ~]/2",
  G: "[f4 e4, [c4,a4]]/2", H: "[a4@16 bb4@11 ~ [f4,a4,c5]@4, d4@7 ~, f4@13 ~@3]/2",
  I: "[f4,bb4,d5] ~@11 [f4,a4,c5]@3 ~", J: "[f4,bb4,d5] ~@7", K: "[f4,bb4,d5] ~@15", L: "[d4,f4,a4,d5] ~@7",
})).s("gm_pad_warm").gain(0.36)

// chords · piano
const piano = note(`<
  ~@5 A ~ A ~ A ~ A ~@17 A ~ A ~ A ~ A ~@27 B C D ~@2 A ~ A ~ A ~ A ~@11 B D ~@2 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A E
>`.pickRestart({
  A: "[g4,c5,e5]@2 ~ [g4,c5,e5] ~@4 [g4,c5,e5]@2 ~ [g4,c5,e5] ~@4", B: "~@3 [f4,a4,c5]",
  C: "[f4,bb4,d5] ~@5 [f4,a4,c5]@2", D: "[f4,bb4,d5] ~@7", E: "[f4,a4,d5] ~@15",
})).s("gm_piano").gain(0.31)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@12 A@4 B@4 A@4 B@4 ~@8 A@4 B@4 A@4 B@4 C D@8 E@3 F ~@10 G@2 H I@2 J K@2 L@3 M N ~@18
>`.pickRestart({
  A: "[g3,b3,g4]@3 g3 [g3,b3,g4] ~@11", B: "[c4,e4,bb4]@3 c4 [c4,e4,bb4] ~@11",
  C: "~@3 f4, f4@3 f4@3 ~@2, ~@3 c4@6 c4@7",
  D: "[~@3 f4 ~@3 f4 ~@3 f4 ~@3 f4 ~@3 f4 ~@3 f4 ~@3 f4 ~@3 f4, f4@3 f4@3 ~@2 f4@3 f4@3 ~@2 f4@3 f4@3 ~@2 f4@3 f4@3 ~@2 f4@3 f4@3 ~@2 f4@3 f4@3 ~@2 f4@3 f4@3 ~@2 f4@3 f4@3 ~@2, ~@3 c4@6 c4@32 ~@10 c4@6 c4@10 c4@6 c4@32 ~@10 c4@6 c4@7, ~@19 d4@6 d4@10 d4@6 d4@32 ~@10 d4@6 d4@10 d4@6 d4@23]/8",
  E: "[~@3 f4 ~@3 f4 ~@3 f4, f4@3 f4@3 ~@2 f4@3 f4@3 ~@2 f4@3 f4@3 ~@2, ~@3 c4@6 c4@10 c4@6 c4@10 c4@6 c4@7]/3",
  F: "f4 ~@15", G: "[c5@3 c5@3 c5@3 c5@3 c5@3 c5@3 c5@3 ~@3 c5@3 ~@3 c5@2]/2", H: "~@7 c5@3 c5@3 ~@3",
  I: "[c5@3 ~@3 c5@3 c5@3 c5@3 c5@3 c5@3 c5@3 c5@2 ~ c5@2 ~ c5@2, ~@26 f4@3 f4@3]/2",
  J: "~ c5@3 c5@2 ~ c5@2 ~ c5@2 ~ c5@3, f4@3 ~@3 f4@3 f4@3 f4@3 ~",
  K: "[c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2, ~@2 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3 f4@3]/2",
  L: "[~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2, f4!6 f4!5 f4!5]/3",
  M: "~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 ~ c5@2 f4, f4@3 f4@3 f4@3 f4@3 f4@3 ~", N: "c5 ~@15",
})).s("gm_electric_guitar_clean").gain(0.31)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note("<~@75 A B C@2 D E@2 ~@24>".pickRestart({
  A: "~@2 f4@3 f4@3 f4@3 f4@3 f4@2", B: "~ f4@3 ~ c5@2 f4@3 ~ c5@2 f4@3, ~@4 f4@3 ~@3 f4@3 ~@3",
  C: "[~ c5@2 ~ c5@2 f4@3 f4@3 ~ c5@2 f4@3 ~ c5@2 f4@3 f4@3 f4@3 f4@2, f4@3 f4@3 ~@6 f4@3 ~@3 f4@3 ~@11]/2",
  D: "~ f4@3 f4@3 f4@3 ~@6", E: "[~@3 f4@3 ~@9 f4@3 ~@14]/2",
})).s("gm_electric_guitar_clean").gain(0.2)

// chords · harpsichord
const harpsichord = note("<~@20 A B C D E F G H ~@16 A B C D E F G H ~@54>".pickRestart({
  A: "~@7 [b3,g4]@2 g3 [a3,f4] ~ [g3,e4] [f3,d4] ~@2", B: "~@7 [b3,g4]@2 d3 [a3,f4] [g3,e4] [b3,g4] ~@3, ~@7 d3 ~@8",
  C: "~@7 [b3,g4]@2 ~ [a3,f4] ~ [g3,e4] [f3,d4] ~@2", D: "~@7 [b3,g4]@2 g3 [a3,f4] [g3,e4] [b3,g4] ~@3",
  E: "~@7 [e4,c5]@2 c4 [d4,bb4] ~ [c4,a4] [bb3,g4] ~@2", F: "~@7 [e4,c5]@2 g3 [d4,bb4] [c4,a4] [e4,c5] ~@3, ~@7 g3 ~@8",
  G: "~@7 [e4,c5]@2 ~ [d4,bb4] ~ [c4,a4] [bb3,g4] ~@2", H: "~@7 [e4,c5]@2 c4 [d4,bb4] [c4,a4] [e4,c5] ~@3",
})).s("gm_harpsichord").gain(0.31)

// bass · electric bass finger
const bass_2 = note("<~@52 A B C D E F G H I J K D L M ~@9 A B C D E F G H I J K D N ~@18>".pickRestart({
  A: "d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ e1@4", B: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@2",
  C: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ a1@4", D: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ a1@4",
  E: "d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ d1@2 e1@2", F: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@4",
  G: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1@2 a1@2", H: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ c2@4",
  I: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@2 g1@2", J: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  K: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ a1@2", L: "bb1 ~@11 a1@4", M: "bb1 ~@7", N: "bb1 ~@15",
})).s("gm_electric_bass_finger").gain(0.36)

// other · alto sax
const alto_sax = note("<~@52 A B C@3 B D@3 ~@6 E F G H I J K L A B C@3 B D@3 ~@22>".pickRestart({
  A: "~@6 a4@2 f5@3 e5@2 d5 a4 ~", B: "c5@15 ~",
  C: "[~@6 g4 ~ g4@2 a4@4 bb4@4 c5@4 d5@4 f5@10 ~@2 a4@2 f5@3 e5@2 d5 a4 ~]/3",
  D: "[~@6 g4 ~ g4@2 a4@4 bb4@4 c5@4 d5@4 f5@13 ~@9]/3", E: "~@2 d5@11 c5 ~ a4", F: "c5@3 d5@3 ~@2 a4 c5@2 d5@5",
  G: "~@5 a4 c5 ~ d5 d5@5 c5 a4", H: "c5@3 a4@4 ~ a4@3 c5@3 ~@2", I: "~ a4 ~ c5 d5 ~ e5@5 ~ d5 ~ e5 ~",
  J: "a4 c5@9 f5 ~ e5 f5 ~ a4", K: "~ d5@5 a4 d5@2 ~@5 g4 ~", L: "g4 a4 ~ a4@2 g4 a4 ~ a4 d5 ~ d5@3 c5@2",
})).s("gm_alto_sax").gain(0.31)

// chords · percussive organ · Fmaj7 Bdim F Fsus2 Dm Cmaj7 G7 Dm7 …
const percussive_organ = note(`<
  ~@64
  [~@11 [f2,g2,a2,b2,c3,d3,e3] [f3,g3,a3,b3,c4,d4,e4,f4,g4,a4] [c4,d4,e4,f4,b4] ~@2, ~@13 [f5,a5,c6]@3]
  [[f5,g5] [d5,e5,f5] [g4,a4,b4,c5] [g3,a3,b3,c4,d4,e4,f4] [c3,d3,e3,f3] ~@11, [bb5,d6] ~@7]
  ~@40
>`).s("gm_percussive_organ").gain(0.05)

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

// drums · clap
const clap = s("cp").struct("<~@3 [~@9 x ~@2 x ~@3] ~@102>").gain(0.36)

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

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@5 A ~@3 B C ~@2 A ~@3 B C ~@2 A ~@3 B C ~@2 A ~@3 B C ~@2 A ~@3 B C ~@2 A ~@3 B C ~@2 A ~@3 B C ~@2 A ~@6 A ~@3 B C
  ~@2 A ~@3 B C ~@2 A ~@5 A ~@3 B C ~@2 A ~@3 B C ~@2
>`.pickRestart({
  A: "~ x ~@6 x!2 ~@6", B: "x", C: "~ x ~@14",
})).gain(0.15)

// drums · mid tom
const mid_tom = s("mt").struct("<~@11 A ~@23 B ~@23 C ~@6 D ~@7 A ~@13 E ~@7 A ~@7 A ~>".pickRestart({
  A: "~@12 x!2 ~@2", B: "~@12 x!3 ~", C: "~@14 x!2", D: "~@2 x!2 ~ x!2 ~ x ~ x ~ x!3 ~", E: "~@10 x!6",
})).gain(0.36)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@5 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@18 A ~ A ~ A ~@17 A ~ A ~ A ~@3
  A ~ A ~ A ~@3
>`.pickRestart({
  A: "~@7 x",
})).gain(0.31)

// drums · high tom
const high_tom = s("ht").struct("<~@11 A ~@23 B ~@30 C ~@7 A ~@7 D ~@5 E ~@7 A ~@7 A ~>".pickRestart({
  A: "~@4 x!2 ~@2", B: "~@5 x ~@2", C: "x", D: "~@14 x!2", E: "~@8 x!2 ~@6",
})).gain(0.26)

// drums · high tom · soft notes
const high_tom_soft = s("ht").struct("<~@11 A ~@62 A ~@21 A ~@7 A ~>".pickRestart({
  A: "~@6 x!2 ~@8",
})).gain(0.15)

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

// drums · tambourine
const tambourine = s("tb").struct("<~@52 A B A C D E F G@3 H I J K ~@9 A B A C D E F G@3 H I K ~@18>".pickRestart({
  A: "x!15 ~", B: "x!7 ~ x!7 ~", C: "x!7 ~ x!8", D: "x!3 ~ x!5 ~ x!5 ~", E: "x!9 ~ x!6", F: "x!11 ~ x!4", G: "x!16",
  H: "x!3 ~ x!3 ~ x!8", I: "x!13 ~@3", J: "x ~@2 x", K: "x",
})).gain(0.2)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@52 A B A C D E F ~@3 G ~@12 A B A C D E F ~@3 G ~@20>".pickRestart({
  A: "~@15 x", B: "~@7 x ~@7 x", C: "~@7 x ~@8", D: "~@3 x ~@5 x ~@5 x", E: "~@9 x ~@6", F: "~@11 x ~@4",
  G: "~@3 x ~@3 x ~@8",
})).gain(0.15)

// drums · shaker
// … 9 more lines

More by Zucchero