musescore / MuseScore

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
https://musescore.org
Other
12.36k stars 2.67k forks source link

Playback errors: decrescendos / crescendos with specific dynamics #23133

Open 737567488211031298786674381183 opened 5 months ago

737567488211031298786674381183 commented 5 months ago

Issue type

General playback bug

Bug description

IN SHORT:

Adding specific dynamics to a hairpin (or to a cresc. or drecresc.) causes playback issues. For example ...

... if there is no extreme separation between the hairpin (or cresc. or decresc.) with a specific dynamic at its end and the subsequent dynamic level, the subsequent dynamic level is not played back;

... repeating bars with hairpins (cresc._s or decresc._s) that have a specific beginning/ending dynamic level, the dynamic changes are only reflected during the bar's first instance or last repeat, and even then the change of volume is not gradual, there are often volume spikes;

... specific dynamic levels can't be added to the left side of hairpins (or cresc._s or decresc._s), it is always automatically added to the right side, regardless of the direction of the dynamic changes.

... etc.

IN DETAIL:

See attached test project and PDF, both with detailed explanations. It is a new project I created from scratch, not imported stuff.

IN CONCLUSION:

Even if correcting these bugs is not possible, it would be greatly appreciated if hairpin/decresc./cresc. playback options would be available (at least in terms of their strength). We are stuck with using just plain hairpins, which do work as expected, even over the duration of repeated bars, but they do not produce large enough dynamic changes and there's no way to change their behaviour.

https://musescore.org/en/handbook/4/hairpins#change-playback

–––––––––––––––– Also posted here: https://musescore.org/en/node/365008

–––––––––––––––– Related:

2021 - Crescendo from niente not functioning as intended https://musescore.org/en/node/324942

2023 - Dynamic 'n' starting from nothing. https://musescore.org/en/node/346009

2024 - Volume spikes slightly suddenly when dynamic is decrescendo-ed to niente on strings(?) #22812 https://github.com/musescore/MuseScore/issues/22812

2024 - Fade away to nothing / fade in from nothing, dynamic marking. https://musescore.org/en/node/364633

Handbook / Dynamics https://musescore.org/en/handbook/4/dynamics

–––––––––––––––– OS: macOS 11.7, Arch.: x86_64, MuseScore Studio version (64-bit): 4.3.1-241490902, revision: github-musescore-musescore-026c26b

Steps to reproduce

  1. create two bars with a bunch of notes that fill the bar, not leaving space for long rests
  2. add decrescendo hairpin (or decresc._) to bar 1
  3. click the decrescendo hairpin under the bar and add a soft dynamic to it from palettes (e.g. pp)
  4. add ff (fortissimo) dynamic to first note of bar 2
  5. start playback from bar 1

Result = bar 2 does not play back in ff (fortissimo).

  1. reduce the range of decrescendo hairpin (or decresc._) so that it does not extend all the way to the end of the bar, but ends earlier (for example on beat 3 in a 4/4 bar)
  2. start playback from bar 1

Result = bar 2 plays back in ff as expected, but decrescendo hairpin ends earlier than needed.

Screenshots/Screen recordings

No response

MuseScore Version

OS: macOS 11.7, Arch.: x86_64, MuseScore Studio version (64-bit): 4.3.1-241490902, revision: github-musescore-musescore-026c26b

Regression

I don't know

Operating system

macOS 11.7.10

Additional context

dynamics-playback-errors-test-PDF.pdf dynamics-playback-errors-test-MSCZ.mscz.zip

MS Basic - Piano

cbjeukendrup commented 2 months ago

The situation has been improved by https://github.com/musescore/MuseScore/pull/24569; it looks like now the only remaining issue is that the "start dynamic" for a (de)crescendo is not always guessed correctly when not explicitly specified at the start of the hairpin. It would be great if someone could investigate more what's exactly the problem and what would be expected behaviour, and update the issue accordingly.