*** ricardocrudo has quit IRC | 00:18 | |
*** NickSB2 has quit IRC | 01:44 | |
*** NickSB has quit IRC | 01:44 | |
*** NickSB has joined #lv2 | 01:45 | |
*** NickSB2 has joined #lv2 | 01:57 | |
*** NickSB2 has quit IRC | 02:02 | |
*** NickSB2 has joined #lv2 | 02:02 | |
*** unclechu has quit IRC | 02:54 | |
*** falktx` has joined #lv2 | 03:37 | |
*** falktx has quit IRC | 03:41 | |
*** oofus has quit IRC | 05:18 | |
*** drobilla has quit IRC | 05:53 | |
*** sigma6 has joined #lv2 | 07:00 | |
*** drobilla has joined #lv2 | 07:40 | |
*** ricardocrudo has joined #lv2 | 08:13 | |
*** edogawa has joined #lv2 | 09:10 | |
*** edogawa has quit IRC | 09:44 | |
*** kwmiebach has quit IRC | 09:49 | |
*** kwmiebach has joined #lv2 | 09:51 | |
*** trebmuh has joined #lv2 | 12:17 | |
*** unclechu has joined #lv2 | 13:12 | |
*** artfwo has joined #lv2 | 13:20 | |
*** falktx|work has joined #lv2 | 13:56 | |
*** frinknet has quit IRC | 14:07 | |
*** son0p_ has quit IRC | 14:19 | |
*** son0p_ has joined #lv2 | 14:23 | |
*** artfwo has quit IRC | 14:41 | |
*** deva has joined #lv2 | 14:51 | |
*** sigma6 has quit IRC | 15:57 | |
*** ssj71 has quit IRC | 16:11 | |
*** oofus_lt has joined #lv2 | 16:26 | |
*** ssj71 has joined #lv2 | 16:35 | |
ssj71 | is it documented somewhere what hosts use the same buffers for input and output? | 16:44 |
---|---|---|
falktx|work | buffers are the size of the run() frames | 16:54 |
falktx|work | nothing else is guaranteed afaik | 16:54 |
* falktx|work completely misunderstood the question | 16:55 | |
falktx|work | ssj71: ardour does quite extensively | 16:55 |
falktx|work | jalv and carla might do it sometimes, depends on the jack connections | 16:55 |
*** oofus_lt has quit IRC | 16:56 | |
ssj71 | does jack sometimes pass the same buffer for input and output? | 16:56 |
falktx|work | very rare, but I think it happens sometimes | 16:57 |
ssj71 | it seems very odd to me that it would happen sometimes and not other times | 16:57 |
falktx|work | well, it's a patchbay | 16:58 |
falktx|work | tbh I don't know for sure | 16:58 |
falktx|work | we also have 2 different jack versions. so hard to say a definitive no | 16:58 |
ssj71 | well it probably only seems odd because I don't have a clue about it | 16:58 |
ssj71 | to me I'd think you'd have a unique buffer for each port | 16:59 |
ssj71 | rkr lv2 does a wet/dry mix after applying the effect but if the in and out buffers are the same, then it mixes the buffer with itsself! | 17:00 |
ventosus | ssj71: you can force unique buffers per audio port via http://lv2plug.in/ns/lv2core/#inPlaceBroken | 17:00 |
ssj71 | ah that would fix this | 17:01 |
falktx|work | then it won't load in ardour :) | 17:02 |
ssj71 | ah. but if it doesn't load in anything then there will be no more bugs! | 17:03 |
ssj71 | ok so plan b is check each cycle if the input == output and make a copy if so | 17:04 |
ssj71 | not the most efficient approach, but the quickest to apply to 40+ plugins | 17:04 |
ssj71 | I'll do it right in rk2 | 17:04 |
falktx|work | zyn plugins have the same problem | 17:06 |
ssj71 | makes sense as rkr is a fork of zyn | 17:08 |
*** Spark[01] has joined #lv2 | 17:08 | |
ventosus | s/force/kindly-request-if-supported :) | 17:08 |
ssj71 | well the host can just politely say no and not load it :) | 17:09 |
*** unclechu has quit IRC | 17:28 | |
*** unclechu has joined #lv2 | 17:28 | |
*** unclechu has quit IRC | 17:35 | |
*** unclechu has joined #lv2 | 17:35 | |
*** artfwo has joined #lv2 | 17:56 | |
rgareus | ssj71: with jack it depends on connections (and jack version) | 18:00 |
rgareus | ssj71: and of course the host. jalv just passes through jack buffers it can be in-place. | 18:01 |
ssj71 | is there a 2 minute explanation on what conditions result in this? | 18:01 |
rgareus | ssj71: in short if it's a linear graph. | 18:01 |
rgareus | A -> B -> C | 18:01 |
ssj71 | ok, and thats just so you don't have to copy buffers as often | 18:01 |
ssj71 | ? | 18:01 |
rgareus | buffers can be re-used | 18:02 |
rgareus | if it's A -> B+C -> D then no. | 18:02 |
ssj71 | ram and cpu benefits | 18:02 |
rgareus | ssj71: cache | 18:02 |
ssj71 | ah | 18:02 |
rgareus | the less memory you touch, the better | 18:02 |
ssj71 | makes sense. Well I'm throwing that out the window in rkrlv2 because if they're shared we copy the input to a temporary buffer | 18:03 |
rgareus | good DSP also worries about instruction cache. and CPU register usage | 18:03 |
rgareus | localize variable into registers, avoid derefering pointers in the inner loop etc. | 18:03 |
ssj71 | the rakarrack architecture doesn't lend well to sharing them. A few effects work just fine that way and they'll continue too do so | 18:03 |
ssj71 | I could probably improve some things by avoiding pointers in inner loops | 18:04 |
ssj71 | I haven't put much effort there | 18:04 |
rgareus | ssj71: last step.. when it works optimize | 18:04 |
ssj71 | ya, there's bigger fish to fry | 18:05 |
ssj71 | and only a tiny pan, so it will be a while | 18:05 |
rgareus | ventosus: actually I'll change that soonish. ardour could load #inPlaceBroken plugins these days (pin managment also requires copying things into buffers) | 18:06 |
rgareus | there's a new mode "no-inplace" in A5 now. | 18:07 |
ssj71 | if ardour has a mono plugin going to a stereo plugin, could the L and R input buffers be shared also? | 18:13 |
rgareus | ssj71: no. | 18:14 |
*** deva has quit IRC | 18:14 | |
rgareus | ssj71: it's usually the outputs that define things | 18:14 |
rgareus | out 1 <- in 1. (same buffer) | 18:14 |
rgareus | out 2 (different buffer) | 18:14 |
ssj71 | hmm | 18:15 |
rgareus | but yes writing out1 will overwrite in1. | 18:15 |
ssj71 | yes, that makes sense | 18:15 |
ssj71 | I had another issue this morning with rkr lv2 that I'm not sure what to make of | 18:16 |
ssj71 | the plugin had a constant DC offset in the L channel | 18:16 |
ssj71 | well, first it crashed ardour when I left it overnight, then when I reopened the project this morning I saw that there was the DC offset | 18:17 |
ssj71 | I tried deleting and reloading the plugin with no change. Even tried loading it in carla as a plugin, same result | 18:18 |
ssj71 | then after deleting the carla instance, and reloading the plugin suddenly the offset went away | 18:19 |
ssj71 | seems like there was something else I did too. Anyway. Weird bug, not sure how to approach it | 18:25 |
*** ricardocrudo has quit IRC | 18:31 | |
*** falktx|work has quit IRC | 18:33 | |
*** edogawa has joined #lv2 | 18:54 | |
*** unclechu has quit IRC | 18:55 | |
*** unclechu has joined #lv2 | 18:57 | |
*** unclechu has quit IRC | 20:01 | |
drobilla | Re: C++, I think I give up on the overhead-free thing. It's too much of a PITA for not much gain in a context where all calls are indirect anyway. | 20:11 |
drobilla | Though it would be nice to be able to re-use the plugin classes internally (not via the LV2 API) and not pay the virtual price... | 20:11 |
* drobilla has been batting around the various radical simplification ideas that need to happen | 20:12 | |
*** ricardocrudo has joined #lv2 | 20:34 | |
*** rncbc has joined #lv2 | 20:44 | |
*** trebmuh has quit IRC | 21:58 | |
*** rncbc has quit IRC | 21:59 | |
*** edogawa has quit IRC | 22:30 | |
*** ricardocrudo has quit IRC | 22:35 | |
*** unclechu has joined #lv2 | 23:39 | |
*** frinknet has joined #lv2 | 23:54 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!