Strudelify
Chi non lavora non fa l'amore cover art

1983 · Celentano Hit Parade (Le Volte Che Adriano È Stato Primo)

Chi non lavora non fa l'amore

Celentano

KeyB majorTempo124 bpm
0:00/0:00
// Chi non lavora non fa l'amore — Celentano
// 124 bpm, 2/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 13 choir aahs)
// note: Full arrangement: all 181 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(124/2)

// 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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano
const piano = note(`<
  ~@39 A B ~@2 A C@2 ~@3 D E F G@2 H ~@3 I ~ J K ~@3 L M@3 N@4 O@5 P@4 M@3 N@4 O@5 P@4 ~@2 Q@3 ~@6 R S@2 ~@2 R S@2 R S@2
  I ~ J K ~ T U V ~ W X V ~ W X Y Z AA ~ AA ~ AB ~ M@3 N@4 O@5 P@4 M@3 N@4 AC@7 AD@2 AE@6
>`.pickRestart({
  A: "~@11 [d4,b4] ~@2 [e4,b4] ~", B: "~@2 e4@3 f4@2 ~ d4@3 ~@5, ~@2 b4@9 ~@5, ~@7 e4@2 ~@7",
  C: "[~@2 e4@3 f4@2 ~ d4@3 ~ e4@3 ~@3 d4@3 ~@11, ~@2 b4@9 ~ b4@9 ~@11, ~@7 e4@2 ~@7 f4@2 ~@14, ~@17 e4@2 ~@13]/2",
  D: "~@2 [b2,b3,d4,f#4,b4] ~", E: "~ [b3,d4,f#4,b4]@4 ~@3 [b2,b3,d4,f#4,b4]@4 ~@4, b2 ~@3", F: "~@13 d6 ~@2",
  G: "[[b5,e6]@3 ~@2 [b5,f6]@6 ~@2 d6 ~ [b5,e6]@3 ~@3 [b5,f6]@6 ~@2 [b5,d6] ~@2]/2", H: "[b5,e6]@2 ~@3 [b5,f6]@4 ~@7",
  I: "~@8 [f#4,b4,d5]@3 ~@2 [f#4,b4,d5]@3", J: "~@5 [d4,d5,f#5,b5]@3 ~@8", K: "~@5 [a3,a4,e5,a5]@3 ~@8",
  L: "~@2 [b4,f#5] ~@2 [b4,f#5,b5] ~@2 [b4,f#5,b5] ~@2 [b4,f#5,b5] ~ [b4,f#5,b5] ~@2", // B5
  M: "[b2@7 ~@9 b3@4 ~ b3@3 ~@8 [b3,d#4,f#4]@16, [d#4,f#4]@19 ~@2 [d#4,f#4]@9 ~@18, b3@11 ~@37, ~@8 b2@14 ~@2 b2@23 ~]/3", // B D#m
  N: "[~@5 [b3,d#4,f#4]@9 ~@2 [d#4,f#4]@17 b3@3 ~ b3@4 ~@7 b3@10 ~@3 b3@3, b2@24 ~@17 b2@14 ~@9, ~@16 b3@14 ~@7 [d#4,f#4]@9 ~@2 f#4@16]/4", // B D#m
  O: "[~@5 b3@4 ~@15 b2@13 [d#4,f#4]@9 ~@2 [b3,d#4]@10 ~@14 b2@6 ~@2, ~@5 [d#4,f#4]@9 ~@2 [b3,d#4,f#4]@19 ~@2 b3@5 ~@19 [d#4,f#4]@17 ~@2, ~@9 b2@15 ~@23 b2@24 ~@9, ~@61 b3@14 ~@5]/5", // D#m B D#m B D#m
  P: "[[d#4,f#4]@19 ~@21 b2@13 ~@3 b2@8, b2@21 ~@3 b2@15 ~@14 b3@5 ~@6, b3@14 ~@7 [b3,d#4,f#4]@9 ~@2 [b3,d#4,f#4]@19 ~@2 [d#4,f#4]@8 ~@3]/4", // D#m B D#m
  Q: "[~@9 [e4,b4]@2 ~ [f4,b4] ~@6 f4@2 ~ d4@2 ~@3 b4@4 ~ e4@2 d4 ~@2 b4@4 ~ e4@2 d4@2 ~@2, ~@15 e4@4 ~@2 e4@2 ~@3 e4@4 ~ f4@2 ~@3 e4@4 ~ f4@2 ~@5, ~@16 b4@5 ~@27]/3", // E5 Fdim
  R: "~@3 [e4,b4]@2 f4 b4 ~ [e4,b4]@4 ~ e4@2 ~, ~@6 f4 ~", // E5
  S: "[~@2 e4@4 ~ e4 d4@2 ~ [e4,b4]@4 f4@2 [d4,e4] ~@14, ~@2 b4@7 ~@23, ~@3 f4 ~@12]/2", // E5 Dsus2
  T: "~@9 d5@4 [e4,a4,c#5]@3, ~@7 b4@5 ~@4, ~@2 f#4 ~", U: "[f#4,b4,d5]@2 ~@6 [f#4,b4,d5]@5 [e4,a4,c#5]@3",
  V: "[f#4,b4,d5]@3 ~@13", W: "~@8 [f#4,b4,d5]@5 [e4,a4,c#5]@3", X: "[f#4,b4,d5]@3 ~@5 [f#4,b4,d5]@5 [e4,a4,c#5]@3",
  Y: "[f#4,b4,d5]@3 ~@5 [b2,b3,b4,d5,f#5,b5]@3 ~@5", Z: "[b2,b3,b4,d5,f#5,b5]@3 ~@5 [b2,b3,b4,d5,f#5,b5]@3 ~@5",
  AA: "[b2,b3,b4,f#5,b5]@3 ~@13, d5 ~@15", AB: "~@8 [b2,b3,b4,f#5,b5]@3 ~@5, ~@8 d5 ~@7",
  AC: "[~@5 b3@4 ~@15 b2@13 [d#4,f#4]@9 ~@2 [b3,d#4]@10 ~@14 b2@6 ~@2 [d#4,f#4]@19 ~@5 b2@8, ~@5 [d#4,f#4]@9 ~@2 [b3,d#4,f#4]@19 ~@2 b3@5 ~@19 [d#4,f#4]@17 ~@34, ~@9 b2@15 ~@23 b2@24 ~@8 b2@23 ~@10, ~@61 b3@14 ~@5 b3@14 ~@7 [b3,d#4,f#4]@9 ~@2]/7", // D#m B D#m B D#m B
  AD: "[~@8 b2@13 ~@3 b2@8, [b3,d#4,f#4]@19 ~@2 [d#4,f#4]@8 ~@3, ~@21 b3@5 ~@6]/2", AE: "[[b2,b3,d#4,f#4]@95 ~]/6",
})).s("gm_piano").gain(0.38)

// chords · piano · soft notes
const piano_soft = note(`<
  A@4 ~@47 B@2 ~@12 C ~ D ~@2 E@2 F G ~ H ~ I ~ J ~@3 D ~@2 E@2 F G ~ H ~ I ~ J ~@13 K ~@4 K ~@2 K ~@26 D ~@2 E@2 F G ~
  H ~ I ~ J ~@3 D ~@2 E@2 F G ~ H ~ I ~ J ~@8
>`.pickRestart({
  A: "[~@17 f#4@31 ~@16, ~@14 b3@35 ~@15, ~@16 d#4@33 ~@15]/4", B: "~@13 b5 ~@2", C: "~@2 b5 ~@13", D: "~@6 b3 ~",
  E: "[~@8 b2@15 ~@5 b3@2 ~@2]/2", F: "~@8 b2@7 ~", G: "b2@3 ~@5", H: "~@8 b2@5 b3 ~@2", I: "~@13 b3 ~@2",
  J: "b3@3 ~@13", K: "~@7 d4",
})).s("gm_piano").gain(0.19)

// bass · electric bass pick
const bass = note(`<
  ~@21 A B A C A B A C A B A C A B A C D@28 E A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C D@38 F G ~
  G ~ H ~ A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C I@5 ~
>`.pickRestart({
  A: "b1@11 ~@2 b1@3", B: "f#1@3 ~@2 f#1 ~@2 f#1@5 a1@2 ~", C: "f#1@3 ~@2 f#1@8 a1@2 ~",
  D: "[b1@8 f#2@3 ~@2 a2@8 b2@2 ~ a2@5 f#2@2 ~]/2", E: "b1@5 ~@3 b1@5 ~@3", F: "b1 ~ b1 ~", G: "b1 ~@3", H: "~@2 b1 ~",
  I: "[b1@79 ~]/5",
})).s("gm_electric_bass_pick").gain(0.56)

// other · electric guitar clean
const electric_guitar_clean = note(`<
  ~@21 A B A B A B A B A B A B A B A B C@28 D 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 C@38 D E ~
  E ~ F ~ 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 G@5 ~
>`.pickRestart({
  A: "b2@11 ~@2 b2@3", B: "f#2@3 ~@2 f#2@8 a2@2 ~", C: "[b2@8 f#3@3 ~@2 a3@8 b3@3 a3 b3 ~ a3@2 f#3@3]/2",
  D: "b2 ~ b2 ~", E: "b2 ~@3", F: "~@8 b2@5 ~@3", G: "[b2@13 ~@3]/5",
})).s("gm_electric_guitar_clean").gain(0.48)

// other · baritone sax
const baritone_sax = note(`<
  ~@37 A@4 B C B C B C B C D E B C B C B C B F B C G C B C ~@35 B C B C B C B C B C B C B C B C B C B C H ~ C I ~ J K L
  ~ J K L ~ J K M@2 L ~ L ~ E ~ B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C ~@6
>`.pickRestart({
  A: "[b2@59 ~@5]/4", B: "~@13 b2@2 ~", C: "~@5 b2@2 ~@9", D: "~@8 b2@2 ~@3 b2@2 ~", E: "~@4 b2 ~@3",
  F: "~@5 b2@2 ~ b2@4 ~ b2@2 ~", G: "~@5 a2@2 ~@6 b2@2 ~", H: "~@8 b2@4 ~ b2@2 ~", I: "~@5 a2@2 ~@9",
  J: "~@8 b2@5 a2@3", K: "b2@3 ~@5 b2@5 a2@3", L: "b2 ~@7", M: "b2@3 ~@5 b2@2 ~@6",
})).s("gm_baritone_sax").gain(0.48).pan(0.9)

// other · baritone sax · soft notes
const baritone_sax_soft = note("<~@41 A@24 ~@35 A@20 ~@23 A@32 ~@6>".pickRestart({
  A: "[~@15 b2@4 ~@13]/2",
})).s("gm_baritone_sax").gain(0.24).pan(0.9)

// other · trumpet
const trumpet = note("<~@37 A@4 ~@55 B C D ~@6 E@2 F ~@3 G@2 ~@12 H I J ~ H I J ~ H I K L M ~ M ~ N ~@39>".pickRestart({
  A: "[[f#4,b4]@55 ~@9]/4", B: "~@11 [b4,d#5,g#5] ~@2 [b4,d#5,g#5] ~",
  C: "[d#5,g#5] ~@2 [b4,d#5,g#5] ~@2 [b4,d#5,g#5] ~ [b4,d#5,g#5] ~@2 [b4,d#5,g#5] ~ [b4,d#5,g#5] ~@2, b4 ~@7", // G#5 G#m
  D: "[b4,d#5,g#5] ~@3", E: "[~@15 d5@6 ~@3 b4@3 ~@2 g#4@2 ~]/2", F: "b4@2 b4@2 ~ g#4@3 ~@8",
  G: "~@3 d5@2 b4@2 ~ f#5@2 ~ f#5@3 ~@2", H: "~@8 b4@5 a4@2 ~", I: "b4@3 ~@5 b4@5 a4@3", J: "b4@3 ~@13",
  K: "b4@3 ~@5 f#5@3 ~@5", L: "f#5@3 ~@5 f#5@3 ~@5", M: "f#5@3 ~@13", N: "~@8 f#5@3 ~@5",
})).s("gm_trumpet").gain(0.42)

// chords · bagpipe
const bagpipe = note(`<
  ~@37 A@4 B@8 C D B@6 E@2 F@2 G@2 B@2 ~@31 H I J ~ B@20 K ~ L M ~ N O P ~ N O P ~ N O Q@2 R ~ R ~ S ~ T@2 U@2 T@2 U@2
  T@2 U@2 T@2 U@2 T@2 U@2 T@2 U@2 T@2 U@2 T@2 U@2 ~@6
>`.pickRestart({
  A: "[[d5,b5]@15 ~]/4", B: "[~@13 [f#5,d6]@6 ~@2 [f#5,d6]@2 ~@9]/2", C: "~@4 [f#5,d6,f#6] ~@3",
  D: "[f#5,d6,f#6] ~@3 [f#5,d6,f#6] ~@3", E: "[~@13 [f#5,d6]@6 ~@2 [f#5,d6]@2 ~ [b5,f#6]@4 ~ [b5,f#6]@3]/2",
  F: "[~@13 [f#5,d6]@6 ~@2 [d6,f#6,b6]@2 ~@9, ~@10 f#5 ~@5]/2", // D Bm
  G: "[~@5 [a5,e6,a6]@2 ~@7 d6@6 ~ [f#5,d6]@2 ~@9, ~@13 f#5@6 ~@13]/2", H: "~@11 [b5,d#6,g#6] ~@2 [b5,d#6,g#6] ~",
  I: "[d#6,g#6] ~@2 [b5,d#6,g#6] ~@2 [b5,d#6,g#6] ~ [b5,d#6,g#6] ~@2 [b5,d#6,g#6] ~ [b5,d#6,g#6] ~@2, b5 ~@7", // G#5 G#m
  J: "[b5,d#6,g#6] ~@3", K: "~@8 [b5,f#6]@4 ~ [b5,f#6]@3", L: "~@5 [d6,f#6,b6]@2 ~@9, ~@2 f#5 ~@5",
  M: "~@5 [a5,e6,a6]@2 ~@9", N: "~@8 [f#5,d6]@5 [e5,c#6]@3", O: "[f#5,d6]@3 ~@5 [f#5,d6]@5 [e5,c#6]@3",
  P: "[f#5,d6]@3 ~@13", Q: "[f#5,d6]@3 ~@5 [f#5,d6]@3 ~@5", R: "[f#5,d6,b6]@3 ~@13", S: "~@8 [f#5,d6,b6]@3 ~@5",
  T: "[~@14 d#6@6 ~ [f#5,d#6]@2 ~@9, ~@13 f#5@6 ~@13]/2", U: "[~@13 [f#5,d#6]@6 ~@2 [f#5,d#6]@2 ~@9]/2",
})).s("gm_bagpipe").gain(0.46)

// chords · tenor sax
const tenor_sax = note("<~@41 A@24 ~@35 A@36 ~@7 B@32 ~@6>".pickRestart({
  A: "[~@13 d4@6 ~@2 [f#3,b3,d4]@2 ~@9, ~@13 b3@2 ~@17, ~@13 f#3 ~@18]/2", // Bm
  B: "[~@13 d#4@6 ~@2 [f#3,b3,d#4]@2 ~@9, ~@13 b3@2 ~@17, ~@13 f#3 ~@18]/2", // B
})).s("gm_tenor_sax").gain(0.36).pan(0.3)

// chords · tenor sax · soft notes
const tenor_sax_soft = note(`<
  ~@42 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@36 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~@8 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@6
>`.pickRestart({
  A: "[f#3,b3] ~@3", // B5
})).s("gm_tenor_sax").gain(0.18).pan(0.3)

// chords · string ensemble 1
const string_ensemble_1 = note("<~@65 A@32 ~@45 A@8 B@8 C@8 B@8 D@6 ~>".pickRestart({
  A: "[~@15 [f#3,b3,d#4]@63 ~ [f#3,b3,d#4]@49]/8", // B
  B: "[~@16 d#6@15 c#6@9 b5@7 c#6@5 ~ b5@24 ~@2 b5@16 g#5@8 b5@8 g#5@8 f#5@9, ~@15 [b4,d#5]@62 ~@2 [b4,d#5]@49]/8", // B
  C: "[~@32 c#6@8 b5@7 c#6@5 ~ b5@24 ~@3 b5@15 g#5@8 ~ f#5@8 g#5@2 f#5@3 d#5@11, ~@15 f#4@113, ~@15 d#6@17 ~@96, ~ b4@7]/8",
  D: "[~@15 [f#3,b3,d#4]@79 ~@2]/6", // B
})).s("gm_string_ensemble_1").gain(0.28)

// drums · kick
const kick = s("bd").struct(`<
  ~@21 A B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 C A@3 B A@5 D@2 B A@4 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3
  B A@3 B A@3 B A@3 B A@3 B A@3 B A@2 D E A B@3 A@3 B A@3 F C ~@6 A B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B E G D
  ~@5
>`.pickRestart({
  A: "x ~@4 x ~@10", B: "x ~@4 x ~@7 x ~@2", C: "~@5 x ~@7 x ~@2", D: "x", E: "x ~@12 x ~@2", F: "~@13 x ~@2",
  G: "~@5 x ~@10",
})).gain(0.64)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@21 A ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@4 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~
  A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~@2 A@2 ~ A ~@3 A@3 ~ A@3 ~@8 A ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~@2 A ~@6
>`.pickRestart({
  A: "~@13 x ~@2",
})).gain(0.32)

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

// drums · clap
const clap = s("cp").struct("<A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@160>".pickRestart({
  A: "~ x",
})).gain(0.72)

// drums · low tom
const low_tom = s("lt").struct("<~@65 [~@13 x ~@2] ~@108 [~ x] ~@6>").gain(0.72)

// drums · hihat
const hihat = s("hh").struct("<~@22 A@28 ~ A@15 ~ A@15 ~ A@53 ~@8 A@15 ~ A@15 ~@6>".pickRestart({
  A: "x",
})).gain(0.64)

// drums · mid tom
const mid_tom = s("mt").struct("<~@65 [~@11 x ~@4] ~@108 [~@5 x ~@10] ~@6>").gain(0.72)

// drums · open hat
const open_hat = s("oh").struct("<~@21 A@28 ~@2 A@7 ~ A@6 ~ A@54 ~ A ~@2 A@11 ~@8 A@32 ~@6>".pickRestart({
  A: "~ x",
})).gain(0.72)

// drums · crash
const crash = s("cr").struct(`<
  ~@21 A ~@27 B C ~@7 D ~ E@2 ~@4 A ~@15 A ~@37 D ~ E@2 ~@11 B C A ~ A ~ B ~ A ~@15 A ~@15 A ~@5
>`.pickRestart({
  A: "x", B: "~ x", C: "x!2", D: "~@8 x ~@4 x ~@2", E: "~@5 x ~@10",
})).gain(0.64)

// drums · high tom
const high_tom = s("ht").struct("<~@64 [~@10 x ~@2 x ~@2] [x ~@2 x ~ x ~@2 x ~@7] ~@115>").gain(0.64)

stack(
  piano, piano_soft, bass, electric_guitar_clean, baritone_sax, baritone_sax_soft, trumpet, bagpipe, tenor_sax,
  tenor_sax_soft, string_ensemble_1, kick, kick_soft, snare, clap, low_tom, hihat, mid_tom, open_hat, crash, high_tom
)

More by Celentano