Strudelify
Cuccurucucu cover art

La Voce Del Padrone

Cuccurucucu

Battiato

KeyA majorTempo185 bpm
0:00/0:00
// Cuccurucucu — Battiato
// 185 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 191 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 28.
setcpm(185/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.

// bass · electric bass pick · "Cuccurucu"
const bass = note(`<
  ~@8 A B C D A B C D A B C D A B C D E F G H I J K L E F G H I J K L M N M N M N O P Q R S T U@2 C D A B C D A B C D A
  B C D E F G H I J K L E F G H I J K L M N M N M N O P Q R S T V@2 C D A B C D A B C D A B C D W X Y Z W AA AB@2 AC AD
  AE AF AG AH AI AJ AK AL AE AM AG AN AO AP AQ@4 A B AR AS A B AR AT A B C D A B C D A B C D A B C D W X Y Z W AA AB@2
  AC AD AE AF AG AH AI AJ AK AL AE AM AG AN AO AP AU@3
>`.pickRestart({
  A: "d3@2 c#3 d3 ~ c#3 ~ b2", B: "a2@5 a2!2 b2", C: "e2!3 e3 e2!3 e3", D: "e2 e3 e2 e3 e2!4", E: "f#2 ~ c#2 ~",
  F: "a2 ~ e2 ~", G: "e2 e3 b2 e3", H: "b1 b2 f#2 b2", I: "f#2 ~ f#2 ~", J: "d2 d3 a2 d3", K: "e2@2 b2 e3 e2 e3 e2 e3",
  L: "e2 e3 e2 e3 e2@3 ~", M: "d2@2 ~ d3 a2@2 ~ d2", N: "e2@2 ~ e3 e2@2 ~ e2", O: "b1!2 b2!2 b1!2 b2!2",
  P: "b1!2 b2!2 b1!2 e2 f#2", Q: "b2!8", R: "b1!8", S: "e2!2", T: "e3@7 ~", U: "[a2@14 ~ b2]/2", V: "[a2@4 a3@11 b2]/2",
  W: "a2@2 ~ a2 e2@2 ~@2", X: "e2@2 ~ e2 b2@2 ~@2", Y: "f#2@2 ~ f#2 c#2@2 ~@2", Z: "d2@2 ~ d2 f#2 a2 ~@2",
  AA: "e2@4 ~@2 e2@2 e3@2 ~@2 b2@3 ~", AB: "[b3 a3 b3 a3 b3!2 ~ f#2@2 e2 f#2 e2 f#2!2 ~@2]/2",
  AC: "a2@2 ~ a2 e2@2 ~ a2", AD: "e2@2 ~ e2 e3@2 ~ e2", AE: "f#2@2 ~ f#2 c#2@2 ~ c#2", AF: "d2@2 ~ d2 a1@2 ~@2",
  AG: "a2@2 ~ e2 a2 b2 ~ c#2", AH: "e2@2 ~ e2 e3 f#3 ~ a2", AI: "b2@2 b2 f#3 ~ e3 ~ f#3", AJ: "~ f#3 ~ f#3 ~ f#3 f#3@2",
  AK: "a2@2 ~ a2 e2@2 ~ f#2", AL: "e2@2 ~ c#2 b1@2 ~ e2", AM: "d2@2 ~ d2 a1@2 ~ d2", AN: "e2@2 ~ e2 e3@2 ~ c#3",
  AO: "b2@2 ~ b2 b2@2 ~@2", AP: "f#3@2 f#3!6", AQ: "[a2@31 ~]/4", AR: "e2!3 e3 e2 e3 e2 e3", AS: "e2@3 g#3!4 ~",
  AT: "e2@2 b2 ~ e2@2 b2 ~", AU: "a2/3",
})).s("gm_electric_bass_pick").gain(0.4)

// other · electric guitar muted
const electric_guitar_muted = note("<~@23 A ~@43 A ~@43 A ~@51 A ~@27>".pickRestart({
  A: "b2@3 ~@5",
})).s("gm_electric_guitar_muted").gain(0.46).pan(0.2)

// chords · string ensemble 2 · "Luca."
const string_ensemble_2 = note("<~@24 A@3 B@3 C@2 A@3 B@3 C@2 ~@28 A@3 B@3 C@2 A@3 B@3 C@2 ~@107>".pickRestart({
  A: "[f#4 ~ [b3,g#4], [c#4,a4]@2 ~, ~ e4@2]/3", B: "[[d4,b4] c#4 d4, f#4, ~ a4@2]/3", C: "[b3,e4,g#4]/2",
})).s("gm_string_ensemble_2").gain(0.25)

// other · synth strings 1
const synth_strings_1 = note(`<
  ~@24 A B C D E F G H A B C D E F G H ~@27 I A B C D E F G H A B C D E F G H ~@107
>`.pickRestart({
  A: "[a3,a4] [c#3,c#4] [f#3,f#4] [a3,a4]", B: "[e3,e4] [c#3,c#4] [a3,a4] [c#4,c#5]",
  C: "[b3,b4] [e3,e4] [g#3,g#4] [b3,b4]", D: "[b3,b4] [d3,d4] [f#3,f#4] [b3,b4]",
  E: "[b3,b4] [c#3,c#4] [f#3,f#4] [b3,b4]", F: "[a3,a4] [d3,d4] [f#3,f#4] [a3,a4]",
  G: "[g#3,g#4] [b2,b3] [e3,e4] [g#3,g#4]", H: "[a3,a4] [c#4,c#5] [a3,a4] [g#3,g#4]", I: "~ [e3,e4] [a3,a4] [b3,b4]",
})).s("gm_synth_strings_1").gain(0.3).pan(0.6)

// other · overdriven guitar
const overdriven_guitar = note("<~@39 A B@2 C@2 D@2 ~@37 A B@2 C@2 D@2 ~@101>".pickRestart({
  A: "~@12 e5@3 ~", B: "[f#5@2 f#5@2 e5@2 e5 e5@5 ~@3 a5]/2", C: "[a5!3 ~ a5@2 a5 g#5@5 ~@3 e5]/2",
  D: "[f#5!4 e5@2 e5 e5@5 ~@4]/2",
})).s("gm_overdriven_guitar").gain(0.23).pan(0.3)

// chords · percussive organ
const percussive_organ = note(`<
  A@2 B@2 A@2 B@2 ~@16 C@3 D@3 E@2 C@3 D@3 F@2 G H G I G I J@4 K@2 ~@16 C@3 D@3 E@2 C@3 D@3 F@2 G H G I G I J@4 K@2 ~@16
  L@2 M@2 N@4 L@2 M@2 N@4 L@2 M@2 N@4 ~@4 O@24 L@2 M@2 N@4 L@2 M@2 N@4 L@2 M@2 N@4 P@3
>`.pickRestart({
  A: "[[f#4,d5,f#5] [e4,c#5,e5], [a4,a6]]/2", B: "[e4,g#4,b4,e5,g#6]/2", C: "[f#5 ~ [b4,g#5], [c#5,a5]@2 ~, ~ e5@2]/3",
  D: "[[d5,b5] c#5 d5, f#5, ~ a5@2]/3", E: "[g#5, e5@15 ~, b4@7 ~]/2",
  F: "[b4@28 ~ d#4 [g#4,a4] [b4,c#5], g#5, e5@29 [b3,c#4,e4]@2 ~, ~@14 [e3,f#3,g#3,a3] f#4]/2", // Amaj7 Bsus2 C#m7 F#m7
  G: "[d4,f#5,a5,d6] [a3,e5,a5,c#6]", // D A
  H: "e3@8 ~@7 [f#2,g#2], [e5,g#5,b5]@11 ~@5, ~@4 [f#4,g#4] [b3,c#4] [e3,f#3] [a2,b2], ~@9 [d4,e4]@2 [g#3,a3]@2 [c#3,d#3]@2 ~", // F#sus2 E F#sus2 Bsus2 Esus2 Asus2 Dsus2 Amaj7 …
  I: "[e3,e5,g#5,b5]", J: "[d5 d#5, [b3,f#5,b5]]/4", K: "[e3,g#5,b5,e6]/2", L: "[[c#5,a5] [b4,g#5], e5]/2",
  M: "[c#5 d5, [f#5,a5]]/2", N: "[[c#5,a5] g#5 d5 [a4,c#5], e5 f#5, ~ b4@2 ~]/4",
  O: "[[d5,f#5] c#5 [b4,g#5]@2, a5 ~, ~ e5@3]/4", P: "[c#5,e5,a5]/3",
})).s("gm_percussive_organ").gain(0.16).pan(0.3)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@8 A@5 B@8 C@4 ~@27 A@5 B@8 C@4 ~@27 A@5 B@8 C@4 ~@27 A@5 B@16 C@4 ~@26
>`.pickRestart({
  A: "[~@39 a3, d3!4 a2!4 e2!4 e2!4 d3!4, ~ a3@2 a3@2 a3@2 a3@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 e3@2 [e3,b3]@2 e3@2 [e3,b3]@2 e3@2 [e3,b3]@2 e3@2 [e3,b3]@2 a3@2 a3@2 a3@2 ~]/5", // A5 E5
  B: "[~@63 a3, a2!4 e2!4 e2!4 d3!4 a2!4 e2!4 e2!4 d3!4, ~ [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 e3@2 [e3,b3]@2 e3@2 [e3,b3]@2 e3@2 [e3,b3]@2 e3@2 [e3,b3]@2 a3@2 a3@2 a3@2 a3@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 e3@2 [e3,b3]@2 e3@2 [e3,b3]@2 e3@2 [e3,b3]@2 e3@2 [e3,b3]@2 a3@2 a3@2 a3@2 ~]/8", // A5 E5 A5 E5
  C: "[~@23 [e3,b3]@2 ~@7, a2!4 e2!4 e2!4 ~@4, ~ [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 e3@2 [e3,b3]@2 e3@2 [e3,b3]@2 e3@2 [e3,b3]@2 e3@2 ~@9]/4", // E5 A5 E5
})).s("gm_distortion_guitar").gain(0.35).pan(0.8)

// chords · distortion guitar · soft notes
const distortion_guitar_soft = note(`<
  ~@10 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@30 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@30 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@30 A@2 ~@2 A@2
  ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@27
>`.pickRestart({
  A: "~ b3@2 ~@2 b3@2 ~",
})).s("gm_distortion_guitar").gain(0.2).pan(0.8)

// drums · kick
const kick = s("bd").struct("<~@8 [x!2]!180 [x ~@3 x ~@2 x] ~@2>").gain(0.8)

// drums · snare
const snare = s("sd").struct("<~@8 A@59 B A@25 B A@61 B A@33 ~@2>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!3",
})).gain(0.64)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@8 [x!2 ~@2 x!2 ~@2]!181 ~@2>").gain(0.4)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@19 A ~@19 A B ~@8 A ~@13 A ~@3 C ~@15 A B ~@8 A ~@13 A ~@3 A ~@7 A ~@7 A ~@7 A ~@3 D ~@7 D ~@3 D ~@3 C D ~ D ~ D ~@2
  A ~@7 A ~@7 A ~@7 A ~@3
>`.pickRestart({
  A: "~@3 x", B: "x", C: "~ x", D: "~@7 x",
})).gain(0.56)

// drums · high tom
const high_tom = s("ht").struct("<~@8 [~@2 x!2 ~@2 x!2]!181 ~@2>").gain(0.4)

// drums · crash
const crash = s("cr").struct("<~@50 A ~@43 A ~@17 A ~@7 A ~@7 A ~@27 A ~@7 A ~@7 A ~@7 A ~@7 B ~@2>".pickRestart({
  A: "x", B: "~@7 x",
})).gain(0.56)

stack(
  bass, electric_guitar_muted, string_ensemble_2, synth_strings_1, overdriven_guitar, percussive_organ,
  distortion_guitar, distortion_guitar_soft, kick, snare, hihat, mid_tom, open_hat, high_tom, crash
)

More by Battiato