Hi, Tim!
> On October 18, 2014 10:49:43 PM Andrew Deryabin wrote:
>> Hi, All!
>>
>>       Now lv2 host supports  state save/restore for lv2 rack plugins.
>>
>> At this time all major lv2 plugin features are supported. Any testers
>> are welcome :).
>>
>> P.S. Is anybody here?
>>
>> Regards,
>> Andrew
>
> Tested a few synths and effects. Sorry didn't try saving/loading yet.
>
> After closing MusE, when I looked in the terminal later I saw this:
Thanks for testing! I'll now comment every message:
>
> [REGULAR STARTUP STUFF NOT SHOWN...]
>
> [LOTS OF THESE. LOOKS OK...]
>
> LV2SynthIF::getControllerInfo passed ctlnum:401524 min:-8192 max:8191
> initval:-8192
> LV2SynthIF::getControllerInfo passed ctlnum:401525 min:0 max:16383
> initval:8456
> LV2SynthIF::getControllerInfo passed ctlnum:401526 min:0 max:16383
> initval:16383
> LV2SynthIF::getControllerInfo passed ctlnum:401527 min:0 max:16383
> initval:1365
> LV2SynthIF::getControllerInfo passed ctlnum:401528 min:0 max:16383 initval:66
> LV2SynthIF::getControllerInfo passed ctlnum:401529 min:0 max:16383
> initval:1655
> LV2SynthIF::getControllerInfo passed ctlnum:401530 min:0 max:16383
> initval:9840
> LV2SynthIF::getControllerInfo passed ctlnum:401531 min:0 max:16383
> initval:1655
>
> [ETC...]
These messages are from controller mapping code - it's ok. They will not 
be show when constant DEBUG_LV2 will be undefined (in lv2host.cpp)

>
> CALF DEBUG: instance 0x97f9cf0 data 0x97f6f58
> CALF DEBUG: calf 0xa8a03ae8 cpi 0xa82493f0
> Send configures...
> LV2SynthIF::putEvent midi event time:0 chn:0 a:262145 b:7
> LV2SynthIF::putEvent midi event time:0 chn:0 a:262145 b:8
> LV2SynthIF::putEvent midi event time:0 chn:0 a:262145 b:9
> LV2SynthIF::putEvent midi event time:0 chn:0 a:262145 b:10
> LV2SynthIF::putEvent midi event time:0 chn:0 a:262145 b:11
> LV2SynthIF::putEvent midi event time:0 chn:0 a:262145 b:12
> LV2SynthIF::putEvent midi event time:0 chn:0 a:262145 b:65548
> LV2SynthIF::putEvent midi event time:0 chn:0 a:262145 b:131084
> LV2SynthIF::putEvent midi event time:0 chn:0 a:262145 b:196620
> LV2SynthIF::putEvent midi event time:0 chn:0 a:262145 b:262156
> LV2SynthIF::putEvent midi event time:0 chn:0 a:262145 b:327692
> LV2SynthIF::putEvent midi event time:0 chn:0 a:262145 b:393228
> LV2SynthIF::putEvent midi event time:0 chn:0 a:262145 b:458764
> CALF DEBUG: instance 0xab7c0c0 data 0xa837d18
> CALF DEBUG: calf 0xa8a03c28 cpi 0xa8248d60
> Send configures...
It's also related to DEBUG_LV2, last 3 are from calf gui code, first is 
shown address info for instance-access lv2 extension, secong - cald 
internal structures address passed to gui.
>
> [GOT A TON OF THESE, THOUSANDS WAY MORE THAN SHOWN...
> It might be a GTK's fault?]
>
> (muse2:5608): Gtk-CRITICAL **: IA__gtk_widget_destroy: assertion
> 'GTK_IS_WIDGET (widget)' failed
>
> (muse2:5608): Gtk-CRITICAL **: IA__gtk_widget_destroy: assertion
> 'GTK_IS_WIDGET (widget)' failed
>
> (muse2:5608): Gtk-CRITICAL **: IA__gtk_widget_destroy: assertion
> 'GTK_IS_WIDGET (widget)' failed
>
> [ETC...]
>

GTK way is rather complex when loaded in qt4 gui process - suil library 
tries to preload gtk library on plugin gui init, but may be some symbols 
are not resolved at runtime. The same bug covers gtkmm also. I'm now 
looking for solution, but seems that these gtk errors may be simply 
ignored, as gtk guis are loaded just fine in many lv2 plugs.

>
> QWaitCondition: mutex destroy failure: Device or resource busy
> ~LV2MidiPort()
> QWaitCondition: mutex destroy failure: Device or resource busy
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()

~LV2MidiPort() - related to DEBUG_LV2 - only for testing memory 
deallocation of internal lv2 host structs; What about mutexes - thay are 
not from lv2 host code. I'll find ehere this error from. It is shown 
only on app exit.
>
> [GOT ABOUT 200 OF THESE. I think one for each plugin on my system.
> Don't worry, not your fault I think this message has been there for a while
>   possibly accidentally 'left on' when Florian did some fixes to ensure
>   plugin destruction.
>
> The error is in Plugin::~Plugin(), and the 'plugin' member which the message
>   is referring to is actually
> class Plugin{   const LADSPA_Descriptor *plugin;  }
>
> I vaguely recall trying to destroy this LADSPA_Descriptor in ~Plugin()
>   and getting crashes so I think I left it alone. But I'm not sure how the
>   actual message line got in there. I think when the plugin dll is
>   uninstantiated it automatically releases this LADSPA_Descriptor
>   and we shouldn't touch it.
> So the error message might simply be an oversight forgotten to remove. ]
>
> Plugin::~Plugin Error: plugin is not NULL
> Plugin::~Plugin Error: plugin is not NULL
> Plugin::~Plugin Error: plugin is not NULL
> Plugin::~Plugin Error: plugin is not NULL

yes, these are related only to lv2:
Before lv2 host, MusEGlobal::plugins was allocated and deallocated 
automatically. Now, to support LV2PluginWrapper virtual methods (class 
plugin is the base of it) I rewrite PluginList class and related 
functions so, that plugins list allocated as:
....
MusEGlobal::plugins.push_back(new LV2PluginWrapper(s));
....

And to free memory, there is some more code in main.cpp:

if (MusEGlobal::loadPlugins)
       {
          for (MusECore::iPlugin i = MusEGlobal::plugins.begin(); i != 
MusEGlobal::plugins.end(); ++i)
             delete (*i);
       }

That leads to
 >>Plugin::~Plugin Error: plugin is not NULL
So, this message may be simply ignored, but I'll suspend it for lv2 
plugins at all.

> [ETC...]
>
> ~LV2MidiPort()
> ~LV2MidiPort()
> ~LV2MidiPort()
>
>
> [DONE]
>
>
> Looking great, can't wait 'till program patches are shown and selectable.

That works already :). Supported extension is LV2_Programs from 
kxstudio. Many plugins support it. I tested patch selecting on Dexed 
synth from dihstro plugins site. May be you meen something else instead?

Regards, Andrew
> Thanks.
> Tim.
>
>
>
> ------------------------------------------------------------------------------
> Comprehensive Server Monitoring with Site24x7.
> Monitor 10 servers for $9/Month.
> Get alerted through email, SMS, voice calls or mobile push notifications.
> Take corrective actions from your mobile device.
> http://p.sf.net/sfu/Zoho
> _______________________________________________
> Lmuse-developer mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/lmuse-developer


------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
_______________________________________________
Lmuse-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lmuse-developer

Reply via email to