I recently built a plugin as VST3 that I successfully used with Ableton and AU for a while.
While AU is stable, the VST3 crashes Ableton (10.1.3). Sometimes it crashes when adding a plugin instance, but mostly it crashes when removing the instances. Using the same VST3 in Reaper is significantly more stable.
My problem is, the crash doesn’t show up in the debugger. When starting Ableton without the debugger, the crash log points to the juce_VST3_Wrapper.cpp
, but there’s no reference to my code.
So, before I search myself crazy, I wonder if there’s any recent, known problems with VST3 and Ableton 10.
Here’s the crash log (excerpt):
Thread 0 Crashed:: ZMQbg/38 Dispatch queue: com.apple.main-thread
0 com.MY.PLUGIN 0x0000000141de68c8 Steinberg::IPtr<Steinberg::Vst::Parameter>::~IPtr() + 40 (smartpointer.h:143)
1 com.MY.PLUGIN 0x0000000141da1b65 Steinberg::IPtr<Steinberg::Vst::Parameter>::~IPtr() + 21 (smartpointer.h:146)
2 com.MY.PLUGIN 0x0000000141db0509 std::__1::allocator<Steinberg::IPtr<Steinberg::Vst::Parameter> >::destroy(Steinberg::IPtr<Steinberg::Vst::Parameter>*) + 25 (memory:1880)
3 com.MY.PLUGIN 0x0000000141db04dd void std::__1::allocator_traits<std::__1::allocator<Steinberg::IPtr<Steinberg::Vst::Parameter> > >::__destroy<Steinberg::IPtr<Steinberg::Vst::Parameter> >(std::__1::integral_constant<bool, true>, std::__1::allocator<Steinberg::IPtr<Steinberg::Vst::Parameter> >&, Steinberg::IPtr<Steinberg::Vst::Parameter>*) + 29 (memory:1742)
4 com.MY.PLUGIN 0x0000000141db047d void std::__1::allocator_traits<std::__1::allocator<Steinberg::IPtr<Steinberg::Vst::Parameter> > >::destroy<Steinberg::IPtr<Steinberg::Vst::Parameter> >(std::__1::allocator<Steinberg::IPtr<Steinberg::Vst::Parameter> >&, Steinberg::IPtr<Steinberg::Vst::Parameter>*) + 29 (memory:1595)
5 com.MY.PLUGIN 0x0000000141db0438 std::__1::__vector_base<Steinberg::IPtr<Steinberg::Vst::Parameter>, std::__1::allocator<Steinberg::IPtr<Steinberg::Vst::Parameter> > >::__destruct_at_end(Steinberg::IPtr<Steinberg::Vst::Parameter>*) + 88 (vector:421)
6 com.MY.PLUGIN 0x0000000141db0318 std::__1::__vector_base<Steinberg::IPtr<Steinberg::Vst::Parameter>, std::__1::allocator<Steinberg::IPtr<Steinberg::Vst::Parameter> > >::clear() + 24 (vector:364)
7 com.MY.PLUGIN 0x0000000141db02a6 std::__1::vector<Steinberg::IPtr<Steinberg::Vst::Parameter>, std::__1::allocator<Steinberg::IPtr<Steinberg::Vst::Parameter> > >::clear() + 38 (vector:767)
8 com.MY.PLUGIN 0x0000000141d99e3a Steinberg::Vst::ParameterContainer::removeAll() + 42 (vstparameters.h:222)
9 com.MY.PLUGIN 0x0000000141d99d93 Steinberg::Vst::EditController::terminate() + 35 (vsteditcontroller.cpp:66)
10 com.MY.PLUGIN 0x0000000141dd122d juce::JuceVST3EditController::terminate() + 109 (juce_VST3_Wrapper.cpp:324)
11 com.ableton.live 0x00000001025645f1 0x100000000 + 39208433
Best,
n