Strudelify

C'e ancora qualcuno

Biagio Antonacci

KeyC majorTempo97 bpm
0:00/0:00
// C'e ancora qualcuno — Biagio Antonacci
// 97 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 8 pad new age (copy of ch 7 string ensemble 1)
// note: Full arrangement: all 117 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 29.
setcpm(97/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 · piano
const bass = note(`<
  ~@15 A@2 B@2 C@2 D E F@2 G@4 H@2 A@2 B@2 I@2 D E G@2 H@2 A@2 B@2 I@2 D E G@6 H@2 A@2 B@2 I@2 D E G@6 I@2 A@2 B@2 I@2 D
  E G@6 I@2 A@2 B@2 I@2 J K I@2 J K I@2 G@6 L@5 ~
>`.pickRestart({
  A: "[g1,g2]/2", B: "[f1,f2]/2", C: "[c2,c3]/2", D: "[g1,g2]", E: "[f1,f2]", F: "[c2@31 ~]/2", G: "[[c1,c2]@31 ~]/2",
  H: "c1/2", I: "[c1,c2]/2", J: "[g1,g2]@5 ~ [g1,g2]@10", K: "[f1,f2]@5 ~ [f1,f2]@10", L: "[c1@5 ~ c1@74, c2]/5",
})).s("gm_piano").gain(0.36)

// bass · electric bass finger
const bass_2 = note(`<
  ~@68 A B C B C B D E F G H B@2 E I B J B K B L B M E F G H B@2 E H B M E H B N B O B O B O P@4 ~@2
>`.pickRestart({
  A: "~@4 c2 ~ c2 ~ c2 ~ c2 ~ a#1@2 g1 ~", B: "c1 ~ c1 ~ c1 ~ c1 ~ c1 ~ c1 ~ c1 ~ c1 ~",
  C: "c1 ~ c1 ~ c1 ~ c1 ~ c1 ~ d1@2 a#1@2 c2@2", D: "c1 ~ c1 ~ c1 ~ c1 ~ c1 ~ c1 ~ f1@2 f#1 ~",
  E: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~", F: "g1 ~ g1 ~ g1 ~ g2@4 d2@2 f2@2 g2@2",
  G: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~", H: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ a#1@2 c2@2",
  I: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ a#1@2 c2 ~", J: "c1 ~ c1 ~ c1 ~ c1 ~ c1 ~ c1 ~ f1@3 ~",
  K: "c1 ~ c1!3 ~ c1!3 ~ c1 ~ a#1@2 c2@2", L: "c1 ~ c1 ~ c1 ~ c1 ~ c1 ~ c1 ~ a#1@2 c2 ~",
  M: "c1 ~ c1 ~ c1 ~ c1 ~ c1 ~ c1 ~ f1@2 f#1@2", N: "c1 ~ c1 ~ c1 ~ c1 ~ e1@2 g1@2 f1@4",
  O: "c1 ~ c1 ~ c1 ~ c1 ~ c1 ~ d1@2 a#1 ~ c2@2", P: "[c1 ~ c1 ~ c1 ~ c1@58]/4",
})).s("gm_electric_bass_finger").gain(0.41)

// other · overdriven guitar
const overdriven_guitar = note("<~@5 A B@2 C ~@46 D@2 E F G H ~@56>".pickRestart({
  A: "g4@15 ~", B: "[g4@3 f4@3 g4@10]/2", C: "d4 c4@7", D: "[g4@14 ~ g4]/2", E: "g4@3 g4@2 g4@2 ~ g4@8",
  F: "g4@3 g4@2 g4@2 ~ g4@3 f4@3 e4@2", G: "e4@3 d4@3 d4@2 d4@3 d4@3 e4@2", H: "f4@9 ~@7",
})).s("gm_overdriven_guitar").gain(0.27)

// chords · overdriven guitar
const overdriven_guitar_2 = note(`<
  ~@16 A B ~@2 C@2 D@3 ~@10 E@2 ~@4 F@2 G@2 H@2 I@2 J K L@2 M@4 N O P Q ~@8 L@2 F@4 G@2 R@2 F@2 J K L@4 F@2 L@2 G@2 H@2
  F@2 J K L@2 J K L@2 ~@12
>`.pickRestart({
  A: "~@3 g2@5", B: "f2@15 ~", C: "[c4@11 ~@5]/2", D: "[~@7 [c3,g3]@17]/3", E: "[~@3 [c3,g3]@5]/2", F: "[c3,g3]/2",
  G: "[g2,d3]/2", H: "[f2,c3]/2", I: "[[c3,g3]@21 ~ [c3,g3,d4]@10]/2", J: "[g2,d3]", K: "[f2,c3]",
  L: "[[c3,g3]@31 ~]/2", M: "[[c3,c4,g4]@32 [c4,g4,c5]@30 ~ [c4,g4], g3@31 [g3,c4,g4,c5]]/4",
  N: "[g3,c4,g4,c5]@13 ~@2 [c4,g4], ~@7 [g3,c4,c5]", O: "[g3,c4,g4,c5]@14 ~ [g4,d5], ~@7 [g3,d4,g4,d5]",
  P: "[g3,d4,g4,d5]", Q: "[g3,d4,g4,d5]@15 ~", R: "[[f2,c3]@31 ~]/2",
})).s("gm_overdriven_guitar").gain(0.27)

// chords · string ensemble 1
const string_ensemble_1 = note("<~ A@8 ~@108>".pickRestart({
  A: "[g5@16 a5@6 f5@6 a5@4 g5@16 e5 d5 ~@10 g5@4 g5@16 a5@6 f5@6 a5@4 g5@16 e5 d5 c5@14, c5@25 c5@32 ~@7]/8",
})).s("gm_string_ensemble_1").gain(0.3)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  ~@25 A@4 B@4 C@4 D@2 C@2 B@4 C@4 D@2 C@2 A@4 E@8 F@8 E@8 F@8 E@8 G@8 H@8 ~@4
>`.pickRestart({
  A: "[~@2 g4 ~@2 g4 ~@4 g4 ~@2 g4 ~@4 g4 ~@2 g4 ~@4 g4 ~@2 g4 ~ c4, g4@4 ~@3 g4@3 ~@3 g4@3 g4@4 ~@3 g4@3 ~@3 g4@3 g4@4 ~@3 g4@3 ~@3 g4@3 g4@4 ~@3 g4@3 ~@3 g4@3, ~ c4@2 c4 c4@2 c4 c4@2 c4@2 c4 c4@2 c4 c4@2 c4@2 c4 c4@2 c4 c4@2 c4@2 c4 c4@2 c4 ~]/4",
  B: "[~@2 g4 ~@2 g4 ~@4 g4 ~@2 g4 ~@4 g4 ~@2 g4 ~@4 g4 ~@2 g4 ~ d4, g4@4 ~@3 g4@3 ~@3 g4@3 g4@4 ~@3 g4@3 ~@3 g4@3 g4@4 ~@3 g4@3 ~@3 g4@3 g4@4 ~@3 g4@3 ~@3 g4@3, ~ c4@2 c4 c4@2 c4 c4@2 c4@2 c4 c4@2 c4 c4@2 d4@2 d4 d4@2 d4 d4@2 d4@2 d4 d4@2 d4 ~]/4",
  C: "[~@2 g4 ~@2 g4 ~@4 g4 ~@2 g4 ~ c4, g4@4 ~@3 g4@3 ~@3 g4@3 g4@4 ~@3 g4@3 ~@3 g4@3, ~ c4@2 c4 c4@2 c4 c4@2 c4@2 c4 c4@2 c4 ~]/2",
  D: "[~@2 g4 ~@2 g4 ~@4 g4 ~@2 g4 ~ c4, g4@4 ~@3 g4@3 ~@3 g4@3 g4@4 ~@3 g4@3 ~@3 g4@3, ~ d4@2 d4 d4@2 d4 d4@2 c4@2 c4 c4@2 c4 ~]/2",
  E: "[~ g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!3, c5@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@3, ~@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 d5@3 d5@3 d5@3 d5@3 d5@4 d5@3 d5@3 d5@3 d5@3 d5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4]/8",
  F: "[~ g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!3, d5@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@3, ~@3 d5@3 d5@3 d5@3 d5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4]/8",
  G: "[~ g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!3, d5@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@3, ~@3 d5@3 d5@3 d5@3 d5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 d5@3 d5@3 d5@3 d5@3 d5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4]/8",
  H: "[~ g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~@2 g4 ~@2 g4 ~ [c4,c5]@24 ~@2, c5@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@26 ~, ~@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 c5@3 c5@3 c5@4 c5@3 c5@3 ~@26]/8", // C
})).s("gm_electric_guitar_muted").gain(0.15).pan(1)

// chords · pad halo
const pad_halo = note(`<
  ~ A@8 B@6 C@2 D@2 E@2 F G E@2 H@4 E@2 C@2 D@2 E@2 F G E@4 C@2 D@2 E@2 F G E@2 H@4 E@2 C@2 D@2 E@2 F G E@2 I@8 J@5 K@3
  L@4 M@4 J@5 N@4 K@3 O@8 P@4
>`.pickRestart({
  A: "[c1,c2]/8", B: "c2/6", C: "g2/2", D: "f2/2", E: "c2/2", F: "g2", G: "f2", H: "c2/4",
  I: "[[c2,c4]@3 [g2,d4], g4]/8", J: "[[f2,f4]@2 c2@2 [g2,d4], c4@4 ~, ~@2 g4@3]/5", K: "[[f2,f4] [c2,g4]@2, c4]/3",
  L: "[c2,c4,g4]/4", M: "[[c2,c4] [g2,d4], g4]/4", N: "[[f2,f4] c2@2 [g2,d4], c4@3 ~, ~ g4@3]/4", O: "[c3,d4,g4]/8",
  P: "[[c1,c2]@63 ~]/4", // C
})).s("gm_pad_halo").gain(0.3)

// drums · rim
const rim = s("rim").struct("<[x!4] ~@116>").gain(0.36)

// drums · kick
const kick = s("bd").struct("<~@5 [x!2 ~ x ~@4]!64 [x!2]!42 x ~@5>").gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@5 [~ x ~@2]!64 [~ x ~ x]!35 [~@2 x ~@2 x!2 ~] [~ x ~ x]!6 [~ x ~@2] ~@5>").gain(0.45)

// drums · hihat
const hihat = s("hh").struct("<~@5 [x!4]!52 ~@12 [x!8]!35 [x!5 ~@3] [x!8]!6 [x!2 ~@6] ~@5>").gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct("<~@5 [~ x ~ x]!64 [~@3 x]!35 ~ [~@3 x]!6 ~@6>").gain(0.41)

// drums · high tom
const high_tom = s("ht").struct("<~@69 [~@3 x ~@4]!43 ~@5>").gain(0.41)

// drums · tambourine
const tambourine = s("tb").struct("<~@41 [~@3 x]!16 [~ x!2 ~@3 x ~]!12 [x!8]!42 [x!4 ~@4] ~@5>").gain(0.36)

// drums · crash
const crash = s("cr").struct("<~@69 A ~@15 A ~@3 A ~@15 A ~@5 B ~@5>".pickRestart({
  A: "x", B: "~@3 x ~@4",
})).gain(0.27)

// drums · ride
const ride = s("rd").struct("<~@57 [x ~ x!3 ~@2 x!2 ~@2 x!2 ~ x!2]!12 ~@48>").gain(0.23)

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@57 [~@3 x ~ x ~@2]!12 ~@48>").gain(0.14)

// drums · bongos
const bongos = s("bongo:4").struct(`<
  ~@8 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A
  ~ A ~@48
>`.pickRestart({
  A: "~ x!2 ~@2 x ~@10",
})).gain(0.71)

// drums · bongos
const bongos_2 = s("bongo:18").struct(`<
  ~@8 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A
  ~ A ~@48
>`.pickRestart({
  A: "x ~@2 x!2 ~ x ~@9",
})).gain(0.71)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@5 [x!8]!106 [x!4 ~@4] ~@5>").gain(1.14)

// drums · cabasa · soft notes
const cabasa_soft = s("cabasa:4").struct("<~@69 [~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x]!42 [~ x ~ x ~ x ~@10] ~@5>")
  .gain(0.46)

stack(
  bass, bass_2, overdriven_guitar, overdriven_guitar_2, string_ensemble_1, electric_guitar_muted, pad_halo, rim, kick,
  snare, hihat, mid_tom, high_tom, tambourine, crash, ride, ride_soft, bongos, bongos_2, cabasa, cabasa_soft
)

More by Biagio Antonacci