*** Greg__ has joined #lv2 | 01:50 | |
*** Greg__ has left #lv2 | 01:50 | |
*** artfwo has quit IRC | 02:34 | |
*** Magnus_RM has quit IRC | 03:04 | |
*** falktx has joined #lv2 | 07:12 | |
*** sigma6 has joined #lv2 | 07:44 | |
*** edogawa has joined #lv2 | 08:13 | |
*** drobilla has quit IRC | 09:21 | |
*** wump has joined #lv2 | 10:04 | |
*** wumpus has quit IRC | 10:07 | |
*** cbfishes1 has joined #lv2 | 10:11 | |
cbfishes1 | morning folks! anybody know how to adjust the sample start time in samplv1? | 10:14 |
---|---|---|
*** ricardocrudo has quit IRC | 10:36 | |
*** barjac has joined #lv2 | 10:40 | |
falktx | only the author knows I guess | 10:41 |
*** barjac has quit IRC | 10:57 | |
*** wump is now known as wumpus | 11:03 | |
*** barjac has joined #lv2 | 11:05 | |
*** ricardocrudo has joined #lv2 | 11:09 | |
*** barjac has quit IRC | 11:09 | |
*** barjac has joined #lv2 | 11:18 | |
*** barjac has quit IRC | 11:29 | |
*** cbfishes1 has quit IRC | 12:01 | |
*** artfwo has joined #lv2 | 12:29 | |
*** barjac has joined #lv2 | 12:29 | |
*** drobilla has joined #lv2 | 13:13 | |
drobilla | falktx: So, all the real nastiness with reloading comes when the plugin is instantiated | 14:01 |
drobilla | falktx: Ignoring that it's relatively easy, so I might just do that bit first... | 14:01 |
*** edogawa has quit IRC | 14:44 | |
falktx | drobilla: hey we need to talk | 14:52 |
falktx | drobilla: after much thought we decided against using ingen for mod | 14:53 |
falktx | drobilla: there's a lot of reasons for this. the testing using our old mod-host was very conclusive | 14:53 |
falktx | with jack2 we can have smp, clickless connections, and optionally async mode too | 14:54 |
falktx | drobilla: we'll keep the ingen format though. mod pedalboards will be ingen graphs | 14:54 |
falktx | drobilla: it was not my decision to use ingen initially, but still, sorry about this | 14:56 |
falktx | hopefully you understand | 14:57 |
falktx | we need something that is as light as possible, and that we ourselves can easily modify | 14:58 |
falktx | I even did some tests with carla, nothing can beat the super dumb mod-host | 14:59 |
drobilla | Running every plugin as a Jack client is *less* expensive than ingen and carla?? | 15:00 |
rgareus | jack2 has parallel graphs | 15:04 |
falktx | much less expensive | 15:06 |
rgareus | I can imagine that on a slow ARM but with 4 cores jack2/SMP wins over single-threaded plugin-hosts. | 15:06 |
drobilla | True. Though I can add SMP easily enough | 15:06 |
drobilla | falktx: Have they been compared without SMP? | 15:06 |
falktx | yes | 15:06 |
falktx | ingen takes 5% cpu when idle | 15:06 |
falktx | setbfree takes ~36% on ingen, 31 on mod-host | 15:07 |
rgareus | jack2 must be more expensive due to context switches. | 15:07 |
drobilla | ^ this | 15:07 |
falktx | all the dsp is inside the same app, so no expensive context switching afaik | 15:07 |
drobilla | Then Jack2 doesn't get you clickless internal connections, which is why I asked | 15:07 |
falktx | mod-host can be made into a jack internal client which bypasses all this | 15:07 |
rgareus | drobilla: jack2 does have clickless connections in async (default) mode | 15:07 |
drobilla | I get < 1% CPU, but I haven't profiled it | 15:08 |
rgareus | I'm curious what causes the ingen idle CPU load | 15:08 |
falktx | you're not running a 1GHz arm chip, or are you? | 15:08 |
drobilla | I'm not arguing, since I'm fully aware "I, falktx, can not even bother to run Ingen in a profiler, let alone work on it" is the reasoning here and it's pointless to contest this, but I am curious about how jack could possibly be faster :) | 15:09 |
drobilla | No, Intel | 15:09 |
falktx | hm? | 15:10 |
falktx | I told you I tried to work on ingen | 15:10 |
falktx | ingen is running its own internal graph, which jack is doing as well | 15:10 |
falktx | it makes sense that without ingen things will be a little faster | 15:11 |
drobilla | Assuming whatever replaces it is faster, sure. Something has to do that stuff | 15:11 |
falktx | the move to ingen was because it did supposedly did everything we needed, but that ended up not being the case | 15:11 |
falktx | we were wrong about it :( | 15:12 |
drobilla | Like what? SMP? | 15:12 |
drobilla | The list of important things I was given and what I'm hearing now are completely different things | 15:12 |
falktx | most of it works right now | 15:12 |
falktx | but not when we first started | 15:13 |
falktx | add/remove bundles; saving/rename/delete presets; saving/loading graphs; cpu-load; | 15:13 |
falktx | there was a time when we didn't even had saving and loading of pedalboards.. | 15:14 |
falktx | but now that we're optimizing things the SMP started to make a big difference | 15:14 |
falktx | and also the speed for which ingen responds to messages | 15:15 |
falktx | ingen takes several seconds to delete all plugins for some reason.. :( | 15:15 |
drobilla | I still don't et it | 15:15 |
drobilla | If Jack2 is giving you SMP and clickless connections, then you must be running a client per plugin | 15:15 |
falktx | yes | 15:15 |
falktx | that's how mod-host works | 15:15 |
drobilla | You said otherwise above | 15:16 |
falktx | hm when? | 15:16 |
drobilla | I guess your boards are pretty small, usually | 15:16 |
falktx | [17:07] <falktx> mod-host can be made into a jack internal client which bypasses all this ? | 15:16 |
drobilla | That surely isn't going to scale | 15:16 |
falktx | each plugin runs its own jack client, but it's still all the same application | 15:17 |
drobilla | Anyway, fine. Assuming this decision is made, I will adjust my priority list accordingly | 15:17 |
falktx | ie, multi-client | 15:17 |
drobilla | At least I actually tell myself about my priorities ;) | 15:17 |
falktx | drobilla: I wanted to speak to you before before making this decision | 15:17 |
falktx | but you always seemed like you're annoyed by me trying to speak to you.... | 15:17 |
drobilla | Well, if it's not, this all seems pretty trivial to me, really | 15:17 |
falktx | anyway, drobilla, sorry about the noise | 15:19 |
drobilla | If I seem maybe annoyed, then I am not annoyed | 15:19 |
drobilla | If I am annoyed, you will know it for sure :) | 15:19 |
drobilla | Just seems kind of weird to me. Like, some idle CPU usage being a reason to drop a project | 15:19 |
drobilla | It shouldn't really be doing anything just sitting there with nothing loaded | 15:19 |
drobilla | I can run it in callgrind for 5 minutes, find the thingie at the top that shouldn't be, and make it go away | 15:20 |
drobilla | Today. Easily. | 15:20 |
falktx | drobilla: it's not just that. it was the slowly growing list of pains | 15:21 |
drobilla | This unload thing is annoying and has a lot of hard issues tied in with it, which means it takes up a lot of time and blocks things. I was clear about this. | 15:21 |
drobilla | But in the past... quite a while, nothing else has been put on my radar as important as well | 15:22 |
falktx | drobilla: there's also the thing about us being completely dependent on a 3rd party (you) | 15:23 |
drobilla | You have the code and are free to make changes like anyone else | 15:24 |
drobilla | But yes, you think it's enterprisey and unworkonable or whatever, okay | 15:24 |
falktx | yes, but it takesa lot of time | 15:24 |
falktx | ingen broke a few times (broken build, regressions etc) that was hard to deal with | 15:24 |
falktx | mod-host, stupidly simple as it is, was what we were using before and all the features we needed were there | 15:25 |
rgareus | drobilla: well, it seems you have 5 spare minutes.. rather than callgrinding, would you mind to enable port-monitoring for GUI message ports? | 15:25 |
falktx | the change was a bad decision | 15:25 |
* drobilla shrugs | 15:25 | |
drobilla | Fine | 15:26 |
falktx | we should had reflected more on it back then | 15:26 |
drobilla | Honestly it's really shitty to "work for" an organization that just doesn't communicate anything to you at all, yet depends on you to do things, at the same time resenting that dependency | 15:26 |
falktx | sorry :( | 15:26 |
drobilla | Good luck with mod-host | 15:26 |
falktx | bgola was the one that was supposed to do the communication in the first place | 15:27 |
drobilla | But yes, clearly going on the way things currently have isn't going to work | 15:27 |
falktx | I had to take that role, and now he's gone from the team | 15:27 |
falktx | drobilla: thanks for understanding | 15:27 |
drobilla | rgareus: Not sure what you mean | 15:27 |
*** son0p has quit IRC | 15:28 | |
falktx | drobilla: as I said before, we'll keep graph compatibility with ingen. we still want to use ingen to be able to load pedalboards as plugins | 15:28 |
falktx | drobilla: for that ingen already does everything needed :) | 15:28 |
drobilla | falktx: Yes, it would not be wise to throw away your ability to switch backends more than necessary | 15:28 |
*** son0p has joined #lv2 | 15:30 | |
rgareus | drobilla: load eg-scope.lv2 (from the lv2 example plugins) in recent ingen. the GUI never receives any atom-messages (because port-monitoring for GUI is never enabled) | 15:30 |
drobilla | rgareus: This was not the case before? | 15:30 |
rgareus | it worked in the past. like 2 years ago or so. | 15:32 |
rgareus | ----- | 15:32 |
rgareus | in eg-scope's case: opening the plugin GUI sends an event to the DSP to enable signal emission. | 15:32 |
rgareus | so (A) animate must be enabled (otherwise the message from showing the GUI goes nowhere | 15:32 |
rgareus | and (B) the ports need to be active _before_ suil_instantiate (ingen fails here) | 15:32 |
rgareus | and (C) the port needs to be monitored - otherwise signals go nowhere, either. currently set_motitored() is not called for GUI ports | 15:32 |
rgareus | ingen currently fails all three, in jalv everything's fine | 15:32 |
rgareus | ----- | 15:32 |
drobilla | rgareus: OK, I'll check it out | 15:33 |
drobilla | rgareus: Not sure I understand B | 15:33 |
drobilla | rgareus: You describing the monitor in ttl or using the dynamic interface? /lazyQuestion | 15:34 |
rgareus | drobilla: during instantiate() the GUI sends a message to the backend. | 15:34 |
rgareus | drobilla: ingen only binds the callbacks after suil_instantiate() | 15:35 |
*** sigma6 has quit IRC | 15:36 | |
drobilla | rgareus: Ah. So that needs to be split | 15:36 |
rgareus | drobilla: the use-case here: when the GUI shows up, it asks backend to send audio-data to the GUI. | 15:39 |
rgareus | a hack/workaround would be to make the GUI send that message during first idle. | 15:39 |
drobilla | rgareus: Nah, it's kosher to do such things during lv2-ui init | 15:40 |
rgareus | or any idle call... (the first one may not be soon enough). | 15:40 |
drobilla | ... I think :) | 15:40 |
rgareus | drobilla: yeah I think it should be allowed during instantiate | 15:40 |
rgareus | the message is probably even queued (in the write ringbuffer) just not sent to the backend because the slot is not registered | 15:41 |
drobilla | rgareus: It does seem odd that the message makes it through the plugin and all the way back before the GUI connects that signal, but I'll juggle things to get it connected first and we'll see | 15:42 |
drobilla | .. after this optimized build for profiling is done | 15:42 |
rgareus | :) | 15:42 |
drobilla | I already know how Ingen should be internally designed for zero(ish) empty-graph overhead, much less buffer memory, and better SMP than the old implementation, but it's been in the "premature optimization" category for some time | 15:44 |
drobilla | But even currently it shouldn't be using that much | 15:44 |
drobilla | Buffers need to be allocated at compile time and not fiddled with during run at all, very much like a language compiler. It's a fun project, but not a particularly pragmatic one | 15:45 |
drobilla | rgareus: eg-scope not working for me in jalv.gtk either ATM | 16:21 |
drobilla | rgareus: Though maybe a bug related to my current uncommitted control changes | 16:21 |
drobilla | &*%(# svn | 16:38 |
drobilla | I really need to just take a bloody weekend and migrate already | 16:38 |
*** uncle-j_j has joined #lv2 | 17:33 | |
*** falktx has quit IRC | 18:22 | |
*** falktx has joined #lv2 | 19:14 | |
*** rncbc has joined #lv2 | 19:25 | |
*** barjac has quit IRC | 20:41 | |
*** barjac has joined #lv2 | 20:43 | |
*** ricardocrudo has quit IRC | 20:50 | |
*** ricardocrudo has joined #lv2 | 21:12 | |
*** uncle-j_j has quit IRC | 23:06 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!