[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Summary of \relative { q } ... analysis.
From: |
David Kastrup |
Subject: |
Re: Summary of \relative { q } ... analysis. |
Date: |
Fri, 27 Jan 2012 14:37:02 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux) |
David Kastrup <address@hidden> writes:
> 2) do it in a specific music function either explicitly called, or
> called automatically at an appropriate time.
>
> This is totally straightforward and controllable. It also means that it
> is ok to work with a reference to the previous chord since no arbitrary
> processing stages (like in the parser) will intervene between taking the
> reference and using it. It also means that we can _replace_ the
> ChordRepeat event with an EventChord, meaning that any subsequent
> processing never gets to see a chord repetition.
>
> That means that "legacy" music functions of the user don't require
> changes to accommodate chord repetitions: it is easy to make sure that
> they never get to see them. After \relative seems to be a good time to
> call \q automatically (one could be cute and call it \absolute instead,
> meaning that a user wanting to use q should have had his music passed
> through either \relative or \absolute).
>
> 3) do the chord repetition right before iteration time (iteration itself
> is too time-centric rather than order-centric to work well).
It would seem like the combination of an explicitly callable function
together with putting it into toplevel-music-functions (where things
like {xxx\\yyy} apparently are also resolved) should do the trick in a
suitably backward-compatible manner. I guess the performance impact of
another pass through the music, given suitable callbacks, should be
small.
It would be possible to let q set a parser variable that will optimize
this pass away when unset. The drawback would be that ChordRepeat
events entering via different channels (#{ <c e g> q #} uses its own
parser, and generation by Scheme is also possible) would not count then.
Ok, I guess I have my implementation strategy then. Hard-earned 70€ or
whatever the bounty was, but I think I will feel reasonably sure that
the results will not come back to bite me.
--
David Kastrup
Re: Plans for changing chord repeat implementations, David Kastrup, 2012/01/28