Strudelify

Dimmi che credi

Antonello Venditti

KeyB majorTempo116 bpm
0:00/0:00
// Dimmi che credi — Antonello Venditti
// 116 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 134 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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 · synth bass 2
const bass = note(`<
  ~@4 A B C D A B C D E@3 F E@3 F G H I J K L M N E@3 F E@3 F G H I J K L O P A B C D A B C D Q R S D T U V@2 W@3 X W@3
  X N Y Z AA B C AB AC AD AE AF K AD AE AF K N Y Z AA B C AB AG@2 B C D A B C D G H I J K L O AH@3 AE AF K AD AE AI AJ
  AK@2 AL AM AK@2 AL AM AK@2 AL AM AK@2 AL AN ~
>`.pickRestart({
  A: "e2@5 ~ e2 ~ e2@7 ~", B: "d#2@5 ~ d#2 ~ d#2@8", C: "c#2@4 ~@2 c#2 ~ c#2@7 ~", D: "b1@5 ~ b1 ~ b1@8",
  E: "e2!2 g#1@2 b1@2 e2@4 e1@3 ~ e1@2", F: "e2 g#1 a1 b1@5", G: "a1@5 ~ a1 ~ a1@7 ~", H: "g#1@5 ~ g#1 ~ g#1@7 ~",
  I: "f#1@5 ~ f#1 c#2 d#2@7 ~", J: "e2@5 ~ e2 ~ d#2@7 ~", K: "c#2@5 ~ c#2 ~ c#2@8", L: "b1@4 ~@2 b1 ~ b1@7 ~",
  M: "a1@5 ~ a1@2 f#1@7 ~", N: "b1@5 ~ b1 ~ b1@7 ~", O: "a1@5 ~ a1@2 f#1@8",
  P: "b1 ~ b1@2 b1@2 b1@2 b1@2 b1 ~ b1@2 b1@2", Q: "a1@4 ~@2 a1 ~ a1@8", R: "e2@5 ~ e2 ~ d#2@8",
  S: "c#2@5 ~ c#2 ~ a1@8", T: "a1@5 ~ a1 ~ a1@8", U: "e2@5 ~ e2@2 e1@8",
  V: "[b1 f#1 a1 b1 d#2 e2 f#2 c#2@2 g#1 c#2 d#2 f2 f#2 g#2@2]/2", W: "f#2!2 a#1@2 c#2@2 f#2@4 f#1@3 ~ f#1@2",
  X: "f#2 a#1 b1 c#2@5", Y: "a#1@5 ~ a#1 ~ a#1@7 ~", Z: "g#1@5 ~ g#1 d#2 f2@7 ~", AA: "f#2@5 ~ f#2 ~ f2@7 ~",
  AB: "b1@5 ~ b1@2 g#1@8", AC: "c#2 ~ c#2@2 c#2@2 c#2 ~ c#2@2 c#2@2 c#2 ~ c#2@2", AD: "f#2@5 ~ f#2 ~ f#2@7 ~",
  AE: "f2@5 ~ f2 ~ f2@8", AF: "d#2@4 ~@2 d#2 ~ d#2@7 ~",
  AG: "[c#2@2 g#1@2 b1@2 c#2@2 f2@2 f#2@2 g#2@2 e2@7 ~ e2 ~ e2@7 ~]/2",
  AH: "[b1@2 f#1@2 a1@2 b1@2 d#2@2 e2@2 f#2@2 c#2@4 g#1@2 c#2@2 d#2@2 f2@2 f#2@2 g#2@2 f#2@7 ~ f#2 ~ f#2@7 ~]/3",
  AI: "d#2@4 ~@2 d#2 ~ d#2@8", AJ: "c#2@4 f1@2 f#1 ~ f#1@2 g#1 ~ g#1@2 c#2@2",
  AK: "f#2!2 a#1@2 c#2@2 f#2@2 ~ f#1 ~@2 f#1@2 ~ f#1", AL: "f#2!2 a#1@2 c#2@2 f#2@2 ~ f#1@2 ~ f#1@2 ~ f#1",
  AM: "f#2!2 a#1@2 b1@2 c#2@2 ~ c#2 ~@2 c#2@3 ~", AN: "f#2!2 a#1@2 b1@2 c#2@2 ~ c#2 ~@2 c#2@2 ~@2",
})).s("gm_synth_bass_2").gain(0.45)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@4 A@2 B@2 A@2 B@2 ~@32 A@2 B@2 A@2 B@2 ~@24 C@2 D@2 C@2 D@2 ~@7 E@2 A B@2 A@2 B@2 ~@8 F@2 C D@2 C@2 D@2 C@2 D@2 C@2
  D@2 C@2 D@2 C@2 D@2 ~
>`.pickRestart({
  A: "[g#4,g#5] [a4,a5] [b4,b5] [a4,a5]@2 [g#4,g#5]@3", // G# A B A G#
  B: "[[g#4,g#5] [a4,a5] [b4,b5] [a4,a5]@2 [g#4,g#5]@2 [f#4,f#5]@9]/2", // G# A B A G# F#
  C: "[a#4,a#5] [b4,b5] [c#5,c#6] [b4,b5]@2 [a#4,a#5]@3", // A# B C# B A#
  D: "[[a#4,a#5] [b4,b5] [c#5,c#6] [b4,b5]@2 [a#4,a#5]@2 [g#4,g#5]@9]/2", // A# B C# B A# G#
  E: "[~@7 [g#4,g#5]@2 [a4,a5] [b4,b5] [a4,a5]@2 [g#4,g#5]@3]/2", // G# A B A G#
  F: "[~@7 [a#4,a#5]@2 [b4,b5] [c#5,c#6] [b4,b5]@2 [a#4,a#5]@3]/2", // A# B C# B A#
})).s("gm_string_ensemble_1").gain(0.4)

// other · overdriven guitar
const overdriven_guitar = note("<A@4 ~@54 B@2 ~@31 C@2 ~@14 D@3 ~@24>".pickRestart({
  A: "[~@8 d#4 ~ d#4 c#4 ~ c#4 b3@2, b3@5 b3@9 ~@2, ~@4 e4@11 ~@17]/2",
  B: "[b3 f#3 a3 b3 d#4 e4 f#4 c#4@2 g#3 c#4 d#4 f4 f#4 g#4@2]/2", C: "[c#4 g#3 b3 c#4 f4 f#4 g#4 e4@5 ~@4]/2",
  D: "[b3 f#3 a3 b3 d#4 e4 f#4 c#4@2 g#3 c#4 d#4 f4 f#4 g#4 f#4@3 ~@6]/3",
})).s("gm_overdriven_guitar").gain(0.35).pan(0.8)

// chords · overdriven guitar
const overdriven_guitar_2 = note(`<
  A B@2 C ~@3 D@2 ~@2 E F@4 G@5 H I J K L M L F@4 G@5 H I J K L M L ~@3 D@2 ~@2 E M N O L M P Q@2 R@4 S@4 T U V W X K L
  K ~@3 Y@2 ~@2 Z ~@7 AA@2 ~@2 D@2 ~@2 AB@2 H I J K L M AC@3 ~@2 Y@2 ~@2 AD@2 ~@2 Y@2 ~@2 AD@2 ~@2 Y@2 ~@2 AE ~
>`.pickRestart({
  A: "e3 b3 e4 e3 b3 e4 e3 b3", B: "[d#4 f#3 b3 d#4 f#3 b3 d#4 e3@2 b3 e4 e3 b3 e4 e3 b3]/2",
  C: "d#4 f#3 b3 d#4 f#3 b3 d#4 b3", D: "[~@4 e4 d#4 c#4 [e3,b3]@7 ~@2, ~@4 b3@3 ~@9]/2",
  E: "~@4 e4 d#4 c#4 b3, ~@4 b3@3 ~",
  F: "[~@8 e4@3 d#4@3 e4@8 ~@2 e4@3 d#4@3 e4@8 ~@2 e4@3 d#4@3 e4@9 ~ d#4@8, b3@63 ~]/4",
  G: "[~@8 e4@3 d#4@3 e4@8 ~@2 e4@3 d#4@3 e4@8 ~@2 e4@3 d#4@3 e4@8 ~@2 e4@3 d#4@3 ~@2 a2@16, b3@31 c#4@3 ~@6]/5",
  H: "g#2", I: "f#2", J: "e3 d#3", K: "c#3", L: "b2", M: "a2", N: "e3 b2", O: "c#3 a2", P: "e3!2",
  Q: "[b2 f#2 a2 b2 d#3 e3 f#3 c#3@2 g#2 c#3 d#3 f3 f#3 g#3@2]/2",
  R: "[~@8 f#4@3 f4@3 f#4@8 ~@2 f#4@3 f4@3 f#4@8 ~@2 f#4@3 f4@3 f#4@9 ~ f4@8, c#4@63 ~]/4",
  S: "[~@8 f#4@3 f4@3 f#4@8 ~@2 f#4@3 f4@3 f#4@8 ~@2 f#4@3 f4@3 f#4@8 ~@2 f#4@3 f4@3 d#4@2, c#4@31 ~]/4", T: "b2@15 ~",
  U: "a#2@15 ~", V: "g#2@15 ~", W: "f#3@7 ~ f3@8", X: "d#3", Y: "[~@4 f#4 f4 d#4 [f#3,c#4]@7 ~@2, ~@4 c#4@3 ~@9]/2",
  Z: "~@4 f#4 f4 d#4 c#4, ~@4 c#4@3 ~", AA: "[c#4@2 g#3@2 b3@2 c#4@2 f4@2 f#4@2 g#4@2 e4@9 ~@9]/2",
  AB: "[~@4 e4 d#4 b3 ~ a2@8, ~@4 b3@2 ~ c#4@2 ~@7]/2",
  AC: "[b2 f#2 a2 b2 d#3 e3 f#3 c#3@2 g#2 c#3 d#3 f3 f#3 g#3 f#3@2 ~@7]/3",
  AD: "[~@4 f#4 f4 d#4 c#4@2 ~@7, ~@2 c#4 ~@5]/2", AE: "~@4 f#4 f4 d#4 c#4, ~@2 c#4 ~",
})).s("gm_overdriven_guitar").gain(0.17).pan(0.3)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  A B A B C@8 D E@2 F@2 G H I J K@6 L@2 E@2 F@2 G H I J K@6 M@5 C@4 N O P Q P@2 ~@2 R S@2 T@2 U V W ~@8 X@8 ~@8 C@8 ~@9
  X@24 ~
>`.pickRestart({
  A: "b3", B: "~@2 b4@2 d#4@2 c#4@4 c#4@2 b3@3 ~, d#4 ~@3",
  C: "[~@4 b3!2 ~@4 b3 ~@3 b3@4 ~@2 b3!2 ~@4 b3 ~@3 b3@5 ~ b3!2 ~@4 b3 ~@3 b3@5 ~ b3!2 ~@4 b3 ~@3 b3@2]/4",
  D: "b3 ~@2 b3 ~@2 b3 ~ e4 ~ d#4!2 ~@2 e4@2", E: "b3 ~@2 b3 ~@2 b3 ~ e4 ~@2 d#4 ~@2 e4 ~",
  F: "[b3 ~@2 b3 ~@2 b3 ~ d#4@3 c#4@3 b3@4 ~ b3 ~@2 b3 ~ e4@2 ~ d#4 ~@2 e4@2]/2",
  G: "b3 ~@2 b3 ~@2 b3 ~ e4 ~@2 d#4@2 ~ e4 ~", H: "b3 ~@2 b3 ~@2 b3 ~ e4@2 ~ d#4@3 e4 ~",
  I: "b3 ~@2 b3 ~@2 b3 ~ e4@3 d#4@3 c#4@2", J: "e4 ~@2 e4 ~@2 e4 ~ e4!3 ~ e4 ~@3",
  K: "e4 ~@2 e4 ~@2 e4 ~@2 e4 ~@2 e4 ~@3", L: "[~@10 d#4 ~ c#4@2 b3@4 ~ b3 ~@2 b3 ~ e4 ~ d#4!2 ~@2 e4@2, ~ e4 ~@2]/2",
  M: "[~@10 d#4 ~ c#4@2 b3@4 ~@2 b3!2 ~@4 b3 ~@3 b3@4 ~@2 b3!2 ~@4 b3 ~@3 b3@5 ~ b3!2 ~@4 b3 ~@3 b3@5 ~ b3!2 ~@4 b3 ~@3 b3@2, ~ e4 ~@8]/5",
  N: "e4 ~ e4 ~ e4 ~ e4 ~ e4!2 ~ e4 ~@2 e4 ~", O: "~@2 e4 ~ e4!2 ~@2 e4 ~@2 e4 ~@2 e4 ~",
  P: "~@2 e4 ~ e4!2 ~ e4 ~@2 e4 ~@3 e4 ~", Q: "e4 ~ e4 ~ e4!2 ~ e4 ~@2 e4 ~@3 e4 ~",
  R: "~@3 c#4 ~@2 c#4 ~ f#4 ~ f4!2 ~@2 f#4@2", S: "c#4 ~@2 c#4 ~@2 c#4 ~ f#4 ~@2 f4 ~@2 f#4 ~",
  T: "[c#4 ~@2 c#4 ~@2 c#4 ~ f4@3 d#4@3 c#4@4 ~ c#4 ~@2 c#4 ~ f#4@2 ~ f4 ~@2 f#4@2]/2",
  U: "c#4 ~@2 c#4 ~@2 c#4 ~ f#4 ~@2 f4@2 ~ f#4 ~", V: "c#4 ~@2 c#4 ~@2 c#4 ~ f#4@2 ~ f4@3 f#4 ~",
  W: "c#4 ~@2 c#4 ~@2 c#4 ~ f#4@3 f4@3 d#4@2",
  X: "[~@4 c#4!2 ~@4 c#4 ~@3 c#4@4 ~@2 c#4!2 ~@4 c#4 ~@3 c#4@5 ~ c#4!2 ~@4 c#4 ~@3 c#4@5 ~ c#4!2 ~@4 c#4 ~@3 c#4@2]/4",
})).s("gm_electric_guitar_muted").gain(0.35).pan(0.6)

// other · lead 5 charang
const lead_5_charang = note("<~ A B ~@28 C@2 ~@101>".pickRestart({
  A: "~@3 c#5", B: "b4@3 ~", C: "[~@8 d#5@3 c#5@3 b4@10 ~@8]/2",
})).s("gm_lead_5_charang").gain(0.4)

// other · synth brass 2
const synth_brass_2 = note(`<
  ~@4 A B C D A B C D ~@16 C B C D C B C D E A F G H@2 E D A B C D A B C D E I J@2 K@2 L@2 B M B N B M B N O E P Q R@2 O
  N E M B N E M B N O E P Q R@2 O S@2 I T A U I T A E A F G H@2 E V@3 W X E Y W X E Z W X E Y W X E Z W X E Y W X E ~
>`.pickRestart({
  A: "b3", B: "f#4", C: "e4", D: "e4 d#4", E: "c#4", F: "a3 b3", G: "g#4 f#4", H: "[e4@5 d#4 e4 g#4]/2", I: "b3 f#4",
  J: "[e4@3 d#4]/2", K: "e4/2", L: "[b3@7 c#4@9]/2", M: "g#4", N: "f#4 f4", O: "d#4", P: "b3 c#4", Q: "a#4 g#4",
  R: "[f#4@5 f4 f#4 a#4]/2", S: "[g#4@14 e3@13 ~ e3 f#3 g#3 a3]/2", T: "e4@3 c#4", U: "e3@12 e3 f#3 g#3 a3",
  V: "[b3@14 c#4@16 f#3@13 ~ f#3 g#3 a#3 b3]/3", W: "c#4 g#4", X: "f#4@3 d#4", Y: "f#3@12 f#3 g#3 a#3 b3",
  Z: "f#3@11 ~ f#3 g#3 a#3 b3",
})).s("gm_synth_brass_2").gain(0.4).pan(0.3)

// other · marimba
const marimba = note(`<
  [b4 ~ e5 ~ f#5 ~ b4 ~ b5 ~ b4 ~ f#5 ~ e5 ~]!3
  [b4 ~ e5 ~ f#5 ~ b4 ~ b5 ~ b4 ~ e5 ~ d#5 ~]
  ~@130
>`).s("gm_marimba").gain(0.35).pan(0)

// chords · synth brass 1
const synth_brass_1 = note("<~@113 A ~@3 B C A D B C A D B C A D B C A D ~>".pickRestart({
  A: "[f#4,c#5,f#5]!2 ~ [f#4,c#5,f#5] ~ [f#4,c#5,f#5]!2 ~ [f#4,c#5,f#5] ~ [f#4,c#5,f#5] ~@5", // F#5
  B: "[f#4,c#5,f#5]!2 ~ [f#4,c#5,f#5] ~ [f#4,c#5,f#5] ~ [f#4,c#5,f#5] ~ [f#4,c#5,f#5]!2 ~@5", // F#5
  C: "~@2 [f#4,c#5,f#5] ~@2 [f#4,c#5,f#5] ~@2 [f#4,c#5,f#5] ~@7", // F#5
  D: "~ [f#4,c#5,f#5] ~@2 [f#4,c#5,f#5] ~@4 [f#4,c#5,f#5] ~@2 [f#4,c#5,f#5] ~@3", // F#5
})).s("gm_synth_brass_1").gain(0.29).pan(0.8)

// other · rock organ
const rock_organ = note("<~@12 A@3 B A@3 B C D E F G F C H A@3 B A@3 B ~@16 I A J A I A ~@76>".pickRestart({
  A: "e7 e6 b6 e6 e7 e6 b6 e6 e7 e6 b6 e6 e7 e6 b6 e6", B: "e7 e6 b6 e6 e7 e6 b6 e6 d#7 d#6 b6 d#6 d#7 d#6 b6 d#6",
  C: "e6 e5 a5 e5 e6 e5 a5 e5 e6 e5 a5 e5 e6 e5 a5 e5", D: "e6 e5 g#5 e5 e6 e5 g#5 e5 e6 e5 g#5 e5 e6 e5 g#5 e5",
  E: "e6 e5 a5 e5 e6 e5 a5 e5 e6 e5 b5 e5 e6 e5 b5 e5", F: "e6 e5 b5 e5 e6 e5 b5 e5 e6 e5 b5 e5 e6 e5 b5 e5",
  G: "e6 e5 c#6 e5 e6 e5 c#6 e5 e6 e5 c#6 e5 e6 e5 c#6 e5", H: "e6 e5 b5 e5 e6 e5 b5 e5 d#6 e5 b5 e5 d#6 e5 b5 e5",
  I: "e7 e6 a6 e6 e7 e6 a6 e6 e7 e6 a6 e6 e7 e6 a6 e6", J: "e7 e6 c#7 e6 e7 e6 c#7 e6 e7 e6 c#7 e6 e7 e6 c#7 e6",
})).s("gm_rock_organ").gain(0.1).pan(0.2)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@20 A B C D E@4 ~@8 A B C D E@4 ~@8 F G H@2 F I J@2 ~@8 K L M N O@4 ~@8 K L M N P@3 Q ~@8 A B C D R@5 S T U V S T U V
  S T U V S T U V S T U V S T U V ~
>`.pickRestart({
  A: "a4", B: "g#4", C: "a4 b4", D: "e5 d#5", E: "[e5@7 d#5]/4", F: "[a3,c#5]", G: "[e3,b4] [d#3,a4]",
  H: "[[c#3,g#4] a2 ~ d#4, ~ e4@2 ~, ~ b2]/2", I: "b4 e4, e3", J: "[[f#3,f#4]@7 [g#3,g#4]@9]/2", K: "b4", L: "a#4",
  M: "b4 c#5", N: "f#5 f5", O: "[f#5@7 f5]/4", P: "f#5/3", Q: "g#5@3 ~",
  R: "[~@24 [f#3,f#4]@7 [g#3,g#4]@9, e5@7 ~@3]/5", S: "[f#3,a#4]", T: "[f3,g#4]", U: "[d#3,f#4]", V: "[c#3,g#4]",
})).s("gm_string_ensemble_2").gain(0.35).pan(0.6)

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

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

// drums · clap
const clap = s("cp").struct(`<
  ~@4 A@8 ~@3 B A@4 ~ B ~ B ~ B ~@5 B ~@5 B ~ B ~ B ~@2 A@14 ~@5 B ~@5 B ~ B ~ B ~@2 A@8 ~ B ~ B ~ B ~@2 A@8 ~ B ~ B ~ B
  ~@3 A@24 ~
>`.pickRestart({
  A: "~@5 x ~ x", B: "~@5 x!3",
})).gain(0.56)

// drums · low tom
const low_tom = s("lt").struct("<[x!5 ~@5 x!5 ~] [x!5 ~@11] [x!5 ~@5 x!5 ~] [x!5 ~@11] ~@130>").gain(0.4)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@4 A@8 ~@4 A@4 ~@24 A@14 B A ~@16 A@8 ~@8 A@8 ~@7 B A@25 ~>".pickRestart({
  A: "~ x ~@3 x ~@2", B: "~ x ~@6",
})).gain(0.4)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@12 A B@3 A B@2 C ~@8 A B@3 A B@2 C ~@22 D E A B@3 A B@2 C ~@19 E ~ E F G ~@15 D ~@26
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "x!3 ~", D: "~@4 x!2 ~@2", E: "~@7 x", F: "~ x", G: "~@2 x!2",
})).gain(0.48)

// drums · mid tom
const mid_tom = s("mt").struct("<~@83 A ~@15 A ~@16 A ~@7 A ~@7 A ~>".pickRestart({
  A: "~@15 x",
})).gain(0.56)

// … 27 more lines

More by Antonello Venditti