Strudelify
Mi fai stare bene cover art

Mi Fai Stare Bene

Mi fai stare bene

Biagio Antonacci

KeyE majorTempo82 bpm
0:00/0:00
// Mi fai stare bene — Biagio Antonacci
// 82 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 76 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 30, guitar program 30.
setcpm(82/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.

// chords · epiano1
const epiano1 = note("<A@12 B@2 A@10 C@2 ~@4 A@14 C@2 A@2 D E ~@8 A@6 C@4 ~@8>".pickRestart({
  A: "[e2,b3,e4,g#4]@7 ~ [e2,b3,e4,a4] ~ [e2,b3,e4,a4]@3 ~ [e2,e4,a4] ~", // E Esus4 A5
  B: "[[e2,b3,e4,g#4]@7 ~ e4 d#4 ~ c#4 ~ d#4 [e2,a4] ~ [e2,b3,g#4]@7 ~ e4 d#4 ~ c#4 ~ d#4 [e2,a4] ~, ~@8 [e2,b3,a4]@5 ~ e4@9 ~ [e2,b3,a4]@5 ~ e4@2]/2", // E A5 E A5 Esus4
  C: "[f#3,a3,c#4,e4]", D: "[a3,c#4,e4]@13 ~@3", E: "[b3,d#4,f#4]@7 ~",
})).s("gm_epiano1").gain(0.36)

// chords · epiano1 · soft notes
const epiano1_soft = note("<[~@14 b3 ~]!24 ~@6 [~@14 b3 ~]!14 ~@2 [~@14 b3 ~]!2 ~@10 [~@14 b3 ~]!6 ~@12>")
  .s("gm_epiano1").gain(0.24)

// bass · electric bass finger
const bass = note("<~@13 A B@10 C D E@3 F B@14 C@2 G@2 H I E@8 B@3 J B@2 C@4 E@4 K@3 ~>".pickRestart({
  A: "~@3 e3", B: "e1 ~ e1@5 d2 e2 d2 e2@4 b1 d2", C: "f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~",
  D: "f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ b1@4", E: "e1 ~ e1@2 e2!2 d2 g2@3 e2 d2 e2 d2 b1@2",
  F: "e1 ~ e1@2 e2!2 d2 g2@3 e2 d2 e2 ~@3", G: "g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~",
  H: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1!2", I: "b1!16", J: "e1 ~ e1@5 f#3@3 d3 b2 d3 b2 f#2 g#2", K: "e1/3",
})).s("gm_electric_bass_finger").gain(0.52)

// other · rock organ
const rock_organ = note("<~@24 A B C ~@17 A B D E@2 F ~@26>".pickRestart({
  A: "f#4@14 g#4 a4", B: "b4@7 a4 f#4@8, ~@8 g#4 ~@7", C: "e4 ~@7", D: "g#4@14 g#4 a4", E: "b4@14 g#4 a4",
  F: "[d#4,f#4,b4]", // B
})).s("gm_rock_organ").gain(0.72).pan(0.4)

// other · string ensemble 1
const string_ensemble_1 = note("<~@18 A@6 B@2 ~@12 A@6 B@2 C@2 ~@10 A@6 B@4 ~@8>".pickRestart({
  A: "g#4 a4", B: "[a4@15 ~]/2", C: "[g#4@15 ~]/2",
})).s("gm_string_ensemble_1").gain(0.48).pan(0.6)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@18 A@6 B@2 ~@12 A@6 B@2 A@2 C D ~@8 A@6 B@4 ~@8>".pickRestart({
  A: "~@3 g#3 a3@4, g#3@3 ~@5, ~@3 e4@13", B: "~@3 g#3 a3@4, a3@3 ~@5, ~@3 e4@13",
  C: "a2@3 ~@3 a2 ~@4 e3@3 a2 ~, ~@3 e3@7 ~@6, ~@8 a2@5 ~@3", D: "~@6 b2 ~ b2@3 f#3@3 b2 ~, b2@5 ~@11, ~@3 f#3@5 ~@8",
})).s("gm_electric_guitar_clean").gain(0.4).pan(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<A@24 B@2 C@3 D A@14 B@2 E@2 F G C@8 A@6 B@4 C@4 H ~@3>".pickRestart({
  A: "[e2,b2]@2 [e2,b2]@2 [e3,g#3]@2 [e3,g#3] [e2,e3,g#3,b3,e4] [e3,g#3] [e3,a3,b3] [b2,e3,a3,b3] [b2,e3,a3] [b2,e3,a3,b3,e4]@2 ~ [a3,b3,e4], g#3@4 [b2,b3,e4]@4 [e2,b2]@3 e2@3 [e2,b2,e3,a3,b3,e4]@2, ~@9 e4@3 ~@4", // E5 E Esus4 Asus2 E5 Esus4
  B: "[f#2,c#3]@2 [f#2,c#3]@2 [f#3,a3]@2 [f#3,a3] [f#2,f#3,a3,c#4,f#4] [f#3,a3] [f#3,a3,c#4] [c#3,f#3,a3,c#4] [c#3,f#3,a3] [c#3,f#3,a3,c#4,f#4]@2 ~ [a3,c#4,f#4], f#3@4 [c#3,c#4,f#4]@4 [f#2,c#3]@3 f#2@3 [f#2,c#3,f#3,a3,c#4,f#4]@2, ~@9 f#4@3 ~@4", // F#5 F#m F#5 F#m
  C: "[e2,b2]@2 [e2,b2]@2 [e3,g#3]@2 [e3,g#3] [e2,e3,g#3,b3,e4] [e3,g#3] [e3,g#3,b3] [b2,e3,g#3,b3] [b2,e3,g#3] [b2,e3,g#3,b3,e4]@2 ~ [b3,d4,g4], g#3@4 [b2,b3,e4]@4 [e2,b2]@3 e2@3 [g2,d3,g3,b3,d4,g4]@2, ~@9 e4@3 ~@4", // E5 E G E5 G
  D: "[e2,b2]@2 [e2,b2]@2 [e3,g#3]@2 [e3,g#3] [e2,e3,g#3,b3,e4] [e3,g#3] [e3,g#3,b3] [b2,e3,g#3,b3] [b2,e3,g#3] [b2,e3,g#3,b3,e4]@2 ~@2, g#3@4 [b2,b3,e4]@4 [e2,b2]@3 e2@3 ~@2, ~@9 e4@3 ~@4", // E5 E E5
  E: "[e2,b2]@2 [e2,b2]@2 [e3,g#3]@2 [e3,g#3] [e2,e3,a3,b3,e4] [e3,a3] [e3,a3,b3] [b2,e3,a3,b3] [b2,e3,a3] [b2,e3,a3,b3,e4]@2 ~ [a3,b3,e4], g#3@4 [b2,b3,e4]@4 [e2,b2]@3 e2@3 [e2,b2,e3,a3,b3,e4]@2, ~@9 e4@3 ~@4", // E5 E Esus4 A5 Esus4 Asus2 E5 Esus4
  F: "[a2,e3]@2 [a2,e3]@2 [e3,c#4,e4,a4]@2 [e3,c#4] [a2,e3,c#4,e4,a4] [e3,c#4] [e3,c#4,e4]!2 [e3,c#4] [e3,c#4,e4,a4]@2 [a2,e3,c#4,e4,a4] [c#4,e4,a4], a3@4 ~@4 a2@3 a2@3 ~@2, ~@9 a4@3 ~@4", // A5 A C#m A C#m A
  G: "[b2,f#3]@2 [b2,f#3]@2 [f#3,d#4,f#4,b4]@2 [f#3,d#4] [b2,f#3,d#4,f#4,b4] [f#3,d#4] [f#3,d#4,f#4]!2 [b2,f#3,d#4] ~ b2 [b2,f#3,d#4,f#4,b4] [d#4,f#4,b4], b3@4 ~@4 b2@3 ~ [f#3,d#4,f#4,b4]@2 ~@2, ~@9 b4@3 ~@4", // B5 B D#m B D#m B
  H: "~ [b3,e4]@15, [e2,b2,g#3]", // E5 E
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.6)

// other · distortion guitar
const distortion_guitar = note("<~@26 A B A C ~@18 D E A B A B A B A B ~@10 A B A B F@3 ~>".pickRestart({
  A: "e2@2 e3 ~ e3@2 d3 e3@3 e3 d3 e3 d3 g3@2", B: "e2@2 e3 ~ e3@2 d3 e3@3 e3 d3 e3 d3 g2@2",
  C: "e2@2 e3 ~ e3@2 d3 e3@3 e3 d3 e3 ~@3", D: "a2!16", E: "b2!16", F: "[e2,b2,e3]/3",
})).s("gm_distortion_guitar").gain(0.36).pan(0.8)

// chords · distortion guitar · D#m
const distortion_guitar_2 = note("<~@46 [~@7 g#3!2 ~@7]!2 [~@6 a3 ~@9] [~@6 b3 ~@6 [d#4,f#4] ~@2] ~@26>")
  .s("gm_distortion_guitar").gain(0.12).pan(0.4)

// chords · piano
const piano = note("<~@18 A B@5 C D ~@12 A B@5 C ~ B@2 E F@2 ~@2 G B@10 H ~@2 D ~@8>".pickRestart({
  A: "~ [e4,g#4,b4,e5]@6 [e4,a4,b4,e5]@9", B: "[e4,g#4,b4,e5]@7 [e4,a4,b4,e5]@9", C: "[f#3,a3,c#4,f#4]",
  D: "~@7 [e3,g#3,b3,e4]", E: "[a3,c#4,e4,a4]", F: "[[b3,d#4,f#4,b4]@7 [e4,g#4,b4,e5]@7 ~@2]/2", G: "~@3 [e4,a4,b4,e5]",
  H: "[f#3,a3,c#4,f#4]@3 ~", // F#m
})).s("gm_piano").gain(0.64)

// drums · low tom
const low_tom = s("lt").struct("<~@29 [~@11 x ~@4] ~@27 [~@10 x!5 ~] ~@13 [~@13 x!2 ~] ~@4>").gain(0.64)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@29 A ~@15 B ~ B ~ C ~@15 B ~ B ~@3 D ~@4>".pickRestart({
  A: "~@9 x!2 ~@5", B: "~@14 x!2", C: "~@13 x!2 ~", D: "~@3 x",
})).gain(0.72)

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

// drums · high tom
const high_tom = s("ht").struct("<~@71 [~@5 x ~@2] ~@4>").gain(0.72)

// drums · crash
const crash = s("cr").struct(`<
  ~@8 A ~@3 A ~ A ~@3 A ~@3 A ~ B ~ A ~ A ~ A ~@3 A ~@3 A ~@3 A ~ B ~ A@3 ~ A ~ A ~ C ~ A D A ~@3 A ~ B ~ A@3 ~ A D A
  ~@3
>`.pickRestart({
  A: "x", B: "x!2 ~@6", C: "x!2 ~ x", D: "~@7 x ~@8",
})).gain(0.56)

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

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@8 A@9 ~ A@7 ~ A@3 ~@9 A@7 ~ A ~ A ~ A@15 ~ A ~ A@3 ~@5>".pickRestart({
  A: "~@15 x",
})).gain(0.32)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@26
  [x ~ x ~ x ~ x ~ x ~ x!6]!3
  [x ~ x ~ x ~ x ~ x ~ x!3 ~@3]
  [x ~ x ~ x ~ x ~ x ~ x!6]!41
  [x!4 ~@4]
  ~@4
>`).gain(0.32)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@26 [~ x ~ x ~ x ~ x ~ x ~@6]!45 [~ x ~ x ~ x ~ x ~@8] ~@4>").gain(0.24)

// drums · agogo bells
const agogo_bells = s("agogo:2").struct(`<
  ~@8 A B A B A B A B A B A B A B A B A C A B A D A B A B A B A B A B A B A B A@5 E A B A B A B A F A B A B A B A@3 G A
  B A H ~@4
>`.pickRestart({
  A: "~@4 x ~@4 x ~@2 x ~@3", B: "~@4 x ~@4 x ~@2 x ~@2 x", C: "~@4 x ~@4 x ~@2 x ~ x ~",
  D: "~ x ~@2 x ~@3 x ~@3 x ~@3", E: "~@4 x ~@3 x ~@2 x!2 ~@3", F: "~@4 x ~@4 x ~@2 x ~ x!2",
  G: "~@4 x ~@3 x!3 ~ x!2 ~@2", H: "~ x ~@2",
})).gain(5.1)

// drums · agogo bells · soft notes
const agogo_bells_soft = s("agogo:2").struct(`<
  ~@9 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ B ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ B ~ B ~@3 A ~ A ~ A ~ C ~ A ~ A ~ A ~ B ~@3
  A ~@6
>`.pickRestart({
  A: "~@7 x", B: "~@13 x ~@2", C: "~@10 x!2 ~ x ~@2",
})).gain(3.06)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@14 [x ~ x ~ x ~ x ~ x ~ x!6]!12 ~@50>").gain(1.62)

// drums · cabasa · soft notes
const cabasa_soft = s("cabasa:4").struct("<~@14 [~ x ~ x ~ x ~ x ~ x ~@6]!12 ~@50>").gain(1.22)

stack(
  epiano1, epiano1_soft, bass, rock_organ, string_ensemble_1, electric_guitar_clean, acoustic_guitar_steel,
  distortion_guitar, distortion_guitar_2, piano, low_tom, hihat, mid_tom, open_hat, high_tom, crash, ride, ride_soft,
  tambourine, tambourine_soft, agogo_bells, agogo_bells_soft, cabasa, cabasa_soft
)

More by Biagio Antonacci