Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #86151 - Articulation of ornamented note sound events #2281

Closed
wants to merge 1 commit into from
Closed

Fix #86151 - Articulation of ornamented note sound events #2281

wants to merge 1 commit into from

Conversation

mgavioli
Copy link
Contributor

@mgavioli mgavioli commented Nov 6, 2015

Reference: original issue with details and screen shots: https://musescore.org/en/node/86151

Issue: When a note is realized with multiple MIDI events (typically an ornamented note):

  1. Each individual event, including the last one, is given the time gate which the note as a whole should receive (either the instrument default time gate or determined by an articulation sign, like staccato, etc.)

  2. The note as whole is not articulated properly, but is articulated by the articulation of its last event.

This fix:

  1. applies to the note as a whole the proper time gate;

  2. generates all intermediate events as legato

Notes:

  1. If the note is significantly shortened by the articulation (like staccato), less alternations are generated for 'long' ornaments like trills.

  2. The current implementation skips entirely an ornament if there is no room to fit all its minimum required events. As the total note duration is in most cases shortened, this might now happen in some more cases than before, in particular with 'long' ornaments (trills) over very short notes.

  3. No change to the logic of ornament realization (which events for which notes), only timing is changed.

  4. Only one code file is changed, libmscore/rendermidi.cpp; all the other changed files are test reference files.

__Reference__: original issue with details and screen shots: https://musescore.org/en/node/86151

__Issue__: When a note is realized with multiple MIDI events (typically an ornamented note):

1) Each individual event, including the last one, is given the time gate which the note as a whole should receive (either the instrument default time gate or determined by an articulation sign, like staccato, etc.)

2) The note as whole is not articulated properly, but is articulated by the articulation of its last event.

__This fix__:

1) applies to the note as a whole the proper time gate;

2) generates all intermediate events as legato

__Notes_:

1) If the note is significantly shortened by the articulation (like staccato), less alternations are generated for 'long' ornaments like trills.

2) The current implementation skips entirely an ornament if there is no room to fit all its minimum required events. As the total note duration is in most cases shortened, this might now happen in some more cases than before, in particular with 'long' ornaments (trills) over very short notes.

3) No change to the logic of ornament realization (which events for which notes), only timing is changed.

4) Only one code file is changed, `libmscore/rendermidi.cpp`; all the other changed files are test reference files.
@Jojo-Schmitz
Copy link
Contributor

rebase needed

@mgavioli mgavioli closed this Oct 23, 2019
@mgavioli mgavioli deleted the Fix_86151_ornament_subevent_articulation branch October 23, 2019 22:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants