Thursday, 2017-11-23

*** wumpus has quit IRC01:02
*** wumpus has joined #lv201:12
*** diqidoq has quit IRC02:08
*** NickSB2 has quit IRC02:12
*** artfwo has quit IRC02:31
*** son0p has joined #lv203:19
*** son0p has quit IRC03:33
*** artfwo has joined #lv203:54
*** trebmuh has quit IRC04:00
*** artfwo has quit IRC04:30
*** artfwo has joined #lv204:32
*** artfwo has quit IRC04:50
*** artfwo has joined #lv204:50
*** diqidoq has joined #lv207:40
*** sigma6 has joined #lv208:31
*** diqidoq has quit IRC09:00
*** diqidoq has joined #lv209:02
*** durandal_1707 has joined #lv210:55
*** yann-kaelig has joined #lv210:56
durandal_1707can lv2apply have support for atom ports without needing displaying gui?10:58
rgareusdurandal_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'ed11:00
* rgareus wasn't even aware that lv2apply is still a thing.11:01
durandal_1707i 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
rgareusI suppose just doing the same as https://github.com/drobilla/lilv/commit/4dcdf46bf1a221ff8d2fa01a95dff43057ee6437 would work11:06
*** diqidoq has quit IRC11:19
durandal_1707got it working, but lv2apply crashes with calf plugins but lv2 bench does not...11:53
durandal_1707can audio ports be reconnected like in ladspa per every frame?12:03
rgareusdurandal_1707: yes they can be reconnected (but don't need to be)12:18
rgareushttp://lv2plug.in/doc/html/group__lv2core.html#a4d904937a1bd27cb5f5478f95c708b1612:19
rgareusI would not worry about calf crashing a host, that's not unusual.  calf crashes ardour all the time12:20
rgareusie. it's more likely a calf issue than an issue with the host12:20
*** dsheeler has quit IRC12:35
durandal_1707the expected samples are not interleaved for multichannel audio?12:35
*** trebmuh has joined #lv213:21
ventosusdurandal_1707: in LV2 there's only one channel per port13:23
ventosusso no interleaved audio, no13:23
*** artfwo has quit IRC13:26
*** artfwo has joined #lv213:26
rgareusalso 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
rgareusventosus: when you tested lv2lint did you come across a plugin that has #inPlaceBroken?14:06
*** NickSB3 has quit IRC14:20
ventosusrgareus: lv2lint does not warn about #inPlaceBroken14:36
ventosusnot yet14:37
ventosusso I can't tell, yet14:37
ventosuswill add a warning for it and similar things14:38
rgareusventosus: Ardour ignores all plugins that can't do inplace (and prints a warning)14:43
rgareusI have not yet seen a LV2 plugin with b0rked inplace.14:44
ventosusok, then it may even be sensible to make it through en error instead14:45
rgareusventosus: actually we can relax that rule -- we've added support for no-inplace processing because of VST. but that does add overhead14:46
rgareusit needs an extra alloca and a memcpy.14:47
rgareusthe 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
rgareuswith in-place the plugin needs temporaries.14:49
rgareusthen again, if the plugin does properly de-click it needs a local buffer anyway..14:50
ventosusmhh, I have such plugins :)14:50
rgareusif you do memcpy () then you could overwrite buffers14:51
rgareusactually it should be memmove (they can overlap) or check if the buffers are not idendical.14:52
rgareusidentical, even14:52
ventosusnot really, plugins want to blend between audio buffers14:55
rgareusventosus: so you use a local temporary float or float[]?14:55
ventosusnot yet, but soon :)14:56
ventosusanother thing to fix14:56
rgareusventosus: it's one of the reasons why I have not published plumbing.lv2  https://github.com/x42/plumbing.lv2/blob/master/route.c#L100-L11214:57
ventosusyep, same idea here, different name for the bundle, though14:58
ventosusrouter.lv2 :)14:58
rgareusheh14:59
rgareusin my case it was superseded by adding pin-connection (which just maps buffers, connect_port) to Ardour14:59
ventosusmy usage is to sprinkle audio (MIDI controlled) through different plugin subgraphs15:01
ventosusin a live setup15:01
falktxventosus: did you see my previous work for mod, using pylilv?16:37
falktxit checked wherever ranges were correct, license, etc. an extra step for metadata, that can be valid ttl but still make no sense16:38
falktxie, broken email string, min>max, preset uri missing16:38
ventosusfalktx: I think I did see it at some time16:41
ventosuslv2lint does even more, like actually loading the thing16:43
ventosuschecking its extensions against advertised ones16:43
ventosustrying to instantiate it with only the features it requires16:44
rgareusventosus: can it also test-run it? (feed it with noise and/or some midi-events)?  like apple's auval for audio-units?16:44
ventosusnot yet16:45
ventosusbut feeding it with events is definitely on my list16:45
rgareusand do nasty stuff, try if it works with  a buffersize of 7 :)16:45
rgareuswell, auval doesn't do that. it only checks 64, 256 and 102416:45
rgareusIIRC16:45
ventosusfor now only 'instantiate' and 'extension_data' are called16:46
rgareusventosus: probably fine for *lint.  a validator would be lv2lint + more.16:47
rgareuslint is really for syntactic checks16:49
rgareusit not even be the proper name for a tool that validates semantics.16:51
falktxseems like a nice idea too17:00
falktxventosus: I want variable buffer size test :)17:01
falktxa few plugins need it but don't set the requiredfeature for it17:01
*** sigma6 has quit IRC17:01
rgareusfalktx: do you mean http://lv2plug.in/ns/ext/buf-size/#fixedBlockLength ?17:04
rgareusI 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 samples17:05
ventosusdynamic stresstesting routines won't happen tomorrow17:15
ventosusfocus is more on static analysis for a starter17:15
durandal_1707got working code, just need to connect control ports!!17:22
rgareusdurandal_1707: cool. will that end up in libavutil or some place in ffmpeg?17:26
rgareusavfilter perhaps17:26
durandal_1707yes, there is already ladspa wrapper filter17:27
*** rncbc has joined #lv218:57
durandal_1707is there api to set controls like file paths?19:09
durandal_1707for IRs files19:10
rgareusdurandal_1707: yes, via atom ports19:15
rgareusdurandal_1707: a plugin example:  https://github.com/x42/convoLV219:15
rgareusdurandal_1707: think of Atom-ports as "message passing"  where messages consist of "atoms" (smalles possible message)19:17
rgareusit'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
rgareusand an Atom is really just  { uint32_t size , uint32_t type;  <size-bytes more atoms>  }19:26
falktxrgareus: 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 it19:44
*** NickSB3 has joined #lv221:10
*** yann-kaelig has quit IRC21:50
*** JackWinter has quit IRC22:08
*** JackWinter has joined #lv222:14
*** yann-kaelig has joined #lv222:25
durandal_1707there is memory leak in uri_table_destroy()22:40
*** JackWinter has quit IRC22:42
*** JackWinter has joined #lv222:46
*** yann-kaelig has quit IRC22:49
*** Anchakor has quit IRC23:19
*** Anchakor has joined #lv223:32
*** rncbc has quit IRC23:36

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