Strudelify

Una poltrona

Battisti

KeyA majorTempo90 bpm
0:00/0:00
// Una poltrona — Battisti
// 90 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 5 choir aahs (copy of ch 4 lead 7 fifths)
// note: Full arrangement: all 118 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B C@4 D@4 A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B ~@4 A B A B A B A B A B A B A B A B A B A B A B A B A B A E ~@2
>`.pickRestart({
  A: "[a3,c#4,e4,a4]!2 [b3,d4,f#4,a4]!2", B: "[c#4,e4,g#4,b4]@2 [c#4,e4,g#4,b4]@2 [b3,d4,f#4,a4]!4", C: "[d#5,f#5,b5]",
  D: "[~ [g5,b5,d6]@15]/4", E: "[c#4,e4,g#4,b4]!2 ~@2",
})).s("gm_piano").gain(0.28)

// chords · piano · soft notes
const piano_soft = note("<~@84 A B A B ~@27 C A B>".pickRestart({
  A: "[a3,c#4,e4,a4]!2 [b3,d4,f#4,a4]!2", B: "[c#4,e4,g#4,b4]@2 [c#4,e4,g#4,b4]@2 [b3,d4,f#4,a4]!4",
  C: "~@4 [b3,d4,f#4,a4]!4", // Bm7
})).s("gm_piano").gain(0.1)

// bass · electric bass finger · "Basso"
const bass = note("<[a2!4]!46 ~@8 [a2!4]!30 ~@4 [a2!4]!27 [a2!2 ~@2] ~@2>").s("gm_electric_bass_finger").gain(0.64)

// bass · electric bass finger · "Basso" · soft notes
const bass_soft = note("<~@84 [a2!4]!4 ~@27 [~@2 a2!2] [a2!4]!2>").s("gm_electric_bass_finger").gain(0.24)

// chords · lead 7 fifths
const lead_7_fifths = note("<~@46 A@4 B@4 ~@64>".pickRestart({
  A: "[d#5,f#5,b5]", B: "[~ [g5,b5,d6]@15]/4",
})).s("gm_lead_7_fifths").gain(0.64)

stack(piano, piano_soft, bass, bass_soft, lead_7_fifths)

More by Battisti