[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Oodles of bugs
From: |
Reinhold Kainhofer |
Subject: |
Re: Oodles of bugs |
Date: |
Sun, 9 Jan 2011 21:27:58 +0100 |
User-agent: |
KMail/1.13.5 (Linux/2.6.35-24-generic; KDE/4.5.4; i686; ; ) |
Am Sonntag, 9. Januar 2011, um 00:44:57 schrieb David Kastrup:
> Reinhold Kainhofer <address@hidden> writes:
> > Actually, it's the other way round: the part-combiner has some code to
> > prevent combining the voices if a manual beam, slur or tie (or even a
> > hairpin) is active (and the ties/slurs of the two voices do not match
> > exactly).
>
> So it should try keeping around uncombined voices in all cases, and have
> a separate engraver running after the autobeaming that checks whether
> the autobeamed version in the uncombined voices should take preference
> over the combined version.
I think you are overestimating the complexity of how the part-combiner works.
It basically consists of two things:
-) A music function (i.e. evaluated during parsing!) that looks at the two
music expressions, goes through the music moment-by-moment and tries to
determine whether the notes can be combined or not (i.e. a split-list is
created)
-) The part-combine iterator: At each timestep the iterator looks at the
split-list generated in the first step and simply redirects the first and
second voices of the part-combined music to one of the voices named "one",
"two", "shared", "solo", "null" (which is a Devnull context).
I.e. the iterator does not create any combined chords or anything, it simply
calls substitute_outlet on the input voices so that the events of the input
voices are redirected to one of the five voices given above.
All combining to chords etc. is not done manually, but automatically by the
voice context, since two note events at the same moment simply mean a chord
automatically.
-) The part-combine engraver is not really involved in part-combining. All it
does is generate those "a2", "Solo" or "Solo II" labels.
So, in summary, the main part of part-combination is done in a music-function,
which is evaluated during parsing (i.e. long before iterators or engravers do
their job).
Cheers,
Reinhold
--
------------------------------------------------------------------
Reinhold Kainhofer, address@hidden, http://reinhold.kainhofer.com/
* Financial & Actuarial Math., Vienna Univ. of Technology, Austria
* http://www.fam.tuwien.ac.at/, DVR: 0005886
* LilyPond, Music typesetting, http://www.lilypond.org
Re: Oodles of bugs, James Bailey, 2011/01/10