On Mon, Apr 15, 2013 at 1:06 PM, taktik <taktik(a)renoise.com> 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.
sure. the issue here was that making an audioMaster callback requires that
the host has a fully constructed plugin handle to work with, including the
"user data" for the plugin handle. ardour wasn't setting the "user
data"
pointer until AFTER instantiation, but glitch went ahead and made the call
anyway.
ardour 3.x has been "fixed" but the fix breaks most/all Loomer VST plugins
who now find that their "early" audioMaster callbacks actually succeed!
what a messed up API.
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
all true. but ... one of the issues with glitch as it stands is that it
does GUI-related stuff even when there is no GUI. there is no reason to ask
for idle callbacks until effEditOpen has been called. you also should not
be attempting to find GUI resources in the plugin instantiation code - the
plugin may be running on a system with no GUI at all.
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.
there are no details in the stack trace because your plugin is distributed
without symbols.
--p