Strudelify
L'emozione non ha voce cover art

Collezione D'Oro

L'emozione non ha voce

Celentano

KeyB majorTempo66 bpm
0:00/0:00
// L'emozione non ha voce — Celentano
// 66 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 5 synth choir (copy of ch 16 tuba)
// note: Full arrangement: all 69 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(66/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 · fretless bass
const bass = note(`<
  ~@12 A@2 B C D B E F G E H I J K L K J K L K D B C D B E F G E H I J K L K J K L K M N M O P Q R S T@6 U@2 ~@2
>`.pickRestart({
  A: "[~@3 b1@5]/2", B: "b0@7 d#1", C: "e1@8 f#1@7 ~", D: "b1@11 f#1@5", E: "e1 f#1", F: "b1@5 c#2 d#2 f#2", G: "a2",
  H: "g#1 f#1", I: "e1@4 f#1 f#2@3", J: "b1 d#2", K: "e2@3 e2 f#2@4", L: "g#2@3 g#2 f#2@4", M: "e2@3 e2 d#2@3 d#2",
  N: "c#2@3 c#2 b1@3 b1", O: "c#2@6 c#2@2 f#2@5 f#1 a#1 c#2", P: "f#2@3 f#1 a1 c#2 f#2@2 b1@8", Q: "d#2@4 e2@3 e2",
  R: "f#2@4 g#2@3 g#2", S: "f#2@4 e2@3 e2", T: "[f#2@8 b1@12 d#1@4 e1@16 b1@12 d#1@4 e1@12 c1@4 b0@14 b0@2 b0@5 ~@3]/6",
  U: "~@8 b0@3 ~@5",
})).s("gm_fretless_bass").gain(0.71)

// bass · fretless bass · soft notes
const bass_soft = note("<~@64 A@2 B@3>".pickRestart({
  A: "[~@13 c#3@9 b2 f#2 ~@3 b2@2 f#2 d#3@2]/2", B: "[c#3@6 b2 f#2 ~@3 b2@2 f#2 c#3@10 b0@16 ~@8]/3",
})).s("gm_fretless_bass").gain(0.39)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@13 A@2 B C@2 B D@2 E F G H@2 F G H@2 F G C@2 B C@2 B D@2 E F G H@2 F G H@2 F G ~@3 I@3 J@2 K@4 L@6
>`.pickRestart({
  A: "[~ b3@15]/2", B: "[e3,g#3]@2 ~ a#3, b3@3 ~, ~ [f#3,c#4]", C: "[[f#3,b3], d#4@3 ~@5]/2",
  D: "[[b3,d#4]@8 b3@3 c#4 d#4@2 f#4@2, f#3]/2", E: "[b3,e4,g#4] [b3,c#4,f#4]", F: "g#3 f#3, [b3,d#4]",
  G: "[e3,g#3,b3]@2 b3 a#3, ~ [f#3,c#4]", H: "[f#3@2 g3@2 g#3@2 b3 a#3, [b3,d#4]@3 [f#3,c#4]]/2",
  I: "[~@2 b4@3 a#4 f#3@2 g3@2 g#3@2, ~ [f#4,c#5]@2 [b3,d#4]@3]/3", // F#5 B
  J: "[b3 a#3 g#3@2 f#3@2 [e3,g#3,b3]@2, [f#3,c#4] [b3,d#4]@2 ~]/2", // E F#5 B
  K: "[b3 a#3 [b3,d#4,f#4]@4 [b3,e4,g#4]@4 [b3,d#4,f#4]@4 [b3,e4,g#4]@2, [f#3,c#4] ~@7]/4", // B E B E F#5
  L: "[~ [b3,d#4,f#4]@10 ~]/6", // B
})).s("gm_string_ensemble_2").gain(0.09)

// chords · pad warm
const pad_warm = note(`<
  ~@2 A@2 B C@2 B D@2 E F G A@2 B C@2 B D@2 E F G H ~@3 H ~@3 C@2 B C@2 B D@2 E F G H ~@3 H ~@3 I@2 J@3 ~@13
>`.pickRestart({
  A: "[d#3,f#3,b3]/2", B: "g#3@2 ~ a#3, e4, b3@3 ~, ~ f#4", C: "[f#3,b3,d#4]/2", D: "[~ a3, [f#3,b3,d#4]]/2",
  E: "[g#3,b3,e4] [f#3,b3,c#4]", F: "g#3 f#3, [b3,d#4]", G: "[e3,g#3,b3]@2 b3 a#3, ~ [f#3,c#4]", H: "[d#3,f#3,b3] ~",
  I: "[[e3,g#3] [d#3,f#3] [c#3,e3,g#3] [d#3,f#3], b3]/2", // E D#m C#m D#m
  J: "[[e3,g#3]@2 [d#3,f#3]@2 [c#3,e3,g#3]@2 b3@3 a#3 [d#3,f#3,b3]@2, b3@3 [c#3,f#3]@2 ~]/3", // E D#m C#m B F#5
})).s("gm_pad_warm").gain(0.39).pan(0.4)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@16 A B ~@6 C@2 D@2 E@2 F@2 G@2 ~ A B ~@6 H@2 I J K@2 I L ~@3 M@3 N@3 O@8 ~
>`.pickRestart({
  A: "~@12 d#4 e4 c#4 d#4", B: "b3@15 ~", C: "[f#5@2 g5@2 g#5@2 b4 a#4, d#5@3 [c#5,e5]]/2",
  D: "[~ b5 a#5@2 ~@3 a#4, d#5@11 b4@3 ~@2, ~@2 g#5 f#4, ~@13 c#5@3]/2",
  E: "[[f#5,f#6]@2 [g5,g6]@2 [g#5,g#6]@2 b4 a#4, d#5@3 [f#5,f#6]]/2", // F# G G# F#
  F: "[d#6@3 b5 a#5@4 ~@6 a#4@2, d#5@11 b4@3 ~@2, ~@2 g#5 f#4, ~@13 c#5@3]/2", G: "[b4@12 b4!3 c#5 b4@16, [d#4,f#4]]/2",
  H: "[f#5@2 g5@2 g#5@2 [b4,f#5] [a#4,e5], d#5@3 ~]/2", I: "~ b5 c#6 d#6 ~ g#5 a#5 b5, d#5",
  J: "[b4,d#5]@6 ~@8 f#5 e5, ~@3 b4@3 a#4@2, ~ f#4, ~@4 e5@3 ~, ~@5 c#5@3", // B
  K: "[~ b5 c#6 d#6 ~ b5 c#6 d#6 ~ g#5 a#5 b5 [b4,f#5]@2 [a#4,e5]@2, d#5@3 ~]/2", // B5 A#dim
  L: "d#5!2 e5 f#5 ~@2 a#4@2, b4@3 b4@3 ~@2, ~ [f#4,c#5]", // F#5
  M: "[~@9 f#4!2 b4 b4@2 c#5@2 ~ f#5!2 b5 c#6 f#5 c#6 [d#6,e6] [f#5,f#6]@8 ~@4 a#5@2 b5@2 [g#5,g#6]@8, ~@8 b4@3 ~@3 b4@6 a#4@2 f#4@2 d#5@24, ~@4 [g5,g6] ~]/3", // Emaj7 F# G# G
  N: "[[b4,f#5,f#6]@2 [a#4,e5,e6]@2 ~ g#5 a#5 b5 a#5@4 [b4,d#5]@3 ~@3 [a#4,e5]@2 b5@4, ~ [d#5,d#6]@2 g#5 f#4 ~, ~@5 b4 ~@2, ~@8 f#5 ~@3, ~@17 c#5@3 ~@4]/3", // B5 A#dim B A#dim D#
  O: "[~ b4!2 f#5!2 b4 f#5 g#5 f#5@16 b4@104]/8",
})).s("gm_string_ensemble_1").gain(0.07).pan(0.3)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A@2 B@2 ~ B@2 ~ B@2 ~@3 B@2 ~ B@2 ~ B@2 C@4 ~@7 B@2 ~ B@2 ~ B@2 C@4 ~@7 D@5 E F G H@6 ~@2 I@2
>`.pickRestart({
  A: "[~@7 [d#3,d#4] e3@3 d#3 c#3 b2@2 ~ [f#2,c#4,f#4]@16, ~@6 [c#3,f#3,b3,c#4]@2 [f#3,b3,c#4,e4]@7 [f#3,a#3]@17]/2", // D# F#5 F#sus4 F#
  B: "[~@6 b3@17 ~@9, ~@2 d#3@21 ~@9, ~@4 f#3@19 ~@9]/2",
  C: "[~@11 a#3@2 ~@3, ~ e3@4 f#3@4 d#3@4 d#3@4 e3@4 c#3@4 ~@7, ~ g#3@2 a#3@2 b3@2 b3@2 b3@2 ~@5]/4",
  D: "[~@15 f#3@2 ~ b2@2, ~ e3@4 d#3@4 c#3@4 b2@4 e3@4 d#3@4 c#3@4 c#3@4 ~@7, ~ g#3@2 f#3@2 g#3@2 f#3@2 g#3@2 f#3@2 g#3@2 ~@5]/5",
  E: "d#2 e2", F: "f#2 g#2", G: "f#2 e2",
  H: "[~@4 c#4@4 [b2,d#3,f#3,b3]@12 ~@4 [e3,g#3,b3]@16 [d#3,f#3,b3]@16 ~ g#4@15 [d#3,f#3,b3]@16 ~@8, f#2@7 ~@49 [e3,g#3,b3,e4]@16 ~@24, ~ f#4@3 ~@44]/6", // B E B E
  I: "[e3@3 d#3 c#3 b2@3 [b2,f#3,b3,d#4,f#4]@16 ~@8, [f#3,b3,c#4,e4] ~@3]/2", // B F#sus4
})).s("gm_electric_guitar_clean").gain(0.47)

// chords · piano
const piano = note(`<
  ~@2 A B C D@2 C E@2 F G H D@2 C D@2 C E@2 F G H I J K J I J K J D@2 C D@2 C E@2 F G H I J K J I J K J L M L N@2 O P Q
  R S T S U@2 ~@4
>`.pickRestart({
  A: "[d#3,f#3,b3]!4", B: "[d#3,f#3,b3]@4 [d#3,f#3,b3]@4 [d#3,f#3,b3]@4 ~@2 d2 d#2, ~@3 [d#3,f#3,b3]",
  C: "[e2,e3,g#3,b3]@2 ~ e2 [e3,f#3,b3]@2 ~ f#2, ~@2 [e3,g#3,b3]@2 f#2@3 ~, ~@3 [e3,f#3,a#3]", // E Esus2 E F#7
  D: "[[d#3,f#3,b3]@4 [d#3,f#3,b3]@4 [d#3,f#3,b3]@4 [d#3,f#3,b3]@4 [d#3,f#3,b3]@4 [d#3,f#3,b3]@4 [d#3,f#3,b3]@4 ~@2 d2 d#2, b1@7 [d#3,f#3,b3]]/2", // B
  E: "[[d#3,f#3,b3]!4 [d#3,f#3,a3,b3]!4, b1]/2", // B B7
  F: "[g#3,b3,e4]@4 ~@2 e3 c#3 [f#3,b3,c#4]@4 [f#3,b3,c#4]@4, e2 f#2, ~ [g#3,b3,e4] ~@2", G: "[g#3,b3,d#4]!4, g#2 f#2",
  H: "[e2,e3,g#3,b3]@2 ~ e2 [f#3,b3,c#4,e4]@2 [f#3,a#3,c#4]@2, ~ [e3,g#3,b3] f#2@2", // E F#sus4 F# E
  I: "[f#3,b3,d#4]!2 [g3,b3,d#4]!2, b1 d#2", J: "[g#3,b3,d#4]!2 [f#3,b3,c#4] [f#3,a#3,c#4], e2 f#2",
  K: "[g#3,b3,d#4]!2 [f#3,b3,d#4]!2, g#2 f#2", L: "[e3,g#3,b3]!2 [d#3,f#3,b3]!2, e2 d#2",
  M: "[c#3,e3,g#3,b3]!2 [b2,d#3,f#3,a#3]!2, c#2 b1", // C#m7 Bmaj7
  N: "[[c#3,e3,g#3,b3]@2 [c#3,e3,g#3,b3]@2 [c#3,f#3,b3]@2 ~@2 [c#3,f#3,b3]@2 ~ f#2 [f#3,b3,d#4]@2 [f#3,b3,d#4]@2, c#2@4 f#2@3 f#2@4 ~ b1@4, ~@3 [c#3,f#3,b3] ~ [c#3,f#3,a#3] ~@2]/2", // C#m7 F#sus4 B F#sus4 F#
  O: "[g3,b3,d#4]!2 [g#3,b3,d#4]!2, d#2 e2", P: "[f#3,b3,c#4] [f#3,a#3,c#4] [g#3,b3,d#4]!2, f#2 g#2",
  Q: "[f#3,b3,d#4]!2 [g#3,b3,d#4]!2, f#2 e2", R: "[f#3,b3,c#4] [f#3,a#3,c#4] [b2,d#3,f#3]!2, f#2 ~",
  S: "[b2,d#3,f#3]!2 [b2,e3,g#3]!2", T: "[b2,e3,g#3]!2 [b2,d#3,f#3]!2", U: "[[b2,e3,g#3]!2 [b2,d#3,f#3]@4 ~@2]/2",
})).s("gm_piano").gain(0.47)

// chords · tuba
const tuba = note("<~@28 A@2 B C ~@11 A@2 B C A@2 B C ~@4 D@2 E F@2 ~@2 G@4 ~@3>".pickRestart({
  A: "[f#4@2 g4@2 g#4@2 [b3,c#4] [a#3,c#4,f#4], [b3,d#4]@3 ~]/2", B: "[d#4,g#4,b4] [c#4,f#4,a#4]",
  C: "[e4,g#4]@2 ~ a#3, b3@3 ~, ~ [c#4,f#4]", D: "[~ f#4 g4 g#4, ~ [b3,d#4]@3]/2",
  E: "[b3,c#4] [a#3,c#4,f#4] [d#4,g#4,b4]@2", // Bsus2 F# G#m
  F: "[[c#4,f#4,a#4]@2 [e4,g#4]@2 ~ a#3 ~@2, ~@2 b3@3 ~@3, ~@2 [c#4,f#4] ~]/2", // F# E F#5
  G: "[~ [d#4,f#4] [e4,g#4]@4 [b3,d#4,f#4]@8 ~@2, ~ b3@5 ~@10]/4", // D#m E B
})).s("gm_tuba").gain(0.05)

// drums · kick
const kick = s("bd").struct("<~@14 A@10 B@8 A@11 B@12 C D@3 E@8 F ~>".pickRestart({
  A: "x ~@6 x", B: "x ~@2 x ~@3 x", C: "x ~@2 x!2 ~@2 x", D: "~@3 x!2 ~@2 x", E: "~@3 x!2 ~@3", F: "~@3 x ~@4",
})).gain(0.63)

// drums · snare
const snare = s("sd").struct("<~@14 A@10 B@8 A@11 B@12 C D@3 E F@7 G ~>".pickRestart({
  A: "~ x!6 ~", B: "~ x", C: "~ x ~@2", D: "x", E: "x ~@4 x!3", F: "x!3 ~@2 x!3", G: "x!3 ~@5",
})).gain(0.24)

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

// drums · open hat
const open_hat = s("oh").struct("<~@25 A ~@3 A ~@14 A ~@3 A ~@3 A ~ B C D ~@12>".pickRestart({
  A: "~@3 x ~@4", B: "~@3 x!2 ~@3", C: "x!4 ~@4", D: "~@7 x",
})).gain(0.39)

// drums · crash
const crash = s("cr").struct("<~@14 A ~@9 A ~@3 A ~ A ~ A ~@10 A ~@3 A ~ A ~ A ~ A ~ B ~@3 B ~@9>".pickRestart({
  A: "x", B: "~ x",
})).gain(0.39)

// drums · tambourine
const tambourine = s("tb").struct("<~@24 A@8 ~@11 A@8 ~@4 B A@5 C ~@7>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~ x ~@2",
})).gain(0.55)

stack(
  bass, bass_soft, string_ensemble_2, pad_warm, string_ensemble_1, electric_guitar_clean, piano, tuba, kick, snare,
  hihat, open_hat, crash, tambourine
)

More by Celentano