musescore / musescore/MuseScore

"Soundstage" feature to facilitate panning and mixing

Open
#19,140 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
Dominant language
C++
Stars
15.1k
Forks
3.3k
Avg merge
2d 2h
Merged PRs (30d)
91

Description

Your idea

Right now, we need to touch every instrument manually. What i propose is a graphical interface that automates the panning and effect mixing of instruments.

Problem to be solved

Panning and mixing can be a bit tedious especially with large scores

Prior art

Apparently this was attempted in Dorico but it's not great (allegedly)

Additional context

Idea
Since musescore is mostly about writing for performers to play instruments, it's appropriate to ask for decent and easy to setup soundstage playback. I want for a new panel to be added to the mixer, called "soundstage" where every instrument and the master channel are represented by circles.

You could click and drag each circle representing instruments anywhere on the soundstage, and you could also make them bigger or smaller.
the "master" circle is the main microphone. You can link and automate values relative to the physical positions of the instruments relative to "master". The main ones being angle to master, and distance to master.

Angle to master would be linked to the pan wheel, so by dragging your instruments on the soundstage it would automatically pan them left or right. You could also move your master and it would pan all the instruments relative to it, like if you moved a microphone.

Distance to master could be linked to aux channels. Right now, you have to manually adjust every aux send value. With this system, aux send value would be automatically calculated depending on the distance between master and the instruments. This could be used for exemple to automate the ammount of reverb or EQ each instrument get, so instruments further away sound further away. You could also chose a minimum value and a maximum value, that way, if you want a small soundstage you could chose a value between dry and half wet, and if you want a big soundstage you could chose a value between half wet and fully wet.
You should also be able to override the aux send value for some instruments, because some are sampled with reverb already baked in, it would have for exemple a constant -10 on the aux send value because of that

The calculations would be very simple and not CPU intensive, it's basically what i do on a spreadsheet
image

Now, we could imagine a few features to make all of this more useable for every size of ensemble, maybe something similar to score order where it automatically places instruments on the soundstage depending on some preset standard configuration such as orchestra or big band. I made a guide circle on the mockup, but you could also have guide semicircles, rectangles and trapezoids depending on what kind of ensemble you want.

Now, advanced features could include several microphone positions which could be mixed together before being sent to the master, or other ideas like that.

A real wish of mine would be for that system to be able to handle surround panning, but stereo panning is good enough.
I hope my description make sense (english isn't my first language), and you will consider my idea.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points; begin by locating the mixer and audio-routing code in the MuseScore desktop application. Before implementation, narrow the proposed soundstage panel, panning and aux behavior, presets, and overrides into an accepted scope, then define validation for stereo playback.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
audio-video-rtc, desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.