If note is tied to preceding grace note of equal pitch, only the grace note is played back

• Aug 25, 2019 - 13:08
Reported version
3.2
Type
Functional
Frequency
Few
Severity
S3 - Major
Reproducibility
Always
Status
closed
Regression
No
Workaround
No
Project
  1. Add grace note before a note with equal pitch.
  2. Add tie between the grace note and the note.
  3. Start playback.

Only the grace note is played back, but the "main" note is silent, as if it were a rest.

Attachment Size
grace_tie.mscz 3.69 KB
grace_tie.PNG 8.51 KB

Comments

Confirmed:

Workarounds:
(If there are two grace notes before the tied note) delete that tie and put a tie again. then everything is normal.
(If there is only one grace note before the attached note) put another grace note in same place, delete tie and put a tie again. and delete first grace note.

Note: Using a Tie like this way is useless. But it's a bug.

Thank you for the feedback, I will try the workaround!
Regarding your claim that using a tie this way is useless: I disagree, because sometimes a sequence of grace notes needs to be tied to the next note. If said note is part of a chord, that note is heard earlier than the other ones in the chord because it is struck first as a grace note. This effect is hard to reproduce with a different, equally simple notation.

Note: Using a Tie like this way is useless. But it's a bug.

It's not useless, it's a workaround if you need a tie from an undetermined note and it is used to start a volta 2 to show the tie to a note before volta 1 (make the grace note invisible). I realize that this still puts a tounging pause between the measures, but the note should play full length.

In reply to by Christian Hafner

I'm very sorry if I misrepresented my purpose (Ignore that "note:" part pls.)

@ Christian Hafner
Yes, it makes sense if there are many grace notes in succession and the last one is connected to a note (and other case you specify). I was talking about single grace (unison) note, tied to a normal note on a printed score.

@ Mike320:
You're right. But I wasn't talking about an invisible note (use as a workaround). I meant it on a printed score.
I think I wrote very direct and a little incomplete. Sorry again.

Status PR created fixed

Fixed in branch master, commit e98b0edd1d

_fix #293733: If note is tied to preceding grace note of equal pitch, only the grace note is played back

Why this is happening

In collectNote() in rendermidi.cpp, grace notes are currently not treated as notes that could potentially have forward ties; in fact, it is assumed that they will not. When a note is encountered that ties back to a previous note, it is assumed that the length of the note has already been added to the previous note, when in fact this is not the case if the previous note is a grace note.

Why this commit fixes the issue

The code for computing the entire length of the tie chain is now executed whether the current note is a grace note or not._

Fix version
3.3.0