musescore / musescore/MuseScore
Feature request: automatically send articulation keyswitches to VST instruments
@RomanPudashkin is already working on this.
Since Jul 31, 2026.
- Dominant language
- C++
- Stars
- 15.1k
- Forks
- 3.3k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 91
Description
Your idea
When a score contains an articulation or playing technique that a VST instrument provides as a separate patch (pizzicato, tremolo, harmonic, palm mute, mute...), MuseScore should send the corresponding keyswitch automatically, so the right sound is selected from the notation.
Today MuseScore discards these articulations on the way to a third party VST (only note on/off, velocity, microtuning and a few controller based articulations get through), even though the internal FluidSynth and MuseSampler backends already play them. The only workaround is to notate the keyswitch notes by hand (an extra hidden staff, or the Keyswitch Creator plugin ): more manual work, and a score that pollutes playback whenever that VST is not the active sound (the fake low notes sound as real bass notes if the plugin is missing or swapped for a soundfont).
Second, and closely related: MuseScore should pass the track / instrument name to the hosted VST instrument, which it does not do today. Since the MIDI program does not distinguish similar plucked instruments (bandurria and laud share the same program), the name is the only signal that lets a multi-instrument plugin auto-select the right sound and show it in its UI. VST3 already has a standard mechanism for this (channel context), so no new protocol is needed, only for MuseScore to send it.
Prior art
- Cubase and Dorico solve this with Expression Maps (a per instrument table mapping articulations to keyswitches / CC / program changes); Sibelius uses Sound Sets.
- The VST3 SDK defines
IKeyswitchController(an instrument can declare its keyswitches to the host) and channel context (IInfoListener) for the track name. - The community Keyswitch Creator plugin already generates hidden keyswitch notes from the notation, showing both the demand and the feasibility.
- Acknowledged as desired in #32150: "dedicated key switch support ... automatically inserted at the right place based on dedicated information that the user adds to the score", and a "configurable table of associations between articulations and keyswitches".
References
Related MuseScore issues / discussions:
- #32150 - Keyswitches firing late in 4.7.0 beta (the discussion where dedicated keyswitch support is acknowledged as planned)
- #22714 - Enable the use of sound flags for non-Muse Sounds
- #28597 - Connect MIDI CC options to existing play engine controls
- #31809 - Fix support for MIDI pitches outside the C0-C8 range (merged; makes the reserved keyswitch zone 0..11 reach the VST)
Community forum requests:
- Musescore studio: expression mapping for VST instruments
- Question about articulation mapping of VST libraries in MS4.x
- Use VST instruments with multiple articulations/patches in MuseScore 4
- Dynamics and articulations on 3rd party VST sounds?
Checklist
- This request follows the guidelines for reporting issues
- I have verified that this feature request has not been logged before
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.