Re: Alleviating issue #34

Dan Eble <[email protected]>
Newsgroups gmane.comp.gnu.lilypond.devel
Message-ID <[email protected]>
On 2025-12-31 05:42, Thomas Morley wrote:
> At least for automatic repeats 'volta settings are entirely missing, why?

Automatic repeats were enhanced to handle nested alternatives.  Manual 
repeats were not.

Volta_engraver gets information about the music structure from 
volta-span-event:

     void
     Volta_engraver::boot ()
     {
       ADD_ACKNOWLEDGER (bar_line);
       ADD_LISTENER (dal_segno);
       ADD_LISTENER (fine);
       ADD_LISTENER (volta_span);    //<<<<<<<<<<<<
     }

For backward compatibility, Volta_engraver also reads the repeatCommands 
context property and creates brackets that have a fixed relationship 
with automatic brackets.  This is one reason why the "Manual repeat 
marks" section of the NR begins with a cautionary note.

I haven't reviewed your custom engraver, but an engraver concerned with 
repeat structure might listen for some of these events in addition to 
volta-span-event (from define-event-classes.scm):

     (structural-event . (alternative-event
                          coda-mark-event
                          dal-segno-event
                          fine-event
                          section-event
                          segno-mark-event
                          volta-repeat-end-event
                          volta-repeat-start-event))

Summary: Engravers handling repeat structure should listen for events. 
If there is good reason to support the repeatCommands interface, they 
should also read repeatCommands, but repeatCommands does not support the 
same range of uses as automatic repeats.
--
Dan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.