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


Reply via email to