[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Automatically avoiding multi-measure rest creation
From: |
Dan Eble |
Subject: |
Re: Automatically avoiding multi-measure rest creation |
Date: |
Wed, 9 Sep 2015 21:56:13 -0400 |
On Sep 9, 2015, at 03:32 , David Kastrup <address@hidden> wrote:
>
> If you basically have some "multi-measure rest whenever there is no
> music" functionality, it would seem to make sense to give the end
> spanner a proper event as well so that you don't have to write
> << \music #(multi-measure-rest-of-length music) >>
> when you actually mean
> \startMultiMeasure \music \stopMultiMeasure
>
> At some point of time pretending the MMR to be anything but a spanner
> for at least some use cases is not going to be worth the trouble.
Thanks for taking the time to respond. Maybe it isn’t worth getting into a
very deep discussion until the expected trouble materializes, but...
Would it make sense to redefine R1*4 as a shorthand for {
\startMultiMeasureRest s1*4 \stopMultiMeasureRest }? Would that be difficult
to achieve? How could markup be handled?
>> In Multi_measure_rest_engraver,
>> * register for note and (sub-measure) rest events
>> * track the maximum end moment of received note and rest events
>
> That's what the Grob_pq_engraver is for.
Grob_pq_engraver appears to acknowledge grobs rather than listening for events.
1. Multi_measure_rest_engraver::process_music() is called and decides whether
or not to create a grob.
2. Grob_pq_engraver::process_acknowledged() is called after all grobs are
acknowledged and sets the busyGrobs property.
Do I have the sequence wrong? It seems that (1) would need to use the
information produced by (2).
Regards,
—
Dan