On 04/15/2013 06:06 PM, taktik wrote:
---
Looks cool, but someone's understanding of
the VST spec is wrong. Probably
Ardour's.
This puppy calls audioMasterNeedIdle while being instantiated. Not cool.
Will fix A3 ASAP.
From my understanding
"audioMasterNeedIdle" should not directly result
into an idle call, but
informs the host that the plugin wants
"effIdle" calls. The specs are not really clear here though.
"effIdle"
also is NOT "effEditIdle" which drives the plugins GUIs, but a general
idle function which should be called even when the editor is not open.
We ended up removing the "audioMasterNeedIdle" call in Glitch 2.0.1
now, which got released a few hours ago, cause this obviously caused
more troubles than fixing anything.
We thought it's a good idea to call "audioMasterNeedIdle", to make
sure that we do get idle calls at all from the host. We do rely on
this on Linux, because we need to do some housekeeping in the UI
thread, but found no way to get constantly called in the UI thread
without relying on the host's idle calls. On Windows we do so via a
"SetTimer", on OSX via "InstallEventLoopTimer". On Linux there seems
to be no equivalent timer which gets called in the "XEvent" loop.
Juce based plugins workaround this by creating a new thread for just
this on Linux (a "message thread" in Juce terminology - if I remember
correctly) which does general UI thread housekeeping and also drives
the plugin GUI when the host does not call "effEditIdle". We wanted to
avoid creating a new thread for just this, cause such a thread will
then run concurrently with the host's UI thread which is a guarantee
for unnecessary overhead and of course in general a hassle to setup
and maintain.
This is also the reason why the Glitch GUI does not work in qtractor
and muse. qtractor and muse do not call "effEditIdle", even when the
plugin GUI is open. So if qtractor and muse could be patched to call
"effEditIdle" for all open plugin editors this would avoid a lot of
hassle here.
qtractor svn trunk (v0.5.8.2) already calls effEditIdle iif GUI is open
but not before nor later. oto. it doesn't call effIdle ever since long
ago as it's been deprecated as of vst 2.4
---
it crashes during shutdown
Tested this a lot during the last days on various systems, but could
not really replicate this here. Would be great if someone who could
easily replicate this before could test this again with the latest
Glitch 2.0.1 update. And If it still crashes, give us some more
details about the used system and host. A stack trace of such a crash
would help a lot too.
it still crashes on host (qtractor) shutdown; the crash spot points into
libX11 ultimately, which smells like some xcb or pthread locking
conflict in the wild; any stacktrace is useless as i find the demo .so
with no elf debug-symbols whatsoever
cheers
--
rncbc aka Rui Nuno Capela
rncbc(a)rncbc.org