Strudelify

Rilassati e ascolta

Battisti

KeyF majorTempo120 bpm
0:00/0:00
// Rilassati e ascolta — Battisti
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 124 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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.

// chords · piano
const piano = note(`<
  ~@4 A@4 ~@6 B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E C E F E C
  E F E ~@6 B C D E B C D E B C D E B C D E B C D E B C D E B C D E C E F E C E F E ~@12
>`.pickRestart({
  A: "[d4,g4,a4]/4", B: "~ [d4,g4,a4]@2 [d4,g4,a4]@2 [d4,g4,a4]@2 [d4,g4,a4]",
  C: "~ [d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a4]", D: "~ [d4,e4,g4]@2 [d4,e4,g4]@2 [d4,e4,g4]@2 [d4,e4,g4]",
  E: "~ [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]", // C
  F: "~ [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]", // Bb
})).s("gm_piano").gain(0.1)

// other · epiano2 · "Synth."
const epiano2 = note(`<
  ~@2 A@11 B ~@48 C D E C D E C D E C D E C D ~@28 C D E C D E C D E C D E F@2 G@3 H ~@2
>`.pickRestart({
  A: "d5 [g5,d6] d5 [g5,d6] d5 [g5,d6] d5 [g5,d6]", B: "d5 [g5,d6] d5 [g5,d6] c5 [g5,c6] c5 [g5,c6]",
  C: "d5 e5 a5 d5 e5 a5 d5 e5", D: "a5 d5 e5 a5 d5 e5 a5 d5", E: "e5 a5 d5 e5 a5 d5 e5 a5",
  F: "[d5,g5] d6 [d5,g5] d6 [d5,g5] d6 [d5,g5] d6", G: "[d5,gb5] d6 [d5,gb5] d6 [d5,gb5] d6 [d5,gb5] d6",
  H: "[d5,gb5] d6 [d5,gb5] d6 ~@4", // D
})).s("gm_epiano2").gain(0.57)

// other · epiano2 · "Synth." · soft notes · D
const epiano2_soft = note("<~@121 [~@4 [d5,gb5] d6 [d5,gb5] d6] [[d5,gb5] d6 [d5,gb5] d6 [d5,gb5] d6 [d5,gb5] d6]!2>")
  .s("gm_epiano2").gain(0.21)

// bass · electric bass finger · "Basso"
const bass = note(`<
  ~@2 A@2 B C B ~ B C B ~ B ~ D@3 E D@3 E D@3 E D@3 E D@3 E D@3 E D@3 E D@3 E D@3 E D@3 E D@3 E D@3 E D E F E D E F E G
  H G H G H D@3 E D@3 E D@3 E D@3 E D@3 E D@3 E D@3 E D E F E D E F E D E F E D@8
>`.pickRestart({
  A: "d2!2 ~@4 d2@2 ~@8", B: "d2 ~@2 d2 ~@4", C: "~@7 d2", D: "d2", E: "c2", F: "bb1", G: "c2 d2 ~ d2!2 ~ d2!2",
  H: "~ d2!2 ~@5",
})).s("gm_electric_bass_finger").gain(0.61)

// drums · congas
const congas = s("conga:13").struct("<[x ~ x!3 ~ x ~@9] [~@2 x!3 ~ x!3 ~ x!3 ~ x!2]!123>").gain(2.05)

stack(piano, epiano2, epiano2_soft, bass, congas)

More by Battisti