Dynamics/hairpin range for Voice

• Apr 28, 2015 - 08:33
Reported version
P2 - Medium
S5 - Suggestion
PR created

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.


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.

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 :)

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.

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

Severity S5 - Suggestion S3 - Major

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.

Severity S3 - Major S5 - Suggestion

Not a bug, MuseScore is designed that way. Getting this change is a Feature Request AKA Suggestion

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.

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.