Add more channels to more instruments

• Nov 20, 2018 - 19:00

Now that the Mixer so nicely collapses multiple channels into a single column (that can be optionally expanded by clicking the button at top left of the column), maybe it's time to consider actually adding more channels to more instruments? It comes up often enough that someone wants a bunch of channels for the different sounds in an electric guitar, say, or mute (con sordino) channels for brass other than trumpet, etc. We hesitated in the past for fear of cluttering the mixer. Now that this isn't a concern, maybe we go for it?

Going a little further...

While we could go in and brute force add channels to each entry in instruments.xml, this invites all sorts of debate as to which channels to add for which instruments. What if instead, we added a "New Channel" button to the mixer? Yes, we already have the ability to add channels via instrument change text, but these channels are not available for use by staff text, which greatly limits their usefulness. Of course, I wouldn't mind seeing that changed either, but still, adding channels from the mixer seems natural to me.

Failing that, what if we just automatically added a couple of extra channels "User 1" and "User 2" to each and every instrument when adding them to your score? That is, if instruments.xml defines one "normal" channel, we give you "normal", "user 1", and "user 2"? If instruments.xml define normal/pizzicato/tremolo, we give you those plus "user 1" and "user 2", etc. If you never open up those columns in the mixer, you'd never need to know or care they were there, and I'll bet this would be easier to implement than a dynamic facility.


I agree, changing the instruments.xml is not the way to go. It will turn into a monster. Dynamically adding channels would be my first choice, but adding two user channels by default to every instrument would be acceptable to me.

Hmm, another thought on a "cheap" solution. Instrument change text already adds another channel. We've talked about having ways for additional instrument changes to access already-added instruments, but that's "hard" in thatwe need to invent a UI for it (not that hard, but still, more than a few lines of code). But - why can't that new channel be available in Staff Text Properties at least? This is just a matter of changing the code to populate the existing dropdown menu, no need UI required. I guess there are issues to think about in that the channel in some sense doesn't exist in measures prior to the instrument change, but that's not unsolveable either...

In reply to by mike320

Yes. Adding in the mixer would presumably add them to the beginning of the score (tick "-1" as originally implemented not sure if this has changed) and make them available to "staff text properties" in a way that channels added through instrument change are not, since those channels literally don't exist until the point in the score where the instrument appears. It's probably possible to change the algorithm for "Staff Text Properties" to allow selecting between all channels that exist at the point in the score where the staff text itself is placed. Probably bad things would happen if we tried allowing it to access channels that don't exist until later, at least not without even more handstands. But I'm trying to think, what seems easy and safe.

In reply to by Marc Sabatella

It sounds like you are trying to talk about an instrument change, with its special text and a sound change made by using staff text as the same thing.

One thing at a time. For any given instrument, once it's added to the score however it happens we are discussing how best to add more channels to the instrument to allow for things like distorted guitar and muted pizzicato violins with out workarounds. If the channels are created when the instrument is created as user 1 and user 2 I don't understand how the additional channels would work any different than those added from the instruments.xml.

If you are talking about dynamically adding channels, I understand this would require more new code to allow for the channel from beat 1 of the song or the instrument change that leads to the creation of these channels. Instrument changes will no doubt add new challenges as they have in the past. It took quite a while for you to make that work well.

In reply to by mike320

I realize I'm confusing the picture by talking about several different ideas and kind of flipping back and forth between them. I'm not really suggesting instrument changes be the same as sound changes via staff text. The main difference would remain that an instrument change adds a new channel whereas a staff text selects from exiting channels. Also, instrument changes also affects transposition, and potentially other properties as well like staff name or playable range (although currently this doesn't happen).

So there would still be a distinction between the two, but I'm hoping we can improve the experience. So I proposed a few quite different ideas, some of which are probably mutually exclusive, others could probably be implemented together. it's really more brainstorming than a concrete proposal. But to gather the different ideas in one place:

1) We could simply enhance instruments.xml to add more channels. "Easy" in that no code changes are required, but an obvious PITA to do more than just add a few channels here and there. This has no effect on instrument changes, it just allows staff text properties to have more channels available with no changes to that part of the code.

2) We could add "user" channels automatically when adding an instrument. Probably pretty easy, probably requires only a change to the "add instrument code". Like 1), it has no bearing on instrument change, it just allows staff text properties to have more to work with. As I think you saying above, this is really not much different from 1) from a user perspective, it's just a cleaner way of doing it. We'd probably want to add some additional channels to instruments.xml, so electric guitar had at least half a dozen pre-defined channels plus the user ones, for example.

3) We could allow the user to add new channels using the mixer on the fly. To me, the best answer but I don't have a good sense of how viable a possibility it is. Could be easy, could be not so much. Here again, no effect on instrument changes, but staff text properties would have more channels available.

4) We could add controls to the "Change Instrument" command to allow it to access channels previously created for this staff by other instrument change elements. This would to some extent reduce the need to use staff text for sound changes, to the point where I'd almost say we could get away with eliminating that mechanism (except to support it for exisiting scores of course). But it does require thinking hard about how it would all work, what the UI would look like, etc. Could be more compelx than it's worth if 2) or 3) work out.

5) We could try to change the staff text properties code to access the channels added by instrument changes. Then you could create new channels with instrument changes, but access those channels later in the score via staff text. The more I think about this one, the less I like it. It's a can of worms from the code perspective but also probably the most confusing to the user (the first time I switch to overdrive sound I use an instrument change, the next time I use a staff text?)

In reply to by Marc Sabatella

Much clearer, your brainstorming was getting confusing.

Allowing for staff text to access previous instrument changes would be a very nice feature, but I see where it would be a major code rewrite to take into consideration transposition and different numbers of channels for the different instruments.

The more I think about it, different numbers of channels should be very rare. The only change I can think of that would result in different numbers of channels I've see are changing from a bass guitar to an upright (played arco) and changing from an acoustic to an electric guitar. I haven't seen too many trumpet players pick up a sax. As I typed this I remember I did know a tenor sax player that also played trumpet and was known to switch between the instruments in the middle of a song in a jazz band.

In reply to by mike320

You've never seen a musical theater book, then. Though I suppose I sort of explained in that local transposition thing. Here's a couple links if you're interested in knowing about how insane woodwind doubling gets in Broadway shows:……

I know a guy who more or less owns an entire band's worth of instruments, and says he had to play 12 instruments for a show once. That's a little extreme, but pretty much our entire woodwind section plays more than one instrument. It's pretty useful for the summer season, when we might be missing people and so end up with our regular bassoonist playing oboe or something. Also for when we break out Stars and Stripes... seven person wind section, and five of them can both play and own a piccolo.

Anyway, this is more or less what I was asking for in regards to that previous thread, lol. And yes, it'd be really great to be able to do reed books without a tangled mess of channels. Broadway parts are mostly handwritten, being able to make yourself a set of easily readable parts and score would be wonderful.

Don't worry Marc, I'm still doing the Wagner thing, just running into a lot of unrelated issues. As it should be for an Alpha release.

In reply to by Laurelin

Most of the instruments you refer to have only one channel in the mixer in the standard MuseScore instruments definitions. Changing from a sax to a trumpet means changing the number of channels in the mixer from 1 to 2. I don't know the inner workings, but I'd think this causes more issues with changing instruments by reusing previous channels.

In reply to by Laurelin

Again, though, I don't understand your objection to having the channel available. It's not a "tangled mess", it's a linear list, and you never even have to look at it if you don't want - MuseScore sets it up correctly for you when you do the "change instrument". And in MuseScore 3 you don't even have to see the extra channels in the mixer. They are there because most instrument changes do involve a change of sound, but if the particular part you are working on happens to include an instrument change that doesn't need a sound change, that's fine too - it all just works right out of the box.

A big yes vote from me on a 'channel add' button in the mixer.
I always do multi-guitar tones and multi-keyboard sounds with channels.

Honestly I never use instrument change anymore since I discovered channels.
The problem was always that you can't go back to a previously used instrument.
The mixer grows fast.
The one case where I could see a benefit is if transposing works at the same time, eg switch from Bb Trumpet to C Trumpet or Alto to Tenor Sax. - would the staves transpose correctly? Clearly I still need to learn more.

In reply to by mkjnovak

One of the ideas Marc floated was allowing instrument changes or staff text access to previous channels before an instrument change. This is a great idea, but a huge undertaking to to totally change the concept behind these two related but different processes. If this happened, then transpositions would have to work. This is probably the biggest hurdle to making it a reality.

I would love an "add channel" option, it would make things feel much more fluid. I find myself adding instruments as effect synthesizers then changing all the sounds, just so I have lots of channels to choose from. Channels are great not only for chaanging to different sounds, but also for having multiple voices at different volumes and pans without needing to clutter the score with lots of the same instrument.
I'd love the option to add channels; it'd feel less like I'm exploiting musescore's systems and more like an intended feature. It'd also just be easier.

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