Voicing feature refinements

• Aug 26, 2018 - 17:43

First of all I want to say the Voicings feature is amazing.
I've been a programmer, myself (C++), and can't imagine how many hours must have gone into making it work.
And it's done intuitively enough that I taught myself how to use it without reading a single word from the manual...
I admire also that it is a bold move, deviating from standard notation, auguring the possibilities digital medium bring.

So, here's a few ideas for enhancements:

1) a setting in Preferences to statically color-show the voicings in the editor (and maybe some options for how to print them)
2) orienting the voice buttons vertically in the menu, and reduce number to three (see why below)
3) iconify them, instead of numbering them (see below)
4) The voicings' defaults:
* for middle voicing (the "default" voicing), bars, lines and whatnot orientations default to AUTO, like they presently do
* for the top voicing the bars, lines and whatnot default UP
* for bottom voicing the bars, lines, etc., default to DOWN
(NOTE: The suggestion being that people use the middle voicing for the main voicing; then the top voicing for a higher pitch melody and the bottom voicing for a lower pitch melody. If so, the bars and stuff won't get in the way of each other most of the time. Only a suggestion, though. Orientations of lines and such would still be manually editable; but it would take less work, typically.)
5) Rests that automatically line-up with the average vertical position of the nearest notes of their voicing
6) A new menu item in the Edit tab, under Paste, called "Paste Special ..."
7) Paste Special opens a dialog which eventually could include a lot of interesting features, such as transposed pastings, and a lot of other goodies; but for now, and to start with, the ability to turn each of the three voicings on and off, so that if I want to paste a single voicing from another section of a song, I can do so.


Comments

You are welcome to only use three voices, but some music needs four, so no, we aren't going to take that important capability away.

Personally, I think the logical arrangement for the voice buttons is

1 3
2 4

thus showing in a way the default stem directions.

Not really sure I understand your suggestion 4). Sounds like you are suggesting an additional fifth voice that would always use default stem directions even in the presence of other voices? That's not impossible and I could imagine uses for it. Eg, to have automatic stem direction in the presence of accent notation above the staff). There was an earlier suggestion to make accent notation "special" and not affect stem direction in another voice, and that to me is a simpelr solution to that particualr use case. Did you have a different real-world use case in mind here?

5) is something that in principle MuseScore 3 could address through its automatic collision-resolution algortihms. Current builds don't do this but it seems a valid thing to want to see added. 7) is something already doable with the Selection Filter and/or Edit / Voices for the most part. Do you have a specific use case you are having trouble with using these tools?

In reply to by Marc Sabatella

My suggestion of 3 voices was more a suggestion of an odd number, so that the middle voice is the one with AUTO orientations. I thought asking for 5 voices would be too much, so I suggested going to 3 instead, but 5 is fine. With 5, the two upper voice buttons have default orientation UP; the lower two voicings have default orientation as DOWN. The main idea is, the middle (default, black-colored) voicing is the only one defaulting to AUTO. BTW, colors could be red for bottom-most track, orange for second bottom, blue for top-most, and green for second-top, so that color frequenciy (color pitch) further suggest best usage. But the color for item selection then needs to be changed away from blue... I'd suggest for that keeping the item color the same and use a background, box or halo of yellow to indicate selection. But I'm getting side-tracked...
So, the five voice buttons could go
[blue]
[green]
[black]
[orange]
[red]
And the reason I suggested vertical placement was that I was already thinking of extra things to the right of them; -one being a "Lock" button, so that when a voicing is locked, notes you enter and any edits you do are in that voicing only and ignore any other voicings, as if they were not there at all. Also mute and visibility buttons... maybe a "selectable" check box... Just thinking...

I have no opinion on the question of how to deal with lines and ornaments; I was only suggesting having a middle voicing that defaults to AUTO, whatever AUTO means, or however it is implemented.

I did not know about the selection filter; I will have to check it out. However, it seems to me that, generally, input filters and output filters have distinct functions, in all areas of life, software, electronics... A Paste filter (Paste Special ...) would allow you to decide what to paste, out of what's in the buffer, and how to paste it. So, for instance, you copy a section, then "Paste Special ... -> select voicing 5, but turn it into voicing 4 to avoid overwriting the voicing 5 that's already there at the pasting location..."; and you could turn pitches off for voicing 2 so that it replaces the notes with rests for that voicing, that you can manually make into notes; and you could specify a transposition by a fifth for voicing 1, and a time shift of 1/32 for voicing 3. All these things and more could be in the Paste Special ... dialog. Include/ignore lyrics? ....
And then you can Paste Special that same buffer again, elsewhere, with different settings.

In reply to by danw58

I'm still wondering what your real-word use case is for wanting a "free" voice whose stems aren't forced up or down in the presence of other voices. The only scenario I can think of where this would be useful is the example I mentioned of accent notation, pretty much every other case I can think of you actually want the voices to do what they do already. And as I mentioned, there is a much simpler solution to that problem. But if there are other real-world use cases to consider, I'm definitely open. I might still suggest a different solution, though. Like, have a new stem direction setting called "independent", and you could set any notes in any voice to this and they would be immune to the usual rules of voice 1 & 3 up / voice 2 & 4 down and instead act as though there were no other voices. Still not sure when else it would be used, but it's a much simpler implementation, much simpler UI to present, and also more generally useful.

Paste Special definitely has some appeal. As mentioned, you can already do virtually everything you might want this to do, but if a separate dialog saves a couple of clicks here or there it could be useful

In reply to by Glenn Blank

Me too. But to be clear, in this case, it is actually that much more important to keep the normal multivoice rules for stem direction this case - the "upper" voice must remain stems up even if it temporarily crosses below the other voice. MuseScore already does exactly what is needed ; this proposed new "independent stems" facility would not be appropriate.

The type of use case being discussed here is presumably one in which the division between voice roles is so clear and obvious for other reasons that we don't need or want the stems to clarify this. I've mentioned "accent notation" as the one example I know of where this is true, but for those unfamiliar, it is this:

accent-slash-notation.png

Here, the notates above the staff are not real notes but indications of rhythms to be played, and this fact is clearly conveyed (to people familiar with this style of notation - e.g., jazz players) by the slash notehead, and the small note size. The convention in this style is to use stems up for those accents, but to let the "regular" notes below be notated as if the accent notation wasn't there. So assuming there is only a single other voice - as is the case here - then stems will be up for notes below the middle line, just as for any other single-voice music. We don't need to force stems down for the regular notes because there is no danger of confusing them with the accents above the staff on account of the slashes and small size.

In most other multivoice situations, we have neither the slash noteheads nor the small size to differentiate the voices, so the stem direction is the one way this is done. The only other case I can think of where it could conceivably come into play is cues in ensemble music. If you chose to continue the cue into the measure containing the actual entrance, one could possibly want a cue that is totally above or the regular to have stems up but allow the regular notes to have stem direction as if the cues weren't there. Here the small size of the cue combined with the context could also help differentiate. but even so, my sense is that most editors would choose to go with the usual conventional of opposing stems to make sure there is no confusion.

Obviously, even without an "independent stems" settings, you can force the stems the direction you want. The advantage of a true independent stem option would be that it would do the right thing when transposed as well. And here is where, again, accent notation is the obvious use case, since lead sheets are typically produced in multiple keys.

In reply to by Marc Sabatella

The reason I thought of having a "default" voice whose default stem mode is AUTO is that then, if I add a voice above, it can AUTO the stems down, and when I have another voice below, it can AUTO its stems up.
But never mind, here's a better idea: Keep it at 4 voices, and keep them at AUTO, but just improve the implementation of AUTO, such that given a set of voicings at any point in time, highest voice orients UP, lowest voices orients DOWN, and anything else gets analyzed in more detail.
And by more detail I mean that the distance of a voicing is taken into account, so for instance, if I have 3 voicings, but the top voicing is far away (high in pitch), whereas the lower voicing is close (say a minor third below), then the lower voice pushes the stems of the middle voicing UP with more force than the top voicing pushes them DOWN, and so they end up UP, away from the lower voicing.
But this computation needs to be done with averaging of forces over a span of say 4 to 7 notes; otherwise it could cause too much changing between UP and DOWN orientations. So the algorithm needs to filter the noise a bit.
EDIT: I could probably code this for you. What language is this written in?
EDIT2: I neglected reading your whole post before replying. Now I realize there are issues of voicing identification that depend on stem orientation.
Hmmm....
Allow me to suggest that, since voicings is a departure from standard notation, it may be a bit too late to try to make it printable and compatible with standard notation. It is a bold thing to introduce something like voicings, so keep it bold. We are in the age of color printers. Those who don't have a color printer can be let to suffer.
What should be the priority with stems orientations is that they don't get on the way of each other. So while standard prctice is to orient them up for notes below the middle line, and down for notes above the middle line, with more than one voicing the policy has to turn 180 degrees, literally. Notes below get stems down; notes above get stems UP. And voicing ID is by color; period. That's what I would do.
Another solution, for black and whiters, would be an option to use round notes for the default voicing, but then square, triangular and pentagonal notes for the other voicings. Just an option for the color printer handicapped, so nobody can shout heresy...
Or make the program export STL and make the score 3D-printable... :-)

In reply to by danw58

I still don't understand the use case for what you are proposing. Can you explain, ideally by attaching a score, what problem would be solved by not using the standard convention for stem directions?

Anyhow, MuseScore is written in C++. If you'd like to get involved in development, see the Development link in the Contribute menu above.

In reply to by Marc Sabatella

Sorry, I was still editing my post. See my two edits there.
Okay, use-case.... My score for Time Won't Wait was a mess of voicings, with the stems of one voicing overdrawing the stems of the other, and rests mixed with everything. The picture I include in from page 19 of the score..
https://musescore.com/user/29490321/scores/5206618
.. and that is AFTER manually cleaning it up. By default, upper voicing gets the stems down and lower voicing gets them up, so they overwrite each other.
So, as I was saying in my edit, I think it should be okay to change the rules for the use of voicing. Avoiding collisions of the stems should be a higher priority than either keeping them inside the pentagram OR usage of orientation for voicing identity. Keeping the stems inside the pentagram is only a space consideration. Using stem orientation for voicing ID is hopeless, as there are 4 voicings, but only two orientations, unless we make it 3D-printable...

Attachment Size
mess.gif 37.35 KB

In reply to by danw58

Voices are not departure from standard notation at all. They have been in common use for centuries, and MuseScore implements the stem direction rules pretty much the same way it's been done by professional engravers and ever other notation program I have used. So again, if you have some special unusual case in which you need stem directions to be other than how they have been used by others over the past few hundred years, that would be good to understand. So far, the accent notation example I gave is really the only one I can think of, and as I've mentioned, it's easily solvable with less drastic means.

In reply to by Marc Sabatella

Ahhhh, you got me. I had no idea; I thought you guys invented them.
Anyways, I'm an iconoclast, and wouldn't give a hoot how many hundreds or thousands of years something's been done a certain way, if I can think of a better way; but not everybody is like me, so I rest my case.

In reply to by Marc Sabatella

"it is that much more important to keep the normal multivoice rules for stem direction this case - the 'upper' voice must remain stems up even if it temporarily crosses below the other voice." I agree.

I had not thought about the case for varying stem directions in the context of "accent notes" or cue notes; but since you mentioned it, I can see the desirability of that feature. Danw was proposing that one of the voices be set to "automated" stem direction. But there may be cases when one would want another of the voices to have the variable stem direction instead, so I like your approach of having a button beside each voice button to designate the stem direction for that voice as up, down, or automated. (Incidentally, whether the buttons should be vertical, horizontal, or in a square is a purely aesthetic question.)

BUT, I want to propose another approach that would not only address Danw's need, but remove a more general limitation in MuseScore at the same time - all without the need to add any UI at all. Currently, one can only adjust characteristics via the Inspector one note at a time. If you select a range of notes, the only parameters available in the Insector are "Set Color" and "Set Visible/Invisible." If MuseScore could be modified so that the full array of Inspector adjustments are available for a range of notes as well as for a single note, then no other IU would have to be added: Danw could simply use the Selection Filter to pick out the voice for which he wants to automate stem direction, and select the range, and set "Stem Direction" in the Inspector to "Auto." This would save time not just for stem direction, but in all kinds of situations. For example, for cue notes or accent notes, one would no longer need to change the note heads to "small" or "x" one note at a time, but all at once. So going this route gets you much more "bang for your buck" - an entire array of added flexibility and functionality with just a single change to the UI.

In reply to by Glenn Blank

You can already do this - just hit the "Notes" button at the bottom of the Inspector to limit the range selection selection to just the notes within it. Or, if you prefer, right-click one note, then Select / All Similar Elements in Range Selection.

But this doesn't really address the issue of wanting one voice to have auto stem direction as if other voices didn't exist. You'd have to manually set the stem direction, and then that would be wrong if you transpose the passage. That is why I proposed adding an "independent" value to the stem direction property, so you could select any set of notes (including use the Selection Filter if desired to limit by voice) and set the stem direction explicitly to "independent" for that particular passage. That would allow your score to behave normally with respect to multiple voices in most places, but only use this highly unusual special-case layout in the few spots where it is appropriate, like the measures using accent notation. We could even make the "toggle rhythmic slash notation" command set that property automatically.

In reply to by Marc Sabatella

"You can already do this" - Oops! I completely missed seeing the buttons at the bottom of the Inspector. Thanks!

"But this doesn't really address the issue of wanting one voice to have auto stem direction AS IF OTHER VOICES DIDN'T EXIST." Do you mean by this that when the stem direction is set to "Auto" for a particular voice within a selection, the stem directions are influenced by the locations of notes in other voices within the selection, rather than the stem directions turning a particular direction based solely on whether the note is in the lower or upper half of the staff? If so, then MuseScore already does what Danw wants it to do. The only thing his proposal would add to that is making "auto" the default behavior for one particular voice rather than setting it to "auto" through the Inspector. But I am with you - the situations when one would want that behavior would be so limited that it should not be the default.

But I do see the value of adding a setting of "independent" that is distinct from "auto" as you have described.

In reply to by Glenn Blank

The "auto" setting works the way standard notation dictates: if there is only one voice, stem direction is determined by position on the staff, but if there are multiple voices, then voice 1 is always up and voice 2 is down regardless of position on the staff (and if there are additional voices, 3 is up, 4 is down).

What I believe the request to be about is a way to defeat this - to have some voice behave as if other voices weren't present at all. So that even in the presence of a second voice, the "special" voice would have stems direction that were determined by position on the staff, just as they would if the other voice were not present.

Except for the "accent notation" case I mentioned, this is essentially unheard of in published music which is why there is no such feature currently. But if implemented the way I mentioned - a new value for the stem direction property on the note itself - it would be easy to add, easy to use, and would lend itself to other use cases as well assuming they existed.

In reply to by Marc Sabatella

"What I believe the request to be about is a way to defeat this - to have some voice behave as if other voices weren't present at all. So that even in the presence of a second voice, the "special" voice would have stems direction that were determined by position on the staff, just as they would if the other voice were not present."
No, what I wanted was the exact opposite of that, for AUTO. I wanted the "middle voice", the AUTO voice, to have stems that avoid collisions with the stems of other voices, above or below. I did not even know about the rule of standard notation, though I may have suspected it existed, but I did not personally care for it at all. In fact, I think I said that the priority should be collision avoidance, rather than conformance to traditions. But I rested my case; just thought I'd clarify that.

Do you still have an unanswered question? Please log in first to post your question.