Strudelify

Hai scelto me

Zucchero

KeyF majorTempo105 bpm
0:00/0:00
// Hai scelto me — Zucchero
// 105 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 44 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(105/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 · violin · "MIDI"
const violin = note("<~@33 A B ~@4 C@2 D@2 ~>".pickRestart({
  A: "d2", B: "a2@13 ~@3", C: "[~@8 a3@2 bb3@2 c4@2 f4@15 ~@3]/2", D: "[~@5 f2@17 ~@10]/2",
})).s("gm_violin").gain(0.27)

// chords · piano · "MIDI"
const piano = note("<A@3 B@3 C@2 D E F G H I J@2 K@2 L M N@2 O P Q@2 R@6 S T U V@2 ~ W X Y@4>".pickRestart({
  A: "[~@2 bb4@2 ~@12 a4@2 ~@4 f5@10 f4@2 ~@13 a4, a3@4 a3@4 eb3@8 ~@3 f5@5, a4 ~ c5@6 ~ bb4@3 ~@5 bb4@6 bb4, ~ c4@11 c4@28 a3@8, ~@3 f5@5 ~@2 c5@2 ~@6 c5@6]/3",
  B: "[bb4 a4@13 ~@18 bb4 ~ f4@10 d4@4, ~@14 bb4@2 eb3@15 a4@2 a4@11 ~@4, ~@15 a4@2 a4@13 bb4@2 ~@16, ~@8 c4@3 c4@3 c4@2 c4@3 ~@5, ~@8 bb4 ~@3 a3@4 ~@8]/3",
  C: "[f4@4 ~@4 g4@3 ~@3 a3@2, ~@6 a3@4 ~ eb4@3 ~@2, ~@7 c4@8 ~, ~@16 eb3@15 ~, ~@24 g4@7 ~]/2",
  D: "bb3 ~@5 d4 f4, d5@15 ~, d3@3 f4@4 ~, bb4@4 d4@6 f3@5 ~, [d4,f4] bb3@3 bb4@4", // Dm
  E: "~@3 f4 ~ bb3 ~ f4, f3@15 ~, db5@8 bb4@7 ~, f4@4 db4@11 ~, bb4 bb3@4 ~ c5@2",
  F: "c4@3 ~@5 [f4,a4]@8, f3@15 ~, a4@3 c4@5, ~@4 a3@11 ~", // F
  G: "~@2 g3@2 bb3@2 ~@2 a3@7 ~, [f3,g4], eb4@6 eb4@5 ~@5, a3 ~@3", // Fsus2
  H: "d4 ~@3 d5@4, bb4, f3@7 ~, f4@4 d4@2 f4@5 ~@5, ~ bb3@7",
  I: "~@5 db4 g4@2, [f3,db5]@15 ~, ~ db4@2 db4@2 ~@3, ~ f4@2 ~, ~@8 bb4@7 ~", // Db
  J: "[c4 ~@6 c4 ~@7 f4, f3@11 ~ [e3,e4]@4 d3@6 f4@6 ~@4, a4@6 f4@9 ~ f4@4 d4@6 ~@2 d4@4, f4@4 c4@4 a4@15 ~ [d3,a4]@7 ~, ~ a3@6 ~@2 a3@4 a3@3]/2", // E D5
  K: "[~@16 c4@3 ~@7 c4@2 ~@2 c4@2, db3@16 [g3,g4]@7 ~ g3@4 [g3,e4]@4, a4@3 e4@2 a3 db4@2 ~@2 c4@2 g4@3 ~, e4@4 db4@4 a2@8 g2@13 ~@3, ~@2 a3@6 a4@6 e4@7 ~ e4@5 ~@5]/2", // G C
  L: "[f3,bb3] ~@5 bb3 d4, f2@7 ~, [d4,f4]@6 d4@7 ~@3, ~ f3@3 f4@3 ~, ~@2 bb3@3 ~@3", // Bb5 Dm
  M: "bb3@2 ~@4 eb4 ~ [c3,c4,e4,g4]@8, [g2,g4]@7 ~@9, eb4 bb3 ~@2, g3 ~ g3@12 ~@2", // C G
  N: "[[f3,c4] ~@14 g4, f2@13 ~ f4@4 ~@2 c4@2 g4@6 c4@4, [f4,a4]@3 f4@3 c4@3 a3@4 a3@3, ~ f3@3 a4@12, ~@4 c4@6 f3@6 eb3@15 ~]/2", // F5 F
  O: "~@3 d4, d3@15 ~, f4@13 ~@3, ~ bb3@7, ~@4 d4@2 bb4@9 ~",
  P: "~@7 db4, [db3,bb4]@15 ~, ~ bb3@3 ~@2 bb3@2, ~@4 db4@5 ~@7, ~@3 g4@5", // Gb
  Q: "[[a3,c4] ~@2 a3 ~ a3 ~ a3 eb3@2 ~@4 a3@2, a4@29 ~@3, c3@4 f4@2 g4@2 g4@3 a3 [eb4,g4]@4, ~ f3@10 eb3@5, ~@4 c4@15 ~ c4@9 ~@3]/2", // Am Eb
  R: "[~@14 d4@2 db4@2 ~@6 bb4@7 ~ c4@2 ~@6 g4 ~ c4@2 ~@2 c4@2 ~@12 d4@2 f4 ~@7 db3@2 ~@4 db4@2 ~@12 g3@2 ~@2 e4@2, f4@34 ~@2 c4@4 a4@30 e4@6 ~@2 e4@6 c4@4 [c3,g4]@7 ~, bb2@12 bb3@5 ~ bb3@14 c3@8 c5@12 d4@6 a3@7 ~ a3@6 a4@6 ~@2 c5@16, d4@4 bb3@2 d4@2 bb4@12 db4@12 ~@2 a3@14 f4@2 a3@6 [d3,d5]@7 ~ [db3,e4]@4 db4@6 a3@4 ~@4 g3@7 ~@7, ~@2 f3@14 db3@6 g4@10 a4@6 f4@2 f3@4 [e3,e4,g4]@4 d3@6 f4@6 ~@4 e5@7 ~ [db3,e5]@8 [c3,g4]@6 e4@6 c4@4]/6", // C5 D Dbm Em Dbm C5
  S: "~@8 [f4,bb4]@2 d4@2 bb3@2 [bb3,d4] ~, bb2@7 ~, [f4,bb4]@3 d4@2 ~ [f4,c5]@2, ~@2 f3@7 ~ f3@4 ~@2, ~@2 bb3@3 ~@3", // Bb5 Bb Bb5 F5
  T: "f4 ~@13 f4 ~, [d3,a4]@3 f4@3 d4@2, ~ a3@3 [d3,a4,d5]@4, ~@2 d4@3 a3@3", // D5
  U: "~@6 e4 ~@3 a3@2 db4@2 e4@2, a4@15 ~, [db3,e4,e5]@3 db5@5, ~ a3@3 db3@4, ~@2 db4@2 [e4,e5]@3 ~", // Dbm E
  V: "[f4 d4 f4 bb3 ~@3 [f4,bb4] b3 ~@3 a4 ~ d4@2, d5@12 ~@4 b4@6 d4@2 d5@7 ~, [bb2,bb4]@8 [bb2,bb4]@7 ~ b2@15 ~, bb3@3 d4@2 bb3@2 ~ g4 g3@7, ~@8 f4@4 d4@8 b3@6 [g4,b4]@5 ~]/2", // Bb5 Bb G
  W: "~@7 a4, c3@15 ~, a4@3 f4@2 c4@3, f4 c4 a4 f4, ~ a3@7",
  X: "~@7 g4, eb3 ~, ~@2 a3@7 ~ a3@6, ~@4 eb4@7 ~ eb4@4, ~@3 g4@3 ~@2",
  Y: "[~@14 d4@3 ~@5 c4@2 ~@10 f5@16 ~@14, d3@7 f4@9 ~ f4@9 c4@24 ~@14, f4@5 d4@7 bb3@10 ~@2 a3@26 ~@14, ~@2 bb3@7 d3@9 ~@3 c3@12 [a4,c5]@16 ~@15, ~@29 f4@20 ~@15]/4", // Am
})).s("gm_piano").gain(0.27)

// chords · piano · "MIDI" · soft notes
const piano_soft = note("<A B C@3 D E ~@4 F G@2 H ~@3 I ~@3 J@3 K ~@10 L ~@2 M ~@4>".pickRestart({
  A: "f3", B: "~ a3", C: "[~@14 a3@3 ~ a3@2 ~@4, d3@8 f3@9 ~@7, ~@6 c4@5 c4@5 ~@8, ~@5 a3@2 ~@5, ~@12 c3@5 ~@7]/3",
  D: "~ d3, d3 ~, ~ a3@3, ~@3 c4@3 ~@2", E: "a3 ~ f4@2, [c3,f3], ~ a3@2 ~, ~@3 c4@4 ~", F: "~@12 eb4 ~ c4@2",
  G: "[~@10 d4@2 ~@2 d4@3 ~@13 db4@2, ~@6 f4@3 ~@7]/2", H: "~@10 c4@3 ~@3", I: "~@5 f3@3",
  J: "[~@24 bb3@2 db4@3 ~@19, ~@7 f4@12 ~@5]/3", K: "~@10 g3@4 c4 ~", L: "~@7 b3", M: "~@8 eb3@7 ~",
})).s("gm_piano").gain(0.13)

// chords · string ensemble 2 · "MIDI"
const string_ensemble_2 = note("<~@28 A B@2 C D E@2 F@3 ~@6>".pickRestart({
  A: "~@3 [e3,g4], f2, [f3,f4]@3 ~, c4 c5, ~ a4@2 ~", // Em F
  B: "[f4@5 ~ f4@2 d5@8 e5@8 db5@8, a4@31 ~, [d2,d3,f5] [db2,db3,a5], ~@16 f5 ~@15]/2", // Dm Gbm
  C: "~@4 e5@8 e4@3 ~, [c2,c3,c5], g5 ~, ~ g4@3", D: "~ bb4, [bb2,f4,d5], ~@2 bb3@5 ~",
  E: "[a2@2 d3@5 ~@5 [a2,a3,db5]@4, a4, [a3,f5]@8 db4@3 ~@5, g2 ~@15 [db3,e5]@8 ~@8, ~@20 e4@11 ~]/2", // A Dm Dbm
  F: "[~@4 bb3 ~@3 d5@4 ~@4, f4@35 ~@13, [bb2,d5]@4 [b2,b3,b4,g5]@5 ~@3]/3", // Bb Em
})).s("gm_string_ensemble_2").gain(0.15)

stack(violin, piano, piano_soft, string_ensemble_2)

More by Zucchero