musescore / musescore/MuseScore
"Soundstage" feature to facilitate panning and mixing
Nobody has claimed this yet.
- 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
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
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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