*** Yruama_Lairba has quit IRC | 01:23 | |
*** artfwo has quit IRC | 01:59 | |
*** trebmuh has quit IRC | 04:13 | |
*** oofus has quit IRC | 05:42 | |
*** edogawa has joined #lv2 | 07:38 | |
*** drobilla has quit IRC | 07:53 | |
*** oofus_lt has joined #lv2 | 08:08 | |
*** oofus_lt_ has joined #lv2 | 08:22 | |
*** oofus_lt has quit IRC | 08:24 | |
*** drobilla has joined #lv2 | 08:28 | |
*** sigma6 has joined #lv2 | 08:43 | |
*** nilg has joined #lv2 | 08:54 | |
*** nilg has quit IRC | 08:56 | |
*** nilg has joined #lv2 | 08:58 | |
*** nilg has quit IRC | 09:12 | |
*** yann-kaelig has joined #lv2 | 09:31 | |
*** yann-kaelig has quit IRC | 09:40 | |
*** drobillatwork has joined #lv2 | 09:48 | |
*** yann-kaelig has joined #lv2 | 09:58 | |
*** yann-kaelig has quit IRC | 10:07 | |
*** yann-kaelig has joined #lv2 | 10:10 | |
*** ssam2 has joined #lv2 | 10:16 | |
*** ftonello has joined #lv2 | 10:44 | |
*** yann-kaelig has quit IRC | 10:58 | |
*** yann-kaelig has joined #lv2 | 11:04 | |
*** Yruama_Lairba has joined #lv2 | 11:39 | |
*** ftonello has quit IRC | 11:48 | |
*** trebmuh has joined #lv2 | 11:48 | |
*** ftonello has joined #lv2 | 11:48 | |
*** artfwo has joined #lv2 | 11:54 | |
*** yann-kaelig has quit IRC | 12:15 | |
*** yann-kaelig has joined #lv2 | 12:16 | |
*** yann-kaelig has quit IRC | 12:50 | |
*** yann-kaelig has joined #lv2 | 13:05 | |
*** yann-kaelig has quit IRC | 13:09 | |
*** yann-kaelig has joined #lv2 | 13:19 | |
*** deva has joined #lv2 | 14:25 | |
*** ssj71 has joined #lv2 | 16:41 | |
*** drobillatwork has quit IRC | 16:58 | |
*** sigma6 has quit IRC | 17:04 | |
*** dsheeler has quit IRC | 17:32 | |
*** dsheeler has joined #lv2 | 17:34 | |
*** oofus_lt_ has quit IRC | 18:16 | |
drobilla | I kind of want to do this URI migration + URID static-ification stuff I've been musing about occasionally... | 18:27 |
---|---|---|
drobilla | In conjunction with ultra shiny C++11 if not 14 bindings | 18:28 |
drobilla | Not sure in what order, though | 18:28 |
*** ssam2 has quit IRC | 18:44 | |
rgareus | drobilla: 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 |
drobilla | yaya, blame drobilla, the LV2 implementation sucks, yadda yadda :P | 18:48 |
drobilla | I'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 anyway | 18:49 |
rgareus | it works for presets | 18:55 |
rgareus | and state undo/redo in general | 18:55 |
rgareus | that static LV2World initialization remains to go away, the problem there is IIRC already loaded plugins. | 18:56 |
drobilla | ah | 19:07 |
drobilla | I'd need to think about it, but my instinct is that this "destroy the world" thing is not what you want to do anyway | 19:07 |
drobilla | The 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 |
drobilla | I'll try to carve out some time to look into it, but, well, y'know... | 19:09 |
ventosus | drobilla: added instant preview of primitive atoms to sherlock, this is very nice indeed | 19:15 |
ventosus | ui also scales now with control +- and control wheel, and should even honour DPI | 19:16 |
drobilla | ventosus: awesome | 19:18 |
drobilla | Some day soon I will have a proper monitor again and care less, but until then... :) | 19:18 |
drobilla | I need to genericize the transmission in Ingen, but something of a chicken & egg there | 19:19 |
*** rncbc has joined #lv2 | 19:19 | |
drobilla | Not many plugins that process floats, let along strings or whatever... | 19:19 |
*** ugjka is now known as atomsucks | 19:20 | |
*** atomsucks has quit IRC | 19:23 | |
*** ugjka has joined #lv2 | 19:24 | |
*** NickSB has quit IRC | 20:18 | |
*** oofus has joined #lv2 | 20:20 | |
rgareus | drobilla: incremental updates of the world would be fine, just add new ones. that should not be too hard. edge-cases are | 20:20 |
rgareus | drobilla: 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 trouble | 20:22 |
*** Anchakor_ has joined #lv2 | 20:22 | |
drobilla | rgareus: Just adding new ones is trivial | 20:23 |
rgareus | trivial as in "left as exercise to the reader" ? :-) | 20:23 |
drobilla | rgareus: Why? lilv_insance_run() is just a thin wrapper to calling the plugin's run | 20:24 |
*** NickSB has joined #lv2 | 20:25 | |
drobilla | Plugins don't know a thing about lilv | 20:25 |
rgareus | I don't remember what exactly happened if the plugin's ttl changes. | 20:26 |
drobilla | This is pretty much 100% about the host dealing with and potential consequences of data changing | 20:26 |
drobilla | any* | 20:26 |
rgareus | the problem is that the .so (already loaded) will stay | 20:26 |
drobilla | How is this any different from VST or AU? | 20:27 |
drobilla | i.e. what does Ardour do for them? | 20:27 |
rgareus | there's no .ttl | 20:27 |
rgareus | so all the info will come from the .so that's loaded | 20:27 |
drobilla | Then the equivalent thing would be for ardour to not reload the .ttl for loaded plugins at all | 20:28 |
rgareus | drobilla: s/ardour/lilv/ I suppose ardour just calls lilv_world_load_all() | 20:28 |
drobilla | Seems like the actual user issue with this is exclusively refreshing to see new plugins? | 20:29 |
*** Anchakor has quit IRC | 20:29 | |
rgareus | drobilla: indeed. the actual use-case is really only "new plugins" | 20:29 |
drobilla | If the bundles are separate I think doing so much just work, actually... the cacheing stuff avoids loading files twice already | 20:30 |
rgareus | comes 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 |
rgareus | not a biggie | 20:30 |
rgareus | drobilla: lilv probably already handles this. maybe | 20:31 |
drobilla | Yeah, I can't say for certain without refreshing my memory, but I think calling load_all will just do the right thing here | 20:32 |
drobilla | Thinking 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 happen | 20:36 |
drobilla | Adding new plugins/whatevers is easy. You just....... add them | 20:37 |
rgareus | drobilla: 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 |
rgareus | I suppose the host could call lilv_world_load_path() and iterate itself | 20:41 |
*** deva has quit IRC | 20:44 | |
drobilla | rgareus: You sure it would? | 20:46 |
drobilla | It all boils down to lilv_world_load_file which ignores already loaded files and has no concept of "newer" | 20:46 |
rgareus | drobilla: if ((LilvPlugin*)plugin)->replaced = true is set.. and serd/suil zyxtree replaces things under the hood.. | 20:48 |
rgareus | if only new plugins are added, things should be fine | 20:48 |
drobilla | This is for plugins which are dc:replaced by other plugins | 20:49 |
rgareus | drobilla: where did that version & duplicate check go in, again? | 20:49 |
drobilla | None of the lower level libs know or care about things like file times whatsoever | 20:49 |
drobilla | The granularity here gets weird, sometimes I think it would have been smart to *force* one plugin per bundle... | 20:50 |
rgareus | drobilla: 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 |
drobilla | Maybe boom, hard to say. | 20:51 |
rgareus | right, depends on the plugin. | 20:51 |
drobilla | Depends on Ardour, mainly | 20:51 |
rgareus | a lilv_world_load_new (); would be nice just add new plugins to the world | 20:51 |
drobilla | The potential nasty cases are around things like a new version of a plugin using a different file, so it will indeed be loaded | 20:52 |
drobilla | Hm | 20:53 |
drobilla | That could work-ish | 20:53 |
rgareus | dealing with updates.. is probably impossible to get right. | 20:53 |
drobilla | Unfortunately in general, yeah. We'd need stricter rules | 20:54 |
*** rncbc has quit IRC | 20:54 | |
drobilla | If the correspondence between plugins and bundles and files were fixed it'd be easy to get actually right | 20:54 |
rgareus | there's also the opposite problem. plugin is not in-use. .so and .ttl is updated. lilv does not re-load the .ttl | 20:54 |
drobilla | The most thorough refresh would be for Ardour to explicitly drop all plugins that aren't loaded then reload | 20:55 |
drobilla | Though you don't drop plugins, you drop bundles... | 20:55 |
drobilla | Kinda, 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 |
drobilla | It's not immediately obvious to me looking at the Ardour code why refresh doesn't make the new plugins visible, actually | 21:01 |
drobilla | Buuuuuut 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 IRC | 21:04 | |
rgareus | drobilla: ARDOUR::LV2PluginInfo::discover is definitily called | 21:06 |
rgareus | and ardour actually decouples that. uses a "shadow world" and creates a PluginInfoList (URI, name, port-count) | 21:07 |
rgareus | it /should/ work | 21:08 |
rgareus | hmm works here now that I try it. | 21:09 |
rgareus | aah no it doesn't. new plugins are listed (PluginInfoList exist) but loading them fails (the "real" world isn't updated) | 21:11 |
rgareus | static LV2World _world; // remains as-is | 21:12 |
*** rncbc has joined #lv2 | 21:24 | |
*** trebmuh has quit IRC | 23:32 | |
*** edogawa has quit IRC | 23:59 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!