Strudelify

Un uomo che ti ama

Battisti

KeyB minorTempo94 bpm
0:00/0:00
// Un uomo che ti ama — Battisti
// 93.6 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 128 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(93.6/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.

// other · overdriven guitar · "Chit."
const overdriven_guitar = note(`<
  ~@12 A B C D E F G@3 H I J@3 ~@34 K L@2 M N O@2 ~@25 P ~@11 K L@2 M N O@2 ~ K L@2 M N O@2 ~ K L@2 M N O@2 ~
>`.pickRestart({
  A: "~@6 e5 e5@2 d5@2 b4 a4 b4 g4!2", B: "f#4@4 b4 a4 g4@2 a4@2 b4@2 a4@2 b4@2",
  C: "a4@2 b4@2 a4@2 b4@2 a4 b4 a4 b4 a4 b4 a4 b4", D: "a4 b4 a4 b4 a4 b4 a4 b4 a4 b4 a4 b4 a4 b4 a4 b4",
  E: "a4 b4 a4 b4 a4 b4 a4 b4 a4 g4 f#4 g4 f#4 g4 f#4 e4", F: "d4@8 ~@3 f#4 a4 b4 d5 e5",
  G: "[f#5@6 f#4@2 f#5@2 e5@2 d5@2 e5 d5@4 b4@2 c#5 a4@3 a4@2 a4!2 ~ e5 b4@9 a4 b4 c#5 d5 e5 f#5 g5 a5, ~@29 d5@2 ~@17]/3",
  H: "f#5@8 f#5@2 a5@2 b5 a5@3", I: "a5@2 g5@2 a5 g5@3 f#5@2 e5@2 f#5 d5@3", J: "[b4@2 d5@2 e5 f#5 g5 a5 b5@40]/3",
  K: "e5 d5", L: "[~@8 f#5 ~ e5 ~ d5 ~ e5 d5@6 ~@11]/2", M: "~@6 d5 ~ d5 ~ d5 ~ e5 ~ d5 ~",
  N: "f#5 ~ f#5@3 ~ f#5@4 ~@6", O: "[~@4 b4 ~ b4 ~ f#5 ~ e5 ~ d5 ~ e5 d5@4 ~@13]/2",
  P: "~@2 [g3,b3,d4,g4,b4] ~@3 [g3,b3,d4,g4,b4] ~", // G
})).s("gm_overdriven_guitar").gain(0.21)

// other · overdriven guitar · "Chit." · soft notes
const overdriven_guitar_soft = note("<~@11 A@2 ~@115>".pickRestart({
  A: "[~@2 a4 e4 ~ b4@2 a4 e4 a4@2 b4@2 a4 e4 ~ d5@2 e5@4 ~@10, ~@4 a4@2 ~@9 a4@2 ~@15]/2",
})).s("gm_overdriven_guitar").gain(0.05)

// chords · acoustic guitar steel · "Chit."
const acoustic_guitar_steel = note(`<
  A@3 B@2 C@2 B@2 C@2 D ~@12 E@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2 G@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2 H@2 G@2 E@2 F@2 E@2 F@2 E@2
  F@2 E@2 F@2 E@2 F@2 E@2 F@2 G@2 F@2 E@2 F@3 E F@2 E@2 F@2 H@2 G@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2
>`.pickRestart({
  A: "[d4,f#4] b3", B: "[g4,b4]@5 ~@3 d4@5 ~@3", C: "[f#4,b4] b3", D: "[g4,b4]@5 ~@11", E: "[d4,f#4,b4]",
  F: "[d4,g4,b4]", G: "[c#4,f#4,a4]", H: "[c#4,e4,a4]",
})).s("gm_acoustic_guitar_steel").gain(0.18)

// bass · electric bass finger · "Basso"
const bass = note(`<
  A@3 B@2 C@2 B@2 C@2 D@2 E@13 F@2 E@2 F@2 E@2 F@2 E@2 F@2 G@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2 H@2 G@2 E@2 F@2 E@2 F@2 E@2
  F@2 E@2 F@2 E@2 F@2 E@2 F@2 G@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2 H@2 G@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2
>`.pickRestart({
  A: "b2/3", B: "g2/2", C: "b2/2", D: "[g2@8 ~@3 b3@2 a3 e3 a3@2 [b2,b3]@2 ~@3 b2!2 f#3!2 ~@4 a2!2]/2",
  E: "a2 b2@2 ~@3 b2!2 f#3!2 ~@4 a2!2", F: "g2 g2@2 ~@3 d3!2 g3!2 ~@4 g2!2", G: "f#2 f#2@2 ~@3 f#2!2 c#3!2 ~@4 f#2!2",
  H: "a2 a2@2 ~@3 a2!2 a3!2 ~@4 a2!2",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · synth strings 2 · "Synt"
const synth_strings_2 = note("<A@8 ~@120>".pickRestart({
  A: "[d4,b4]/8", // G
})).s("gm_synth_strings_2").gain(0.34)

stack(overdriven_guitar, overdriven_guitar_soft, acoustic_guitar_steel, bass, synth_strings_2)

More by Battisti