lilypond

Annotating chord voices in Lilypond


Is it possible to achieve something like this in Lilypond? I've been wondering for years, but now I'm trying to do some work that makes this more pressing.

chord examples from Schillinger

Thank you so much!

I've tried various standard text methods, and searched the documentation and elsewhere.


Solution

  • Balloon Text is the way to go in Lilypond!

    This is how I ended up doing it:

    \new Staff \with {
        \consists Balloon_engraver
        \override BalloonText.annotation-balloon = ##f
        \override BalloonText.annotation-line = ##f
        \override Clef.space-alist.first-note = #'(minimum-fixed-space . 10.0)
    }
    {
        \relative c' {
            \balloonLengthOn
            \override Score.SpacingSpanner.spacing-increment = #3
            \override BalloonText.layer = #-2
            \override Staff.StaffSymbol.layer = #-3
            \override BalloonText.whiteout = ##t
            <
            e-\balloonText #'(0.1 . 0) \markup{"3"}
            -\balloonText #'(-1.5 . 0) \markup{"b"}
            g-\balloonText #'(1.3 . 0) \markup{"5"}
            -\balloonText #'(-0.5 . 0) \markup{"c"}
            c-\balloonText #'(0.1 . 0) \markup{"1"}
            -\balloonText #'(-1.5 . 0) \markup{"a"}
            >2
            <
            g,-\balloonText #'(0.3 . 0) \markup{"5"}
            -\balloonText #'(-0.5 . 0) \markup{"c"}
            e'-\balloonText #'(0.3 . 0) \markup{"3"} 
            -\balloonText #'(-0.5 . 0) \markup{"b"}
            c'-\balloonText #'(0.3 . 0) \markup{"1"} 
            -\balloonText #'(-0.5 . 0) \markup{"a"}
            >
        }
    }
    

    and it produced this output