Strudelify

Nice (Nietzsche) che dice

Zucchero

KeyB majorTempo118 bpm
0:00/0:00
// Nice (Nietzsche) che dice — Zucchero
// 118 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 96 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.

// chords · string ensemble 2
const string_ensemble_2 = note("<~@36 A@8 ~ B@3 C@4 ~@9 D@8 E@8 ~ F@3 G@4 ~@11>".pickRestart({
  A: "[[b3,d#4]@31 [a3,c#4]@32 ~ g#3@31 d#4@33, f#4, ~ b3]/8", B: "[~@16 a3@31 ~, ~@15 c#4@32 ~]/3",
  C: "[g#3@31 d#4@28 ~@5, b3@15 ~]/4", D: "[~@48 a3@65 ~@3 a3@11 ~, ~@15 f#3@113, ~@15 d#4@33 e4@80, ~ b3@7]/8",
  E: "[[b3,d#4]@31 ~ a3@31 ~ g#3@31 d#4@33, f#4, ~@31 c#4@32 b3@65]/8", F: "[~@5 c#4@11, ~@15 a3@31 ~@2]/3",
  G: "[g#3@32 d#4@29 ~@3, b3@61 ~@3]/4",
})).s("gm_string_ensemble_2").gain(0.19)

// bass · fretless bass
const bass = note(`<
  ~@2 A B C D E B F G H I J I K L M N O A G E P Q G R G H I J I K L M N O S T U V W X Y Z S T U AA AB AC AD AE I J I K L
  M N O AF AG AF AG A AH AF AH AI S T U V W X Y Z S T U AA AB AC AD AE L AJ I K L AJ N O ~@3
>`.pickRestart({
  A: "~@14 b1 c#2", B: "e2 e1 ~@12 b1 c#2", C: "e2 e1 ~@2 e2 ~@9 b1 c#2", D: "e2 e1@2 ~@11 b1 c#2",
  E: "e2 e1 ~@2 e2@2 ~@9 c#2, ~@7 b1", F: "e2 e1 ~@2 e2 ~@10 c#2, ~@7 b1", G: "e2 e1 ~@13 c#2, ~@7 b1",
  H: "e2 e1 ~@2 e2 ~@5 e1@4 ~@2", I: "e1!2 e2@2 e2 ~ e2 ~ d2@3 c#2@3 e1!2", J: "e1!2 e2 ~ e2 ~ e2@2 g2@3 d2@3 e1!2",
  K: "e1!2 e2 ~ e2 ~ e2 ~ e2!5 d2 b1@2", L: "e1!2 e2 ~ e2 ~ e2 ~ d2@3 c#2@3 e1!2",
  M: "e1!2 e2@2 e2 ~ e2 ~ g2@3 d2@3 e1!2", N: "e1!2 e2 ~ e2 ~ e2 ~ d2@3 c#2@3 ~ e1, ~@7 b1",
  O: "e1!2 e2 ~ e2 ~ e2 ~ d2 e2!4 d2 e2 ~", P: "~ e1 ~@13 c#2, e2 ~@6 b1",
  Q: "e2 e1@2 ~@2 e2 g2 g#2 a2 e2 a2 a#2 b2@2 b1 c#2", R: "~ e1 ~@2 e2@2 ~@9 c#2, e2 ~@6 b1", S: "b1@15 b1",
  T: "f#2 b1@14 ~", U: "a1@15 a1", V: "e2 a1@14 ~", W: "g#1", X: "e1@15 ~", Y: "b1@15 b2",
  Z: "e3 b2 d#3@2 b2@3 f#2 a2 e2 f#2 a2@5", AA: "e2 a1@15", AB: "g#1@15 ~", AC: "e1", AD: "b1@15 f#1", AE: "b1@3 ~",
  AF: "~@15 c#2, ~@7 b1", AG: "e2 e1@2 ~@13", AH: "~ e1 ~@14, e2 ~@7", AI: "~@11 e1@4 ~",
  AJ: "e1!2 e2 ~ e2 ~ e2 ~ g2@3 d2@3 e1!2",
})).s("gm_fretless_bass").gain(0.47)

// chords · percussive organ
const percussive_organ = note(`<
  ~@8 A B@2 ~ C ~ D ~ E ~@3 F ~ G H I J K@2 ~ L ~ M ~ L ~ N O@8 P@5 Q R@2 S T S U V W S X ~@3 Y@6 Z@6 AA@7 Q AB@2 AC AD
  AE AD AF AG ~ AH ~@3
>`.pickRestart({
  A: "~@8 [g#2,a#2,b2,c3,c#3,d3,d#3,e3,f#3] [d2,d#2,f2,f#2,g2,a2] d#2 [c2,d2,f2,f#2,g2,g#2,a2,b2,c3] [d3,e3,f3,g3,a3,b3] [c4,d4,e4] ~ [e5,f5,g5,a5,b5], ~@9 e2@2 ~@2 [f4,g4]@2 ~, ~@7 [a4,b4,c5,d5]", // D Em7 C Em Fsus2 D7
  B: "[[c#6,d6] ~@7 d6@3 c#6@3 b5@3 ~@7 d6@3 c#6@3 b5@2, e6, ~@8 c#6 ~@15 c#6 ~@7]/2", // Dmaj7
  C: "~@8 d6@3 c#6@2 ~@3, ~@8 a5@5 ~@3", D: "~@8 [a5,c#6]@3 b5@2 ~@3, ~@11 g#5 ~@4",
  E: "~@8 d6@3 c#6@2 ~@3, ~@8 a5@5 ~@3, ~@8 g#5 ~@7", F: "~@3 a4 c#5 ~ a4 ~ [d5,f#5]@2 ~ [c#5,e5] ~@4",
  G: "~@4 c#5 ~ a4 ~ [d5,f#5]@2 ~ [c#5,e5]@2 [c5,d5] [e5,f5,g5] [a5,b5,c6,d6,e6,f6]", // D C#m Csus2 Em Dm7
  H: "[g6,a6,b6,c7] [d6,e6,f6,g6,a6,b6] [d5,e5,f5,g5,a5,b5,c6] [e4,f4,g4,a4,b4,c5] [b3,c4,d4] ~@11", // Cmaj7 Em7 Dm7 Cmaj7 Bm
  I: "~@4 c#5 ~ a4 ~ [d5,f#5]@2 ~ [c#5,e5]@2 ~@3", // D C#m
  J: "~@12 [c3,d3,e3,f3,g3] [a3,b3,c4,d4] [e4,f4,g4,a4,b4] [c5,d5,e5,f5,g5,a5]", // C D7 Em Dm7
  K: "[[b5,c6,d6] ~@7 d6@3 c#6@3 b5@10 d6@3 c#6@3 b5@2, e6]/2", L: "~@8 [a5,c#6]@3 b5 ~@4",
  M: "~@8 [a5,d6]@3 c#6@2 ~@3", N: "~@8 d6@3 c#6@3 ~@2, ~@4 a5@3 ~, ~@8 c#6 ~@7", O: "[f#5@5 e5 d#5@2, b5]/8",
  P: "f#5/5", Q: "e5",
  R: "[f#5@27 [e2,f2,f#2,g2,g#2,a#2] [a2,b2,c#3,d3,d#3,e3,f3,f#3,g3,a3] [g2,a2,c#3] [d2,e2,f2] c2, ~@14 c3 ~]/2", // A7 Dm
  S: "e4@2 ~ e4 ~@12", T: "e4@2 ~ e4 ~@4 [a5,d6]@3 c#6 ~@4", U: "e4@2 ~ e4 ~@4 [a5,c#6]@3 [g#5,b5] ~@4",
  V: "e4@2 ~ e4 ~@10 e4 ~", W: "e4@2 ~ e4 ~@4 [a5,d6]@3 [a5,c#6] ~@4",
  X: "e4@2 ~ e4 ~@2 e4 ~ e4@2 ~ e5@2 ~ [e4,e5] ~, ~@11 e4 ~@4", // E
  Y: "[e6@48 ~@45 [d3,e3,f3,g3,a3,b3] [c4,d4,e4,f4] [f#4,g4,g#4,a4,a#4,b4,c5,d5], [g#5,b5], ~ d6]/6", // Em7 Dm7 G#m
  Z: "[[c#5,d#5,e5,f5] ~@79 e5@16, b5, f#5@5 ~]/6", AA: "f#5/7",
  AB: "[f#5@28 [a3,d4,e4] [e3,f3,g3,b3,c4] [f2,g2,a2,b2,c3,d3] [c2,d2,e2]]/2", AC: "~@11 e4 ~@2 e4 ~",
  AD: "~@8 [a5,d6]@3 [a5,c#6] ~@4", AE: "~@8 e4@2 ~ e4 ~@2 e4!2", AF: "~@10 e4 ~@5",
  AG: "e4@2 ~ e4 ~@4 [a5,c#6]@2 ~ [g#5,b5] ~@4", AH: "e4@2 ~ e4 ~@2 e4 ~ [b5,e6]@3 [b5,e6]@3 [b5,e6] ~, ~@8 d6 ~@7",
})).s("gm_percussive_organ").gain(0.17)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  ~@36 A B C B A B A B C A@2 B@2 C@2 B ~@17 A B C B A B D B C A E B C B C B ~@11
>`.pickRestart({
  A: "[b3,d#4]@2 ~ [b3,e4] ~@2 [b3,d#4] ~@2 [b3,e4] ~@2 [b3,d#4]@2 b3 ~", // B E5 B E5 B
  B: "[b3,d#4]@2 ~ [b3,e4] ~@2 [b3,d#4] ~@2 [b3,e4] ~@2 [b3,d#4]@2 ~@2", // B E5 B E5 B
  C: "[b3,d#4]@2 ~ [b3,e4] ~@2 [b3,d#4] ~@2 [b3,e4] ~@2 [b3,d#4] ~@3", // B E5 B E5 B
  D: "[b3,d#4]@2 ~ [b3,e4] ~@2 [b3,d#4] ~@2 [b3,e4] ~@2 [b3,d#4] ~ b3 ~", // B E5 B E5 B
  E: "[b3,d#4]@2 ~ [b3,e4] ~@2 d#4 ~@2 [b3,e4] ~@2 [b3,d#4] ~ b3 ~", // B E5 B
})).s("gm_electric_guitar_muted").gain(0.34).pan(0.7)

// chords · electric guitar muted · soft notes
const electric_guitar_muted_2 = note("<~@37 A@3 ~ A ~ A@2 ~@2 A@4 ~@19 A@3 ~ A ~ A@2 ~ B A@4 ~@12>".pickRestart({
  A: "~@14 b3 ~", B: "~@6 b3 ~@9",
})).s("gm_electric_guitar_muted").gain(0.21).pan(0.7)

// chords · slap bass 1
const slap_bass_1 = note(`<
  ~@36 A B C D E F C D G D H I H J K L ~@10 M N O P Q R S A B C D E F C D G D H I H J K L ~@11
>`.pickRestart({
  A: "[f#4,b4]@2 ~ b4 ~@2 [f#4,b4]!2 ~ [f#4,b4] ~@2 [f#4,b4] ~ f#4 ~", // B5
  B: "b4@2 ~ b4 ~@2 b4 [f#4,b4] ~ [f#4,b4] ~@2 [f#4,b4] ~ f#4 ~, f#4 ~@15", // B5
  C: "b4@2 ~ b4 ~@3 [f#4,b4] ~ [f#4,b4] ~@2 [f#4,b4] ~ f#4 ~, f#4 ~@15", // B5
  D: "b4@2 ~ b4 ~@2 [f#4,b4]!2 ~ [f#4,b4] ~@2 [f#4,b4] ~ f#4 ~, f#4 ~@15", // B5
  E: "b4@2 ~ b4 ~@2 b4 [f#4,b4] ~ [f#4,b4] ~@2 [f#4,b4] ~@3, f#4 ~@15", // B5
  F: "b4@2 ~ b4 ~@2 [f#4,b4] b4 ~ [f#4,b4] ~@2 [f#4,b4] ~ f#4 ~, f#4 ~@15", // B5
  G: "b4@2 ~ b4 ~@2 b4 [f#4,b4] ~ [f#4,b4] ~@2 f#4 ~@3, f#4 ~@15", // B5
  H: "[f#4,b4]@2 ~ [f#4,b4] ~@2 [f#4,b4]!2 ~ [f#4,b4] ~@2 [f#4,b4] ~ f#4 ~", // B5
  I: "b4@2 ~ [f#4,b4] ~@3 [f#4,b4] ~ [f#4,b4] ~@2 [f#4,b4] ~ [f#4,b4] ~, f#4 ~@15", // B5
  J: "b4@2 ~ [f#4,b4] ~@2 [f#4,b4]!2 ~ [f#4,b4] ~@2 [f#4,b4] ~ f#4 ~, f#4 ~@15", // B5
  K: "b4@2 ~ [f#4,b4] ~@2 [f#4,b4]!2 ~ [f#4,b4] ~@2 [f#4,b4] ~@3, f#4 ~@15", // B5
  L: "b4@2 ~ b4 ~@2 [f#4,b4]!2 ~ [f#4,b4] ~@2 [f#4,b4] ~@3, f#4 ~@15", M: "~@10 b4 ~ b4!2 ~ b4",
  N: "b4 ~ b4!2 ~ b4!2 ~ b4!2 ~ b4!2 ~ b4!2", O: "~ b4!2 ~ b4!2 ~ b4!2 ~ b4!2 ~ b4!2 ~",
  P: "b4!2 ~ b4!2 ~ b4!2 ~ b4!2 ~ b4!2 ~ b4", Q: "b4 ~ b4!2 ~ b4!2 ~ b4!2 b3 b4!2 b3 b4!2",
  R: "b3 b4!2 b3 b4!2 b3 b4!2 b3 b4!2 b3 b4!2 b3", S: "b4!2 b3 b4!2 b3 b4!2 b3 b4!2 b3 b4!2 b3 b4",
})).s("gm_slap_bass_1").gain(0.34).pan(0.3)

// chords · slap bass 1 · soft notes
const slap_bass_1_soft = note("<~@38 A ~@2 B C ~ D ~@17 E F G H I ~@4 A ~@2 B C ~ D ~@18>".pickRestart({
  A: "~@6 b4 ~@9", B: "~@7 f#4 ~@8", C: "~@6 f#4 ~@9", D: "~@12 b4 ~ f#4 ~", E: "b4!2 ~ b4!2 b3 b4!2 b3 b4 ~ b3 ~@4",
  F: "~ b3 ~@2 b3 ~@2 b3 ~@2 b3 ~@2 b3 ~@2", G: "b3 ~@2 b3 ~@2 b3 ~@2 b3 ~@2 b3 ~@2 b3",
  H: "~@2 b3 ~@2 b3 ~@2 b3 ~@2 b3 ~@2 b3 ~", I: "~ b3 ~@2 b3 ~@2 b3 ~@8",
})).s("gm_slap_bass_1").gain(0.21).pan(0.3)

// other · lead 2 sawtooth
const lead_2_sawtooth = note("<~@2 A B C B D B D E F ~@8 G E D B H I J E K ~@57 L@3 M L@2 M L ~@3>".pickRestart({
  A: "~@15 c#3, ~@7 b2", B: "e3 e2 ~@6 [d4,f#4]@3 [c#4,e4] ~@2 b2 c#3", C: "e3 e2 ~@2 e3@2 ~@9 c#3, ~@7 b2",
  D: "e3 e2 ~@2 e3@2 ~@8 b2 c#3", E: "e3 e2 ~@2 e3 ~@3 [d4,f#4]@3 [c#4,e4] ~@2 b2 c#3", F: "e3 e2@2 ~ e3@2 ~@10",
  G: "~@14 b2 c#3", H: "e3 e2 ~@2 e3 ~@9 b2 c#3", I: "e3 e2@2 ~@5 [d4,f#4]@3 [c#4,e4] ~@3 c#3, ~@7 b2",
  J: "e3 e2 ~@12 b2 c#3", K: "e3 e2 ~@2 e3 ~@11", L: "e3 e2 ~ e3!2 e2 ~@10", M: "e3 e2 ~ e3!2 e2 ~@8 b2 c#3",
})).s("gm_lead_2_sawtooth").gain(0.25)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@11 A B C D E F G H ~@9 I J K L M N M O ~@16 P J P Q R S T U@2 ~@24 I J K L M N M O ~@3
>`.pickRestart({
  A: "e2 ~ e2!2 e3@2 e2@2 d3@2 e2 c#3@2 e2 a2 b2, ~ e3@2 ~@13", B: "e2 e3 e2!2 ~@2 e2 ~ g3@3 f#3@2 e2 d3 e3, ~ e3 ~@2",
  C: "e2 e3 e2!2 e3@2 e2 ~ d3@2 e2 ~ e2 ~ a2 b2, ~@11 c#3@3 ~@2",
  D: "e2 ~ e2!2 e3@2 e2@2 e3@2 e2 ~ e2!2 d3 e3, ~ e3@2 ~@8 d3@2 ~@3",
  E: "e2 e3 e2 ~ e3@2 e2 ~ d3@2 e2 ~ e2 ~ a2 b2, ~@11 c#3@3 ~@2",
  F: "e2 ~ e2!2 ~@2 e2 ~ g3@3 f#3@2 e2 d3 e3, ~ e3@2 ~ e3@4 ~@8",
  G: "e2 e3 e2!2 e3@2 e2@2 d3@2 e2 ~ e2 ~ a2 b2, ~@11 c#3@3 ~@2",
  H: "e2 ~ e2!2 e3@2 e2@2 d3 e3!3 [e2,e3]@2 d3 e3, ~ e3@2 ~@13", // E
  I: "e2 e3 e2!2 e3 e2 e3 e2 d3@2 e2 [c#3,d#3]@2 e2 a2 b2", J: "e2 e3 e2!2 e3 e2 e3 e2 g3@3 f#3@2 e2 d3 e3",
  K: "e2 e3 e2!2 e3 e2 e3 e2 d3@2 e2 c#3@3 a2 b2", L: "e2 e3 e2!2 e3 e2 e3 e2 d3 e3 e2 d3 e2 e3 e2 e3",
  M: "e2 e3 e2!2 e3 e2 e3 e2 d3@2 e2 c#3@2 e2 a2 b2", N: "e2 e3 e2!2 e3 e2 e3@2 g3@3 f#3@2 e2 d3 e3",
  O: "e2 e3 e2!2 e3 e2 e3 e2 d3 e3 e2!2 e3 e2 d3 e3", P: "e2 e3 e2!2 e3 e2 e3 e2 d3@2 e2 ~ e2 ~ a2 b2, ~@11 c#3@2 ~@3",
  Q: "e2 e3 e2!2 e3 e2 e3 e2 d3 e3 e2 ~ e2@2 d3 e3, ~@11 e3@3 ~@2",
  R: "e2 e3 e2!2 e3 e2 e3 e2 d3@3 ~ e2 ~ a2 b2, ~@11 c#3@2 ~@3",
  S: "e2 e3 e2!2 e3 e2 e3 e2 g3@3 ~ e2 ~ d3 e3, ~@11 f#3@3 ~@2",
  T: "e2 [e2,e3] e2 ~ e3 e2 e3 e2 d3@2 e2 ~ e2 ~ a2 b2, ~@11 c#3@2 ~@3", // E
  U: "[e2 e3 e2!2 e3 e2 e3 e2 d3 e3 e2!2 e3 e2 d3 e3@2 ~@15]/2",
})).s("gm_distortion_guitar").gain(0.38)

// bass · slap bass 1
const bass_2 = note(`<
  ~@20
  [~@3 e1 e2@2 e1 ~@9]
  ~
  [~@3 e1 e2@2 e1 ~ e1 ~@2 a#1@2 ~ b1 ~]
  ~
  [~@12 b1 ~ b1 ~, ~@11 e1@2 ~@3]
  ~@71
>`).s("gm_slap_bass_1").gain(0.43)

// other · glockenspiel · E7 Em7 E7 Em7 E7 Em Em7 E7 …
const glockenspiel = note(`<
  ~@93
  [[b4,d5,e5] [g5,b5,d6,e6] [d6,e6,g6] [e5,g5,b5,d6] [b5,d6,e6] [d6,e6,g6] [b4,d5,e5,b5] [g5,b5,e6] [e5,d6,e6,g6] [b5,d6,e6,b6,e7] [a6,b6,d7] [d6,e6,g6] [g5,b5,d6,e6] [e5,b5,d6,e6] [d5,e5,b5,e6] [b5,d6,e6,g6]]
  [[b4,d5,b5,d6,e6] [a5,b5,d6,e6] [g5,b5,d6,g6] [e5,d6,e6,g6] [b5,d6,e6] [b4,d5,e5,a5,b5,d6] [e5,b5,d6,e6] [g5,d6,g6] [b5,e6,g6,b6,d7] [e6,a6,b6,e7] [g5,d6,b6,d7] [d6,e6,g6] [d5,e5,a5,b5,d6] [b4,d5,b5,c6,d6] [e5,g5,d6,f6,g6] [e5,b5,e6,g6]]
  [d6 ~@15]
>`).s("gm_glockenspiel").gain(0.15)

// drums · kick
const kick = s("bd").struct("<~@2 A B@33 C@16 B@16 D C@16 B@10 E>".pickRestart({
  A: "~@15 x", B: "x!2 ~@13 x", C: "x!2 ~@6 x ~@6 x", D: "x!2 ~@10 x ~@2 x", E: "x!2 ~@14",
})).gain(0.64)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@2 [~@14 x!2] ~@33 [~@7 x ~@8]!16 ~@17 [~@7 x ~@8]!16 ~@11>").gain(0.24)

// drums · snare
const snare = s("sd").struct("<~@3 A@8 B@40 C B@8 A@8 D B@15 C B@8 A E F>".pickRestart({
  A: "~ x ~@2", B: "~ x ~ x", C: "~@4 x ~@5 x ~ x!4", D: "~@4 x ~@3 x ~ x!2 ~ x!3", E: "~@4 x ~@9 x!2", F: "x!2 ~@14",
})).gain(0.48)

// drums · low tom
const low_tom = s("lt").struct("<~@10 [~@3 x] ~@16 [~@11 x!2 ~@3] ~@7 [~@4 x!4] ~@60>").gain(0.48)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@10 [~@11 x!2 ~ x ~] ~@16 [~@3 x] ~@7 [~@8 x ~@2 x ~ x ~@2] ~@60>").gain(0.64)

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

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@4 A ~ A ~ A ~ A B A B A B A B A B A B A B A B A@2 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 A B A B A ~ A
  ~ A ~ A ~ A ~ B A B A B A B A B A B A B A B@3 A B A B A B A@2 ~@2
>`.pickRestart({
  A: "~@8 x!5 ~@3", B: "~@8 x!4 ~@4",
})).gain(0.48)

// drums · ride
// … 12 more lines

More by Zucchero