Audiveris / audiveris

Latest generation of Audiveris OMR engine
https://audiveris.github.io/audiveris
GNU Affero General Public License v3.0
1.52k stars 227 forks source link

Unable to assign lyrics above to note line below (Source and Target do not share the same sig) #368

Closed Bacchushlg closed 4 years ago

Bacchushlg commented 4 years ago

Ein Schiff wird kommen (1)

Normally the assignment of the lyrics can be changes by dragging to the proper note (head/line). In this case, it is not possible for some reason. I get an error message: "Source and Target do not share the same sig"

MusicForStringsPercussionCeleste commented 4 years ago

Lyrics don’t fit well to begin with, but you might have luck if you can put in a space or dash to account for the eighth rest that begins each phrase measure 11 and 15

(Please excuse autocorrect) Richard

On Mar 15, 2020, at 12:19 PM, Baruch notifications@github.com wrote:



[Ein Schiff wird kommen (1)]https://user-images.githubusercontent.com/33522630/76705483-a7ac0f00-66e0-11ea-9ee6-d000b8958092.jpg

Normally the assignment of the lyrics can be changes by dragging to the proper note (head/line). In this case, it is not possible for some reason. I get an error message: "Source and Target do not share the same sig"

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/Audiveris/audiveris/issues/368, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHIKKSLP75WD4UXHPDRA24TRHT5XHANCNFSM4LLEMW5A.

hbitteur commented 4 years ago

There is one SIG per system, because you can't have a relationship between an inter in one system and an inter in another system. This is the reason why there is one SIG per system rather than one big SIG for the whole sheet. [Well, slurs across systems is the only exception to this rule, and they are handled in a specific way]

In your case, I think you were trying to drag from a lyric item in one system to a note head (actually a chord) in ANOTHER system. Hence the error message.

If you think that these lyric item and chord should indeed belong to the same system, perhaps you should check the processing flag related to lyrics ABOVE staff, if I remember correctly.

Bacchushlg commented 4 years ago

I had tried this flag - but it does not do it. The score has 2 pages - the 2nd page works fine. I assume that the problem is provoked due to the fact that there are 2 verses on the 1st page. Therefore the distance of the lyrics is nearer to the upper system...

Maybe a right-mouse action could be applied that allows to mark a complete lyrics line and assign it to the proper stave?

hbitteur commented 4 years ago

I'm afraid you are right. The user will need a way to force the link between a lyric line and the correct system. I will have to dive again into these lyric tricks...

hbitteur commented 4 years ago

Commit 74b53a4a51fe3d3982015c9db04f8338ae804f4c provides a much better separation of text lines between systems. In your example, all text lines now get correctly assigned to proper system,

We still have a problem, even with option of lyrics above staff: The line just above a system is recognized as a series of chord names, which is correct. But this impedes the lines above this first line to be recognized as lyric lines. Perhaps I should change this logic, and allow lyrics above chord names.

The problem with lyrics above staff, is where do we stop? Are all the lines above staff to be considered as lyrics? (except the first one when recognized as chord names). There is no room left for other roles, such as a direction. For example, what do we do for the very first system in this sheet?

Any advice would be appreciated.

At least, now you can manually assign and link lyric lines, sicne they do belong to the correct system...

Bacchushlg commented 4 years ago

I just checked with the latest commit (797079...), but I don't get it working. The lyrics in the example score above cannot be assigned properly. I tried with activated "lyrics above line" and "support chord names".

Concerning the question about autodetection: chord lines between lyrics and note lines are rather seldom. So it is completely ok not to support this automatically, but just to allow a manual correction.

hbitteur commented 4 years ago

Yes, I can see the problem: the lines are connected to the correct staff below but as text lines (not lyric lines). If I deassign them to force them as lyrics, then they get connected to the staff above!! I have to rework this. Sorry for the additional delay.

hbitteur commented 4 years ago

Perhaps I should not try to be too smart at the engine level, but rather trust the user when he tries to link a piece of lyrics to a given chord (and thus a given system/staff). Today the user gets the message about different SIGs, but we could perhaps prompt for confirmation and then do what the user tries to do: move the whole lyric line (and the following lyric lines as well) to the system/staff below, and in consequence link every lyric item to proper chord below.

Bacchushlg commented 4 years ago

Yes, let us trust in the user. And let him tell the program, what he likes to do ;-))

This lyrics stuff is sometime really crazy. I sometimes really don't understand, why lyrics are placed so bad in the score.

hbitteur commented 4 years ago

This is not yet the new UI-based cross-system lyrics assignment, but an improvement in the detection of lyric lines above the staff. There is no more vertical limit, except for the very first staff in sheet for which lyrics above staff are not accepted (here, we have text related to title, creator, etc...)

Also the chord names can now be manually assigned when not recognized by the OMR engine (for lack of recognition of flat and sharp signs in chord name). It is sufficient to:

  1. OCR the chord name as text
  2. Correct the text value, by manually inserting 'b' or '#' characters where flat and sharp characters should be
  3. Modify the containing sentence role to ChordName, which will trigger the parsing of item text as a chord name (with root, kind, bass and degrees).

Development branch, commit c5a505aff110a91f8c58f1b5ff73a741e63c3dbb And this as usual can be undone/redone at will.

Bacchushlg commented 4 years ago

The new lyrics detection works almost perfectly! And the rest can easily adapted manually.

Just a minor draw-back concerning the chord detection. The chords of the first 2 systems are duplicated 4 times for some reason. (You can see it from the omr-file that I just uploaded to the omr-pool).