User assignable multiple channels per staff

• Oct 20, 2015 - 19:30

Proposed feature:
  A dialogue permitting user-assignable channels for any staff.

Proposed locations:
  a) ellipsis buttons beside entries in the Instruments dialogue
  b) a tab in the Staff Text Properties dialogue

Rationale:

Directions for changing articlation and/or timbre need to be executed during playback. Some examples:

  • woodwinds a due vs. solo
  • French Horns stopped or bells up
  • trumpets with different mutes
  • strings legato vs. détaché, or con sord., or harmonics
  • piano una corda

At present, only a few instruments are assigned more than one channel to deal with articulation/timbre changes during playback (e.g. trumpets, strings). For all other instruments, such changes require setting up hidden staves, or changing instruments mid-staff with Instrument from the Text Palette.

Hidden staves in a large orchestral score are a problem because revealing even just a few can cause the score to exceed the page length, plus there's the headache of silencing notes on the non-hidden staff.

Changing instruments mid-staff with Instrument adds a new entry to the mixer every time the instrument is changed. E.g., a piano score with six changes from the tre corde “instrument” to the una corda “instrument” results in twelve entries in the Mixer, each of which may have to have its volume changed in the Mixer because the volume of each new instrument added to a staff uses the volume in effect when the instrument is added.

It makes very much more sense to add channels to staves to handle the different articulations and timbres required for playback than to “change instruments” or add hidden staves. For example, a user could add the Staff Text direction “a due” to the oboe staff, right click on Staff Text Properties, and select the a due channel, which has been setup in the Mixer to use an “oboe section” soundfont.

There are three distinct advantages to this:

  1. Staff Text directions can be executed during playback.
  2. There's only one Mixer entry for each alternative articulation/timbre.
  3. The Mixer entries for alternative articulations/timbres associated with any given staff are grouped together rather than appearing on-the-fy at the bottom of the Mixer list.

The only way currently to assign multiple channels to a staff is to edit the .mscx file and add them there (along with helpful names like “pavillons en l'air”)—a method I use routinely and which drastically improves the overall realism of playback.

My proposal is that users be given a dialogue from within MuseScore that allows adding any number of named channels to a staff, thereby circumventing the need to edit the .mscx file. The dialogue would simply ask for the number of channels, with text fields for each channel so they can be named sensibly.

Without knowing the internals, I believe such a dialogue can be implemented easily since it merely affects what's written out to files rather than requiring any new code in the core binary.


Comments

In reply to by [DELETED] 5

How does it compare to https://github.com/musescore/MuseScore/pull/2126 ?

This allows directing output from a Mixer channel to an arbitrary MIDI channel. Useful, but not the feature I'm proposing, which is to permit adding an arbitrary number of channels to staves. As I mentioned in the OP, this is already doable by editing the .mscx file, but it would more conveniently implemented as an option available in the frontend. It makes no sense to have Staff Text Properties and then make it useful only for trumpets (normal and mute channels) and strings (bowed, pizzicato, and tremolo channels). Nor, for that matter, for strings to have only three channels when there are any number of articulations and timbres requiring differing soundfonts for correct playback at different sections of the same score (sul pont., sul tasto, con sord., harmonics, snapizzicato, col legno, détaché, legato, solo, etc). These kinds of changes are most sensibly and intuitively made by calling up Staff Text Properties and selecting the channel associated with the needed timbre/articulation, in the same way one switches from “normal” trumpet to mute.

Hi, any news about this feature?

I am new to Musescore, and to music in general, but I also had the feeling that exporting one channel per instrument was not "granular" enough.

This is my use case: while slacking instead of practicing, I tried to copy some exercises from Beyer Op. 101 in Musescore (see the very first one in the attachment), and then I wanted to export the score to midi an try it in pianobooster (http://pianobooster.sourceforge.net/); however pianobooster expects the two hands on different midi channels, while the grandtsaff notation used in Beyer implies the same instrument and then only one channel in the exported midi file.

I know there are hacks to achieve what I am looking for in the final midi, but writing the score should not be influenced by how it is going to be exported, and I wanted to keep the original notation anyway.

My idea was that at least an export mode with "one midi channel per staff" should be available, but of course a more general approach like the one described here would work for me.

Just for the records, AFAIU lilypond exports one channel per staff by default.

Attachment Size
Beyer Op. 101 - Exercise 003-1.png 28.2 KB

In reply to by ao2

I do not have Piano Booster, but...
for 2 channel midi export, you can create a score in MuseScore using 2 pianos. Open the attachment, then go to menu item: Edit -> Instruments where you will see 2 pianos.
The brace (connecting the staves in the score - i.e. so it 'looks' like one piano) was added from the Brackets palette.
Also, viewing the mixer (shortcut is F10) will show the two separate channels (as compared to a single channel for a single piano).

So... you *can* enter the score in MuseScore and export this as 2 channels. Perhaps Piano Booster can utilize the exported midi?

Regards.

EDIT: I forgot to extend the bar lines in the attachment, so just double click on the last (upper) one and drag it down. The rest will follow upon hitting Esc key, or clicking elsewhere.

Attachment Size
2_channel.mscz 4.81 KB

In reply to by Jm6stringer

Thanks, this was one of the possible hacks I was referring to in my message, and as I expected the resulting file does work in pianoboost.

Even though the score looks a lot like the original (minus the grandstaff label which could be hacked in as well somehow), it is not what the original author meant.

That's what I would like to avoid; as I said, ideally the way the score is written should not be influenced by how it is going to be exported.

In reply to by ao2

Wonderful! The 2 channel midi file works in Piano Boost. That's good news.

Earlier you wrote :
...and I wanted to keep the original notation ...
and recently:
...Even though the score looks a lot like the original (minus the grandstaff label which could be hacked in as well somehow), it is not what the original author meant.
I'm not sure what you mean...
Here's your picture:

Beyer Op. 101 - Exercise 003-1.png

Here's the 2 channel MuseScore rendition (same as my original attachment, with bar lines now extended and '3' added):

Beyer Op. 101 - MuseScore 2 channel.png

Here's a regular - i.e. 1 channel - score, entered as a single piano instrument:

Beyer Op. 101 - MuseScore 1 channel.png

Looking at all three above, what difference is there to the original author's meaning?
To me, there is no difference in the way the score appears (on the page).

Now...
MuseScore is primarily a notation software. It does have playback capabilities, and most people just enter the notes on the grand staff and are done with it. Unfortunately, for your particular use case, MuseScore exports piano midi on one channel. What I proposed is a workaround (hack, as you say) to get 2 midi channels so that you can practice piano using the Piano Booster software. To make the two piano instruments *look* like one, especially for printing the score, there's nothing *wrong* with extending barlines. In fact, it's no big deal to save a blank 2 channel score as a template ( https://musescore.org/en/handbook/create-new-score#templates ) to be used anytime with Piano Booster. This way, you won't have to set it up (hack) each time.

For example, here's a blank score with an empty (2 channel) grand staff:
2_channel_piano.mscz

You can add whatever notes you want, change clefs, time/key signatures, add/delete measures, etc.
It will look and play back correctly; notes are entered no differently from a 'one channel' piano score; and midi will export on 2 channels - good for your piano tutor app.

Regards.

In reply to by Jm6stringer

You wrote:
MuseScore is primarily a notation software. It does have playback capabilities, and most people just enter the notes on the grand staff and are done with it.

This is exactly my point. Why should someone writing a score care about pianobooster?

The problem is not in how the score is written: the grandstaff is a valid syntax tool, and in this case it's in fact the more appropriate, it communicates the concept of "using one instrument" (that's what I was referring to by "meaning"); the problem is in how the data is exported.

I realize that historically the final look on paper would define the meaning of the score, but with digital tools we can represent concepts in a more precise way, using a visual workaround just did not sound right to me.

But maybe we are going off-topic.

The original question is: would having more granularity in the midi export mechanism make sense to other users or to the developers?

And to the original poster (Peter Schaffter) would one channel per staff (opposed to one channel per instrument) improve the current situation for you? This should be easier (even from a UI point of view) to implement than multiple channels per staff.

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