Friday, 2015-10-23

*** Greg__ has joined #lv201:50
*** Greg__ has left #lv201:50
*** artfwo has quit IRC02:34
*** Magnus_RM has quit IRC03:04
*** falktx has joined #lv207:12
*** sigma6 has joined #lv207:44
*** edogawa has joined #lv208:13
*** drobilla has quit IRC09:21
*** wump has joined #lv210:04
*** wumpus has quit IRC10:07
*** cbfishes1 has joined #lv210:11
cbfishes1morning folks! anybody know how to adjust the sample start time in samplv1?10:14
*** ricardocrudo has quit IRC10:36
*** barjac has joined #lv210:40
falktxonly the author knows I guess10:41
*** barjac has quit IRC10:57
*** wump is now known as wumpus11:03
*** barjac has joined #lv211:05
*** ricardocrudo has joined #lv211:09
*** barjac has quit IRC11:09
*** barjac has joined #lv211:18
*** barjac has quit IRC11:29
*** cbfishes1 has quit IRC12:01
*** artfwo has joined #lv212:29
*** barjac has joined #lv212:29
*** drobilla has joined #lv213:13
drobillafalktx: So, all the real nastiness with reloading comes when the plugin is instantiated14:01
drobillafalktx: Ignoring that it's relatively easy, so I might just do that bit first...14:01
*** edogawa has quit IRC14:44
falktxdrobilla: hey we need to talk14:52
falktxdrobilla: after much thought we decided against using ingen for mod14:53
falktxdrobilla: there's a lot of reasons for this. the testing using our old mod-host was very conclusive14:53
falktxwith jack2 we can have smp, clickless connections, and optionally async mode too14:54
falktxdrobilla: we'll keep the ingen format though. mod pedalboards will be ingen graphs14:54
falktxdrobilla: it was not my decision to use ingen initially, but still, sorry about this14:56
falktxhopefully you understand14:57
falktxwe need something that is as light as possible, and that we ourselves can easily modify14:58
falktxI even did some tests with carla, nothing can beat the super dumb mod-host14:59
drobillaRunning every plugin as a Jack client is *less* expensive than ingen and carla??15:00
rgareusjack2 has parallel graphs15:04
falktxmuch less expensive15:06
rgareusI can imagine that on a slow ARM but with 4 cores jack2/SMP wins over single-threaded plugin-hosts.15:06
drobillaTrue.  Though I can add SMP easily enough15:06
drobillafalktx: Have they been compared without SMP?15:06
falktxyes15:06
falktxingen takes 5% cpu when idle15:06
falktxsetbfree takes ~36% on ingen, 31 on mod-host15:07
rgareusjack2 must be more expensive due to context switches.15:07
drobilla^ this15:07
falktxall the dsp is inside the same app, so no expensive context switching afaik15:07
drobillaThen Jack2 doesn't get you clickless internal connections, which is why I asked15:07
falktxmod-host can be made into a jack internal client which bypasses all this15:07
rgareusdrobilla: jack2 does have clickless connections in  async (default) mode15:07
drobillaI get < 1% CPU, but I haven't profiled it15:08
rgareusI'm curious what causes the ingen idle CPU load15:08
falktxyou're not running a 1GHz arm chip, or are you?15:08
drobillaI'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
drobillaNo, Intel15:09
falktxhm?15:10
falktxI told you I tried to work on ingen15:10
falktxingen is running its own internal graph, which jack is doing as well15:10
falktxit makes sense that without ingen things will be a little faster15:11
drobillaAssuming whatever replaces it is faster, sure.  Something has to do that stuff15:11
falktxthe move to ingen was because it did supposedly did everything we needed, but that ended up not being the case15:11
falktxwe were wrong about it :(15:12
drobillaLike what?  SMP?15:12
drobillaThe list of important things I was given and what I'm hearing now are completely different things15:12
falktxmost of it works right now15:12
falktxbut not when we first started15:13
falktxadd/remove bundles; saving/rename/delete presets; saving/loading graphs; cpu-load;15:13
falktxthere was a time when we didn't even had saving and loading of pedalboards..15:14
falktxbut now that we're optimizing things the SMP started to make a big difference15:14
falktxand also the speed for which ingen responds to messages15:15
falktxingen takes several seconds to delete all plugins for some reason.. :(15:15
drobillaI still don't et it15:15
drobillaIf Jack2 is giving you SMP and clickless connections, then you must be running a client per plugin15:15
falktxyes15:15
falktxthat's how mod-host works15:15
drobillaYou said otherwise above15:16
falktxhm when?15:16
drobillaI guess your boards are pretty small, usually15:16
falktx[17:07] <falktx> mod-host can be made into a jack internal client which bypasses all this ?15:16
drobillaThat surely isn't going to scale15:16
falktxeach plugin runs its own jack client, but it's still all the same application15:17
drobillaAnyway, fine.  Assuming this decision is made, I will adjust my priority list accordingly15:17
falktxie, multi-client15:17
drobillaAt least I actually tell myself about my priorities ;)15:17
falktxdrobilla: I wanted to speak to you before before making this decision15:17
falktxbut you always seemed like you're annoyed by me trying to speak to you....15:17
drobillaWell, if it's not, this all seems pretty trivial to me, really15:17
falktxanyway, drobilla, sorry about the noise15:19
drobillaIf I seem maybe annoyed, then I am not annoyed15:19
drobillaIf I am annoyed, you will know it for sure :)15:19
drobillaJust seems kind of weird to me.  Like, some idle CPU usage being a reason to drop a project15:19
drobillaIt shouldn't really be doing anything just sitting there with nothing loaded15:19
drobillaI can run it in callgrind for 5 minutes, find the thingie at the top that shouldn't be, and make it go away15:20
drobillaToday.  Easily.15:20
falktxdrobilla: it's not just that. it was the slowly growing list of pains15:21
drobillaThis 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
drobillaBut in the past... quite a while, nothing else has been put on my radar as important as well15:22
falktxdrobilla: there's also the thing about us being completely dependent on a 3rd party (you)15:23
drobillaYou have the code and are free to make changes like anyone else15:24
drobillaBut yes, you think it's enterprisey and unworkonable or whatever, okay15:24
falktxyes, but it takesa lot of time15:24
falktxingen broke a few times (broken build, regressions etc) that was hard to deal with15:24
falktxmod-host, stupidly simple as it is, was what we were using before and all the features we needed were there15:25
rgareusdrobilla: well, it seems you have 5 spare minutes..  rather than callgrinding, would you mind to enable port-monitoring for GUI message ports?15:25
falktxthe change was a bad decision15:25
* drobilla shrugs15:25
drobillaFine15:26
falktxwe should had reflected more on it back then15:26
drobillaHonestly 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 dependency15:26
falktxsorry :(15:26
drobillaGood luck with mod-host15:26
falktxbgola was the one that was supposed to do the communication in the first place15:27
drobillaBut yes, clearly going on the way things currently have isn't going to work15:27
falktxI had to take that role, and now he's gone from the team15:27
falktxdrobilla: thanks for understanding15:27
drobillargareus: Not sure what you mean15:27
*** son0p has quit IRC15:28
falktxdrobilla: as I said before, we'll keep graph compatibility with ingen. we still want to use ingen to be able to load pedalboards as plugins15:28
falktxdrobilla: for that ingen already does everything needed :)15:28
drobillafalktx: Yes, it would not be wise to throw away your ability to switch backends more than necessary15:28
*** son0p has joined #lv215:30
rgareusdrobilla: 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
drobillargareus: This was not the case before?15:30
rgareusit worked in the past. like 2 years ago or so.15:32
rgareus-----15:32
rgareusin eg-scope's case:  opening the plugin GUI  sends an event to the DSP to enable signal emission.15:32
rgareusso  (A)  animate must be enabled (otherwise the message from showing the GUI goes nowhere15:32
rgareusand (B)  the ports need to be active _before_ suil_instantiate (ingen fails here)15:32
rgareusand (C)  the port needs to be monitored   - otherwise signals go nowhere, either. currently  set_motitored() is not called for GUI ports15:32
rgareusingen currently fails all three, in jalv everything's fine15:32
rgareus-----15:32
drobillargareus: OK, I'll check it out15:33
drobillargareus: Not sure I understand B15:33
drobillargareus: You describing the monitor in ttl or using the dynamic interface? /lazyQuestion15:34
rgareusdrobilla: during instantiate()  the GUI sends a message to the backend.15:34
rgareusdrobilla: ingen only binds the callbacks after suil_instantiate()15:35
*** sigma6 has quit IRC15:36
drobillargareus: Ah.  So that needs to be split15:36
rgareusdrobilla: the use-case here: when the GUI shows up, it asks backend to send audio-data to the GUI.15:39
rgareusa hack/workaround would be to make the GUI send that message during first idle.15:39
drobillargareus: Nah, it's kosher to do such things during lv2-ui init15:40
rgareusor any idle call...   (the first one may not be soon enough).15:40
drobilla... I think :)15:40
rgareusdrobilla: yeah I think it should be allowed during instantiate15:40
rgareusthe message is probably even queued (in the write ringbuffer)   just not sent to the backend because the slot is not registered15:41
drobillargareus: 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 see15:42
drobilla.. after this optimized build for profiling is done15:42
rgareus:)15:42
drobillaI 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 time15:44
drobillaBut even currently it shouldn't be using that much15:44
drobillaBuffers 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 one15:45
drobillargareus: eg-scope not working for me in jalv.gtk either ATM16:21
drobillargareus: Though maybe a bug related to my current uncommitted control changes16:21
drobilla&*%(# svn16:38
drobillaI really need to just take a bloody weekend and migrate already16:38
*** uncle-j_j has joined #lv217:33
*** falktx has quit IRC18:22
*** falktx has joined #lv219:14
*** rncbc has joined #lv219:25
*** barjac has quit IRC20:41
*** barjac has joined #lv220:43
*** ricardocrudo has quit IRC20:50
*** ricardocrudo has joined #lv221:12
*** uncle-j_j has quit IRC23:06

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