Strudelify

Sognando e risognando

Battisti

KeyF majorTempo70 bpm
0:00/0:00
// Sognando e risognando — Battisti
// 70 bpm, 2/2, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/2 at bar 22, 4/4 at bar 61, 2/2 at bar 83) are rendered on a constant 2/2 grid of one bar per cycle
// note: Full arrangement: all 134 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(70/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 · acoustic guitar steel · "Chit."
const acoustic_guitar_steel = note(`<
  ~ A B A C A B A C D E F A G A G A G A H ~ I J K J K H J L J L J L J L D E F M N M N M N O@2 P@2 Q R S@2 Q R S@2 Q R
  T@3 ~ A B A C A B A C D E F A G A G A G A H ~ I J K J K H J L J L J L J L D E F M N M N M N O@2 P@2 Q R S@2 Q R S@2 Q
  R T@3 Q R S@2 Q R S@2 Q R S@2
>`.pickRestart({
  A: "~ a3 d4 f4 a3 d4 f4 a3", B: "~ bb3 d4 e4 bb3 d4 e4 bb3", C: "[bb3,d4,e4] ~@3", D: "d4 e4", E: "c4 b3@3 bb3@4",
  F: "a3", G: "~ a3 c4 f4 ~ a3 c4 f4", H: "d4 ~@3", I: "d4", J: "d4 f4 a4 d4 f4 g4 d4 f4",
  K: "a4@2 d4@2 f4@2 g4@2 d4 f4 g4@2 d4 f4 g4@2", L: "a4 ~@3", M: "[a3,c4,e4,f4]", N: "[a3,c4,f4]",
  O: "[[a3,d4,f4]@5 ~@3]/2", P: "[a3,c4]!2 [a3,c4]@2 [a3,c4]!2 [a3,c4]@2 [a3,c4]!2 [a3,c4]@2 [a3,c4]!2 [a3,c4]@2",
  Q: "[a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]!2 [a3,d4,f4]@2", R: "[c4,e4,g4]!4",
  S: "[[b3,d4,g4]@2 [b3,d4,g4]@2 ~ [b3,g4] [b3,d4,g4] [bb3,d4,f4]@3 [bb3,d4,f4]@2 [bb3,d4,f4]!2 [bb3,d4,f4]@2, ~@4 [b3,d4,g4] ~@11, ~@9 d4@2 ~@21]/2", // G Em G Bb G
  T: "[[b3,d4,g4]@2 [b3,d4,g4]@2 ~ [b3,g4] [b3,d4,g4] [bb3,d4,f4]@17, ~@4 [b3,d4,g4] ~@19, ~@9 d4@2 ~@37]/3", // G Em G Bb G
})).s("gm_acoustic_guitar_steel").gain(0.64)

// bass · electric bass finger · "Basso"
const bass = note(`<
  ~@13 A B A B A B ~@3 C@17 A B A B A B ~ C@2 B D E@2 B D E@2 B D F@3 ~@13 A B A B A B ~@3 C@17 A B A B A B ~ C@2 B D
  E@2 B D E@2 B D F@3 B D E@2 B D E@2 B D E@2
>`.pickRestart({
  A: "f2 e2", B: "d2", C: "d2!2 d2@2 d2!2 d2@2 d2!2 d2@2 d2!2 d2@2", D: "c2", E: "[b1@7 bb1@9]/2", F: "[b1@7 bb1@17]/3",
})).s("gm_electric_bass_finger").gain(0.64)

stack(acoustic_guitar_steel, bass)

More by Battisti