Strudelify

Un piccolo aiuto (feat. Gerard Depardieu)

Zucchero

KeyG minorTempo117 bpm
0:00/0:00
// Un piccolo aiuto (feat. Gerard Depardieu) — Zucchero
// 117 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 104 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(117/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.

// other · vibraphone · "Canto"
const vibraphone = note("<~@4 [~@4 bb4@3 ~ bb4@6 c4@2] [bb4@3 ~ bb4@4 a4@2 g4@6] ~@98>").s("gm_vibraphone").gain(0.4)

// bass · fretless bass · "FretlessBs"
const bass = note(`<
  ~@36 A B C D E F G H I J K L E F M N O P Q R S T U V W X Y Z AA F G AB AC AD Y AE W AF AG AH AI AJ AK AL AM AN AG AO O
  P Q R S T U V W X Y Z AA AP@4 ~@3
>`.pickRestart({
  A: "g1", B: "c2@3 g1", C: "f1@3 c2", D: "bb1@5 ~ f2@2", E: "eb2@13 ~ eb2@2", F: "d2@5 ~ a2@2", G: "g2",
  H: "eb2@2 d2 d1", I: "g1@13 ~ g1 ~", J: "c2 ~ c2 ~ c2@8 e1@4", K: "f1@5 ~ c2@2", L: "bb1@10 f2@2 ~ e2@2 ~",
  M: "g2@6 ~ d2", N: "g2@5 ~ a1@2", O: "a1@13 ~ a1 ~", P: "f1@9 ~ f1@2 c2@2 f1@2", Q: "bb1@9 ~ f2@2 bb2 ~ f2 ~",
  R: "c3@3 ~ bb2@4 f2@8", S: "a1@13 ~ f1 ~", T: "f1@9 ~ f1@2 c2@2 f1 ~", U: "bb1@7 ~", V: "ab1@6 ~ d2",
  W: "eb2@6 ~ eb2", X: "e2@3 e1 e1@4", Y: "f2@3 a1", Z: "bb1@7 ~ f2@8", AA: "eb2", AB: "d2 ~@3 d2@12",
  AC: "g1@5 ~ d2@2", AD: "c2@8 ~@2 g2@2 ~ c2@2 ~", AE: "bb1@6 f2 ~ c3@3 ~ bb2@4", AF: "d2@5 ~ d1 f1", AG: "g1@6 ~ g1",
  AH: "g1@2 g1!2 a1@2 a1@2", AI: "bb1@11 ~ bb2@2 bb1@2", AJ: "a1@9 ~ a2 ~ c2 ~ a1 ~", AK: "g1@9 ~ g2@2 d2@2 g1@2",
  AL: "a1@4 a2 f1 a1 f1", AM: "bb1@9 ~ bb2@2 f2@2 bb1@2", AN: "a1@4 a2 f2 a2 f2", AO: "a1", AP: "[~ d2@19 g1@42 ~@2]/4",
})).s("gm_fretless_bass").gain(0.56)

// chords · string ensemble 2 · "Strings"
const string_ensemble_2 = note("<~@68 A@4 B@2 C@4 D E F@2 D G H@2 I@2 H@2 J K L@2 M K N O@7>".pickRestart({
  A: "[d4@4 ~@3 g4 f4@4 [d4,f4]@4, bb4@7 ~ a4@8, g4@3 e4 ~@4, ~ c4@2 ~]/4", // Dm
  B: "[[bb3,eb4]@4 ~@3 gb4, g4@7 ~, ~ [a3,d4]]/2", C: "[[bb3,d4,g4]@3 [c4,f4,a4] bb4@2 a4@2, ~@3 f5@5, ~ [f4,c5]]/4",
  D: "[eb4,g4,bb4]", E: "[f4,a4,c5]", F: "[~ [a4,c5], f4, [bb4,d5] ~, ~ f5@3]/2", G: "[c4,f4,a4]", H: "c4/2", I: "d4/2",
  J: "d4", K: "f4", L: "g4/2", M: "a4", N: "g4", O: "[~ gb4@19 ~@29 [g3,c4,a4]@55 ~@8, ~@20 [bb3,d4]@83 ~@9]/7",
})).s("gm_string_ensemble_2").gain(0.28).pan(0.7)

// chords · pad warm · "Warm Pad"
const pad_warm = note(`<
  ~@10 A B C@3 D@5 E@4 F@4 G@2 H I J K L M C@3 D@5 C@3 D@5 E@4 F@4 G@2 H I J K L M ~@16 E@4 F@4 G@2 H I J N@4 ~@3
>`.pickRestart({
  A: "[bb3,d4,g4]", B: "[bb3,eb4,g4] [a3,d4,gb4]", C: "[g4@2 f4 e4 [f4,a4]@2, [bb3,d4] c4]/3",
  D: "[[d4,f4]@4 eb4@4 ~ gb4@3 [bb3,g4]@8, bb3@2 d4@3, ~@4 g4@5 ~@11, ~@2 a3 ~@2]/5", // Dm Eb
  E: "[g4 ~@2 d4, c4@3 ~, ~ f4@3]/4", F: "[g4 ~ d4@2, c4 ~, ~ f4@3]/4", G: "[eb4 e4, g4]/2", H: "[f4,a4]",
  I: "[d4,bb4]", J: "[eb4,g4]", K: "[d4,gb4]", L: "[bb3,g4]", M: "d4", N: "[~ [d4,gb4]@19 [bb3,g4]@42 ~@2]/4",
})).s("gm_pad_warm").gain(0.11)

// chords · piano
const piano = note(`<
  A@2 B@2 C D E F G H@2 I J K L F M N O@2 P@2 Q@2 R@2 S T@2 U V W X Y Z AA C D AB F G AC@2 I AD AE AF AG AH AI AJ@2 P@2
  Q@2 AK@2 S AL@2 U AM AN AO AP@3 AQ AR AS AT AU AV AW@2 AX AY AZ BA AX BB BC BD P@2 BE@2 BF@2 BG BH@2 U BI W BJ@5 ~@3
>`.pickRestart({
  A: "[~@5 a5@27, [g4,a4]@31 ~, ~ bb4@30 ~, ~@2 [c5,g5]@29 ~, ~@3 a5 [bb5,c6]@28]/2", // Gsus2 C5 Bbsus2
  B: "[~@5 a4@27, [g3,a3]@31 ~, ~ bb3@30 ~, ~@2 [c4,g4]@29 ~, ~@3 a4 [bb4,c5]@28]/2", // Gsus2 C5 Bbsus2
  C: "d4@4 ~ bb3 [bb3,g4]@2, g2, g4@3 ~, bb3@5 ~@3, ~ d4", D: "~@7 c2, [bb3,d4,f4], c2@7 ~, ~ e4, ~@3 c4",
  E: "c4@6 ~ f2, [e4,a4], f2@7 ~, ~@3 c4", F: "[d4,f4]@4 ~@3 bb2, bb2@7 ~, a3@10 a3@5 ~, ~@8 f4@7 ~, ~@2 d4!2",
  G: "[bb3,eb4,g4]@4 ~ g3@3, [eb2,eb3], ~@8 [bb3,eb4,g4]@7 ~", // Eb
  H: "[~@12 d2@3 ~ g2@8 ~@6 g4@2, [d4,g4]@15 ~ d4@12 bb3@4, d2@3 ~ bb3@2 g2@2, a3@8 a3@7 ~ g4@10 g3@6, ~ gb3@2 [gb3,gb4]@5]/2", // G5 Gb
  I: "bb3!2 d2 [d2,a3], [eb2,eb4,g4]@8 [d4,gb4]@7 ~", J: "~@7 g2, g4, g2@3 d4, d4@5 bb3@3, bb3 bb4",
  K: "~@7 [c2,bb3], [d4,f4], c2@3 c4, bb3@5 bb3@2 ~, ~ e4", L: "[e4,a4]@4 ~@3 f2, f2@7 ~, c4@5 c4@3, ~ a4, ~@2 e4!2",
  M: "bb3@4 ~@3 eb2, [eb4,g4], eb2@3 eb3, eb3@10 g3@5 ~, ~@8 bb3@7 ~", // Eb
  N: "~@3 d3, [d2,d4,g4], a3@8 a3@7 ~, ~ gb4@3, ~@10 gb3@5 ~", // G5
  O: "[g3 ~@2 g4, g2@5 d4@3, g4 bb3, d4@3 a3@5, bb3 g3@3]/2",
  P: "[~@8 f4@3 ~@3 c5@2, [a2,eb5]@5 g4 c5@5 f4 f5 f4@3, ~ g3@7, ~@3 c4@13, ~ eb4@3]/2", // Adim
  Q: "[~@13 f4@3, bb2@8 [d4,c5]@3 f4 bb4@4, bb4@2 f4 [c4,f5]@5, c5 bb3@3, f4 f3@7]/2", // D7 F5
  R: "[~@16 f4@6 ~@6 c5@3 ~, a2, c5@8 eb4@2 g4@2 c5@10 f4@2 f5@2 f4@5 ~, g4@6 c4@25 ~, ~@4 g3@27 ~]/2",
  S: "~@3 bb4, [bb2,c5,d5], bb4@3 ~, f4 [bb3,d4,f4], ~ f3@3", // Bb
  T: "[~@14 eb4 bb4, ab2@18 bb3@2 f4@2 bb3@2 g4@2 bb3@5 ~, f4@8 c5@4 bb4@4 eb2@15 ~, g5@4 f5@4 c4@23 ~, ~@4 f3@27 ~]/2",
  U: "~@7 e2, e2@3 c5, c5@5 c4@3, ~ c4@2 c4 g4@4, ~ e4@3", V: "~@7 f2, f2@7 ~, ~@3 c4@3 c4@2, ~@8 a3@7 ~, ~@10 f3@5 ~",
  W: "~@3 f4, [bb2,bb3], f4@3 ~, d4@8 d4@7 ~, ~@6 f3@9 ~", X: "~@3 bb3, [eb2,g4], bb3@3 ~, eb4!2, ~@6 g3@4 g3@5 ~",
  Y: "~@3 [d2,d3,c4,gb4], g4@15 ~, d2@3 ~, ~@4 gb3@11 ~, ~@8 a3@7 ~", Z: "[g2,g3,bb3,d4,g4]",
  AA: "[d2,d3,a3,c4,d4,gb4] ~@3 [d2,d3,a3,c4,d4,gb4]@12", AB: "~@7 f2, [c4,e4,a4], f2@7 ~, ~@5 f4@3, ~@3 g4",
  AC: "[~@12 d2@3 ~ g2@8 ~@6 bb3@2, [d4,g4]@15 ~ g4@12 g3@4, d2@3 ~ d4@2 g2@2, a3@8 a3@7 ~ bb3@10 d4@6, ~ gb3@2 [gb3,a4]@5]/2", // G5 Gbm
  AD: "~@7 g2, [bb3,d4,g4], g2@7 ~, ~ bb5, ~@3 d5", AE: "~@7 c2, [bb3,d4,f4,f5], c2@3 e3, ~ e5, ~@5 g4@3",
  AF: "~@7 f2, [c4,e4,a4], f2@3 c5, ~@3 f4@2 f4@3, ~ f5", AG: "d5@4 ~@3 bb2, [bb2,bb4]@15 ~, f4@3 f4, a4@5 a4@3, ~ d5",
  AH: "~@3 eb4, [eb2,eb3,eb5], bb4!2, ~ g5@15, ~@3 g4@2 g4@3", AI: "[bb4,d5,g5] [a4,d5,gb5]@3, [d2,d3]",
  AJ: "[g3@2 ~@5 d5, g2, d4@16 bb3@4 d4@4 g4@7 ~, bb3@12 a3@19 ~, ~@8 g3@23 ~]/2",
  AK: "[~@12 g4@4 f4@6 ~@6 c5@3 ~, a2, c5@15 ~@7 f4@4 f4@5 ~, g4@8 eb5@8 ~@8 f5@7 ~, ~@3 g3@5 ~@8]/2",
  AL: "[~@14 g4 bb4, ab2@18 bb3@2 f4@2 bb3@2 eb4@2 f4@5 ~, f4@8 c5@4 bb4@4 eb2@15 ~, g5@4 f5@4 c4@23 ~, ~@4 f3@27 ~]/2",
  AM: "~@7 f2, a4, f2@3 c4, ~@6 c4@4 f3@5 ~, ~@8 a3@7 ~",
  AN: "~@2 a4 [f4,a4,f5], [bb2,bb3], f4@3 ~, [d4,a4]@8 [d4,d5]@7 ~, ~@6 f3@9 ~", // F Bb D5 D
  AO: "g4@3 ~@3 [bb3,g4]@2, [eb2,g5], bb3@10 [g3,eb5]@5 ~, eb5@3 g3 [eb4,bb4]@4, eb4@3 g4@3 ~@2", // Eb Cm Eb5
  AP: "[~@16 d4@8 d4@8 [d2,d3,a3,c4,d4,gb4] ~@3 [d2,d3,a3,c4,d4,gb4]@12, g5 ~@2, g4@12 [d2,d3,c4,a4]@4 [g2,g3,bb3]@17 ~@15, d2@8 a3@6 g4@19 ~@15, ~@4 [gb3,gb4]@11 ~@33]/3", // D7 Gm Gb
  AQ: "d5@2 d5 [d5,f5], [g2,bb4,g5], ~ bb5", AR: "[c3,c4,bb4,d5,f5]@2 ~ c5, ~ [e3,c4,g4,e5]",
  AS: "[f2,f3,f4,a4,c5]@8 ~@4 c5@3 ~, ~@8 [a2,a4,f5]@7 ~", AT: "[bb2,bb3,f4,a4,d5]@8 [bb2,bb3,f4,a4,d5]@7 ~",
  AU: "eb5@4 ~@3 eb2, [eb3,bb4], eb2@7 ~, g4@3 g4, ~ eb5", // Eb5
  AV: "[d4,gb4,c5,d5]@4 d4@2 ~ d3, d2, d3@7 ~, ~ [a4,c5,d5], ~@3 d4", // D7
  AW: "[g3@4 ~@16 bb3@4 ~@4 f4@3 ~, [g2,bb4]@24 [a2,a3,c4,a4]@7 ~, g4@3 bb3@2 ~@3, d4!2 [d4,g4] ~, ~ g3@5 ~@2]/2", // Gm Am G5
  AX: "[bb4,d5]@2 ~ f4, [bb2,bb3], f4@3 ~, ~ [bb4,d5]", AY: "~@7 a2, [a3,c4,g4,c5], a2@7 ~, ~ f4",
  AZ: "eb4@2 eb4 [eb4,bb4], [g2,g3,g4], bb4@3 ~, ~ eb5", BA: "[f2,f3,c4,a4]@2 ~ f4, ~ [a2,a3,c4,a4]",
  BB: "~ f4, [a2,a3,c4,g4,c5]", BC: "[g4,bb4]@2 ~ eb4, [g2,g3], eb4@3 ~, ~ [g4,bb4,eb5]",
  BD: "~ c4, [a2,a3,f4,a4]@15 ~, c4 ~, ~@6 f3@9 ~", // Dm
  BE: "[~@13 f4@3, [bb2,c5]@8 [d4,d5]@3 f4 bb4@4, bb4@2 f4 [c4,f5]@5, f4 bb3@3, ~ f3@7]/2", // Bbsus2 D F5
  BF: "[~@16 f4@6 ~@6 c5@3 ~, [a2,g4], c5@8 c5@2 d5@2 eb5@2 c5@8 f4@2 f5@2 f4@5 ~, ~@4 g3@27 ~, ~@6 c4@25 ~]/2", // A7
  BG: "~@7 f4, [bb2,c5,d5]@3 [d4,bb4], bb4@4 [d4,f4] c4@3, f4 bb3, ~ f3@3", // Bb Gm Dm
  BH: "[~@6 bb3@2 bb3@3 ~@3 bb4@2, [ab2,f4]@22 [bb3,bb4]@2 eb4@2 bb3@5 ~, ~@4 f3@27 ~, ~@8 c4@23 ~, ~@16 [eb2,g4]@15 ~]/2", // Db Bb Eb
  BI: "~@7 f2, a4, f2@7 ~, ~@8 f3@7 ~, ~@3 f4",
  BJ: "[~@13 eb4@4 ~@21 g4@40 ~@2, [eb2,g4]@17 [d2,c4,gb4]@19 g2@42 ~@2, eb4@13 ~@4 d4@14 d3@6 [g3,bb3,d4]@41 ~@2, bb3@8 bb3@8 ~@6 a3@17 ~@41, ~@4 g3@12 ~@10 gb3@13 ~@41]/5", // Eb D7 Gm
})).s("gm_piano").gain(0.56)

// drums · bongos
const bongos = s("bongo:18").struct("<~@36 [~@9 x ~@2 x ~@3]!48 ~@20>").gain(1.26)

// drums · bongos · soft notes
const bongos_soft = s("bongo:18").struct("<~@36 [~ x]!48 ~@20>").gain(0.84)

// drums · shaker
const shaker = s("sh").struct("<~@36 [x!2]!48 ~@20>").gain(0.56)

// drums · shaker · soft notes
const shaker_soft = s("sh").struct("<~@36 [~ x ~ x]!48 ~@20>").gain(0.32)

// drums · claves
const claves = s("clave:2").struct("<~@36 x!48 ~@20>").gain(3.14)

stack(vibraphone, bass, string_ensemble_2, pad_warm, piano, bongos, bongos_soft, shaker, shaker_soft, claves)

More by Zucchero