Skip to content

Plugins: Fix incorrect plugin loading from multi-component VST3 bundles#2

Merged
lucaromagnoli merged 1 commit into
magica-minimalfrom
fix/vst3-multi-component-matching
Jan 25, 2026
Merged

Plugins: Fix incorrect plugin loading from multi-component VST3 bundles#2
lucaromagnoli merged 1 commit into
magica-minimalfrom
fix/vst3-multi-component-matching

Conversation

@lucaromagnoli

Copy link
Copy Markdown
Contributor

Some VST3 bundles contain multiple plugin components sharing the same .vst3 file (e.g., Serum 2 instrument and Serum 2 FX effect). When loading such plugins, the wrong component could be selected due to fuzzy identifier matching returning the first match regardless of the plugin name.

Changes:

  • Store pluginFormatName in the plugin ValueTree state to preserve the exact format type across save/load cycles
  • Add name verification after getTypeForIdentifierString() matches to ensure the matched plugin name corresponds to the requested plugin
  • Add a more specific matching pass in findMatchingPluginDescription() that considers uniqueId + name + fileOrIdentifier together
  • Add VST3 to the format prefix fallback checks (was missing, only had VST and AudioUnit)

This ensures that when a project requests "Serum 2" (instrument), it correctly loads the instrument component rather than "Serum 2 FX" (effect), even when both share the same .vst3 bundle file path.

Some VST3 bundles contain multiple plugin components sharing the same
.vst3 file (e.g., Serum 2 instrument and Serum 2 FX effect). When loading
such plugins, the wrong component could be selected due to fuzzy identifier
matching returning the first match regardless of the plugin name.

Changes:
- Store pluginFormatName in the plugin ValueTree state to preserve the
  exact format type across save/load cycles
- Add name verification after getTypeForIdentifierString() matches to
  ensure the matched plugin name corresponds to the requested plugin
- Add a more specific matching pass in findMatchingPluginDescription()
  that considers uniqueId + name + fileOrIdentifier together
- Add VST3 to the format prefix fallback checks (was missing, only had
  VST and AudioUnit)

This ensures that when a project requests "Serum 2" (instrument), it
correctly loads the instrument component rather than "Serum 2 FX" (effect),
even when both share the same .vst3 bundle file path.
@lucaromagnoli lucaromagnoli merged commit 64942a1 into magica-minimal Jan 25, 2026
34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant