musescore / musescore/MuseScore
Add Mixer API to Plugin system
Open
@igorkorsukov is already working on this.
Since Nov 18, 2025.
needs review
plugins
- Dominant language
- C++
- Stars
- 15.1k
- Forks
- 3.3k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 91
Description
Your idea
Add a Mixer API to the Plugin system that exposes programmatic control over mixer settings: volume, balance, mute, solo, sound selection, and MIDI configuration.
Proposed API:
var mixer = part.mixerChannel;
// Audio controls
mixer.volume = 4.0; // dB range: -60 to +12
mixer.balance = 0.2; // Pan: -1.0 (left) to 1.0 (right)
mixer.muted = false;
mixer.solo = true;
// Sound selection
var sounds = mixer.availableSounds();
mixer.setSound(sounds[0].id);
// MIDI configuration (for SoundFonts)
mixer.setMidiBank(20);
mixer.setMidiProgram(40);
Problem to be solved
Plugins cannot programmatically configure mixer settings. Users must manually adjust volume, balance, and sound assignments for every part.
Use cases:
- Auto-configure instruments (e.g., detect "bandurria" → assign correct SoundFont preset + optimal volume)
- Apply mixing templates ("Orchestra Balance", "Jazz Combo") with one click
- Batch migrate scores between sound libraries (MS Basic → Muse Sounds)
Prior art
Modern DAWs (Reaper, Logic, Ableton) expose full mixer control to scripting APIs.
Additional context
- Requires async/sync bridge pattern since audio system is async but plugins are sync.
- Should use dB scale for volume to match UI
Checklist
- This request follows the guidelines for reporting issues
- I have verified that this feature request has not been logged before, by searching the issue tracker for similar requests
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.
Assessment
This issue has not been assessed yet.