*** wumpus has quit IRC | 01:02 | |
*** wumpus has joined #lv2 | 01:12 | |
*** diqidoq has quit IRC | 02:08 | |
*** NickSB2 has quit IRC | 02:12 | |
*** artfwo has quit IRC | 02:31 | |
*** son0p has joined #lv2 | 03:19 | |
*** son0p has quit IRC | 03:33 | |
*** artfwo has joined #lv2 | 03:54 | |
*** trebmuh has quit IRC | 04:00 | |
*** artfwo has quit IRC | 04:30 | |
*** artfwo has joined #lv2 | 04:32 | |
*** artfwo has quit IRC | 04:50 | |
*** artfwo has joined #lv2 | 04:50 | |
*** diqidoq has joined #lv2 | 07:40 | |
*** sigma6 has joined #lv2 | 08:31 | |
*** diqidoq has quit IRC | 09:00 | |
*** diqidoq has joined #lv2 | 09:02 | |
*** durandal_1707 has joined #lv2 | 10:55 | |
*** yann-kaelig has joined #lv2 | 10:56 | |
durandal_1707 | can lv2apply have support for atom ports without needing displaying gui? | 10:58 |
---|---|---|
rgareus | durandal_1707: it could. Atom ports are mainly used for DSP <> UI communication, MIDI events and sample-accurate automation or properties. They can otherwise just be zero'ed | 11:00 |
* rgareus wasn't even aware that lv2apply is still a thing. | 11:01 | |
durandal_1707 | i want to use lilv to write non interactive lv2 host, and lv2appy looks like perfect start. Except it doesnt work with many plugins that have such ports. | 11:04 |
rgareus | I suppose just doing the same as https://github.com/drobilla/lilv/commit/4dcdf46bf1a221ff8d2fa01a95dff43057ee6437 would work | 11:06 |
*** diqidoq has quit IRC | 11:19 | |
durandal_1707 | got it working, but lv2apply crashes with calf plugins but lv2 bench does not... | 11:53 |
durandal_1707 | can audio ports be reconnected like in ladspa per every frame? | 12:03 |
rgareus | durandal_1707: yes they can be reconnected (but don't need to be) | 12:18 |
rgareus | http://lv2plug.in/doc/html/group__lv2core.html#a4d904937a1bd27cb5f5478f95c708b16 | 12:19 |
rgareus | I would not worry about calf crashing a host, that's not unusual. calf crashes ardour all the time | 12:20 |
rgareus | ie. it's more likely a calf issue than an issue with the host | 12:20 |
*** dsheeler has quit IRC | 12:35 | |
durandal_1707 | the expected samples are not interleaved for multichannel audio? | 12:35 |
*** trebmuh has joined #lv2 | 13:21 | |
ventosus | durandal_1707: in LV2 there's only one channel per port | 13:23 |
ventosus | so no interleaved audio, no | 13:23 |
*** artfwo has quit IRC | 13:26 | |
*** artfwo has joined #lv2 | 13:26 | |
rgareus | also most plugins do process in-place, input-buffer can be the output-buffer (unless the plugin specifies http://lv2plug.in/ns/lv2core/#inPlaceBroken -- almost none do) | 14:05 |
rgareus | ventosus: when you tested lv2lint did you come across a plugin that has #inPlaceBroken? | 14:06 |
*** NickSB3 has quit IRC | 14:20 | |
ventosus | rgareus: lv2lint does not warn about #inPlaceBroken | 14:36 |
ventosus | not yet | 14:37 |
ventosus | so I can't tell, yet | 14:37 |
ventosus | will add a warning for it and similar things | 14:38 |
rgareus | ventosus: Ardour ignores all plugins that can't do inplace (and prints a warning) | 14:43 |
rgareus | I have not yet seen a LV2 plugin with b0rked inplace. | 14:44 |
ventosus | ok, then it may even be sensible to make it through en error instead | 14:45 |
rgareus | ventosus: actually we can relax that rule -- we've added support for no-inplace processing because of VST. but that does add overhead | 14:46 |
rgareus | it needs an extra alloca and a memcpy. | 14:47 |
rgareus | the only plugin that comes to mind which can't easily do in-place would be a N x M routing matrix. e.g. swap channel 1 and 2. | 14:49 |
rgareus | with in-place the plugin needs temporaries. | 14:49 |
rgareus | then again, if the plugin does properly de-click it needs a local buffer anyway.. | 14:50 |
ventosus | mhh, I have such plugins :) | 14:50 |
rgareus | if you do memcpy () then you could overwrite buffers | 14:51 |
rgareus | actually it should be memmove (they can overlap) or check if the buffers are not idendical. | 14:52 |
rgareus | identical, even | 14:52 |
ventosus | not really, plugins want to blend between audio buffers | 14:55 |
rgareus | ventosus: so you use a local temporary float or float[]? | 14:55 |
ventosus | not yet, but soon :) | 14:56 |
ventosus | another thing to fix | 14:56 |
rgareus | ventosus: it's one of the reasons why I have not published plumbing.lv2 https://github.com/x42/plumbing.lv2/blob/master/route.c#L100-L112 | 14:57 |
ventosus | yep, same idea here, different name for the bundle, though | 14:58 |
ventosus | router.lv2 :) | 14:58 |
rgareus | heh | 14:59 |
rgareus | in my case it was superseded by adding pin-connection (which just maps buffers, connect_port) to Ardour | 14:59 |
ventosus | my usage is to sprinkle audio (MIDI controlled) through different plugin subgraphs | 15:01 |
ventosus | in a live setup | 15:01 |
falktx | ventosus: did you see my previous work for mod, using pylilv? | 16:37 |
falktx | it checked wherever ranges were correct, license, etc. an extra step for metadata, that can be valid ttl but still make no sense | 16:38 |
falktx | ie, broken email string, min>max, preset uri missing | 16:38 |
ventosus | falktx: I think I did see it at some time | 16:41 |
ventosus | lv2lint does even more, like actually loading the thing | 16:43 |
ventosus | checking its extensions against advertised ones | 16:43 |
ventosus | trying to instantiate it with only the features it requires | 16:44 |
rgareus | ventosus: can it also test-run it? (feed it with noise and/or some midi-events)? like apple's auval for audio-units? | 16:44 |
ventosus | not yet | 16:45 |
ventosus | but feeding it with events is definitely on my list | 16:45 |
rgareus | and do nasty stuff, try if it works with a buffersize of 7 :) | 16:45 |
rgareus | well, auval doesn't do that. it only checks 64, 256 and 1024 | 16:45 |
rgareus | IIRC | 16:45 |
ventosus | for now only 'instantiate' and 'extension_data' are called | 16:46 |
rgareus | ventosus: probably fine for *lint. a validator would be lv2lint + more. | 16:47 |
rgareus | lint is really for syntactic checks | 16:49 |
rgareus | it not even be the proper name for a tool that validates semantics. | 16:51 |
falktx | seems like a nice idea too | 17:00 |
falktx | ventosus: I want variable buffer size test :) | 17:01 |
falktx | a few plugins need it but don't set the requiredfeature for it | 17:01 |
*** sigma6 has quit IRC | 17:01 | |
rgareus | falktx: do you mean http://lv2plug.in/ns/ext/buf-size/#fixedBlockLength ? | 17:04 |
rgareus | I find it's kinda odd that lv2 has bufsz:powerOf2BlockLength and bufsz:fixedBlockLength. other plugin standards don't have that and DSP must operate at any given number of samples | 17:05 |
ventosus | dynamic stresstesting routines won't happen tomorrow | 17:15 |
ventosus | focus is more on static analysis for a starter | 17:15 |
durandal_1707 | got working code, just need to connect control ports!! | 17:22 |
rgareus | durandal_1707: cool. will that end up in libavutil or some place in ffmpeg? | 17:26 |
rgareus | avfilter perhaps | 17:26 |
durandal_1707 | yes, there is already ladspa wrapper filter | 17:27 |
*** rncbc has joined #lv2 | 18:57 | |
durandal_1707 | is there api to set controls like file paths? | 19:09 |
durandal_1707 | for IRs files | 19:10 |
rgareus | durandal_1707: yes, via atom ports | 19:15 |
rgareus | durandal_1707: a plugin example: https://github.com/x42/convoLV2 | 19:15 |
rgareus | durandal_1707: think of Atom-ports as "message passing" where messages consist of "atoms" (smalles possible message) | 19:17 |
rgareus | it's a concept that most plugin-devs think is black-magic, while most computer scientist become exuberant about it. Yay, synchronous message passing :-) | 19:23 |
rgareus | and an Atom is really just { uint32_t size , uint32_t type; <size-bytes more atoms> } | 19:26 |
falktx | rgareus: it is strange yes. usually hosts have a check for disabling split cycles, because some plugins don't handle it well and VST has no way to report it | 19:44 |
*** NickSB3 has joined #lv2 | 21:10 | |
*** yann-kaelig has quit IRC | 21:50 | |
*** JackWinter has quit IRC | 22:08 | |
*** JackWinter has joined #lv2 | 22:14 | |
*** yann-kaelig has joined #lv2 | 22:25 | |
durandal_1707 | there is memory leak in uri_table_destroy() | 22:40 |
*** JackWinter has quit IRC | 22:42 | |
*** JackWinter has joined #lv2 | 22:46 | |
*** yann-kaelig has quit IRC | 22:49 | |
*** Anchakor has quit IRC | 23:19 | |
*** Anchakor has joined #lv2 | 23:32 | |
*** rncbc has quit IRC | 23:36 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!