On April 10, 2013 08:42:25 AM Paul Davis wrote:
On Wed, Apr 10, 2013 at 8:04 AM, Paul Davis
<paul(a)linuxaudiosystems.com>
wrote:
On Wed, Apr 10, 2013 at 7:37 AM, Dave Phillips <dlphillips(a)woh.rr.com>
wrote:
Greetings,
http://illformed.com/glitch/
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.
fixed in git master branch. but i can't recommend this plugin as-is:
(a) it does GUI stuff when instantiated, even if the user doesn't plan to use
the GUI (or maybe is on an embedded box and has no GUI)
(b) it crashes during shutdown
(c) the GUI knob controls do not respond normally to my attempts to move
them (if they respond at all)
--p
Apologies for the dev-ish talk below...
Thanks for the hints Paul.
In MusE I had sound, GUI would open but just hang just like a couple of
other of these native vst synths.
Got me curious so I found a couple of bugs and rearranged a couple of things.
Still nothing.
Then I found the cause was I was not calling effEditIdle periodically.
Luckily we've got such a leisurely-rate timer handy slot in our synth classes.
So a one-line fix. Boom we got GUI now!
(Rats, a few others still don't open.)
I also tried calling effIdle periodically too which I've never done, just like
the plugin asks. But it alone did not help.
This forum helped in regard to the idle calls:
http://www.kvraudio.com/forum/printview.php?t=349866&start=0
Neat plugin, tried the sequencing and so on, it works (nice to know my
time callback is still working).
-----
About Paul's item a)
Yeah seems a little bit not like all the others I've tested...
About item b)
Yeah several do that here.
About item c)
No trouble here moving all controls.
No trouble automating and playing back control movements too, in MusE.
Paul, I had found a couple of plugins that had real odd behaviour with respect
to stuck controls which I just couldn't move - they'd just jump back.
One such plugin was called VEX. I think another may have been Discovery.
Don't know if Glitch is another.
So I had to be careful and add the following kind of section in our process,
where I specifically have to write-back any new port value to the plugin.
_controls is the port array, and v is an incoming GUI-control-initiated FIFO
event buffer item:
_controls[v.idx].val = v.value;
if(dispatch(effCanBeAutomated, v.idx, 0, NULL, 0.0f) == 1)
{
if(v.value != _plugin->getParameter(_plugin, v.idx))
_plugin->setParameter(_plugin, v.idx, v.value);
...
Tim.