SIGN IN SIGN UP

validate audio ndarray inputs; fix VST3 bus management; scan only matching plugin formats

- Add validateAudioNdarray, used by the Playback, PlaybackWarp, and Sampler
  set_data paths: non-2D input now raises RuntimeError instead of reading
  shape(1) out of bounds and crashing (fixes #219). PlaybackProcessor also
  clamps its per-block copy length so zero-sample data renders silence
  instead of passing a negative count to copyFrom.
- PluginProcessor::setBusesLayout deactivates the hosted plugin before
  changing the bus arrangement and reactivates it after; VST3 requires this
  and previously asserted without applying the layout (fixes #216).
- Add PluginProcessor::enableAllBuses/disableNonMainBuses that reach the
  hosted plugin. The Python bindings previously resolved to the inherited
  juce::AudioProcessor methods on the wrapper, so enable_all_buses and
  disable_nonmain_buses never affected the plugin.
- loadPlugin only scans a path with formats whose fileMightContainThisPluginType
  matches, so non-matching backends no longer probe it or print errors, such
  as LV2's "attempt to map invalid URI" for a .vst3 path (fixes #218).
- Regression tests for the ndarray validation and zero-sample playback.
D
David Braun committed
5a0d3806a85b284178fb6b3ec35b967491042021
Parent: 7754216