SHIFT+_ does not insert melisma but underline previous syllable. Hyphen does not work occasionally

• Nov 1, 2018 - 08:36
Reported version
3.0
Priority
P0 - Critical
Type
Functional
Frequency
Once
Severity
S3 - Major
Reproducibility
Randomly
Status
closed
Regression
Yes
Workaround
No
Project

Comments

Status active needs info

Can't reproduce, works for me. Sample score and detailed steps needed

(to be honest: I've seen this too, but haven't been able to reliably reproduce it)

Melisma.png

  1. Set cursor behind "Da". Press -
    Expected: A hyphen gets inserted and the cursor is moved to "de"
    Actual: No hyphen, cursor moved.

  2. Set cursor behind "le". Press _
    Expected: Melisma inserted
    Actual: No melisma, but "le" underlined.

Attachment Size
Melisma.mscz 2.75 KB
Status needs info active

With this I see and can reproduce the missing lyrics dash problem, but I can successfully add the melisma underscore (with pressing _ twice, after the first the 'le' gets underlined, after the 2nd the correct melisma shows)
But than I can't delete it anymore...

Title SHIFT+_ does not insert melisma but underline previous syllable SHIFT+_ does not insert melisma but underline previous syllable. Hyphen does not work occasionally

Thanks for the melisma workaround (2x "_")

Another incorrect behavior happens by trying to enter a melisma on the first note by pressing _ once or several times, the cursor jumps to the next notes, but a melisma doesn't appear.
(In the score above delete the lyrics except "Da" on the first note and try to enter a melisma for this syllable)

In MS2 the first _ added a short melisma which not extended to the next note. So it was quite natural to press _ again to extend the melisma.

Workaround No Yes

Do I understand correctly, that the workaround exists, so that writing syllables from scratch works, right?

Workaround Yes No

No, actually there is no workaround. the double _ to add a melisma is not really a workaround, it is how it always worked

Workaround No Yes

No, the workaround refers to the melisma issue, the thread started with.
For the syllable dash issue there is no workaround.

@Jojo The melisma issue did not always worked that way. In MS2 the first _ already created a short melisma. MS3 does underline the previous syllable.

Workaround Yes No

and that isn't a workaround.
Yes, that short melisma turning into an underline is yet another issue, but there using a double underscore isn't a workaround either

The dash is in the data. It is just not being layouted.
Switching views after save/close/reopen will revive the dash.

For the first dash problem see https://github.com/musescore/MuseScore/pull/4121

The problem with melisma is more difficult. Apparently it is related to setting the dash length (rxpos2()?) in LyricsLine::layoutSystem and LyricsLineSegment::layout. However the code doesn't seem to have changed since the end of September (74eda99423ed51bc06d49af13c301ab8c161bd31), and this bug should either be present at least since that time or be caused by style changes or some other less evident reasons.

@dmitrio95: I already tried the same but take care, now you will get a leading dash at the start of a new system, when the lyrics in the previous system end with a dash.

For the melisma could you try this in lyricsline.cpp?

qreal minMelismaLen = 1.00 * sp;
if (rxpos2() < minMelismaLen)
rxpos2() = minMelismaLen;

A probable step to resolving melisma issue: https://github.com/musescore/MuseScore/pull/4123
Maybe we indeed should have something like the minimal melisma length like it is already done for dashes. However prior to applying that there was a probably more general way to prevent melisma from crossing lyrics syllables which I try to enable again in the mentioned pull request. However this really seems to need some rework.

Status active fixed

Fixed in branch master, commit 239c57194b

fix #277693: Fix melisma intersecting with lyrics syllables

This patch:
1) Makes melisma be spanned not less that to the right edge of the
first note.
2) Adds a value to a width of "temporary" short melisma equal to the
lyrics syllable's width (which was done so in MuseScore 2).

I am afraid there is still a pending issue. In almost every case it works pretty well. But I have a example where the melisma still intersects the syllable.
This is with the latest version.

melisma3a.png

Attachment Size
Melisma3.mscz 2.46 KB
Status active fixed

Could you please describe steps to reproduce this state? Opening the example score indeed gives such a bad layout but I am not able to reproduce it from scratch.

Priority P3 - Low P2 - Medium
Reproducibility Always Randomly
Status active needs info

This status is better. Also, adjusted other categories to show actual state of the issue.

Well, I checked some of my existing score and found this issue which I stripped down to the example attached above.
I did not try to create it from scratch. Do you think it is just in this score? The lets call it fixed.

In reply to by tobik

The additional value of a score rather than only a picture is that others can look at the score to see if another setting was changed (probably by accident) that affects the display. This is especially useful if others are having difficulty recreating the issue.

Priority P2 - Medium P1 - High
Status needs info active

I have not followed the topic since the beginning, but compared to version 2.3.2, the melisma is not removed properly after Undo, and I can reproduce the previously attached display.
See (first test with 2.3.2, then the same with the current 3.0 dev.)

Video.gif

Melisma3.mscz has two <Lyrics> elements where there should only be one. To correct your score, you should replace this:

            <Lyrics>
              <ticks>480</ticks>
              <text> </text>
              </Lyrics>
            <Lyrics>
              <text>bla</text>
              </Lyrics>

with this:

            <Lyrics>
              <ticks>480</ticks>
              <text>bla</text>
              </Lyrics>

If the bug that created the faulty MSCX has been fixed, I would say that this issue is fixed as well, since it would no longer be possible for this to occur.

@cadiz1: Thank you for the repro steps - very good.

@dmitrio95: I presume your fix will not prevent the faulty MSCX, because it corrects the layout, but not the document itself. Right? Do you prefer a new issue?

At this point, we are definitely talking about a couple of other issues.
1. It is permissible for a <Chord> to have more than one <Lyrics>, as long as each <Lyrics> has a different <no>. If the <no> is not provided, or if it the same as a previous Lyric, then the Lyrics will collide. I do not know what caused the document to be written the way it was. cadiz1's steps produce the same visual result, but not the same MSCX.
2. Lyrics in different voices will collide with each other. This happens in 2.x as well.
3. cadiz1 demonstrates how Undo can make a Lyric appear that contains a melisma but no text.