Strudelify

Io ti venderei

Battisti

KeyE♭ majorTempo110 bpm
0:00/0:00
// Io ti venderei — Battisti
// 110 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 112 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/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(`<
  A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C E F G A B C D A B C D A B C D A B C D A
  B C D A B C D A B C D A B C D A B C E F G A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C H
>`.pickRestart({
  A: "[bb3,eb4,g4]@2 [bb3,eb4,g4] [bb3,eb4,f4]@2 [bb3,eb4,f4] [bb3,eb4,g4]@6 ~@4", // Eb Bbsus4 Eb
  B: "[bb3,eb4,g4]@2 [bb3,eb4,g4] [bb3,eb4,f4]@2 [bb3,eb4,f4] [bb3,eb4,g4]@4 [bb3,eb4,f4]@4 [bb3,eb4,g4]@2", // Eb Bbsus4 Eb Bbsus4 Eb
  C: "[c4,eb4,ab4]@2 [c4,eb4,ab4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,ab4]@6 ~@4", // Ab Cm7 Ab
  D: "[c4,eb4,ab4]@2 [c4,eb4,ab4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [c4,eb4,bb4]@2 [c4,eb4,ab4]@2", // Ab Cm7 Ab Cm7 Ab
  E: "[c4,eb4,ab4]@2 [c4,eb4,ab4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,ab4]@4 ab3@4 a3@2", F: "bb3@2 ~@3 ab3@2 ~",
  G: "~ ab3 bb3@2 ~@3 bb3",
  H: "[c4,eb4,ab4]@2 [c4,eb4,ab4] [c4,eb4,bb4]@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [c4,eb4,bb4]@2 [c4,eb4,ab4]@2 ~, ~@5 bb4 ~@10", // Ab Cm7 Ab Cm7 Ab
})).s("gm_piano").gain(0.17)

// bass · electric bass finger · "Basso"
const bass = note(`<
  A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B C D E A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2
  A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B C D E A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B F
>`.pickRestart({
  A: "g2@3 f2@3 g2@6 ~@4", B: "ab2@3 bb2@3 ab2@6 ~@4", C: "ab2@3 bb2@3 ab2@4 ab2@4 a2@2", D: "bb2@2 ~@3 ab2@2 ~",
  E: "~ ab2 bb2@2 ~@3 bb2", F: "ab2@3 bb2@2 ab2@5 ~@6",
})).s("gm_electric_bass_finger").gain(0.64)

// other · melodic tom · "Batt."
const melodic_tom = note(`<
  [eb5@3 ~ eb5@3 ~ eb5@3 ~ eb5@3 ~]!40
  [bb3@2 ~@3 ab3@2 ~]
  [~ ab3 bb3@2 ~@3 bb3]
  [eb5@3 ~ eb5@3 ~ eb5@3 ~ eb5@3 ~]!36
  [bb3@2 ~@3 ab3@2 ~]
  [~ ab3 bb3@2 ~@3 bb3]
  [eb5@3 ~ eb5@3 ~ eb5@3 ~ eb5@3 ~]!31
  [eb5@2 ~@2 eb5@2 ~ eb5@2 ~@2 eb5@2 ~@3]
>`).s("gm_melodic_tom").gain(0.23)

// other · woodblock · "Batt."
const woodblock = note(`<
  [eb4@3 ~ eb4@3 ~ eb4@3 ~ eb4@3 ~]!40
  [bb3@2 ~@3 ab3@2 ~]
  [~ ab3 bb3@2 ~@3 bb3]
  [eb4@3 ~ eb4@3 ~ eb4@3 ~ eb4@3 ~]!36
  [bb3@2 ~@3 ab3@2 ~]
  [~ ab3 bb3@2 ~@3 bb3]
  [eb4@3 ~ eb4@3 ~ eb4@3 ~ eb4@3 ~]!31
  [eb4@2 ~@2 eb4@2 ~ eb4@2 ~@2 eb4@2 ~@3]
>`).s("gm_woodblock").gain(0.21)

stack(piano, bass, melodic_tom, woodblock)

More by Battisti