[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lilypond-devel
Subject:    Re: [GSoC] Implement cross-voice dynamic spanners (issue 304160043 by starrynte@gmail.com)
From:       starrynte () gmail ! com
Date:       2016-07-25 10:47:33
Message-ID: 001a113451ce0176080538738305 () google ! com
[Download RAW message or body]

Thank you very much for taking the time to review this!

On 2016/07/25 10:01:52, dak wrote:
> The main problem I see with the current code is that it is ad-hoc and
basically
> unmaintainable.  Spanner_engraver is a class that really serves no
clear purpose
> apart from carrying a few helper functions.  The collection of helper
functions
> does not create a coherent design.  All the actual management of
multiple
> spanners still happens in the spanner classes themselves.
...
> So the question is how would we _want_ multiple-spanner management to
be
> reflected in the code?  It's complex and mostly orthogonal to the
actual work
> (except when multiple spanners or likely rather their grobs have to
notice each
> other in order to avoid collisions), so the answer is "as little as
possible".
> The ideal implementation would be to change ASSIGN_EVENT_ONCE to
> ASSIGN_EVENT_SPANNER_ID and not change anything else.  However, the
amount of
> trickery that would need to get done then would be considerable.

> However, the principle underlying this somewhat unrealistic example is
still
> valid: the bulk of the code should only cater for a single spanner.
If we can
> arrive there, we will also be in a good position to let users create
Scheme
> engravers that can deal with multiple spanners without having to delve
into
> multiple-spanner management themselves.

I agree. Handling multiple spanners in Spanner_engraver seems like a
good idea; I'll try to revise this patch to do so (with the help of your
suggestions).


https://codereview.appspot.com/304160043/diff/20001/input/regression/dynamics-alignment-autobreak.ly#newcode19

> input/regression/dynamics-alignment-autobreak.ly:19: <<
> This code is not really seminal to the topic of this regtest.  You
should rather
> create one or more separate regtests for the new functionality and
have a
> matching description.

> The same for the other regtests.

Will do.

https://codereview.appspot.com/304160043/

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic