lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GSoC] spanners project update


From: Nathan Chou
Subject: [GSoC] spanners project update
Date: Fri, 24 Jun 2016 04:41:15 -0700

Hello,

Just wanted to update on my progress for the GSoC cross-voice spanners
project. The approach I am currently trying uses the existing
spanner-id property (which can be set like { c\=hello\< d\=hello\! });
spanners with an id are handled as potentially being cross-voice. Each
engraver maintains a static list member (so it is shared between all
instances of an engraver) of named spanners and the voice each spanner
currently belongs to. When listening to events or acknowledging grobs,
an engraver can then examine the list to see which spanners currently
belong to its voice and modify them, or associate a particular spanner
with its voice, for instance.

I have tried this approach with the Dynamic_engraver. My code is not
complete, but what I currently have is at
https://github.com/starrynte/lilypond/compare/master...experimental .
The code should compile and "works", for example, on:

\relative c'' << { c2\=hello\< g } \\ { c,4 d e\=hello\! f } >>

A few notes:
- I temporarily prevented Hairpins from being announced to the Voice
context, since cross-voice ones caused issues with the
Dynamic_align_engraver, which I have not changed or looked at much
yet. Of course, this causes the hairpins to currently be positioned
weirdly.
- I intend to check for still-active spanners when the Score context
is destroyed, and warn about unterminated cross-voice spanners then.

Does this general idea seem reasonable? Any feedback is much appreciated.

Best,
Nathan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]