Hey all,
It has been a while I posted on this mailing-list. As some of you might
remember, I have been working on a music braille output system for
Lilypond for quite some time now. The update on that front is that I do
have a system now that can reliably output (a subset of) music braille
for Lilypond files version 2.24 and higher.
The concept of this system (named Lybra) is based on the concept
provided by the event-listener.ly file as included with Lilypond,
capturing music events, rewrite them to braille and saving the output in
a separate text file. This allows users to write music the normal way,
and get the music braille equivalent by including a single lilypond
file. That inclusion attaches listeners to the music events, which cause
the braille output file to be created, next to any PDF or midi as
indicated in the Lilypond source.
While the system is definitely not complete yet, I think that the
listener interface will be sufficient for all music related information
I would still need to add.
For a proper braille output though it is important to also be able to
include the headers, as well as other non-music related markup. One
specific use case is a song score, with a score block with the music and
the first verse as lyrics and the remaining verses as blocks of text
under the song.
My main problem is that I do not know how I can get hold of that
information. My main entry and exit points are the initialize and
finalize listeners to the Score context. I have been searching what
contexts I can get access to a nd whether those contexts can provide
anything, but if there is anything, I cannot find it.
I did see functions in the Lilypond scheme function list that look
suitable to provide the headers (which would solve one part of the
problem), but these functions require parameters to be passed in, and
there doesn't seem to be documentation on how to get a reference to that
parameter, (ie the current state at the moment of initialize or finalize).
One example is the headers-property-alist-chain function, another is the
paper-book-header function. The first requires the headers object, the
second a paperbook object, but I cannot find how to get a
pointer/reference to either the current headers or the current paperbook
object.
So my main questions are:
- is there a way to get a listener or callback of some kind to capture
out-of-music markup?
- is there a way to get access to the global headers and / or score
headers (in case of score specific headers)?
- is there documentation on how to get a reference to the required
parameters for these scheme functions?
Thanks in advance for any suggestions!
cheers
Maurits