Strudelify
Il mare impetuoso al tramonto sali sulla luna e dietro una tendina di stelle... cover art

All The Best - Zu & Co

Il mare impetuoso al tramonto sali sulla luna e dietro una tendina di stelle...

Zucchero

KeyA majorTempo90 bpm
0:00/0:00
// Il mare impetuoso al tramonto sali sulla luna e dietro una tendina di stelle... — Zucchero
// 90 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 9 "Il mare impetuoso..." melodic tom (copy of ch 8 "Il mare impetuoso..." melodic tom)
// note: Full arrangement: all 87 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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 · "Il mare impetuoso..."
const piano = note("<~@5 A B A B ~@10 A C ~@10 A D ~@38 E B E B E B E B ~@8>".pickRestart({
  A: "e5 e4 ~ e4 c#5@3 d5 ~@3 e4 d5@2 c#5 b4", B: "e5 e4 ~ e4 c#5@3 ~ d5@4 c#5@4", C: "e5 e4 ~ e4 c#5@4 d5@4 e4 ~@3",
  D: "e5 e4 ~ e4 c#5@4 d5@4 c#5@4", E: "e5 e4 ~ e4 c#5@3 d5 ~ e4!3 d5@2 c#5 b4",
})).s("gm_piano").gain(0.32)

// bass · slap bass 2 · "Il mare impetuoso..."
const bass = note(`<
  ~@4 A B C B D E F E F E F E G H I B J E F E F E F E G H I B C K L M N K L O P E F E F E F E G H I B C B Q K L M N K L
  O P ~@7 R S T S T S T S T S T S T S T S U
>`.pickRestart({
  A: "~@10 e1@5 ~", B: "e2 e1 ~ e1 c#2@3 d2 ~@4 d2@2 c#2 e1", C: "e2 e1 ~ e1 c#2@4 d2@4 c#2@4",
  D: "e2 e1 ~ e1 c#2@3 ~ d2@4 c#2@3 d2", E: "e2 ~ e1 ~ e1 ~@2 e1!2 ~ e1!2 ~ e1 ~ d2",
  F: "e2 ~ e1 ~ e1 a1 b1 e2 d2@4 c#2@3 d2", G: "e2 ~ e1 ~ e1 a1 b1 e2 d2@4 c#2@4",
  H: "b1!3 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", I: "d2 f#1 g1 g#1 a1 c#2 d2 d#2", J: "e2 e1 ~ e1 c#2@4 d2@4 e1 ~@3",
  K: "d2 ~ d2 ~ d2 ~ d2!3 d3 d2 ~ d2@2 g1@2", L: "~@2 a1 ~ a1 ~ a1!3 a2 a1 ~ a1 ~ c2@2",
  M: "~@2 d2 ~ d2 ~ d2!3 d3 d2 ~ d2 ~ g1@2", N: "~ a2@2 e1 g1 g1@2 e1 f#1 f#1@2 c#1 e1 e1@2 d2",
  O: "~@2 d2 ~ d2 ~ d2!3 d3 d2 ~ d2@2 a1 a#1", P: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 b0 b1@3 ~",
  Q: "e2 e1 ~ e1 c#2@3 ~ d2@4 c#2@4", R: "~@8 d2@4 c#2@3 ~", S: "e2 e1!3 c#2@3 d2 ~@4 d2@2 c#2 e1",
  T: "e2 e1!3 c#2@4 d2@4 c#2@4", U: "e2 e1!3 c#2@4 d1@4 c#1 ~@3",
})).s("gm_slap_bass_2").gain(0.49)

// other · distortion guitar · "Il mare impetuoso..."
const distortion_guitar = note(`<
  ~@4 A B C B C D E D E D E D E F G B H D E D E D E D E F G B I J K J K J K J L D E D E D E D E F G B C B C J K J K J K
  J L ~@7 M N C N C N C N C N C N C N C N O
>`.pickRestart({
  A: "~@3 a2", B: "e3 e2 ~ e2 c#3@3 d3 ~ e2 ~ e2 d3@2 c#3 e2", C: "e3 e2 ~ e2 c#3@3 ~ d3@4 c#3@4", D: "e3 ~ e3 ~@13",
  E: "e3 ~ e3 ~@2 a2 b2 e3 d3@4 c#3@4", F: "b2@15 ~", G: "d3 f#2 g2 g#2 a2 c#3 d3 d#3",
  H: "e3 e2 ~ e2 c#3@4 d3@4 e2 ~@3", I: "e3 e2 ~ e2 c#3@4 d3@4 c#3@4", J: "d3", K: "a2", L: "b2", M: "~@2 d3 c#3",
  N: "e3 e2 ~ e2 c#3@3 d3 ~ e2!3 d3@2 c#3 e2", O: "e3 e2 ~ e2 c#3@4 d3@4 c#3 ~@3",
})).s("gm_distortion_guitar").gain(0.27).pan(0.4)

// chords · rock organ · "Il mare impetuoso..."
const rock_organ = note(`<
  ~@9 A B A B A B A B C D E F A B A B A B A B C D E G H I H I H J K L M N M N M N M N C D ~@3 G H I H I H J K L ~@7 O P
  Q R Q P Q R Q P Q R Q P Q R S
>`.pickRestart({
  A: "[g#4,b4,d5,g5] ~ [g#4,b4,d5,g5] ~@13", B: "[g#4,b4,d5,g5] ~ [g#4,b4,d5,g5] ~@5 [a4,d5,f#5]@4 [a4,c#5,e5]@4",
  C: "[d#5,f#5,b5]", D: "[a4,d5] [c#4,f#5] [d4,g5] [d#4,g#5] [e4,a5] [g#4,c#5] [a4,d5] [a#4,d#5]", E: "[b4,e5] ~@15",
  F: "~@10 [e3,f#3,g3,a3,b3] [c4,d4,e4,f#4,g4,a4,b4,c5] [d5,a5,c#6,e6] ~@3", G: "~@8 [a4,d5,f#5]@4 [a4,c#5,e5]@3 ~",
  H: "[a4,d5,f#5]", I: "[a4,c#5,e5]@15 ~", J: "[a4,c#5,e5]", K: "[a4,d5,f#5]@15 ~", L: "[d#5,f#5,a5,d6]@7 ~",
  M: "[g#5,b5,d6,g6] ~ [g#5,b5,d6,g6] ~@13", N: "[g#5,b5,d6,g6] ~ [g#5,b5,d6,g6] ~@5 [a5,d6,f#6]@4 [a5,c#6,e6]@4",
  O: "~@6 [c5,c#5,d5] [e5,f#5,g5,a5,b5] [f#5,a5,d6,a6]@4 [e5,a5,c#6,a6]@3 ~, ~@8 c6 ~@7", // Em D A
  P: "~@2 [g#5,b5,d6,g6]@2 [f#5,g5,a5,c6,e6,f#6] [c5,d5,e5] ~@10", // G F#m7b5 C
  Q: "~@6 [c5,c#5,d5] [e5,f#5,g5,a5,b5] [f#5,a5,d6,f#6]@4 [e5,a5,c#6,e6]@3 ~, ~@8 c6 ~@7", // Em D A
  R: "~@2 [g#5,b5,d6,g6]@2 [f#5,g5,a5,c6,e6,f#6] [c5,d5,e5] ~@6 [f#5,a5,d6] ~ [e5,a5,c#6]@2", // G F#m7b5 C D A
  S: "~@6 [c5,c#5,d5] [e5,f#5,g5,a5,b5] [f#5,a5,d6,f#6]@4 [e5,a5,c#6,e6] ~@3, ~@8 c6 ~@7", // Em D A
})).s("gm_rock_organ").gain(0.3).pan(0.8)

// other · melodic tom · "Il mare impetuoso..."
const melodic_tom = note("<A ~@62 B C D E B C D E ~@16>".pickRestart({
  A: "~@12 [g2,b2] [g2,a2] g2 [f2,g2]", // G Gsus2 Fsus2
  B: "[f2,g2] [f2,g2,c3] [g2,c3] [f2,g2,c3] [a2,b2]!4 [f2,g2] [f2,g2,c3]!3 [g2,b2] [g2,a2] g2 [f2,g2]", // Fsus2 C5 Fsus2 Asus2 Fsus2 G Gsus2 Fsus2
  C: "[f2,g2] [f2,g2,c3]!3 [a2,b2]!4 [f2,g2] [f2,g2,c3]!3 [g2,b2] [g2,a2]!2 [f2,g2]", // Fsus2 Asus2 Fsus2 G Gsus2 Fsus2
  D: "[f2,g2] [f2,g2,c3]!3 [a2,b2]!4 [f2,g2] [f2,g2,c3]!3 [g2,b2] [g2,a2] g2 [f2,g2]", // Fsus2 Asus2 Fsus2 G Gsus2 Fsus2
  E: "[f2,g2] [f2,g2,c3]!3 [a2,b2]!4 [f2,g2,a2] [f2,g2,c3]!3 [g2,b2] [g2,a2] g2 [f2,g2]", // Fsus2 Asus2 F Fsus2 G Gsus2 Fsus2
})).s("gm_melodic_tom").gain(0.48).pan(0)

// other · taiko drum · "Il mare impetuoso..."
const taiko_drum = note(`<
  ~ A B A B A B A B A B A B A B A B A B A C 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 ~@8 A B A B A B A B A B A B A B A C
>`.pickRestart({
  A: "c8!2 ~ c8 ~ c8 ~ c8 ~ c8!2 ~ c8!3 ~", B: "c8!4 ~ c8 ~ c8 ~ c8!2 ~ c8!3 ~", C: "c8!4 ~ c8 ~ c8 ~ c8!2 ~ c8 ~@3",
})).s("gm_taiko_drum").gain(0.48).pan(0.9)

// other · orchestra hit · "Il mare impetuoso..."
const orchestra_hit = note(`<
  ~@5 A B A B ~@10 A C ~@10 A D ~@18 A B A B ~@16 E B E B E B E B E B E B E B E F
>`.pickRestart({
  A: "e5 e4 ~ e4 c#5@3 d5 ~@3 e4 d5@2 c#5 b4", B: "e5 e4 ~ e4 c#5@3 ~ d5@4 c#5@4", C: "e5 e4 ~ e4 c#5@4 d5@4 e4 ~@3",
  D: "e5 e4 ~ e4 c#5@4 d5@4 c#5@4", E: "e5 e4 ~ e4 c#5@3 d5 ~ e4!3 d5@2 c#5 b4", F: "e5 e4 ~ e4 c#5@4 d5@4 c#5 ~@3",
})).s("gm_orchestra_hit").gain(0.33)

// chords · overdriven guitar · "Il mare impetuoso..."
const overdriven_guitar = note("<~@33 A@2 B@2 A@2 C ~@15 A@2 B@2 A@2 C ~@25>".pickRestart({
  A: "[d6@2 d6 c#6@2 c#6@2 a5@10 ~@2 e6@2 ~@2 e6@7 ~@2, ~@17 e5@4 e5@4 ~@7, ~@18 a5@3 ~ a5@3 ~@7]/2",
  B: "[d6@2 d6 c#6@2 c#6@2 a5@10 ~@2 e6@2 ~@2 e6@2 ~@2 e6@2 ~@2 e6, ~@17 e5@4 e5@4 e5@4 e5@3, ~@18 a5@3 ~ a5@3 ~ a5@2 ~@2 a5@2]/2",
  C: "d6@2 d6 c#6@2 c#6@2 a5@9",
})).s("gm_overdriven_guitar").gain(0.37).pan(0.9)

// drums · kick
const kick = s("bd").struct("<~ A B A B C D C D@9 C E D@9 F C E D@5 G D@13 H D@7 G D@2 C B D@23 I>".pickRestart({
  A: "x ~@7 x ~@6 x", B: "x!2", C: "x ~ x ~@5 x ~@6 x", D: "x!2 ~@2 x ~@3", E: "x ~ x ~@3 x ~ x ~@2 x ~@4",
  F: "x ~ x ~@5 x ~@2 x ~@2 x ~", G: "x ~ x ~@5 x ~@2 x ~@4", H: "x!2 ~ x!2 ~@2 x", I: "x ~@2 x!10 ~@3",
})).gain(0.54)

// drums · snare
const snare = s("sd").struct(`<
  A B@7 C B@23 D B@3 E B@3 F B@3 G B@3 D G H B@3 D B@3 E B@3 I B@7 D B@7 J B@7 ~
>`.pickRestart({
  A: "~@8 x!2 ~ x ~@4", B: "~ x ~ x", C: "~@4 x ~@5 x ~ x!3 ~", D: "~@4 x ~@7 x ~@2 x", E: "~@2 x ~@3 x!2",
  F: "~@3 x!2 ~@3 x ~ x ~ x!3 ~", G: "~@4 x ~@7 x ~ x!2", H: "~@2 x ~@2 x!2 ~", I: "x ~ x ~ x!3 ~@9",
  J: "~@4 x ~@3 x ~ x ~ x!3 ~",
})).gain(0.6)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<A ~@7 B ~@23 C ~@15 C ~@5 C ~@15 C ~@16>".pickRestart({
  A: "~@5 x ~@2", B: "~@11 x ~@4", C: "~@7 x",
})).gain(0.3)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A@5 B A C D B A B A B A B A B D E A B A B A B A B A B A B A@8 F B A B A B A B A B A B A B A@11 G A@3 G A B A B A B
  A@3 B A B A B A ~
>`.pickRestart({
  A: "x!8", B: "x!4 ~@4", C: "x ~ x ~ x ~ x ~@8 x", D: "~ x!7", E: "x!5 ~@3", F: "~@2 x!6", G: "x!6 ~@2",
})).gain(0.54)

// drums · mid tom
const mid_tom = s("mt").struct("<~@50 [~@7 x] ~@11 [~@12 x!3 ~] ~@23 [~@4 x!9 ~@3]>").gain(0.42)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@6 A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~@8 B A ~ A ~ A ~ A ~ A ~ A ~ A ~@11 C ~@3 C ~ A ~ A ~ A ~@3 A
  ~ A ~ A ~@2
>`.pickRestart({
  A: "~@2 x!2", B: "x", C: "~@3 x",
})).gain(0.54)

// drums · high tom
const high_tom = s("ht").struct("<~@30 [~@14 x!2] ~@31 [~@5 x ~@2] ~@24>").gain(0.48)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@3 A B A C ~@8 A ~ A ~@9 A@3 ~ A ~@3 A ~@2 A ~@2 A C A C A C A@3 C A C A ~@3 A ~@2 A@2 ~@7 A B A B A B A ~ A B A
  B A B A@2
>`.pickRestart({
  A: "x", B: "~@2 x!2", C: "~ x",
})).gain(0.42)

// drums · ride
const ride = s("rd").struct("<~@33 [~ x ~ x ~ x ~ x]!8 ~@14 [~ x ~ x ~ x ~ x]!8 ~@24>").gain(0.48)

// drums · tambourine
const tambourine = s("tb").struct("<~ A@4 B@15 C B@12 D@8 B@14 D@8 ~@8 B@15 E>".pickRestart({
  A: "x!3 ~ x!3 ~ x!3 ~ x!3 ~", B: "x!5 ~ x ~ x!8", C: "x!5 ~ x ~ x!4 ~@4", D: "x ~ x!2 ~ x ~ x!2 ~ x ~@3 x ~",
  E: "x!5 ~ x ~ x!5 ~@3",
})).gain(0.18)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
  ~
  [~@3 x ~@3 x ~@3 x ~@3 x]!4
  [~@5 x ~ x ~@8]!28
  [~@3 x]!8
  [~@5 x ~ x ~@8]!14
  [~@3 x]!8
  ~@8
  [~@5 x ~ x ~@8]!16
>`).gain(0.12)

stack(
  piano, bass, distortion_guitar, rock_organ, melodic_tom, taiko_drum, orchestra_hit, overdriven_guitar, kick, snare,
  snare_soft, hihat, mid_tom, open_hat, high_tom, crash, ride, tambourine, tambourine_soft
)

More by Zucchero