Reworking the Mixer UI

• Jul 30, 2018 - 19:00

I know there's a lot of devs thinking about redesigning the Mixer UI. Here's my proposal. It reworks things to look more like Cubase/FL Studio while still retaining the features unique to Musescore.


Some of the bigger features:

  • An 'expand' toggle button that will show/hide parts with multiple voices (such as violins). When expanded, each part is given it's own slot in the mixer, just as it is now. When not expanded. a singe slot will control all the voices. So changing the volume of the 'Violin' will set the same value for the 'strings-tremolo' and 'strings-pizzicato' too.

  • Only the volume, pan, solo, mute and instrument name are shown on the main slider. Everything else is moved over to a 'details' panel. Clicking on a track will select it. When a mixer track is selected, the details panel will be loaded with the co-responding data to allow the user finer control.

  • Users will be able to assign a color to each part. This simply affects display and is for helping users keep track of the different parts.

  • A splitter panel will be used to separate the track side form the detail side so the user will be able to click and drag to resize the windows..


It would be really useful to have a simple parametric EQ animatable in time for each channel. So it would be much easier to improve qualities and simulate brass mutes and harmonics. Grouping channels which are part of one instrument in the mixer would be helpful as well. Like:
-- open,
-- mute,
-- arco,
-- pizzicato,
-- tremolo.

In reply to by Ludwig van Benteuer

Grouping instruments would happen as part of the Expand button. When expand is off, a single track would manipulate all channels of an instrument at the same time. When on, each channel would be displayed independently so you could still adjust individual channels.

Some of what you're suggesting would require a lot of work beyond just reworking the UI (particularly animating over time). However, this redesign could move things in that direction. The Details panel could have a section for adding filters, such as EQ. Reverb and chorus could also be reimplemented as filters. You could also create empty tracks and then send audio data from several source tracks into your new track so that you could manipulate them as a group there.

That looks amazing. Just my opinion for default colors: flutes and whistles are white, single reeds are blue, double reeds are red, free reeds are orange, Conical brass are gold, cylindrical brass are golden brown, wood percussive instruments are brown, metal percussion is silver, mixed percussion is black, plucked strings are grey, and bowed strings are purple.

In reply to by Nicolas

I read through these. Some are covered by what I've already introduced above. I think the rest could be summarized as:

  • Knobs are hard to use; use sliders instead. And show the numerical value so you know exactly what value the slider is at.
  • It would be nice to be able to add audio filters to the playback, including things like gain, reverb, chorus, EQ, etc.
  • The sound fonts need to be better organized. If you're using multiple sound fonts, it can be tedious to hunt down the one particular patch you want to use.

For the knob issue, maybe the pan knob in the design above could be replaced by a slider? IMHO, the pan is the one part of this UI which I feel works with a knob, but maybe others feel differently?

For audio filtering, I know there's a few devs who have said things along the lines of 'Musescore isn't intended to do that'. None the less, it could be done in one of two ways. First, we could edit the code in the Master Synthesizer to apply these filter effects directly to the audio output (which would require us to create and maintain our own library of audio processing effects). Alternately, we could integrate VST so that Musescore could take advantage of the huge number of existing plugins for filtering audio. In either case, the mixer could facilitate this by adding a section to the Details window that lets the user add the extra processing filters that they desire.

The soundfont issue I feel isn't really specific to the mixer itself. While the mixer uses the instrument list, Musescore could really use a separate window that lets users design a mapping from instrument voices to section parts. The mixer could then reference this list when populating its Voice menu.

In reply to by blackears

I REALLY like where you are headed with this... and wonder about throwing out a pretty radical idea. :-)

Firstly, here is a spreadsheet that outlines how Zerberus stacks up against LinuxSampler and Aria Engine -…

You bring up the fact that notation has been the first priority with MuseScore historically, which I do believe is true. There are so many great ideas from the community yet to be implemented in regards to the notation aspect that some might see too much emphasis on playback as a distraction from the notation effort.

But, as we have seen with the MDL experiment, which has only scratched the surface of enhanced playback capabilities - combining the powerful notation capabilities with more realistic playback creates some very exciting possibilities.

The points you mention about VST/VSTi host, effects, expanding the range of opcodes and interpretive possibilities, changing the mixer interface, etc. could open up entirely new potential of MuseScore.

The counter-argument here is that MuseScore has a very small footprint, is resource efficient, and for those who care only about the notation aspects, this additional resource consumption is unnecessary.

But... here's the radical idea...

What if Zerberus was separated from MuseScore to become MuseSynth, a standalone, complimentary application, something very similar to the Aria Engine?

The goal of the project could be to create a free open source cross-platform alternative to Aria Engine that works seamlessly with MuseScore and is able to take advantage of the wide range plug-ins and virtual instruments out there in the market.

While it would be very closely aligned with MuseScore, it would be possible to use it independently.

Again, a pretty radical idea, but I think it could be an approach that could keep the core MuseScore experience lean and focused on notation, while opening up a whole new universe of possibilities for playback.

In reply to by Daniel

Ambitious, but a lot of work too. :) I think a lot of this will depend on seeing if this is a direction the lead devs want to take Musescore in. Myself, I'm comfortable doing UI stuff with Qt, but have not really tangled with sound library design before.

I didn't realize that Zerberus had so many features. Maybe some people would like to be able to use the library independently from Musescore.

I came across the Git page for Steinberg's VST SDK, which appears to be GPL:

There's also a user 'gogins' who posted about the csound library on the following issue. Csound is apparently another open VST library, and he says he could provide help with implementing it:

Myself, I think there's plenty to do with just the UI changes. Although if someone could look into Zerberus/VST plugins, it would be interesting to know how easy it would be to take advantage of them.

In reply to by Daniel

It may never happen, but I like the MuseSynth idea. With MDL, the startup delay alone (on my 2.8 GHz i7 MacBook Pro with 8GB RAM) was far beyond what I could tolerate—MuseScore having a small footprint and being resource-efficient is very important for me.

Oh, and I'm delighted to see someone finally taking on the Mixer, and I trust blackears to create something really good. I'm already looking forward to the completion of the Piano Roll PR.

In reply to by blackears

You said First, we could edit the code in the Master Synthesizer to apply these filter effects directly to the audio output (which would require us to create and maintain our own library of audio processing effects).

This is already the case. Head to Synthesizer > Effects and you will see that you can apply a reverb (zita1) and a stereo compress (SC4)

In reply to by Daniel

I've been pondering this very debate this week... I agree that the mixer could look a bit more like the U/I of the plethora of DAW products that have "industry standard U/I feel and cosmetics" and less a homage to the early versions of the app, the butt is how far to take things. Rightly so the development work is about getting the substance working first.

For what it is worth I think it is wise to be limiting the project to achieve porting the as notated piece of music in real time to standard interfaces for playback. (e.g. General MIDI and or a MuseScore Synth and or VST et. al.). Creating a MuseScore Synth has a lot of merit, I've read a lot of feature requests that are counter to each other (a big tin of worms) when it comes to playing one sort of genre' vs another.

I think that is better handled by the synthesis of reproduction rather than the notation of a piece of works. I would much rather have a complete pallet in my notation package that allows me to notate any works faithfully as it is desired to be played describing every nuance and then worry about what I am going to use to generate the sound in a separate package / packages workstation...

All the best with it all.

In reply to by Ron Southworth

Most of the changes posted here are ease of use changes and will not affect the MIDI out. As for adding filters to the synth, not everyone has access to a professional DAW to read the MIDI events and create the sound. There is also no guarantee whomever you're collaborating with will have the same tools you're suing either. I think having some ability to provide synth effects in Musescore itself will be useful.

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