Monday, 2017-03-20

*** Yruama_Lairba has quit IRC01:23
*** artfwo has quit IRC01:59
*** trebmuh has quit IRC04:13
*** oofus has quit IRC05:42
*** edogawa has joined #lv207:38
*** drobilla has quit IRC07:53
*** oofus_lt has joined #lv208:08
*** oofus_lt_ has joined #lv208:22
*** oofus_lt has quit IRC08:24
*** drobilla has joined #lv208:28
*** sigma6 has joined #lv208:43
*** nilg has joined #lv208:54
*** nilg has quit IRC08:56
*** nilg has joined #lv208:58
*** nilg has quit IRC09:12
*** yann-kaelig has joined #lv209:31
*** yann-kaelig has quit IRC09:40
*** drobillatwork has joined #lv209:48
*** yann-kaelig has joined #lv209:58
*** yann-kaelig has quit IRC10:07
*** yann-kaelig has joined #lv210:10
*** ssam2 has joined #lv210:16
*** ftonello has joined #lv210:44
*** yann-kaelig has quit IRC10:58
*** yann-kaelig has joined #lv211:04
*** Yruama_Lairba has joined #lv211:39
*** ftonello has quit IRC11:48
*** trebmuh has joined #lv211:48
*** ftonello has joined #lv211:48
*** artfwo has joined #lv211:54
*** yann-kaelig has quit IRC12:15
*** yann-kaelig has joined #lv212:16
*** yann-kaelig has quit IRC12:50
*** yann-kaelig has joined #lv213:05
*** yann-kaelig has quit IRC13:09
*** yann-kaelig has joined #lv213:19
*** deva has joined #lv214:25
*** ssj71 has joined #lv216:41
*** drobillatwork has quit IRC16:58
*** sigma6 has quit IRC17:04
*** dsheeler has quit IRC17:32
*** dsheeler has joined #lv217:34
*** oofus_lt_ has quit IRC18:16
drobillaI kind of want to do this URI migration + URID static-ification stuff I've been musing about occasionally...18:27
drobillaIn conjunction with ultra shiny C++11 if not 14 bindings18:28
drobillaNot sure in what order, though18:28
*** ssam2 has quit IRC18:44
rgareusdrobilla: 20 points for an easy answer for a non-coder:  "Why can I update VSTs and AUs at runtime, but installing LV2 needs a re-start [of ardour]" ?18:46
drobillayaya, blame drobilla, the LV2 implementation sucks, yadda yadda :P18:48
drobillaI'm still kind of confused why I did a ton of reloading sort of work in lilv and friends at your behest if this doesn't work anyway18:49
rgareusit works for presets18:55
rgareusand state undo/redo in general18:55
rgareusthat static LV2World initialization remains to go away,  the problem there is IIRC  already loaded plugins.18:56
drobillaah19:07
drobillaI'd need to think about it, but my instinct is that this "destroy the world" thing is not what you want to do anyway19:07
drobillaThe plugin itself doesn't give a shit, but Ardour would need to destroy all its references to lilv things and reload them and deal with that happens when things get weird...19:08
drobillaI'll try to carve out some time to look into it, but, well, y'know...19:09
ventosusdrobilla: added instant preview of primitive atoms to sherlock, this is very nice indeed19:15
ventosusui also scales now with control +- and control wheel, and should even honour DPI19:16
drobillaventosus: awesome19:18
drobillaSome day soon I will have a proper monitor again and care less, but until then... :)19:18
drobillaI need to genericize the transmission in Ingen, but something of a chicken & egg there19:19
*** rncbc has joined #lv219:19
drobillaNot many plugins that process floats, let along strings or whatever...19:19
*** ugjka is now known as atomsucks19:20
*** atomsucks has quit IRC19:23
*** ugjka has joined #lv219:24
*** NickSB has quit IRC20:18
*** oofus has joined #lv220:20
rgareusdrobilla: incremental updates of the world would be fine, just add new ones. that should not be too hard. edge-cases are20:20
rgareusdrobilla: removing a VST or AU plugin that's loaded -> no problem the .so/.dylib  is already mapped.     but if the .ttl changes (update or removal)  lilv_instance_run() is in trouble20:22
*** Anchakor_ has joined #lv220:22
drobillargareus: Just adding new ones is trivial20:23
rgareustrivial as in "left as exercise to the reader" ? :-)20:23
drobillargareus: Why?  lilv_insance_run() is just a thin wrapper to calling the plugin's run20:24
*** NickSB has joined #lv220:25
drobillaPlugins don't know a thing about lilv20:25
rgareusI don't remember what exactly happened if the plugin's ttl changes.20:26
drobillaThis is pretty much 100% about the host dealing with and potential consequences of data changing20:26
drobillaany*20:26
rgareusthe problem is that the .so  (already loaded) will stay20:26
drobillaHow is this any different from VST or AU?20:27
drobillai.e. what does Ardour do for them?20:27
rgareusthere's no .ttl20:27
rgareusso all the info will come from the .so that's loaded20:27
drobillaThen the equivalent thing would be for ardour to not reload the .ttl for loaded plugins at all20:28
rgareusdrobilla: s/ardour/lilv/ I suppose   ardour just calls   lilv_world_load_all()20:28
drobillaSeems like the actual user issue with this is exclusively refreshing to see new plugins?20:29
*** Anchakor has quit IRC20:29
rgareusdrobilla: indeed. the actual use-case is really only "new plugins"20:29
drobillaIf the bundles are separate I think doing so much just work, actually... the cacheing stuff avoids loading files twice already20:30
rgareuscomes up on the ardour and mixbus forums once per month.   "I've clicked on Preferences > Plugins > Rescan ..  and newly installed LV2 don't show"20:30
rgareusnot a biggie20:30
rgareusdrobilla: lilv probably already handles this. maybe20:31
drobillaYeah, I can't say for certain without refreshing my memory, but I think calling load_all will just do the right thing here20:32
drobillaThinking about reloading the world with instantiated plugins is nuclear, not because of the plugins or lilv itself, which couldn't care less about each other, but just fundamental host issues.  If you have a plugin with 4 ports and now your description says it has 7 (or worse, vice versa), un-fun things are probably going to happen20:36
drobillaAdding new plugins/whatevers is easy. You just....... add them20:37
rgareusdrobilla: currently liblilv would update the .ttl if  it's newer,  had to say if it affects running instances,  but it's certainly a problem when adding a plugin-instance of the same plugin.20:40
rgareusI suppose the host could call    lilv_world_load_path()  and iterate itself20:41
*** deva has quit IRC20:44
drobillargareus: You sure it would?20:46
drobillaIt all boils down to lilv_world_load_file which ignores already loaded files and has no concept of "newer"20:46
rgareusdrobilla: if   ((LilvPlugin*)plugin)->replaced = true  is set..  and serd/suil  zyxtree  replaces things under the hood..20:48
rgareusif only new plugins are added, things should be fine20:48
drobillaThis is for plugins which are dc:replaced by other plugins20:49
rgareusdrobilla: where did that version & duplicate check go in, again?20:49
drobillaNone of the lower level libs know or care about things like file times whatsoever20:49
drobillaThe granularity here gets weird, sometimes I think it would have been smart to *force* one plugin per bundle...20:50
rgareusdrobilla: if - say - a port is added to a plugin.   ttl is updated , new instance will use that.  but the .so is already loaded -> b00m.20:50
drobillaMaybe boom, hard to say.20:51
rgareusright, depends on the plugin.20:51
drobillaDepends on Ardour, mainly20:51
rgareusa     lilv_world_load_new ();   would be nice    just add new plugins to the world20:51
drobillaThe potential nasty cases are around things like a new version of a plugin using a different file, so it will indeed be loaded20:52
drobillaHm20:53
drobillaThat could work-ish20:53
rgareusdealing with updates.. is probably impossible to get right.20:53
drobillaUnfortunately in general, yeah.  We'd need stricter rules20:54
*** rncbc has quit IRC20:54
drobillaIf the correspondence between plugins and bundles and files were fixed it'd be easy to get actually right20:54
rgareusthere's also the opposite problem.  plugin is not in-use.     .so and .ttl is updated.    lilv does not re-load the .ttl20:54
drobillaThe most thorough refresh would be for Ardour to explicitly drop all plugins that aren't loaded then reload20:55
drobillaThough you don't drop plugins, you drop bundles...20:55
drobillaKinda, anyway.  In practice hosts like ardour just load damn near everything all the time anyways.  We *almost* got that fast manifest-only scan thing! :)20:56
drobillaIt's not immediately obvious to me looking at the Ardour code why refresh doesn't make the new plugins visible, actually21:01
drobillaBuuuuuut I'd need to reboot and build to test and I'm more in a "watch Star Trek and pass out because  you got <4 hours of sleep last night" sort of mood :)21:01
*** yann-kaelig has quit IRC21:04
rgareusdrobilla: ARDOUR::LV2PluginInfo::discover is definitily called21:06
rgareusand ardour actually decouples that.   uses a  "shadow world"    and creates a  PluginInfoList (URI, name, port-count)21:07
rgareusit /should/ work21:08
rgareushmm works here now that I try it.21:09
rgareusaah no it doesn't.  new plugins are listed   (PluginInfoList exist)  but loading them fails (the "real" world isn't updated)21:11
rgareusstatic LV2World _world;     //  remains as-is21:12
*** rncbc has joined #lv221:24
*** trebmuh has quit IRC23:32
*** edogawa has quit IRC23:59

Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!