I received useful information from Valentin Villenave in the LilyPond user forum, which led to the following workable solution:
LilyPond provides a NoteNames graphical editor that automatically prints tag names, for example. "cde" is like lyrics under notes, but there is a long-standing mistake that makes NoteNames revert to Dutch names. Valentan's workaround is to create an associative array and use it as a search in the lambda function, which is called when each step is ready to print. Substituting the entries from the array, the names of the desired tone are printed.
To make the solution fully functional, I also had to add a second evaluation unit to separate the generation of the midi output signal from the print points. This is to ensure that NoteNames engravers do not produce MIDI output.
I tested this solution with a much larger file using the full set of chromatic solfege names. It works very well. The only remaining problem is that it would be nice to adjust the font settings on the NoteNames output to make solfege different from the usual lyrics. So far, I have not been able to do this.
% Moveable Do as lyrics example % define solfege pitchnames pitchnames =
UPDATE: It turns out that font properties can be controlled using the markup function, for example, by changing
(ly:grob-set-property! grob 'text new-name)
to
(ly:grob-set-property! grob 'text (markup #:italic #:smaller new-name))
There may be other ways to do the same thing, but it just does what I need. At this stage, I believe that this question is answered. Please note that a future version of LilyPond may fix NoteNames error and eliminate the need to use Schema for this purpose.
Mike ellis
source share