Strudelify

Scintille

Zucchero

KeyC majorTempo118 bpm
0:00/0:00
// Scintille — Zucchero
// 118 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 152 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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 · piano
const piano = note(`<
  ~@12 A B C@2 A B C@2 D@2 E F G ~@3 A B C@2 A B C@2 D@2 E F G ~@3 H ~ I@2 J@2 K@2 H ~ I@2 J@2 L M N@2 L M N@2 L M N@2
  ~@2 A B C@2 A B C@2 D@2 E F G ~ H ~ I@2 J@2 K@2 H ~ I@2 J@2 L M N@2 L M N@2 L M N@2 L M N@2 ~@36
>`.pickRestart({
  A: "e4@3 d4", B: "f4@3 e4", C: "[d4@2 e4@19 ~@11]/2", D: "[d4@19 ~@9 g4@4]/2", E: "c4", F: "f4@7 ~", G: "e4",
  H: "~ c4 f4 g4 a#4 a4@3", I: "[~@2 c4@2 f4@2 g4@2 a#4@2 a4@13 ~@9]/2", J: "[~@2 g3@2 c4@2 d4@2 f4@2 e4@15 ~@7]/2",
  K: "[~ g3 c4 d4 f4 e4@6 ~@5]/2", L: "[g2,f3,a#3,d4]@15 ~", M: "[f2,f3,a3,c4]@15 ~", N: "[[c3,e3,g3,c4]@31 ~]/2",
})).s("gm_piano").gain(0.48)

// bass · electric bass finger
const bass = note(`<
  ~@56 A@2 B C D@2 B C D@2 B C D@2 ~@28 A@2 B C E@2 B C F@2 B C G H B C E@2 I J K L M N O P I Q R S T N U V B W X Y Z AA
  U V Z AA U V Z AA U AB B C AC@2
>`.pickRestart({
  A: "[~@8 d2@2 c2@21 ~]/2", B: "g1", C: "f1", D: "[c2@31 ~]/2", E: "[c2@22 c2 ~ c2@8]/2", F: "[c2@11 g1 c2@4]/2",
  G: "c2@5 c2 f2 g2", H: "c3 g2 c2@6", I: "a#1", J: "f1@7 a#1", K: "c2", L: "c2@2 g1@2 c2@9 ~ c2@2", M: "d2",
  N: "f1@15 ~", O: "c2@5 c1 e1 g1", P: "a1 g1 d2@2 c2@4", Q: "f1@6 a#1 b1", R: "c2@7 g1", S: "c2 g1 c2@2 e1 a1 g1@2",
  T: "d2@7 e1", U: "c2@13 ~ c2 ~", V: "c2 g1 c2@3 g1 c2@2", W: "f1@3 ~ f1@8 a#1@2 b1@2", X: "c2@5 d1 e1 g1",
  Y: "e2 d2 c2 g1 a1 c2 a1 g1", Z: "g1@7 e1", AA: "f1@5 g1 a#1 b1", AB: "e1@2 a1@2 g1@3 ~ c2@7 ~", AC: "c2/2",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@2 A@8 B@7 C@8 D@8 C@8 E@8 F@8 G@8 H@4 ~@3 I@8 J@8 K@8 L@8 M@8 N@5 ~@35
>`.pickRestart({
  A: "[~@63 e4, g3!4 g3!4 g3!4 g3!4 g3!4 g3!4 g3!4 g3!4, ~ d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@3, ~@3 g4@4 g4@4 f4@4 f4@4 g4@4 g4@4 f4@4 e4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 f4@4 ~]/8",
  B: "[~@55 g4, g3@4 g3@4 g3@4 g3@4 g3@4 g3@4 g3@4 g3@4 e4@10 ~@6 f4@6 f4@8 e4@7 ~@27 e4@10 ~@6, ~ d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@3, ~@3 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 ~@8 g4@4 g4@4 g4@4 g4@4 g4@4 ~, ~@18 g3@2 ~@2 g3@2 ~@2 c4@2 ~@2 c4@3 ~ g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2]/7",
  C: "[~@63 e4, f4@6 f4@8 e4@7 ~ g4@8 g4@8 g4@8 g4@8 g4@8 g4@8 g4@8 g4@8 g4@8 g4@8 f4@8 f4@8 e4@8 ~@2, ~ d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@3, ~@2 c4@2 ~@2 c4@3 ~ g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 a3@2 ~@2 a3@2 ~@2 a3@2 ~@2 a3@2 ~@2 g3@2 ~@2 g3@2]/8",
  D: "[~@63 g4, ~ c4@4 c4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@3, ~@4 g3@4 ~@4 g3@4 ~@4 g3@4 ~@4 g3@4 ~@4 g3@4 ~@4 g3@4 e4@10 ~@6 f4@6 f4@8 e4@7 ~@27 e4@10 ~@6, ~@3 e4@4 e4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 ~@8 g4@4 g4@4 g4@4 g4@4 g4@4 ~, ~@26 g3@2 ~@2 g3@2 ~@2 c4@2 ~@2 c4@3 ~ g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2]/8",
  E: "[~@63 g4, ~ c4@4 c4@4 d4@4 d4@4 d4@4 d4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@3, ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ g3 ~ g3, ~@3 e4@4 e4@4 g4@4 g4@4 g4@4 g4@4 f4@4 f4@4 f4@4 f4@4 f4@4 f4@4 f4@4 f4@4 g4@4 ~]/8",
  F: "[~@63 g4, ~ c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@3, ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ g3 ~ g3, ~@3 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 f4@4 f4@4 f4@4 f4@4 f4@4 f4@4 f4@4 f4@4 g4@4 ~]/8",
  G: "[~@63 g4, ~ c4@4 c4@4 d4@4 d4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 d4@4 d4@4 c4@4 c4@4 c4@4 c4@3, ~ g3 ~ g3 ~ a#3 ~ a#3 ~ a3 ~ a3 ~ g3 ~ g3 ~ g3 ~ g3 ~ a#3 ~ a#3 ~ a3 ~ a3 ~ g3 ~ g3, ~@3 g4@4 g4@4 g4@4 g4@4 f4@4 f4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 f4@4 f4@4 g4@4 ~]/8",
  H: "[~@23 f4@4 ~@5, ~ c4@4 c4@4 d4@4 d4@4 c4@4 c4@4 ~@7, ~ g3 ~ g3 ~ a#3 ~ a#3 ~ a3 ~ a3 ~@4, ~@3 g4@4 g4@4 g4@4 g4@4 f4@4 ~@9]/4",
  I: "[~@63 g4, e4@10 ~@6 f4@6 f4@8 e4@7 ~@27 e4@10 ~@6 f4@6 f4@8 e4@7 ~@27, ~ d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@3, ~@2 g3@2 ~@2 g3@2 ~@2 c4@2 ~@2 c4@3 ~ g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 c4@2 ~@2 c4@3 ~ g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2, ~@3 g4@4 g4@4 ~@8 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 ~@8 g4@4 g4@4 g4@4 ~]/8",
  J: "[~@63 f4, ~ d4@4 d4@4 d4@4 d4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@3, ~ g3 ~ g3 ~ g3 ~ g3 ~ a3 ~ a3 ~ a3 ~ a3 ~ g3 ~ g3 ~ g3 ~ g3 ~ a3 ~ a3 ~ a3 ~ a3, ~@3 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 f4@4 f4@4 e4@4 e4@4 e4@4 e4@4 f4@4 f4@4 f4@4 ~]/8",
  K: "[~@63 f4, ~ c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@3, ~ a3 ~ a3 ~ a3 ~ a3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ a3 ~ a3 ~ a3 ~ a3, ~@3 f4@4 f4@4 f4@4 f4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 f4@4 f4@4 f4@4 ~]/8",
  L: "[~@63 g4, ~ c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 d4@4 d4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@3, ~ a3 ~ a3 ~ a3 ~ a3 ~ g3 ~ g3 ~ g3 ~ g3 ~ a#3 ~ a#3 ~ a3 ~ a3 ~ g3 ~ g3 ~ g3 ~ g3, ~@3 f4@4 f4@4 f4@4 f4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 f4@4 f4@4 g4@4 g4@4 g4@4 ~]/8",
  M: "[~@63 g4, ~ d4@4 d4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 d4@4 d4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@3, ~ a#3 ~ a#3 ~ a3 ~ a3 ~ g3 ~ g3 ~ g3 ~ g3 ~ a#3 ~ a#3 ~ a3 ~ a3 ~ g3 ~ g3 ~ g3 ~ g3, ~@3 g4@4 g4@4 f4@4 f4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 f4@4 f4@4 g4@4 g4@4 g4@4 ~]/8",
  N: "[~@31 g4@4 ~@5, ~ d4@4 d4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 ~@7, ~ a#3 ~ a#3 ~ a3 ~ a3 ~ g3 ~ g3 ~ g3 ~ g3 ~@4, ~@3 g4@4 g4@4 f4@4 f4@4 g4@4 g4@4 g4@4 ~@9]/5",
})).s("gm_electric_guitar_clean").gain(0.4)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@115 A B C D@2 B C D@2 B C D@2 B C D@2 E C D@2 E C D@2 E C D@2 E C D@2 E C D@2
>`.pickRestart({
  A: "~@3 f3", B: "[a#2,f3,a#3]@15 ~", C: "[f3,c4,f4]", D: "[c3,g3,c4]/2", E: "[d3,g3,a#3]@15 ~",
})).s("gm_distortion_guitar").gain(0.08)

// bass · fretless bass
const bass_2 = note("<~@44 A@4 B@2 C@2 A@4 B@2 ~@28 A@4 B@2 C@2 A@4 B@2 ~@52>".pickRestart({
  A: "[~@2 c2@2 f2@2 g2@2 a#2@2 a2@21 ~]/2", B: "[~ g2 c3 d3 f3 e3@11]/2", C: "[~@2 g2@2 c3@2 d3@2 f3@2 e3@21 ~]/2",
})).s("gm_fretless_bass").gain(0.36)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@58 A B C@2 A B C@2 A B C@2 ~@30 A B C@2 A B C@2 A B C@2 A B C@2 D E F@2 G@2 H@2 D E F@2 G@2 H@2 ~@20
>`.pickRestart({
  A: "[g2,a#3,d4,g4]", B: "[f2,a3,c4,f4]", C: "[c3,g3,c4,e4]/2", D: "[a#2,d4,f4,a#4]", E: "~ f2@15, [c4,f4,a4]",
  F: "[[c2,e4], [c4,g4]@15 ~]/2", G: "[[d2,d4,a#4] [f2,c4,a4], f4]/2", H: "[c2,c4,e4,g4]/2",
})).s("gm_string_ensemble_1").gain(0.29)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@4 A B C@2 A B C@2 D@4 E@4 F@2 G H I@2 F@2 D@4 E@4 F@2 G H I@2 F@2 J@4 K@4 J@4 I@2 L M N@2 L M N@2 L M N@2 ~@2 D@4
  E@4 F@2 G H I@2 J@4 K@4 J@4 I@2 L M N@2 L M N@2 L M N@2 L M N@2 ~@16 O H I@2 O H I@2 O H I@2 O H I@2 O H I@2
>`.pickRestart({
  A: "e4@3 d4", B: "f4@3 e4", C: "[e4@31 ~]/2", D: "[e4 f4 e4@2, [g3,c4]]/4", E: "[e4 f4 e4@2, [c3,g3,c4]]/4",
  F: "[g2,g3,b3,d4]/2", G: "[a2,a3,c4,e4]", H: "[f2,a3,c4,f4]", I: "[c3,g3,c4,e4]/2", J: "[f2,a3,c4,f4]/4",
  K: "[c3,g3,c4,e4]/4", L: "a#4", M: "a4", N: "g4/2", O: "[g2,a#3,d4,g4]",
})).s("gm_synth_strings_1").gain(0.48)

// chords · rock organ
const rock_organ = note(`<
  ~@80 A B C D E@2 F@2 G@2 H@4 I@4 E@2 ~@15 J K L M@2 N L M@2 N L M@2 N L M@2 N L M@2 N L M@2 N L M@2 N L M@2 N L M@2
>`.pickRestart({
  A: "g5@13 ~ g5 a5", B: "g5@7 f5", C: "e5@7 d5", D: "f5@15 ~", E: "e5/2", F: "f5/2",
  G: "[a5@8 a#5@2 a5@20 g5 f5, f5@29 ~@3]/2", H: "g5/4", I: "f5/4", J: "~@12 [a2,b2] [c3,d3] ~ f4",
  K: "[d5,f5,a#5], a4 ~@15", L: "[c5,f5,a5]@15 ~", M: "[c5,e5,g5]/2", N: "[d5,f5,a#5]",
})).s("gm_rock_organ").gain(0.33)

// chords · rock organ · soft notes · F Cmaj7
const rock_organ_soft = note("<~@115 [~@13 e3 [f3,g3,a3] [b3,c4,d4,e4]] [g4 ~@15] ~@35>").s("gm_rock_organ").gain(0.16)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B@3 A
  B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B C@3 ~
>`.pickRestart({
  A: "x!3 ~@2 x!3", B: "x!3 ~@2 x!2 ~", C: "x",
})).gain(0.35)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<A@116 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 ~@4>".pickRestart({
  A: "~@3 x ~@4", B: "~@3 x ~@3 x",
})).gain(0.14)

// drums · snare
const snare = s("sd").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~@4
>`.pickRestart({
  A: "~ x", B: "~@4 x ~@2 x",
})).gain(0.63)

// drums · hihat
const hihat = s("hh").struct("<[x!4]!148 ~@4>").gain(0.42)

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

// drums · crash
const crash = s("cr").struct(`<
  ~@58 A ~@3 A ~@3 A ~@33 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A ~ A ~@3 A@3 ~ A@3 ~ A@3 ~ A@3 ~
>`.pickRestart({
  A: "x",
})).gain(0.56)

// drums · ride
const ride = s("rd").struct(`<
  ~@58 A B@3 A B@3 A B@5 ~@28 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B A B A B@3 A@3 B A@3 B A@3 B A@2 ~@2
>`.pickRestart({
  A: "~ x!3", B: "x!4",
})).gain(0.42)

stack(
  piano, bass, electric_guitar_clean, distortion_guitar, bass_2, string_ensemble_1, synth_strings_1, rock_organ,
  rock_organ_soft, kick, kick_soft, snare, hihat, open_hat, crash, ride
)

More by Zucchero