[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fixing issue 800 (extender ending early if other voices present)
From: |
Chris Snyder |
Subject: |
Fixing issue 800 (extender ending early if other voices present) |
Date: |
Wed, 11 Nov 2009 10:33:00 -0500 |
User-agent: |
Thunderbird 2.0.0.23 (X11/20090817) |
I've done some work towards fixing issue 800, and at least now
understand what's happening:
The patch that introduced the bug added a check in
Extender_engraver::stop_translation_timestep() to check if the current
voice was in the middle of a melisma (calling melisma_busy(voice) ) and,
if not, completizing the extender. This fixed the neverending-extender
bug, but introduced issue 800.
The reason that this is happening is not simply because there's another
voice, but specifically because of the rhythm in the second voice:
Extender_engraver::stop_translation_timestep() is called after the
second beat in the measure, while the first voice is in the middle of
the dotted quarter-note. At this point, melisma_busy() returns false -
it apparently doesn't know how to handle being in the middle of a note.
It seems to me that there are two possible ways to address this:
1) Change melisma_busy() to return true if in the middle of a note
2) Alternatively, add the check in
Extender_engraver::stop_translation_timestep instead
Any guidance on which approach is preferable? Thanks.
--
Chris Snyder
Adoro Music Publishing
1-616-828-4436 x800
http://www.adoromusicpub.com
- Fixing issue 800 (extender ending early if other voices present),
Chris Snyder <=