Dynamics/hairpin range for Voice
Reported version
3.0
Priority
P2 - Medium
Type
Functional
Frequency
Many
Severity
S5 - Suggestion
Status
PR created
Regression
No
Workaround
Yes
Project
Currently we can set hairpins and dynamics to apply to the staff, the part (like both staves if a piano) or the entire score.
Esp. for closed score SATB, but also in other situation it'd be useful to restrict hairpins and dynamics to the voice they got attached to.
To maintain backward compatibility with existing scores, in the corresponding enum we need to take care of keeping the values for STAFF, PART and SYSTEM the same, so either append VOICE to the end of that enum or insert it in front, but set it to -1. Logically it should be the first entry.
Support for playback would mean that we'd have to change velocity to be a property of voices rather than staves.
Comments
I've started to add a 'voice' range to the dynamc's span, but so far only the UI, no playback.
Check my fork/branch at https://github.com/Jojo-Schmitz/MuseScore/tree/dynamic-range
Issue came up again in https://musescore.org/en/node/108231
Came up again in https://musescore.org/en/node/127356
See https://github.com/musescore/MuseScore/pull/2852, more as a Basis for discussion and asking for help on how to get the playback done too
Came up in https://musescore.org/en/node/151796 again
And again in https://musescore.org/de/node/177471
And again in https://musescore.org/en/node/22233#comment-749936
And again: https://musescore.org/en/node/246006
Came up again in https://musescore.org/en/node/63631
And again in https://musescore.org/en/node/274290
Partial PR still at https://github.com/musescore/MuseScore/pull/2852
See https://musescore.org/en/project/voice-velocity for a plugin that works around this issue
Came up again https://musescore.org/en/node/288798
@Jojo-Schmitz any news with your branch you started?
With the introduction of single note dynamics it seems it would be better to take this into account too (should be useful for vocal scores, I believe?)
If so then the single note dynamics code (and the soundfont) needs some adjustments to allow setting different dynamics for different notes in MIDI channel. Here is a pull request by @TheOtherJThistle that can be used in implementation of this feature: https://github.com/musescore/MuseScore/pull/5004
But, of course, this doesn't revoke the necessity of assigning different MIDI velocities for different voices in order for this feature to work properly with other soundfonts.
That PR makes it possible, yes. The problem with poly aftertouch is that you need to send the note through with the dynamic events. This would require a fairly large change to the current system from just sending dynamics events to working out which notes to send events for and then sending them for the correct length of time etc. So, while not impossible, I'm not exactly prioritising implementing this, especially as it's not a regression.
@Louis: no update from my side, i still only have an UI in my PR
once dynamics/harpins for voices get implemented, we should take care that they also change their voice on a 'swap voice x and y'
+1
Came up again in https://musescore.org/en/node/296564#comment-964963
And again in https://musescore.org/en/node/301159
The PR which lays the groundwork for this to be implemented has been merged. I'll chat with S. Christian Collins about getting the soundfont side worked out, and once that's done I'll get started on an implementation :)
In reply to The PR which lays the… by TheOtherJThistle
I hope the PR will also resolve #297444: Hairpin attached to note other than in voice 1 in score appears on wrong part which seems a pre-requisite.
Seems entirely unrelated
Indeed, playback and layout are almost never related.
In reply to Indeed, playback and layout… by Marc Sabatella
But if MuseScore mis-places hairpins, do you not think that users might be disappointed when a hairpin attached to flute 2, controls the dynamic of oboe 2 instead?
If that in fact happens, but anyhow, a PR to fix playback will almost never affect layout or vice versa, since the code is almost completely separate. So a separate PR would be needed. I hadn't noticed that layout bug you mentioned, but now that I see it, it's pretty serious and should probably be dealt with first.
In reply to If that in fact happens, but… by Marc Sabatella
Sorry for the hijack of the topic but I saw an opportunity to bump a notation issue into view above the current high volume of forum traffic concerning playback.
I want to support this issue - it has high importance for choir scores, where it is common to have two voices in one staff which might have different dynamics, hairpins und lyrics.
Currently we have the following issues:
- Playback does not play the different dynamics
- entering hairpins for the second voice is almost impossible, since you cannot select a range for a voice only. The only way i found was to select a single note, add the hairpin and expand it afterwards :-( or did I miss any better way ?
- voice swap exchanges lyrics but not dynamics and hairpins
- explode and implode ignore dynamics and hairpins for second voice
- ultimate comfort would be if style settings would allow individual positioning of these elements (lyrics, dynamics, hairpins) for the individual voices (i.e. voice 1 above, voice 2 below)
I would appreciate if this topics gets raised attention.
Thanks and best regards
I did more tests on hairpins for voice 2 - behavior is inconsitent:
If I select one or two notes in voice 2 - one single hairpin is created and assigned to voice 1.
If I select 3 or more notes in voice 2 - all created haipins are assigned to voice 2
Sorry to add here piece by piece but every test reveals new surprising facts, my previous messages included only tests using the palette sidebar.
Hairpins are created differently depending whether i use the side bar palette or the keyboard shortcut "<".
- keyboard shortcut always uses the correct voice 2 if you are able to select a range, that does not span both voices.
- keyboard shortcut does nothing if more than 2 individual note are selected.
Not a bug, MuseScore is designed that way. Getting this change is a Feature Request AKA Suggestion
This requires an implementation of polyphonic aftertouch. The good news is, I would really really really like to do this for 3.6. Stay tuned.
Maybe I was no precise when I changed this to bug.
Getting the playback to seperate the voices is a feature request as well as the change in behaviour of swap voices and explode/implode.
That adding a hairpin with voice 2 notes selected behaves as described - with different results whether you use the keybord or the side panel I consider a bug. In one case you get a hairpin for voice 1 in the other for voice 2.
Probably I should issue a new ticket for that.
Yes, it is a different issue for sure
Came up again in https://musescore.org/en/node/312635
How is it going with this one? Doesn't look like it made into 3.6?
It indeed did not.
Workaround is to manually change the notes' velocity
Sure, it's possible to manually set velocity for each note an this seems to work for indivdual voices. This is a huge effort and not really usable on a larger scale. I understand that musescore was focusing on the layout of the score not on playback. Therefore the lacking support for voices in playback (dynamics, haipins mixer) was understandable. With musescore 4.0 moving significantly towards playback, I hope this gets improved in the future.
Meanwhile, I suspect a plugin could automate this nicely - the equivalent of "tempo changes" but for velocity within a single voice. The previous https://musescore.org/en/project/voice-velocity plugin could be used as a starting point.
See also https://github.com/musescore/MuseScore/issues/13326
And https://github.com/musescore/MuseScore/issues/13374
See https://github.com/musescore/MuseScore/issues/19137
and now https://github.com/musescore/MuseScore/pull/19289