Open Bacchushlg opened 6 years ago
...and what's more: the voices change for the bass staff from measure to measure. After import to MuseScore the 2 half notes of measure 3 top voice (A, F) are imported as elements of the bass staff (I cannot recognize, if this is an Audiveris or a MuseScore problem).
Voice numbering is something difficult. There is room for improvement especially from one measure to thefollowing one. Voices may appear and disappear nearly randomly. I should work on some kind of voice number continuity between measures. Today voices Ids are set from top to bottom within a part/measure
I was able to solve the problem by changing the value of "maxAdjacencyXGap" to 0.4 (was 0.3). Of course I don't know, what will be the side effects - but maybe this is a solution?
@hbitteur : do you agree to change this to 0.4? I work the last days with this value - seems to make no problems.
I changed it from 0.65 to 0.3 recently, to cope with very crowded cases. Reraising to 0.4 might lead to problems on some scores. If 0.4 is OK for you, you are free to keep this as a user value, no problem
I have a new example that is even worse than the one above. Here both chords are with aug.points:
FYI, an .omr file is already a zip file, so there is no need to zip it again!
We have a similar problem in measures 46 and 48 (figure above taken from Fly Me to the Moon example). In location 1, we have 2 chords with opposite stem directions In location 2, we have 2 chords with opposite stem directions, as well How can the OMR engine decide that in location 1 the 2 chords should share the same time slot and that in location 2 they should not? Do you have a hint to guide the engine?
The main question in my opinion: how to decide, if a staff is meant for one or 2 (or more) voices. Your example shows the dilemma: the first tick (upper staff) could also be a half note augmented followed be the chord with stem going down. Although it is obvious to a normal musician, is difficult to define a rule. To make decision easier, I propose to help the algorithm by defining (by user), if a staff contains a single voice or 2. In that case it is clear, that notes with stem going up go the first voice, the others to the 2nd.
Concerning the example: the user would define 2 voices for staff 1 and 1 voice for staff 2.
about zip or not: I cannot upload omr-files, because the issue tracker does not accept them. Only images, pdf and zip files are accepted.
a re-transcription with the actual version (238bb2c) stops with:
[35765864-5751fee8-08cd-11e8-8be3-4d6752cffded] No support yet for TIME_ZERO [35765864-5751fee8-08cd-11e8-8be3-4d6752cffded] Error in performing [SCALE, GRID, HEADERS, STEM_SEEDS, BEAMS, LEDGERS, HEADS, STEMS, REDUCTION, CUE_BEAMS, TEXTS, MEASURES, CHORDS, CURVES, SYMBOLS, LINKS, RHYTHMS, PAGE] java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.IllegalArgumentException: loops not allowed
in the above score the analysis fails in measure 4. The reason is that the notes with stem to the bottom are not detected as voice 2. Unfortunately there is no way to "move" these notes to voice 2 by the user (at least I don't find it).