Extracting separate parts from two voices on a single staff?

• Dec 6, 2015 - 16:56

In an orchestral arrangement, I've combined Horn I & II on a single staff to save space in the score. When it comes time to extract the parts, I would like to be able to extract separate parts for first and second horn as a courtesy to the players, as the separate lines get a little tangled on a single staff. Is there a way to do this?



add an instrument and copy and paste the second Voice, then delete the first
or save the part as a separate score then eliminate unnecessary Voice.
It should work too: creating a new part (eg. Horn II) from which, with filter (F6) remove the Voice 1

In reply to by Shoichi

There are no 'unnecessary' voices; so I'm not sure I'm following your procedure. There are two voices on one staff for the horn parts; all the other instruments are each on their own individual staves. The horn parts are stuffed together into a single stave in the score because they don't play though the entire piece. But printing a dual part would not be kind to the perfomers; those two parts twine around each other a fair amount and would be a lot easier on the hornists if each had his own part.

If I had had room in the score I could have written them (more easily, in fact) on separate staves. But if I did that, I'd either have to reduce the scaling to an unacceptably small level, or dicker around with printing the score in folio size (which I'd like to avoid if possible).

Currently, the most efficient way to do this is to add additional individual parts to the score (filled via copy and paste of the respective voices from the combined staff), but make those staves invisible in the score (from the Instruments dialog), then generate parts from those individual staves and not from the combined staff.

In reply to by Isaac Weiss

Okay, thanks. That will work, although it feels a bit like making three right turns to in order to turn left. ;o)

What would you think of creating some sort of 'extract voices as separate parts' command or option check-box in the staff properteries that would accomplish this without the elaborate work-around. I think it would be a useful control for orchestrators and arrangers working with larger scores, something I've recently started doing after years of specialising in ensemble music for six or fewer voices.

In reply to by Isaac Weiss

Yes, it appears that they do, but it also appears that what they were thinking when they wrote that function was to enable semi-automated creation of parts from a piano reduction. Or maybe that's just the way I'm interpreting their instructions; I've never used Finale and am not familiar with their somewhat different terminology. But that 'count x notes from top/bottom' parameter would seem to be designed for that sort of usage.

In reply to by Recorder485

I'm pretty sure Finale only started supporting that very recently, and as far as I know Sibelius does not at all. Anyhow, it's much easier said than done. Everything about the linked parts implementation is predicated on the notion of the *staff* being the main unit of linkage.. No doubt it would be possible to re-implement it to be voice-based, but it's likely to be quite a lot of work. Not out of the question, and the idea clearly has value.

FWiW, I believe much if not most newly published music these days uses spearate staves for each rather than combining parts onto a single staff precisely because that's all that most notation has supported for the past few decades.

In reply to by Marc Sabatella

It may be possible to generate parts n times (with n being the number of voices in the part/nnstrument and then making the 'excess' voices silent and invisible in the parts?
E.g. in a Close score SATB extract SA and TB twice
This seems to work, some maybe a tool making this easier would help?

In reply to by Jojo-Schmitz

If I am following you, Jojo, I think you are proposing a tool which would implement the work-around that Zack proposed, but do it automatically. That could be a time-saver, but how complex would it be to code it to identify which of the different voices should be tagged as the 'excess' one(s) in each of the n copies of the identical parts? For straight orchestral scoring such as I am doing, you'd be unlikely to need to deal with more than two voices, but I suspect that some people would want to use a tool like this to expand a piano part into an open score; in that case n could be anything from 2 to 6 or 7.

I gather from Marc's comments about the part-linking being staff-based that converting to a voice-based system would be a major undertaking.

In reply to by Jojo-Schmitz

A system to hide all the content in a given voice would be an incredible tool. But here's a much simpler idea:

In a two-voice context (for now, just consider two), one voice will be above the other. In MuseScore 2.0.2, if there are two rests concurrently, making one invisible will make the other relayout itself as if it were the only voice. (Try it and you'll see.)

Expand support for this to all notes and other elements, and you've got it made. Conceivable?

In reply to by Isaac Weiss

Actually, I just tried to do that using the F6 filter, and it worked on both notes and rests. When I made voice 2 invisible, all the elements in voice 1 re-aligned themselves to single-voice layout. (Note I'm still using 2.0.1 until all the scores created using that version are 'locked' in pdf print finals.)

In reply to by Recorder485

My mistake—indeed, the same for 2.0.2 as well. There are just a couple of issues preventing this from being a complete solution for extracting separate parts from staves with multiple voices. First things I noticed:

- It doesn't work on other voices if you make voice 1 invisible.
- If all voices are either empty or invisible, measures do not combine into multimeasure rests.

In reply to by Marc Sabatella

I believe much if not most newly published music these days uses spearate staves for each rather than combining parts onto a single staff precisely because that's all that most notation has supported for the past few decades.

You are right; product evolution always reflects the limitations of the technology used to produce it. It's ironic that the great labour-saving ability of digital scorewriters to generate parts and transpose music automatically has made us too lazy to do it by hand except in extremis (and I, obviously, am no exception to that laziness, or I wouldn't be here asking you for this! ;o)

The approach posted by ZackTheCardshark on Dec 7 seems workable:
1) add staves at the bottom of the score (after increasing the page height via the Layout tab, to make the added staves accessible);
2) copy each voice to a separate added staff, using the Select tool (F6) to pick up each voice separately; then -
3) generate the parts from the added single-voice staves, which can then be set invisible in the score, and the original page length restored.

(Does this break the linkage between score and parts? I think it would.)

I tried Zack's scheme as above and it seems to work, although I needed some additional manual steps:
(a) after copying voice 2 from the original staff, I had to do a voice 1-2 exchange, then get rid of the redundant rests from the other voice;
(b) I also had to go through and restore the correct stem directions on some notes;
(c) some rests may have to be shifted for clarity, using the inspector to modify the vert and horiz offsets.

One problem I ran into is: how to select one voice in a 2-voice staff over the ENTIRE score duration (if I advance to the last page using the End key, the starting-point select is cleared).

Can any of these operations be automated by writing a plugin? Mark S., do you have any further suggestions?

In reply to by dhfx

You need to hold Shift while moving to the end of the score, or indeed any other cursor movement, in order to select. That's the same in any program. So, Shift+Ctrl+End to select to end of score.

Stem directions shoouldn't need changing if you had not altered any to begin with - the automatic setting should normally do the right thing. But it could be necessary sometimes if you are trying to do something non-standard.

A plugin could indeed potentially automate some of this, or it could possibly be incorporated into the program itself some day.

Mark: Thanks for the prompt reply, and thanks for telling me how to select up to the end of a score.

Re stem directions - the point is, some WILL HAVE been changed in order to put two voices distinguishably on the same staff. So if I'm separating the voices onto two staves to be extracted as separate parts, I want to restore each one to a "normal" formatting, without having to go through and manually select the stems that need to be switched. (Something useful here would be a function to clean up and "pretty-print" a single-voice part by restoring proper stem direction, etc.)

Re plugins: I gather that there is no simple guide to the MuseScore API that would help in writing plugins - or is there? Another useful approach would be the ability to access menu items from a script.

In reply to by dhfx

Can you post the score you are having problems with? As I said, MuseScore normally gets stem directions correct with multiple voices - it should not normally be necessary for you to mamnually change them. So either yuou have some unusual non-stanmdard situation I'd have to see in order to understand, or perhaps you are not doing things correctly.

Anyhow, if for whatever reason you have overridden the normal standard automatic standard stem directions, you can reset them by doing Ctrl+A to select all, then Ctrl+R to reset. If you have made other manual adjustments you want to keep, you can press the "Notes" button in the Inspector to limit selection to notes first, and you can also just hit the reset button next to the stem direction control rather than resetting all adjustments.

For writing plugis, what exists is the online help in the plugin creator window.

OK, I was able to use Shift-Ctrl-End to select the entire staff through end-of-score, copying first voice 1 to a separate staff, then voice 2 to another separate staff and swapping voices 1 & 2 in that staff to put original voice 2 as voice 1. Then I selected the entire single-voice staff (to end-of-score), hit Ctrl-A and Ctrl-R, and the stems went in the right direction. But I also lost a modification where I had extended a beam over a rest between two eighth-notes. Also a dynamic marking on the original two-voice staff appeared in only one of the copied voices. But finally from the two newly-created staves I was able to generate separate parts for the two original voices on the same staff.

I'm not clear where you're referencing when you say "... you can press the "Notes" button in the Inspector to limit selection to notes first, and you can also just hit the reset button next to the stem direction control ..." - what do I need to select in order to see those controls in the Inspector? But now everything else seems to make sense.

Is this still an open question? If so, who's up for encoding a solution using music21's Stream.explode() or Stream.voicesToParts()? That along with some catches for 'a1' text should go at least some way to solving this. E.g. add a second part below the one in question and then something like:

firstPartOnly = ['1 solo', 'a1', '1', 'solo']
secondPartOnly = ['2 solo', '2']
bothParts = ['soli', 'a2']

if x.expressions.TextExpression in firstPartOnly:
#do nothing (leave in part 1 only)
if x.expressions.TextExpression in secondPartOnly:
#move over to new part 2
if x.expressions.TextExpression in bothParts:
#copy over (put in part 2 and keep in part 1)

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