lilypond-devel
[Top][All Lists]
Advanced

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

Fwd: Rebroadcasting events from a single timestep


From: address@hidden
Subject: Fwd: Rebroadcasting events from a single timestep
Date: Thu, 16 Jun 2011 14:57:15 +0200

Forgot to cc...

Begin forwarded message:

Date: June 16, 2011 2:51:39 PM GMT+02:00
To: Graham Percival <address@hidden>
Cc: lilypond-user Group <address@hidden>
Subject: Re: Rebroadcasting events from a single timestep

On Jun 16, 2011, at 2:43 PM, Graham Percival wrote:

On Thu, Jun 16, 2011 at 01:50:27PM +0200, address@hidden wrote:
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

That sounds like a job for a scheme music function.


It is certainly doable in Scheme insofar as one can create engravers in Scheme.  However, in order to pull this off, I need access to context properties like measureLength and timeSignatureFraction, which are only available (as far as I know) from translators/engravers..  The type of filtering in the two snippets below deal with music before it gets sent to an engraver.

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.

It still really sounds like you should use a combination of
http://lsr.dsi.unimi.it/LSR/Item?id=372
http://lsr.dsi.unimi.it/LSR/Item?id=122


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.

Scheme would be good for that.  Also, that way somebody else could
compile your scores without needing to custom-patch the C++ in
their source code.  Granted, you're probably never going to want
anybody else in the world to compile this particular score... but
you never know.  What if those teenagers wanted to play with
stuff, and you gave them a short exerpt of this composition?  It
would be *way* easier if they could just download 2.14.1 and
compile the .ly in there, instead of trying to work with the
source code.


True, but even if I rewrote the rest engraver in Scheme, the question would still stand about rebroadcasting an event.
I think there may be enough users who are lazy about how they write their rests that it'd be valuable to have auto-rest-making à la auto-beaming, so I may wind up making a patch out of all this.

My question still stands for anyone who has any idea if/how stream events can be rerouted to other engravers.

Sure, but you should ask that on the -devel list, not the -user
list.


Generally I consult -user when it has to do with my composition activities, but you're right that the people one devel are those who wrote the whole translator/engraver/iterator system.  cc'ed to devel :)

Cheers,
MS



reply via email to

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