Strudelify

Nun me scuccia

Pino Daniele

KeyB♭ majorTempo90 bpm
0:00/0:00
// Nun me scuccia — Pino Daniele
// 90 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Piano, A" named as a piano, played on piano (its choir aahs patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5977957; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 54 bars on a 24-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 · [...]/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 · electric guitar clean · "Chitarra elettrica"
const electric_guitar_clean = note("<~@22 A@2 B C@4 D E@2 ~@22>".pickRestart({
  A: "[~@12 b4@18 bb4@2 a4@2 g4@2 g4@3 bb4@9]/2", B: "~@3 bb4 a4 g4 g4@2 e4 g4!2 e4",
  C: "[g4@4 b4@2 d5@2 e5@2 g5@2 bb5@18 d4@2 e4@2 g4@2 b4@18 b4@2 a4@2 b4@2 a4@9 c5@9 ~@6 e4@2 g4@2 a4@2 b4 a4 g4@2 e4@2]/4",
  D: "g4@3 bb4@9 e4@2 g4@2 a4@2 b4@2 d5@2 e5@2", E: "[g5!6 a5@9 ~@9]/2",
})).s("gm_electric_guitar_clean").gain(0.25)

// chords · piano · "Piano, B"
const piano = note(`<
  A B C D E F G H I J C D K@2 L M N O@2 M P Q R S T U B V W X Y Z M P Q AA C D K@2 L M N AB AC C AD C AD C AD C AE@2
>`.pickRestart({
  A: "[g3,d4]@4 [g3,d4]@2 [g3,d4]@4 [g3,d4]@2 [g3,d4]@11 ~", B: "~@6 [g3,d4]@2 [g3,d4] [g3,e4]@2 [g3,e4]",
  C: "[g3,d4]@2 [g3,d4] [g3,e4]@2 [g3,e4] [c4,g4]@2 [c4,g4] [c4,a4]@2 [c4,a4]", // G5 C C5 F
  D: "[c4,g4]@2 [c4,g4] [c4,a4]@2 [c4,a4] [b3,e4,g4]@3 [b3,e4,g4]@3", // C5 F Em
  E: "[b3,e4,g4]@3 [b3,e4,g4]@3 [eb4,bb4]@2 [eb4,bb4] [eb4,c5]@2 [eb4,c5]", // Em Eb5 Cm
  F: "[eb4,bb4]@2 [eb4,bb4] [eb4,c5]@2 [eb4,c5] [g3,d4]@2 [g3,d4] [g3,e4]@2 [g3,e4]", // Eb5 Cm G5 C
  G: "[g3,d4]@2 [g3,d4] [g3,e4]@2 [g3,e4] [d4,a4]@2 [d4,a4] [d4,b4]@2 [d4,b4]", // G5 C D5 G
  H: "[d4,a4]@2 [d4,a4] [d4,b4]@2 [d4,b4] [c4,g4]@2 [c4,g4] [c4,a4]@2 [c4,a4]", // D5 G C5 F
  I: "[c4,bb4]@4 [c4,bb4]@2 [c4,a4]@4 [c4,a4]@2 [b3,d4,g4]@11 ~", // C7 F G
  J: "[a3,c4,d4,gb4]@11 ~ [g3,d4]@4 [g3,d4]@2 [g3,e4]@4 [g3,e4]@2", // D7 G5 C
  K: "[[b3,e4,g4]@6 [b3,e4,g4]@6 [bb3,db4,eb4,g4]@17 ~@7 [g3,d4]@4 [g3,d4]@2 [g3,e4]@4 [g3,e4]@2]/2", // Em Eb7 G5 C
  L: "[g3,d4]@4 [g3,d4]@2 [g3,e4]@4 [g3,e4]@2 [a3,c4,d4,gb4]@11 ~", M: "~@12 [c4,e4,g4]@11 ~",
  N: "[c4,e4,g4,bb4]@11 ~ [b3,e4,g4]@11 ~", // C7 Em
  O: "[[bb3,db4,eb4,g4]@11 ~ [a3,c4,d4,gb4]@17 ~ a3@2 d4@2 eb4@2 [e4,g4,b4]@3 ~@9]/2", // Eb7 D7 Em
  P: "[b3,d4,gb4]@11 ~ [a3,c4,e4]@11 ~", Q: "~@8 [a3,a4]@2 [bb3,bb4]@2 [b3,d4,gb4]@11 ~",
  R: "[c4,d4,g4,a4]@3 d4 e4 g4 [g3,d4]@2 [g3,d4] [g3,e4]@2 [g3,e4]", // Csus2 G5 C
  S: "[g3,d4]@2 [g3,d4] [g3,e4]@2 [g3,e4] [c4,bb4]@2 [c4,bb4] [c4,a4]@2 [c4,a4]", // G5 C C7 F
  T: "[c4,bb4]@2 [c4,bb4] [c4,a4]@2 [c4,a4] [b3,e4,g4]@3 [b3,e4,g4]@3", // C7 F Em
  U: "[b3,e4,g4]@6 [b3,e4,g4]@6 [bb3,db4,eb4,g4]@11 ~", // Em Eb7
  V: "[g3,d4]@2 [g3,d4] [g3,e4]@2 [g3,e4] [a3,c4,d4,gb4]@2 [d4,gb4] [c4,d4,gb4]@2 [d4,gb4]", // G5 C D7 D D7 D
  W: "[c4,d4,gb4]@4 [d4,gb4]@2 [a3,c4,d4,gb4]@6 [c4,e4,g4]@11 ~", X: "[bb3,c4,e4,g4]@11 ~ [b3,d4,e4,g4]@11 ~",
  Y: "[bb3,db4,eb4,g4]@11 ~ [a3,c4,d4,gb4]@11 ~", Z: "~@6 a3@2 d4@2 eb4@2 [e4,g4,b4]@3 ~@9",
  AA: "[c4,d4,g4,a4]@11 ~ [g3,d4]@4 [g3,d4]@2 [g3,e4]@4 [g3,e4]@2", // Csus2 G5 C
  AB: "[bb3,db4,eb4,g4]@11 ~ [gb4,a4,c5]@2 [gb4,a4,c5]@2 [gb4,a4,c5]@2 [gb4,a4,c5]@2 [gb4,a4,c5]@2 [gb4,a4,c5]@2", // Eb7 Gbdim
  AC: "[gb4,a4,c5]!6 [g3,d4]@2 [g3,d4] [g3,e4]@2 [g3,e4]", // Gbdim G5 C
  AD: "[c4,g4]@2 [c4,g4] [c4,a4]@2 [c4,a4] [g3,d4]@2 [g3,d4] [g3,e4]@2 [g3,e4]", // C5 F G5 C
  AE: "[[c4,g4]@4 [c4,g4]@2 [c4,a4]@4 [c4,a4]@2 [d4,g4,b4]@23 ~@13]/2", // C5 F G
})).s("gm_piano").gain(0.34)

// chords · rock organ · "Organo Rotary, C"
const rock_organ = note("<~@18 A B C@2 D@7 E F@2 B C@2 G ~@7 H@8 I@3>".pickRestart({
  A: "~@4 [e4,g4,b4] ~@3", B: "~ [e4,g4,c5]", C: "[[d4,gb4,b4]@6 [c4,e4,a4]@9 ~ [a3,a4] [bb3,bb4] [b3,d4,gb4]@6]/2",
  D: "[[c4,d4,g4,a4]@2 [d4,g4,b4]@4 [c4,e4,g4,bb4]@4 [e4,g4,b4]@4 [db4,eb4,g4,bb4]@3 [c4,d4,gb4,a4] [d4,g4,b4]@4 [c4,d4,gb4,a4]@4 [c4,e4,g4]@2]/7", // Csus2 G C7 Em Eb7 D7 G D7 …
  E: "[c4,e4,g4,bb4] [e4,g4,b4]", F: "[[db4,eb4,g4,bb4]@4 [c4,d4,gb4,a4]@6 ~@2 [e4,g4,b4] ~@3]/2", G: "[c4,d4,g4,a4] ~",
  H: "[~ [d4,gb4,a4,c5]@2 [d4,g4,b4]@2 [c4,e4,g4]@2 [d4,g4,b4]@2 [c4,e4,g4]@2 [d4,g4,b4]@2 [c4,e4,g4]@2 [d4,g4,b4]]/8", // D7 G C G C G C G
  I: "[~ [c4,e4,g4]@2 [d4,g4,b4]@2 ~]/3", // C G
})).s("gm_rock_organ").gain(0.16)

// chords · rock organ · "Organo Rotary, C" · soft notes
const rock_organ_soft = note("<~@9 A@7 B C@2 ~@16 A@7 B D ~@10>".pickRestart({
  A: "[~ [d4,g4,b4]@2 [c4,e4,g4]@2 [e4,g4,b4]@2 [eb4,g4,bb4,db5]@2 [d4,g4,b4]@2 [d4,gb4,a4,c5]@2 [c4,e4,g4]]/7", // G C Em Eb7 G D7 C
  B: "[c4,e4,g4,bb4] [e4,g4,b4]", C: "[[eb4,g4,bb4,db5]@2 [d4,gb4,a4,c5]@3 ~@3]/2", D: "[eb4,g4,bb4,db5] ~",
})).s("gm_rock_organ").gain(0.1)

// bass · electric bass finger · "Basso elettrico, D"
const bass = note(`<
  ~@9 A B C D E F G H I J K L M N O P Q R S T U V@2 W X Y Z AA AB Q AC AD AE AF AG AH AI AJ AK AL AI AJ AK AM@2
>`.pickRestart({
  A: "~@3 d2 e2 g2 g1@2 g1 g1@2 g1", B: "g1@2 g1 g1@2 g1 c2@2 c2 c2@2 c2", C: "c2@2 c2 g2 e2 d2 e2!6",
  D: "e2!6 eb2@3 ~ eb2!2", E: "eb2@3 eb2!3 g1@2 g1 g1@2 g1", F: "g1@2 g1 d2 e2 g2 d2@2 d2 d2@2 d2",
  G: "d2@2 d2!2 gb2 a2 c2@2 c2 c2@2 c2", H: "bb1@2 bb1 bb1@2 bb1 e2@2 e2 e2@2 e2", I: "eb2@2 eb2 eb2@2 eb2 d2!6",
  J: "d2@6 a1@2 d2@2 eb2@2 e2@3 ~@9", K: "~@6 c2@3 c2 e2 g2", L: "b1@3 b1 d2 gb2 a1@2 a1 a1@2 a1",
  M: "a1@4 a1 bb1 b1@3 g2 e2 d2", N: "g2@2 e2@2 d2@2 g2@4 g2@2 g1 ~@3 g1@2 d2@2 e2@2 g2@2",
  O: "g1 ~@3 g1@2 d2@2 e2@2 g2@2 c2 ~@3 c2@2 bb2@2 g2@2 e2@2",
  P: "c2 ~@3 c2@2 bb2@2 g2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2", Q: "e2!6 eb2!6",
  R: "eb2@2 eb2@2 eb2@2 d2@2 e2@2 g2@2 g1 ~@3 g1@2 g2@2 e2@2 d2@2", S: "g1@2 g1 g1@2 g1 d2@2 d2 c3 a2 g2",
  T: "d2@2 d2 c3 a2 g2 c2!6", U: "bb1!6 e2!6",
  V: "[eb2@2 eb2@2 eb2@2 eb2@2 eb2@2 eb2@2 d2@18 a1@2 d2@2 eb2@2 e2@3 ~@9]/2", W: "~@6 c2@3 e2 g2 a2",
  X: "b1@3 d2 gb2 a2 a1@3 ~ a1!2", Y: "a1@3 ~ a1 bb1 b1@3 g2 e2 d2", Z: "g2 e2 d2!2 b1 a1 g1@2 g1 b1 d2 e2",
  AA: "g2 e2 d2 b1 d2 e2 c2@2 c2 e2 g2 a2", AB: "c3 a2 g2 e2 g2 a2 e2!6",
  AC: "eb2@3 ~@3 g2@2 g2@2 g2@2 g1@4 g1@2 g1@4 g1@2", AD: "g1@2 g1 g2 f2@2 d2@2 d2 d2@2 d2",
  AE: "d2@2 d2 c3 a2 g2 c2@2 c2 c2@2 c2", AF: "bb1@2 bb1 bb1@2 bb1 e2@2 e2 ~ e2!2", AG: "eb2@2 eb2 ~ eb2!2 d2!6",
  AH: "d2!6 g1@2 g1 d2 e2 g2", AI: "g1@2 g1 d2 e2 g2 c2@2 c2 g2 a2 c3", AJ: "c2@2 c2 g2 a2 c3 g1@2 g1 b1 d2 e2",
  AK: "f2 e2 d2 b1 d2 e2 c2@2 c2 g2 a2 c3", AL: "c2@2 c2 a2 g2 e2 g1@2 g1 d2 e2 g2",
  AM: "[c2@2 c2 a2 g2 e2 g1@12 ~@6]/2",
})).s("gm_electric_bass_finger").gain(0.11)

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

// drums · snare
const snare = s("sd").struct("<~@9 A B@8 ~ C B@2 C B@3 C B@4 ~ C B@2 C B@7 D A B@7 E ~>".pickRestart({
  A: "x!6 ~@3 x ~@2", B: "~ x ~ x", C: "~@3 x", D: "~@3 x ~@2 x!6", E: "~ x ~@2",
})).gain(0.35)

// drums · low tom
const low_tom = s("lt").struct("<~@18 [~@5 x ~@6] [~@4 x!2 ~@6] ~@12 [~@4 x!2 ~@6] ~@21>").gain(0.35)

// drums · hihat
const hihat = s("hh").struct("<~@9 A B@8 C ~@3 D E@3 F E@4 G ~@3 A B@7 H I J@7 K ~>".pickRestart({
  A: "~@2 x!2", B: "x!4", C: "x!2", D: "~@6 x ~ x!2 ~ x", E: "x ~ x!2 ~ x!2 ~ x!2 ~ x", F: "x ~ x ~@3 x ~ x!2 ~ x",
  G: "x", H: "x!2 ~@2", I: "~@8 x!2 ~ x", J: "x ~ x!2 ~ x ~@2 x!2 ~ x", K: "x ~ x!2 ~ x ~@6",
})).gain(0.35)

// drums · mid tom
const mid_tom = s("mt").struct("<~@18 A B ~@2 C ~@3 A ~@4 A B ~@2 C ~@18>".pickRestart({
  A: "~@3 x!2 ~@7", B: "~ x ~@2", C: "~@3 x!3 ~@6",
})).gain(0.35)

// drums · high tom
const high_tom = s("ht").struct("<~@26 [~@5 x ~@6] ~@4 [~@5 x ~@6] ~@22>").gain(0.35)

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

// drums · ride
const ride = s("rd").struct("<~@19 A B@2 C ~@9 A B@2 C ~@18>".pickRestart({
  A: "~@7 x!5", B: "x!12", C: "x!3 ~@9",
})).gain(0.35)

stack(
  electric_guitar_clean, piano, rock_organ, rock_organ_soft, bass, kick, snare, low_tom, hihat, mid_tom, high_tom,
  crash, ride
)

More by Pino Daniele