Strudelify

Il veliero

Battisti

KeyG majorTempo120 bpm
0:00/0:00
// Il veliero — Battisti
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 181 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 · "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 · string ensemble 1 · "Orch."
const string_ensemble_1 = note(`<
  ~@8 A ~@2 B ~@2 A ~@2 B ~@2 C ~@2 C ~@2 D@2 E ~ B ~ E ~ B ~ A ~ F ~ A ~ F ~ G ~ G H@2 ~@7 A ~ I ~ A ~ I ~@5 A ~ I ~ J
  ~@7 E ~ B ~ E ~ B ~ A ~ F ~ A ~ F ~ G ~ G H@2 ~@19 E ~ B ~ E ~ B ~ A ~ F ~ A ~ F ~ G ~ G H@2 ~@40
>`.pickRestart({
  A: "a5 b5@2 g5@3 a5 f#5@9", B: "~@3 f#5@2 d5@3 b4@8, e5@5 ~@11", C: "e5 f#5@2 d5@3 b4 e5@2 f#5 d5@2 ~@4",
  D: "[e5 f#5@2 d5@2 b4@2 e5@2 f#5@2 d5@2 b4@2 e5@2 f#5@2 d5@2 b4@2 d5@3 e5@2 f#5@2 g5@2]/2", E: "a5 b5@2 g5@3 a5 b5@9",
  F: "~@3 f#5@2 d5@3 c5@8, e5@5 ~@11", G: "b5 c6@2 a5@3 b5 g5@9", H: "[~@2 b5@2 a5@2 b5 g5@3 b5@2 a5@2 b5 g5@9 ~@8]/2",
  I: "e5@3 f#5@2 d5@3 b4@8", J: "a4 b4@2 g4 g4@2 a4 b4@9",
})).s("gm_string_ensemble_1").gain(0.64)

// chords · piano
const piano = note(`<
  ~@4 A@24 B@8 C@7 D A@4 C@4 E@4 A@12 B@5 F G A@5 B@8 C@7 D A@4 C@4 E@4 A@6 H@2 A@4 B@8 C@7 D A@4 C@4 E@4 A@6 H@2 A@9
  H@2 A@9 H@2 A@3
>`.pickRestart({
  A: "~ [e4,g4,b4] ~@3 [e4,g4,b4] ~@2", B: "~ [d4,g4,b4] ~@3 [d4,g4,b4] ~@2", C: "~ [c4,e4,g4] ~@3 [c4,e4,g4] ~@2",
  D: "~ [e4,f4,g4,b4] ~@3 [e4,f4,g4,b4] ~@2", E: "[d#4,f#4,a4,b4]", F: "~ [d4,g4,b4] ~@2 [g3,g4]@2 [f#3,f#4,d5]@2",
  G: "[e4,e5]@4 ~ [e4,g4,b4] ~@2", // E Em
  H: "[[e4,g4,b4] [e4,g4,b4]@2 [e4,g4,b4]!2 [e4,g4,b4]@2 [e4,g4,b4]!2 [e4,g4,b4]@2 [e4,g4,b4] [e4,g4,b4]@2 [e4,g4,b4]@18]/2", // Em
})).s("gm_piano").gain(0.04)

// bass · electric bass finger · "Basso"
const bass = note(`<
  A@4 B@24 C@8 D@7 E F@4 D@4 G@4 B@12 C@6 B@6 C@8 D@7 E F@4 D@4 G@4 B@12 C@8 D@7 E F@4 D@4 G@4 B@33
>`.pickRestart({
  A: "e3 e2 e3 e2", B: "e3@2 b2 d3 e3@2 b2 d3", C: "g2@2 b2 d3 g2@2 e3 d3", D: "c3@2 g2 a#2 c3@2 g2 a#2",
  E: "c3@2 g2 b2 c3@2 c3 b2", F: "g2@2 g2 d3 g2@2 e3 d3", G: "b2!2",
})).s("gm_electric_bass_finger").gain(0.13)

// drums · mt
const mt = s("mt").struct("<~@4 [x!2 ~@2 x!2 ~@2]!177>").gain(0.05)

// drums · agogo bells
const agogo_bells = s("agogo:2").struct("<~@4 [~ x ~ x]!177>").gain(0.33)

stack(string_ensemble_1, piano, bass, mt, agogo_bells)

More by Battisti