lilypond-user
[Top][All Lists]
Advanced

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

Re: Rebroadcasting events from a single timestep


From: address@hidden
Subject: Re: Rebroadcasting events from a single timestep
Date: Thu, 16 Jun 2011 13:50:27 +0200

On Jun 16, 2011, at 12:58 PM, Graham Percival wrote:

> On Thu, Jun 16, 2011 at 11:01:18AM +0200, address@hidden wrote:
>> I am working on a piece now where I need certain events to transmogrify into 
>> other events.  Specifically, whole-measure rests need to turn into 
>> multi-measure rests, and given the way that the piece is algorithmically 
>> generated, it would take a lot of time for me to change all of the `r' to 
>> `R' when this is the case.  I'd like to add a bit to rest-engraver.cc in the 
>> spirit of :
> 
> This looks like using a tactical nuke to swat a fly.  Why not
> write a plain old music function (in your .ly file) which changes
> the events?  I see no reason to mess with C++ stuff here...?
> 
> (obviously you'd add that music function to your
> algorithm-exporting code as well, but that's a minor issue)
> 

If only it were that easy...
I have also tweaked the rest engraver to do automatic rest grouping.

For example, if in my file I have
\time 4/4
d4 r8. r8 r16 r8 r2 r4 r2

What will be printed is
d4 r4 r2 r1

This is why the event needs to be rebroadcasted - it changes the rest to r1 in 
the engraver (not in the .ly file).
I could, of course, implement a crude parser in python that combines my rests 
into a new input file, but this would be doubleplusunfun.

Right now, I can make this work by deleting the multi-measure-rest engraver and 
copying all the code to rest-engraver.  However, I'd like to keep the changes 
as minimal as possible in hopes that the useful parts can remain separable and 
become part of LilyPond.

My question still stands for anyone who has any idea if/how stream events can 
be rerouted to other engravers.  The only solution I'm ruling out (for now) is 
the creation of a dummy grob that is created in the rest engraver and 
acknowledged in the multi measure rest engraver - I tried it once to 
communicate between the auto-beam and beam-collision engravers and people were 
not fans.

Cheers,
MS


reply via email to

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