Designing the Mixer for MuseScore 4

• May 6, 2020 - 15:31

Hello everyone. It's been a few months since I last communicated anything about our development plan and it feels like the right time to begin getting back in touch.

Behind the scenes, we've been doing a lot of haggling, organising and pitching to figure out what our next moves for MuseScore should be. It's been a lot of work but we've now landed on a solid agreement and I'm going to be publishing our plans over the coming weeks and months. As we continue to work through our development and design roadmap and I'll be making sure to let you know how things are progressing. First off, if you don't already know (because it's been spoken about quite a bit in the main development group chat), we're now committed to making MuseScore 4. We've decided to do this because there are certain aspects of the existing system that are in need of an overhaul: most notably, the audio engine. In addition, we would like to make comprehensive adjustments to the interface to include things that have been widely requested by our users over the last two years.

In this first post, I'm going to focus on what is needed from a design point of view to facilitate a new audio engine. Higher quality (or 'more realistic') audio playback has topped all our polls and surveys over the last year. Here are two things we are planning in order to support this request:

:: VST support
:: A revamped audio interface

Since we are currently at the early stages of figuring out how this should work from a technical point of view, the purpose of this post is to focus on the second point: when we do have vastly improved audio capability, how could we best expose this to the user to allow them to take advantage of it? Or to put it another way, what is the goal we want to reach?

Here are some principles I have in mind when designing the ideal interface:

:: Choosing sounds (whether VST or SoundFont) should be fast and simple
:: The interface should be made more flexible to support each user's unique workflow
:: The ability to edit precise values, such as velocity and dynamics, should be more exposed, more powerful and easier to use

For the purpose of keeping the discussion focused, I'm going to talk about just one improvement that touches on the first two of these issues: the mixer.

Even in its current state, the mixer is an interface element that users have repeatedly asked us to improve. One of the most common complaints is how much space it takes up compared to the mixer from MuseScore 2. Another issue with it is that it does not co-exist well in the same panel as the inspector. Moreover... it isn't the nicest looking thing to look at either, is it? I seem to recall once comparing it to a late 90's Flash game on

In a recent post on this forum, MaBlo, who spent a lot of time proposing a new high-level UX for MuseScore 4.

One of the suggestions that MaBlo made was to combine aspects of the 'Synthesiser' (where SoundFonts are selected and various other effects are located) with the mixer, so the user can access all audio output options from one place. This was a great suggestion and - in addition to some of the principles I just mentioned - has helped to inform the V1 design proposed below.


In order to keep this discussion focused, I have removed other aspects of the new design from my mockups and kept the focus squarely on the mixer. The idea behind this post is for users to be able to point out gaps in the design, while also making requests for alterations. The mixer is something I think we all feel strongly about and this initial proposal will need to be changed multiple times before we reach a fully fleshed-out version. Here is how I intend to follow up this thread in a few weeks:

:: Collect feedback from the comments section
:: Speak to those building the audio engine to uncover any practical obstacles or requirements
:: Propose a V2 mixer and post another update on at a later date


So with all that out of the way, the rest should be pretty straight forward to explain. First of all, we think it makes sense for there to be a dedicated button which users can press to show and hide the mixer (how we make space for that button will be the subject of a different post). In the image below, you can see the mouse hovering over the 'Mixer' button in the top bar.

Using this button, the user can now toggle the mixer ON and OFF quickly. This is the proposed default state (and position) of the mixer, which is taking inspiration from other leading DAWs in the industry. The Mixer is by nature a horizontal beast, and since a user will very often be working with more than 10 instruments in a piece of music, it makes sense for it to stretch across the width of the app. But, again, this is only the default. There's a lot more to talk about.

Before delving into the specifics, I should also point out that the mixer window should be both resizable and scrollable. In the image below, you can see the user resizing the window to show only the volume, mute and solo controls. The user can still scroll to access other parts of the mixer if needed.

If the user wants to undock the mixer, that can be done by selecting the button on the top right of the mixer (see image below)

An undocked, minimal version of the mixer would look like this. It can be minimised further by pressing the 'Show less' button. Pressing the 'Show More' button would gradually expose more functionality until all available options are visible.

Regarding the selection of VST's or SoundFonts, the ideal would be a simple interface, where the user can simply select their preferred sound type by clicking on the area shown below.

The above system will most likely require an additional interface that allows you to set up and save sound profiles. We don't know enough yet to be able to predict with certainty what those interfaces will need to be but the aim is to avoid making them compulsory. Ideally, the user should be able to select sounds using the mixer and should not have to spend time reading the manual or exploring the settings menu in order to do so. This is how many modern DAW's work and we don't want MuseScore 4 to more complicated.

Here is a view of the mixer with all available options switched on:

Here is a proposal for how we gracefully integrate existing effects into the mixer for easier access:

And lastly, here is the docked mixer in Dark Mode:

Here are two final points about this design:

First: We are investigating things like output channels/busses and have not yet incorporated them into the design. Comments and requests about this specific area would be appreciated.

Second: certain options seen here would be incompatible. For example, if you select a SoundFont, then you can choose a specific instrument. However, if you choose a VST, like Kontakt, the Instrument option would be disabled.

That's it for this post. I hope you enjoyed it. I'll be posting a follow-up soon. I know there will be lots of questions. For example, you may have noticed a 'Piano Roll' tab. What's that about? And why is there a wrench icon? Hold on... are those scrollbars??? Wait! Come back... I have more questions! COME BACK!!!

See you next time!


Ooh color me intrigued
Is soundfont a combination of fluidsynth and zerberus in the UI? And the mixer applies to both backends?

Am i right in interpreting this that i can have whole different synths on different instruments?

In reply to by Joshua Pettus

Yes. I think this is wise. We'll probably still have to expose finer controls for these things somewhere, but I don't see a need for regular users to know what either Zerberus or Fluid is.

As for the idea of having different synths on different instruments - this is possible with VST's (when you have an audio engine with channels) but I'm not sure about SoundFonts. If not, them this will obviously need to be tweaked.

In reply to by Tantacrul

Makes a lot of sense to me. As for finer details i belive both support reverb and chorus, but i understand not wanting to clutter the interface.

(Edit) nevermind its right there in your proposed expanded view

With soundfonts, im sure some clever programmer will correct me, but i suppose you can go crazy and have diffrent synths with different fonts by having as many instances as you want. So long as your RAM holds out XD

One thing, I regularly miss with actual mixer is, that it doesn't seems to follow the rules of other window views (like inspector, play panel and so on) concerning the integration of the view, see for example #279228: Mixer: size issues and other issues about the size integration. are a lifesaver. This is all I ever wanted from Musescore.

Edit: Well, add channels with routing and automation and we have ourselves a whole DAW. Which would be amazing.

I really like it! The colors and the interface in general is so nice!
The integrated effects in the mixer for easy access is really good too!

A suggestion: Instead of the 'Show less' and 'Show More' buttons, why not something like the icons on Ableton Live Mixer where you can turn on or off different sections of the mixer?

In reply to by Tantacrul

Depends. Studio One have something like the 'show more' button, but the mixer only have 2 states: 'All options' or 'few options'.
If I did not misunderstand, in your design, the 'show more' button will have various states until to reach the 'All options'. Maybe that is not very comfortable.

In reply to by Dexter Bass

You understand exactly what I was thinking. There are some apps that do it but I think it might be a bit painful in this instance. The pro argument is that the interface is much simpler that way. The con is that users might end up with lots of settings they don't care about :)

Amazing! I like the idea! I would also suggest to replace "show more/show less" by the individual modules directly. Maybe I would also place them in the same place where "show less/Show more" is written. I also like the idea of a scale that gets smaller towards the bottom so that the volume can be fine-tuned towards the top.
I would also like to see the colors of the instruments below being individually adjustable. I would also like to see a bit more detail in the sliders and maybe also in the knobs - not so simple, but other users might have a different opinion. I don't want to be misunderstood here, I really only mean more details at the two - slider and knob. Like in the picture below maybe
Modus_ Instruments.jpg

How would the subchannels look like?

I just noticed that the volume "0" value isn't at top. Is this on purpose? Is it supposed to be set up like on some mixing consoles, so that there is a "normal/default value 0" and can be overdriven a bit and otherwise just decreased? I like it when it is on purpose!

Why does the clarinet in the second last picture have 8 voices? A function that I do not know yet?

In reply to by MaBlo

Ah! 8 voice clarinet!

That was actually meant to be for the Piano but I changed the instrument order around so they wouldn't feel disordered and completely forgot to change the voices with them :)

You know there's a time limit on editing these posts? I think I need special privileges, so I can correct that mistake!

Regarding volume settings. I'm just going on the standard for DAW's. '0' would probably be a little lower down actually. If you went above this level, you would be 'pushing' it. Obviously this is a useful concept, because it doesn't force users to have to decrease the sound of everything in order to bump the sound of one thing (although that is a better practice). This will all get refined as we figure out the engine itself.

Regarding the style of the controls. I'm flirting with a more modern approach across the app. Nothing is nailed down yet and I don't have anything against Skeuomorphic controls in principle.

In reply to by Tantacrul

Ah, that sounds good! I didn't know the time limit either, I just read it in the MuseScore design group.
I am really excited to see what the V2 mixer will look like.
Maybe you could also think about instrument groups. I don't know how many other users would like it, but for my work with MuseScore this would be an advantage, for example to make all strings quieter or all brass louder at the same time.

Of course, if there were buses, that would work, too, I think...

Interesting idea. Seeing Musescore improve so quickly. I wish I could contribute in creating some "improved" sounds for the instruments (when I mean improved I mean a bit more realisitic and not so instense vibrato in winds and bowed s.) , like recording instruments as VSCO. Well that will probably never happen hehe... Alright end of my story.

Please could you consider adding "Mixer Groups" as seen in Ableton Live?
Also, thank you - MuseScore has developed so much since you started helping out!

This all sounds really good but I think it’s important to remember that MuseScore should first and foremost be simple, there’s lots of talk about things I don’t understand so I’m hoping there will be some sort of simpler mode (like the current basic or advanced layout) where those of us who just want to write music in a nice program and use a mixer in a fairly standard way will be able to do this easily.

In reply to by mark1029

Essentially, this will be an easier app to use than the existing version. If you don't use the mixer now, it will not be forced upon you. If you do use the mixer, the default version will be shorter and better integrated into the UI. For those who want more technicality, it's available to them. Absolutely agree that the inclusion of new features needs to be done in a way that doesn't overwhelm people who just want to write some notes on a score.

Brilliant stuff, I'm hyped! I just wanted to ask if we'll see beta versions of the audio engine in Musescore 3 or is it being developed entirely with the new UI elements for Musescore 4. Since the audio engine is the biggest thing that bugs me about Musescore at the moment I'm veeery exited about this.

This looks great! One thing that has always bugged me about the mixer is instrument selection. When you go to pick an instrument from the soundfont you get every possible choice for however many soundfonts you have active. Is it possible to have a division by soundfont or by instrument type like how instruments are added to the score? It's a little thing but I think it would make a lot of lives just a bit easier.

SHOW MORE/LESS OPTION: I have no idea if this is a bad or good idea, but what if you implemented a slider instead of separate buttons? The slider would have "SHOW" over the top, with "LESS" on the left and "MORE" on the right. Maybe there would be a few notches on the slider so each level of additional options would be a fixed setting. In any case, it would give immediate feedback as to how MUCH less or more options there are to display. It's not possible to know that if you incrementally have to keep hitting the Show More button but a slider could indicate this easily. Just a thought!

In reply to by Daniel W. Boothe

I think there must be the possibility to say exactly which areas I want to show. Just more or less could show a lot of unnecessary modules that I don't want to see at the moment or don't want to see in general. For example just the panning or just the MIDI options without everything in between.


Love this idea, but it seems a bit large and covers up a lot of the score. I think I'll submit some designs of my own as well, but I think one thing that would be a good thing to include is including an option to type out a value similar to FL Studio since setting a value out of 1 or 100% is easy to do without much thought.

This is my mixer idea for a compressed mixer view. It is pretty basic, and also not the most pleasing thing to look at since it was just a quick photoshop, however I think the idea gets across. The volume sliders would be the things compressed or expanded when resizing vertically. Right clicking could also bring up options or if there aren't options, just automatically open an option to type the value.

Attachment Size
musescore compressed mixer view.png 25.5 KB

Will there be a way to open mixer through a keyboard button instead of hovering the mouse over the button to open it? Just asking because for some it might be tiring.

In reply to by Jojo-Schmitz

Still, hopefully we got a few months worth of useful data.

To be clear: there already is a shortcut, F10, and you can reassign it if desired. I would be wary of a whole scale reassignment of all shortcuts, they are only "shortcut" because lots of us have memorized them. But, shipping multiple sets you can easily switch between is something we've talked about and partially implemented, I'd be fine with a "legacy" set being continued to be provided if we did redo them.

As mentioned, "M" is currently for multimeasure rests, but people hit it by mistake all the time, and realistically, one should only very rarely to toggle this manually since it is handled automatically when generating parts. I'd certainly be OK with stealing M for mixer, but we also need to thing about the other separate windows that are all currently function keys, and there is a certain logic / consistency in that.

I’d vote for an optional vertical layout that could be docked to one side, with the channels running horizontally one above the other. I know this would require vertical scrolling if there are many instruments, but that’s precisely the situation where the score itself is likely to want the whole height of the screen.

Don’t get me wrong, I’m very happy to see this whatever shape it takes.

As a Linux user, I wonder how VST compatibility will work... On LMMS, Windows' VST work pretty good with Wine as long as they are 32 bit. Will it be the same with Musescore? Often I create a midi file with Musescore and then use a mix of VST and soundfonts on LMMS to have a more realistic sound for orchestra or wind band. It would be great if I could use only Musescore.

This sounds fantastic. It would be wonderful if there were an articulation mapping function that would allow one to assign a different soundfont/VST/MIDI channel/keyswitch/etc on a per-articulation basis for the instrument. It would be awesome to be able to control BBCSO and other major orchestral libraries with this.

Such an implementation could perhaps even pave the way for support for NotePerformer (I seem to recall the NotePerformer devs saying to another forum member a couple years back that they would be happy to support MuseScore if only there were third-party audio engine support and patch/articulation control via MIDI). Even to be able to just get soundfonts and VSTs working with various articulations and set those up to be triggered appropriately would be a boon.

A while ago I requested a huge overhaul on bracket function that would include mixer groups. I don't know that my suggestions will be implemented (easier bracket placement, option to display system objects above top stave of certain brackets, mixer groups, etc.), but it seems to me that brackets would be a convenient of grouping the mixer because it shows a relationship between the score and the playback. After all, brackets appear on the score for the sole purpose of organizing the staves for the ease of reading. If they are meant to represent the organization of the staves to a real orchestra, would it not also makes sense for them to represent the organization of a virtual orchestra?

Hi, and thanks already now for the great work (the new palette is simply wonderful)!
About outputs and busses, I like the Reaper and Pro Tools design, where the highest slots are for 'insert effects', and the lowest for the busses / output. In other words very similar to your design with all the options switched on, but with an additional section for audio outputs / busses. Reaper's design is even simpler, as I/O and sends are combined together.
About the vertical layout, I definitely prefer the horizontal layout for mixing. However, in most DAWs I find it practical to have some basic controls (Mute/Solo and a volume knob) on the left-hand side of the tracks. However, in that case I'm wondering whether the vertical 'mixer' / 'tracks basic control' element should be visually linked with the staves or not, for example when resizing or scrolling the staves.

I really like all the ideas about the new mixer. What I have not found is a individual adjustment of the voices in one line/instrument. I choral music it is very common to have 2 or sometimes 3 voices in one line. For practice it is extremely useful for the singer to make their voice stand out and have the other voices somewhere audible in the background. I have worked around this for 5 years by duplicating the individual voices into separate lines and for practise - hide the individual lines but have them play and mute that compact choral lines. This is somewhat awkward to maintain, because every note appears twice. It would be awesome to include a new concept for this in 4.0. Many singers will highly appreciate.

Sometimes I just want to adjust the mixer settings of one track/instrument. Opening the entire mixer window and scrolling around to find the track can be annoying when there are lots of instruments in the score.

Some DAWs I've worked with (Reaper and Ardour) have an option to display a single mixer strip down the side of the screen. This strip updates to show the controls for the last track that was selected. Would something like this be possible in Musescore?

Or even if just clicking an instrument in the score will make the main mixer jump to that track would be helpful

Peek 2020-05-28 13-47.gif

I think that it would be really cool if there was an option to record each instrument part from a mic in the mixer.
