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