Most of the time, loading Spectrasonics' Omnisphere or Keyscape VST3 plugins (and possibly others, those are just the ones I have on my system) causes a segmentation fault:
This happens maybe 9 out of 10 times when running the command above. The rest of the time, the plugin simply loads without issue.
Possibly related: the AU variants don't throw segmentation faults, but they do print repeated JUCE Assertion failure in juce_AudioSampleBuffer.h:340 errors.
The segfault appears to happen when calling editController->getParameterCount() during plugin initialization. Here's an LLDB session (using a debug build from the latest master) with more detailed information:
I'm not sure to what extent this is actually an issue with the plugins themselves not implementing the VST3 spec correctly, as the EXC_BAD_ACCESS occurs in a native plugin method - but they do load fine in other DAWs.
Most of the time, loading Spectrasonics' Omnisphere or Keyscape VST3 plugins (and possibly others, those are just the ones I have on my system) causes a segmentation fault:
This happens maybe 9 out of 10 times when running the command above. The rest of the time, the plugin simply loads without issue.
Possibly related: the AU variants don't throw segmentation faults, but they do print repeated
JUCE Assertion failure in juce_AudioSampleBuffer.h:340
errors.The segfault appears to happen when calling
editController->getParameterCount()
during plugin initialization. Here's an LLDB session (using a debug build from the latest master) with more detailed information:lldb session with full backtrace
```bash $ lldb -- python -c "import pedalboard; pedalboard.load_plugin('/Library/Audio/Plug-Ins/VST3/Omnisphere.vst3')" (lldb) target create "python" Current executable set to '[redacted]/python' (arm64). (lldb) settings set -- target.run-args "-c" "import pedalboard; pedalboard.load_plugin('/Library/Audio/Plug-Ins/VST3/Omnisphere.vst3')" (lldb) r Process 57555 launched: '[redacted]/python' (arm64) Process 57555 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x180) frame #0: 0x0000000110123cc0 Omnisphere`___lldb_unnamed_symbol4997 + 12 Omnisphere`___lldb_unnamed_symbol4997: -> 0x110123cc0 <+12>: ldr x1, [x8, #0x180] 0x110123cc4 <+16>: br x1 0x110123cc8 <+20>: ret Omnisphere`___lldb_unnamed_symbol4998: 0x110123ccc <+0>: ldr x0, [x0, #0xe0] (lldb) bt * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x180) * frame #0: 0x0000000110123cc0 Omnisphere`___lldb_unnamed_symbol4997 + 12 frame #1: 0x00000001054b9600 pedalboard_native.cpython-312-darwin.so`juce::getAllParamIDs(controller=0x0000000141f69e30) at juce_PatchedVST3PluginFormat.cpp:212:27 frame #2: 0x00000001054a54f0 pedalboard_native.cpython-312-darwin.so`juce::PatchedVST3PluginInstance::refreshParameterList(this=0x0000000142c3e000) at juce_PatchedVST3PluginFormat.cpp:3120:21 frame #3: 0x00000001054d1c14 pedalboard_native.cpython-312-darwin.so`juce::PatchedVST3PluginInstance::initialise(this=0x000000016fdfcba8)::'lambda'()::operator()() const at juce_PatchedVST3PluginFormat.cpp:2269:7 frame #4: 0x000000010549aacc pedalboard_native.cpython-312-darwin.so`juce::PatchedVST3PluginInstance::initialise(this=0x0000000142c3e000) at juce_PatchedVST3PluginFormat.cpp:2274:5 frame #5: 0x000000010549a3b0 pedalboard_native.cpython-312-darwin.so`juce::PatchedVST3PluginFormat::createPluginInstance(this=0x0000600002de7720, description=0x0000000141f3c138, (null)=44100, (null)=8192, callback=juce::AudioPluginFormat::PluginCreationCallback @ 0x000000016fdfcde8) at juce_PatchedVST3PluginFormat.cpp:3691:22 frame #6: 0x0000000104da3800 pedalboard_native.cpython-312-darwin.so`juce::AudioPluginFormat::createInstanceFromDescription(this=0x0000600002de7720, desc=0x0000000141f3c138, initialSampleRate=44100, initialBufferSize=8192, errorMessage=0x000000016fdfd260) at juce_AudioPluginFormat.cpp:65:9 frame #7: 0x0000000104da4334 pedalboard_native.cpython-312-darwin.so`juce::AudioPluginFormatManager::createPluginInstance(this=0x0000000141f3c1a0, description=0x0000000141f3c138, rate=44100, blockSize=8192, errorMessage=0x000000016fdfd260) const at juce_AudioPluginFormatManager.cpp:96:24 frame #8: 0x000000010563302c pedalboard_native.cpython-312-darwin.so`Pedalboard::ExternalPluginI'm not sure to what extent this is actually an issue with the plugins themselves not implementing the VST3 spec correctly, as the
EXC_BAD_ACCESS
occurs in a native plugin method - but they do load fine in other DAWs.System: MacOS Sonoma python version: 3.12.1 pedalboard version: 0.9.8
Let me know if there's any other info I can provide. Thanks!