ryukau / VSTPlugins

Uhhyou Plugins VST 3 repository.

Home Page:https://ryukau.github.io/VSTPlugins/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BasicLimiter 1.5 quirks on Carla 2.4.3

windowsrefund opened this issue · comments

Hello,

OS: Ubuntu 21.10
Window Manager: i3
Carla: 2.4.3
BasicLimiter: 1.5

The GUI is showing some quirky behavior. First, it always loads in a "cut off" fashion on the extreme left side of my monitor. I'll attach a screenshot showing what I see.

I can grab the GUI with ALT+mouse in order to drag it into the middle of my screen. From there, no presets seem to be available despite the fact I've placed them in the correct location.

 ➜ ~ find .vst3/presets/BasicLimiter
.vst3/presets/BasicLimiter
.vst3/presets/BasicLimiter/Default.vstpreset
.vst3/presets/BasicLimiter/Truepeak.vstpreset
.vst3/presets/BasicLimiter/HalfTheTheory.vstpreset

After closing the GUI, any attempt to open it again now renders the same problematic GUI (left-middle, cut off) but this time with no text. In order to fully see the content of the GUI, I'd have to reload the actual plugin from within Carla. Actually, I did this and Carla crashed.

Honestly, I do tend to think this is more of a Carla problem but the issue I filed is getting no attention. I just figured I'd check in on this side.

Thanks in advance.
Screenshot_2022-05-27_23-55-06

Hi.

The behavior of "once closing and opening again crashes the host" sounds similar to the issue #14 (REAPER on Linux). Could you get a stacktrace from core dump? Following command might be used.

coredumpctl list       # Check the PID of target core dump.
coredumpctl debug $PID # Replace $PID to the one obtained from above.

If the problem is the same with #14, then _get_screen_index will appear on stacktrace.

I'd also like to know where did you get the plugin binary: did you build it locally, or downloaded from manual page?


Edited to fix the command.

I'll check the preset behavior later.

I confirmed same issue on Carla 2.4.3 on Fedora 36.

The cut off to extreme left side is a issue specific on Carla. I also tested with sfizz, and sifzz also shows up on extreme left like your screenshot. REAPER doesn't show this behavior.

It seems like both Carla and REAPER don't support VST 3 preset path on Linux. However, REAPER can load the *.vstpreset files. I couldn't find a way to load presets on Carla. I made my presets on VST3PluginTestHost provided by Steinberg. The preset path is defined in the VST 3 spec below.

Off topic but even Ableton Live 10 wasn't able to load VST 3 presets created on VST3PluginTestHost. I guess this is one of the problematic part of VST 3. That fancy ascii art in preset format documentation was not entirely accurate last time I checked. Probably outdated. For reference, I wrote a vstpreset to JSON conversion script for LV2 repo.


On the crash at re-opening plugin window, I got a stacktrace which contains _get_screen_index. The stacktrace is on the bottom of this post. This issue wasn't present on VSTGUI 4.9, so I guess VSTGUI 4.10 or later introduced some change. Also as same as REAPER, Carla crashed with AGain VST3 which is a example plugin of VST 3 SDK.

I strongly recommend not to load my plugins, and any plugins using VSTGUI 4.10 or later until this issue is resolved by plugin hosts or VSTGUI. The crash can severely break the window manager like following (I'm on Openbox). Those Unnamed Windows are created by opening AGain VST3 GUI, and can't be closed by clicking "x" button on top right.

Screenshot_2022-05-28_19-57-38

Environment

  • Fedora 36
  • Carla 2.4.3
  • VSTGUI 4.11

Steps to reproduce

  1. Open Carla.
  2. Load an AGain VST3.
  3. Repeat opening and closing AGain VST3 GUI.

Stacktrace

Following stacktrace is obtained from AGain VST3.

(gdb) bt
#0  __pthread_kill_implementation
    (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
#1  0x00007f39a880bca3 in __pthread_kill_internal
    (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f39a87bb9c6 in __GI_raise (sig=sig@entry=6)
    at ../sysdeps/posix/raise.c:26
#3  0x00007f39a87a57f4 in __GI_abort () at abort.c:79
#4  0x00007f39a87a571b in __assert_fail_base
    (fmt=0x7f39a8937de0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7f3970168f57 "!\"reached\"", file=0x7f3970174763 "../src/cairo-xcb-screen.c", line=219, function=<optimized out>) at assert.c:92
#5  0x00007f39a87b4576 in __GI___assert_fail
    (assertion=assertion@entry=0x7f3970168f57 "!\"reached\"", file=file@entry=0x7f3970174763 "../src/cairo-xcb-screen.c", line=line@entry=219, function=function@entry=0x7f3970174a70 <__PRETTY_FUNCTION__.0.lto_priv.65> "_get_screen_index")
    at assert.c:101
#6  0x00007f397012a137 in _get_screen_index
    (xcb_connection=<optimized out>, xcb_screen=0x55ca143aa854)
    at ../src/cairo-xcb-screen.c:219
#7  _cairo_xcb_screen_get
    (xcb_connection=<optimized out>, xcb_screen=<optimized out>)
    at ../src/cairo-xcb-screen.c:256
#8  0x00007f397012ed6f in cairo_xcb_surface_create
    (connection=0x55ca1489c060, drawable=60817409, visual=0x55ca143aa884, width=350, height=120) at ../src/cairo-xcb-surface.c:1226
#9  0x00007f394c32bcfe in VSTGUI::X11::Frame::Frame(VSTGUI::IPlatformFrameCallback*, VSTGUI::CRect const&, unsigned int, VSTGUI::IPlatformFrameConfig*) ()
    at /home/cu/.vst3/again.vst3/Contents/x86_64-linux/again.so
#10 0x00007f394c31bc3a in VSTGUI::LinuxFactory::createFrame(VSTGUI::IPlatformFrameCallback*, VSTGUI::CRect const&, void*, VSTGUI::PlatformType, VSTGUI::IPlatformFrameConfig*) const () at /home/cu/.vst3/again.vst3/Contents/x86_64-linux/again.so
#11 0x00007f394c2c606a in VSTGUI::CFrame::open(void*, VSTGUI::PlatformType, VSTGUI::IPlatformFrameConfig*) ()
    at /home/cu/.vst3/again.vst3/Contents/x86_64-linux/again.so
#12 0x00007f394c24084c in VSTGUI::VST3Editor::open(void*, VSTGUI::PlatformType const&) () at /home/cu/.vst3/again.vst3/Contents/x86_64-linux/again.so
#13 0x00007f394c245731 in non-virtual thunk to Steinberg::Vst::VSTGUIEditor::attached(void*, char const*) ()
    at /home/cu/.vst3/again.vst3/Contents/x86_64-linux/again.so
#14 0x00007f3990dbbf03 in juce::VST3PluginWindow::attachPluginWindow()
    (this=0x55ca14341400)
    at ../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp:1520
#15 juce::VST3PluginWindow::componentVisibilityChanged() (this=0x55ca14341400)
    at ../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp:1432
#16 0x00007f3990e6f97c in operator() (l=<optimized out>, __closure=<optimized out>)
    at ../modules/juce_gui_basics/components/juce_Component.cpp:582
#17 juce::ListenerList<juce::ComponentListener, juce::Array<juce::ComponentListener*, juce::DummyCriticalSection, 0> >::callChecked<juce::Component::sendVisibilityChangeMessage()::<lambda(juce::ComponentListener&)>, juce::Component::BailOutChecker>
    (callback=<optimized out>, bailOutChecker=<synthetic pointer>..., this=0x55ca1424b370)
    at ../modules/juce_gui_basics/../juce_core/containers/juce_ListenerList.h:153
#18 juce::Component::sendVisibilityChangeMessage() (this=0x55ca1424b2f0)
    at ../modules/juce_gui_basics/components/juce_Component.cpp:582
#19 0x00007f3990e70a45 in juce::Component::setVisible(bool)
    (this=0x55ca1424b2f0, shouldBeVisible=<optimized out>)
    at ../modules/juce_gui_basics/components/juce_Component.cpp:560
#20 0x00007f3990d1a65a in juce::JucePluginWindow::show(juce::Component*)
    (comp=<optimized out>, this=<optimized out>)
    at plugin/../../utils/JucePluginWindow.hpp:82
#21 CarlaBackend::CarlaPluginJuce::showCustomUI(bool)
    (this=0x55ca1403adb0, yesNo=<optimized out>) at plugin/CarlaPluginJuce.cpp:512
#22 0x00007f3990c54ac7 in carla_show_custom_ui(CarlaHostHandle, uint, bool) (handle=<optimized out>, pluginId=<optimized out>, yesNo=<optimized out>) at /usr/src/debug/Carla-2.4.3-1.fc36.x86_64/source/backend/CarlaStandalone.cpp:2303
#23 0x00007f39a8cd3746 in ffi_call_unix64 () at ../src/x86/unix64.S:105
#24 0x00007f39a8cd04d2 in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:672
#25 0x00007f399aeced41 in _call_function_pointer (argtypecount=<optimized out>, argcount=3, resmem=0x7ffc7c09f890, restype=<optimized out>, atypes=<optimized out>, avalues=<optimized out>, pProc=0x7f3990c54a80 <carla_show_custom_ui(CarlaHostHandle, uint, bool)>, flags=4353) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Modules/_ctypes/callproc.c:916
#26 _ctypes_callproc (pProc=<optimized out>, argtuple=<optimized out>, flags=<optimized out>, argtypes=<optimized out>, restype=<optimized out>, checker=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Modules/_ctypes/callproc.c:1259
#27 0x00007f399aece679 in PyCFuncPtr_call (self=self@entry=0x7f3991cafdc0, inargs=inargs@entry=0x7f3991e76ac0, kwds=kwds@entry=0x0) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Modules/_ctypes/_ctypes.c:4201
#28 0x00007f39a8a97108 in _PyObject_MakeTpCall (tstate=0x55ca128bbf20, callable=0x7f3991cafdc0, args=0x7f3991c16f48, nargs=3, keywords=0x0) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Objects/call.c:215
#29 0x00007f39a8a9451b in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f3991c16f48, callable=<optimized out>, tstate=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/cpython/abstract.h:112
#30 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f3991c16f48, callable=<optimized out>, tstate=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/cpython/abstract.h:99
#31 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f3991c16f48, callable=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/cpython/abstract.h:123
#32 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7ffc7c09fbb0, tstate=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/ceval.c:5867
#33 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/ceval.c:4181
#34 0x00007f39a8a8d873 in _PyEval_EvalFrame (throwflag=0, f=0x7f3991c16dc0, tstate=0x55ca128bbf20) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/internal/pycore_ceval.h:46
#35 _PyEval_Vector (tstate=<optimized out>, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=3, kwnames=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/ceval.c:5065
#36 0x00007f39a8aa2f08 in _PyFunction_Vectorcall (kwnames=<optimized out>, nargsf=3, stack=0x7f3991bcbcc8, func=0x7f3992d308b0) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Objects/call.c:342
#37 _PyObject_VectorcallTstate (kwnames=<optimized out>, nargsf=3, args=0x7f3991bcbcc8, callable=0x7f3992d308b0, tstate=0x55ca128bbf20) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/cpython/abstract.h:114
#38 method_vectorcall (method=<optimized out>, args=0x7f3991bcbcd0, nargsf=<optimized out>, kwnames=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Objects/classobject.c:53
#39 0x00007f39a8a939e4 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f3991bcbcd0, callable=0x7f3991d0b680, tstate=0x55ca128bbf20) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/cpython/abstract.h:114
#40 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f3991bcbcd0, callable=0x7f3991d0b680) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/cpython/abstract.h:123
#41 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7ffc7c09fe90, tstate=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/ceval.c:5867
#42 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/ceval.c:4181
#43 0x00007f39a8a8d873 in _PyEval_EvalFrame (throwflag=0, f=0x7f3991bcbb50, tstate=0x55ca128bbf20) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/internal/pycore_ceval.h:46
#44 _PyEval_Vector (tstate=<optimized out>, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=2, kwnames=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/ceval.c:5065
#45 0x00007f39a8aa2feb in _PyFunction_Vectorcall (kwnames=<optimized out>, nargsf=<optimized out>, stack=0x7ffc7c0a0050, func=0x7f3992b900d0) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Objects/call.c:342
#46 _PyObject_VectorcallTstate (kwnames=<optimized out>, nargsf=<optimized out>, args=0x7ffc7c0a0050, callable=0x7f3992b900d0, tstate=0x55ca128bbf20) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/cpython/abstract.h:114
#47 method_vectorcall (method=<optimized out>, args=0x7f3991e3fc58, nargsf=<optimized out>, kwnames=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Objects/classobject.c:83
#48 0x00007f399a9a0468 in PyQtSlot::call(_object*, _object*) const (this=0x55ca12ddf180, args=0x7f3991e3fc40, callable=0x7f3991d0af80) at ../../qpy/QtCore/qpycore_pyqtslot.cpp:247
#49 PyQtSlot::invoke(void**, _object*, void*, bool) const (this=0x55ca12ddf180, qargs=<optimized out>, self=<optimized out>, result=0x0, no_receiver_check=<optimized out>) at ../../qpy/QtCore/qpycore_pyqtslot.cpp:159
#50 0x00007f399a9a226f in PyQtSlot::invoke(void**, _object*, void*) const (result=<optimized out>, self=0x7f3991bbb490, qargs=0x7ffc7c0a02f0, this=<optimized out>) at ../../qpy/QtCore/qpycore_pyqtslot.cpp:85
#51 qt_metacall_worker(sipSimpleWrapper*, PyTypeObject*, sipTypeDef*, QMetaObject::Call, int, void**) (pySelf=pySelf@entry=0x7f3991bbb490, pytype=<optimized out>, base=base@entry=0x7f39961d2760 <sipTypeDef_QtWidgets_QFrame>, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=14, _a=_a@entry=0x7ffc7c0a02f0) at ../../qpy/QtCore/qpycore_qobject_helpers.cpp:114
#52 0x00007f399a9a1fec in qt_metacall_worker(sipSimpleWrapper*, PyTypeObject*, sipTypeDef*, QMetaObject::Call, int, void**) (pySelf=0x7f3991bbb490, pytype=0x55ca12d66940, base=0x7f39961d2760 <sipTypeDef_QtWidgets_QFrame>, _c=QMetaObject::InvokeMetaMethod, _id=14, _a=0x7ffc7c0a02f0) at ../../qpy/QtCore/qpycore_qobject_helpers.cpp:88
#53 0x00007f399602b48f in sipQFrame::qt_metacall(QMetaObject::Call, int, void**) (this=0x55ca14291700, _c=QMetaObject::InvokeMetaMethod, _id=14, _a=0x7ffc7c0a02f0) at /usr/src/debug/python-qt5-5.15.6-3.fc36.x86_64/build/QtWidgets/sipQtWidgetsQFrame.cpp:341
#54 0x00007f399a4d75d6 in doActivate<false>(QObject*, int, void**) (sender=0x55ca14226070, signal_index=9, argv=0x7ffc7c0a02f0) at kernel/qobject.cpp:3912
#55 0x00007f399a4d2747 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55ca14226070, m=m@entry=0x7f3995c496a0 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffc7c0a02f0) at kernel/qobject.cpp:3946
#56 0x00007f39958162f6 in QAbstractButton::clicked(bool) (this=this@entry=0x55ca14226070, _t1=<optimized out>) at .moc/moc_qabstractbutton.cpp:308
#57 0x00007f399581656e in QAbstractButtonPrivate::emitClicked() (this=0x55ca142261e0) at widgets/qabstractbutton.cpp:415
#58 0x00007f399581819c in QAbstractButtonPrivate::click() (this=0x55ca142261e0) at widgets/qabstractbutton.cpp:408
#59 0x00007f39958183b7 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) (this=this@entry=0x55ca14226070, e=e@entry=0x7ffc7c0a0920) at widgets/qabstractbutton.cpp:1044
#60 0x00007f3995fe8753 in sipQPushButton::mouseReleaseEvent(QMouseEvent*) (this=0x55ca14226070, a0=0x7ffc7c0a0920) at /usr/src/debug/python-qt5-5.15.6-3.fc36.x86_64/build/QtWidgets/sipQtWidgetsQPushButton.cpp:910
#61 0x00007f39957656b8 in QWidget::event(QEvent*) (this=0x55ca14226070, event=0x7ffc7c0a0920) at kernel/qwidget.cpp:9033
#62 0x00007f39958bf021 in QPushButton::event(QEvent*) (this=this@entry=0x55ca14226070, e=e@entry=0x7ffc7c0a0920) at widgets/qpushbutton.cpp:718
#63 0x00007f3995febe9b in sipQPushButton::event(QEvent*) (this=0x55ca14226070, a0=0x7ffc7c0a0920) at /usr/src/debug/python-qt5-5.15.6-3.fc36.x86_64/build/QtWidgets/sipQtWidgetsQPushButton.cpp:1053
#64 0x00007f3995722c22 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55ca12e7ab50, receiver=receiver@entry=0x55ca14226070, e=e@entry=0x7ffc7c0a0920) at kernel/qapplication.cpp:3637
#65 0x00007f399572b2c2 in QApplication::notify(QObject*, QEvent*) (this=this@entry=0x55ca132705d0, receiver=receiver@entry=0x55ca14226070, e=e@entry=0x7ffc7c0a0920) at kernel/qapplication.cpp:3081
#66 0x00007f3996016976 in sipQApplication::notify(QObject*, QEvent*) (this=0x55ca132705d0, a0=0x55ca14226070, a1=0x7ffc7c0a0920) at /usr/src/debug/python-qt5-5.15.6-3.fc36.x86_64/build/QtWidgets/sipQtWidgetsQApplication.cpp:247
#67 0x00007f399a4a4118 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55ca14226070, event=0x7ffc7c0a0920) at kernel/qcoreapplication.cpp:1064
#68 0x00007f39957293b2 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) (receiver=receiver@entry=0x55ca14226070, event=event@entry=0x7ffc7c0a0920, alienWidget=<optimized out>, nativeWidget=0x55ca1342e650, buttonDown=buttonDown@entry=0x7f3995c7c330 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2619
#69 0x00007f399577e94e in QWidgetWindow::handleMouseEvent(QMouseEvent*) (this=0x55ca136dcc20, event=0x7ffc7c0a0c00) at kernel/qwidgetwindow.cpp:683
#70 0x00007f3995781d50 in QWidgetWindow::event(QEvent*) (this=0x55ca136dcc20, event=0x7ffc7c0a0c00) at kernel/qwidgetwindow.cpp:300
#71 0x00007f3995722c22 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55ca12e7ab50, receiver=receiver@entry=0x55ca136dcc20, e=0x7ffc7c0a0c00) at kernel/qapplication.cpp:3637
#72 0x00007f399572a116 in QApplication::notify(QObject*, QEvent*) (this=this@entry=0x55ca132705d0, receiver=receiver@entry=0x55ca136dcc20, e=e@entry=0x7ffc7c0a0c00) at kernel/qapplication.cpp:3383
#73 0x00007f3996016976 in sipQApplication::notify(QObject*, QEvent*) (this=0x55ca132705d0, a0=0x55ca136dcc20, a1=0x7ffc7c0a0c00) at /usr/src/debug/python-qt5-5.15.6-3.fc36.x86_64/build/QtWidgets/sipQtWidgetsQApplication.cpp:247
#74 0x00007f399a4a4118 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55ca136dcc20, event=0x7ffc7c0a0c00) at kernel/qcoreapplication.cpp:1064
#75 0x00007f39968a2095 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=0x55ca143a1400) at kernel/qguiapplication.cpp:2275
#76 0x00007f3996881f7c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#77 0x00007f3991a5aa7e in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#78 0x00007f39998e8f4f in g_main_dispatch (context=0x7f398c005070) at ../glib/gmain.c:3417
#79 g_main_context_dispatch (context=0x7f398c005070) at ../glib/gmain.c:4135
#80 0x00007f399993e168 in g_main_context_iterate.constprop.0 (context=context@entry=0x7f398c005070, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4211
#81 0x00007f39998e68e0 in g_main_context_iteration (context=0x7f398c005070, may_block=1) at ../glib/gmain.c:4276
#82 0x00007f399a4f4c8a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55ca134034e0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#83 0x00007f399a4a2b7a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc7c0a0f90, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#84 0x00007f399a4aac22 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#85 0x00007f3996896e50 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1860
#86 0x00007f3995722b99 in QApplication::exec() () at kernel/qapplication.cpp:2829
#87 0x00007f399601912e in meth_QApplication_exec_(PyObject*, PyObject*) (sipArgs=<optimized out>) at /usr/src/debug/python-qt5-5.15.6-3.fc36.x86_64/build/QtWidgets/sipQtWidgetsQApplication.cpp:1482
#88 0x00007f39a8a9b128 in cfunction_call (func=0x7f3991df2cf0, args=<optimized out>, kwargs=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Objects/methodobject.c:552
#89 0x00007f39a8a97108 in _PyObject_MakeTpCall (tstate=0x55ca128bbf20, callable=0x7f3991df2cf0, args=0x7f3991f156e8, nargs=0, keywords=0x0) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Objects/call.c:215
#90 0x00007f39a8a9451b in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f3991f156e8, callable=<optimized out>, tstate=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/cpython/abstract.h:112
#91 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f3991f156e8, callable=<optimized out>, tstate=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/cpython/abstract.h:99
#92 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f3991f156e8, callable=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/cpython/abstract.h:123
#93 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7ffc7c0a1140, tstate=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/ceval.c:5867
#94 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/ceval.c:4181
#95 0x00007f39a8a8d873 in _PyEval_EvalFrame (throwflag=0, f=0x7f3991f15560, tstate=0x55ca128bbf20) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/internal/pycore_ceval.h:46
#96 _PyEval_Vector (tstate=<optimized out>, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/ceval.c:5065
#97 0x00007f39a8a8eeef in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f399b011ba8, callable=0x7f3992b92440, tstate=0x55ca128bbf20) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/cpython/abstract.h:114
#98 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f399b011ba8, callable=0x7f3992b92440) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/cpython/abstract.h:123
#99 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, trace_info=0x7ffc7c0a1380, tstate=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/ceval.c:5867
#100 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/ceval.c:4198
#101 0x00007f39a8a8d873 in _PyEval_EvalFrame (throwflag=0, f=0x7f399b011a40, tstate=0x55ca128bbf20) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Include/internal/pycore_ceval.h:46
#102 _PyEval_Vector (tstate=<optimized out>, con=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=0, kwnames=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/ceval.c:5065
#103 0x00007f39a8b09e14 in PyEval_EvalCode (co=0x7f399af86d90, globals=0x7f399af299c0, locals=0x7f399af299c0) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/ceval.c:1134
#104 0x00007f39a8b3ab23 in run_eval_code_obj (tstate=0x55ca128bbf20, co=0x7f399af86d90, globals=0x7f399af299c0, locals=0x7f399af299c0) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/pythonrun.c:1291
#105 0x00007f39a8b3603a in run_mod (mod=<optimized out>, filename=<optimized out>, globals=0x7f399af299c0, locals=0x7f399af299c0, flags=<optimized out>, arena=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/pythonrun.c:1312
#106 0x00007f39a8a0a0a8 in pyrun_file (fp=0x55ca128c0b10, filename=0x7f399af69b10, start=<optimized out>, globals=0x7f399af299c0, locals=0x7f399af299c0, closeit=1, flags=0x7ffc7c0a1708) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/pythonrun.c:1208
#107 0x00007f39a8b304d9 in _PyRun_SimpleFileObject (fp=0x55ca128c0b10, filename=0x7f399af69b10, closeit=1, flags=0x7ffc7c0a1708) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/pythonrun.c:456
#108 0x00007f39a8b30298 in _PyRun_AnyFileObject (fp=0x55ca128c0b10, filename=0x7f399af69b10, closeit=1, flags=0x7ffc7c0a1708) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Python/pythonrun.c:90
#109 0x00007f39a8b2d43c in pymain_run_file_obj (skip_source_first_line=0, filename=0x7f399af69b10, program_name=0x7f399afdb550) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Modules/main.c:353
#110 pymain_run_file (config=0x55ca128a0380) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Modules/main.c:372
#111 pymain_run_python (exitcode=0x7ffc7c0a1704) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Modules/main.c:587
#112 Py_RunMain () at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Modules/main.c:666
#113 0x00007f39a8af9e1b in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/python3.10-3.10.4-1.fc36.x86_64/Modules/main.c:720
#114 0x00007f39a87a6550 in __libc_start_call_main (main=main@entry=0x55ca121fe160 <main>, argc=argc@entry=4, argv=argv@entry=0x7ffc7c0a1938) at ../sysdeps/nptl/libc_start_call_main.h:58
#115 0x00007f39a87a6609 in __libc_start_main_impl (main=0x55ca121fe160 <main>, argc=4, argv=0x7ffc7c0a1938, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc7c0a1928) at ../csu/libc-start.c:389
#116 0x000055ca121fe095 in _start ()

Extremely informative. Thank you very much for the information.

Some update on this issue.

The crash can be patched for next release of Uhhyou Plugins. See the linked issue above this comment.

Unnamed Window issue seems like Carla specific. It might also be specific on Openbox, but not confirmed.

The re-opening crash is patched now. You can download binary from latest release, or build from source code (build instruction). Please let me know if it at least doesn't crash on your environment.

I see the following quirks with 1.9:

  • Still opens in the same undesirable location (cut-off, middle-left side)
  • While it does seem a bit more reliable in terms of being able to open and close, it is slow as mud to render.
  • From what I'm reading above, presets won't work?

Given the above, I just don't understand why you're wasting your time with VST3. I mean, I guess you want to cater to the windoze/mac crowd?

Thanks for testing. The rest of issues are on the plugin hosts.

I close this issue since the patch for the crash was merged to VSTGUI.

I probably stop using VST 3 SDK directly when JUCE or other framework starts supporting fractional pitch, note expression, and host context menu. Also GUI issue can occur regardless of plugin format.