lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Automatically avoiding multi-measure rest creation


From: David Kastrup
Subject: Re: Automatically avoiding multi-measure rest creation
Date: Thu, 10 Sep 2015 10:54:02 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

Dan Eble <address@hidden> writes:

> 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 }?

I don't really think so.  It's probably easier to keep things as they
are but allow span-direction to be set in lieu of a duration.

> Would that be difficult to achieve?  How could markup be handled?

Markup already sucks.  I got a few half-finished branches trying to fix
that.

>>> 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.

Uh right.

> 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).

Possibly.

-- 
David Kastrup



reply via email to

[Prev in Thread] Current Thread [Next in Thread]