Friday, 2015-08-14

*** wolftune has quit IRC00:05
*** youki has joined #kxstudio00:10
*** BitPuffin|osx has joined #kxstudio00:22
*** wolftune has joined #kxstudio00:55
*** wolftune has quit IRC00:57
*** wolftune has joined #kxstudio00:58
*** wolftune has quit IRC01:00
*** wolftune has joined #kxstudio01:00
*** spectromas has quit IRC01:33
*** orngjce223 has joined #kxstudio01:37
*** wolftune has quit IRC01:50
*** JackWinter has joined #kxstudio01:51
*** wolftune has joined #kxstudio01:55
*** BitPuffin|osx has quit IRC01:59
*** wolftune has quit IRC02:26
*** youki has quit IRC02:49
*** wolftune has joined #kxstudio03:08
*** wolftune has quit IRC03:15
*** danni has quit IRC03:41
*** JackWinter has quit IRC03:42
*** danni has joined #kxstudio03:45
*** wolftune has joined #kxstudio03:55
*** danni has quit IRC03:57
*** wolftune has quit IRC05:32
*** wolftune has joined #kxstudio05:36
*** wolftune has quit IRC06:03
*** JackWinter has joined #kxstudio06:55
*** JackWinter has quit IRC06:59
*** JackWinter has joined #kxstudio07:01
*** JackWinter has quit IRC07:05
*** JackWinter has joined #kxstudio07:08
*** JackWinter has quit IRC07:15
*** JackWinter has joined #kxstudio07:17
*** danni has joined #kxstudio07:49
*** danni has quit IRC07:55
*** orngjce223 has quit IRC08:19
*** falktx has joined #kxstudio08:51
*** Animtim_ has joined #kxstudio09:30
*** Animtim has quit IRC09:33
*** BitPuffin has joined #kxstudio10:19
*** grobda24 has joined #kxstudio10:55
*** designbybeck_ has joined #kxstudio13:05
*** spectromas has joined #kxstudio13:06
*** youki has joined #kxstudio13:11
*** BitPuffin has quit IRC13:11
*** itPuffinB has joined #kxstudio13:12
*** itPuffinB is now known as BitPuffin13:12
youkifalktx: i had a problem last night when i tried to open a session with Ardour 4.2 while the same session doesn't make any problems with Ardour 4.1 or Ardour 4.2-dbg13:15
youkifalktx: obviously Klangfalter is the problem13:15
falktxobviously?13:15
youkifalktx: i copied the chat i had with rgareus to debug it here : http://pastebin.com/Nnqcir6H13:16
falktxyouki: the distrho builds do not generate denormals13:17
youkifalktx: tthere are no denormals13:18
youki"in which case it's likley memory corruption  (which would also explain the crashes and other random behaviour).  ie Klangfalter writes to some memory where it should not write to."13:18
youkifalktx: i put all the chat for better understanding, but the useful informations are at the end i guess13:19
rgareusfalktx: we tried a couple of different things.  the problem only manifests itself if Klangfalter was present13:20
falktxyouki: do you run ardour from the terminal? if klangfalter is the issue it will print something to terminal ("assertion failed..." or similar)13:20
rgareusfalktx: there's no crash.  it most cases it just uses 100% CPU13:20
rgareusfalktx: we checked with bitmeter if there are NaN or denormals, but there were not13:21
rgareuss/we/youki/13:21
falktxyouki: where did you get klangfalter from? the kx repos?13:21
youkifalktx: it just crashes sometime when i was disabling the plugins13:21
youkifalktx: yes from the repos13:21
rgareusfalktx: and it can crash sometimes when its bypassed but only in ardour-optimized not ardour's debug version (which hints a memory corruption)13:22
falktxit can crash is there's a deactivate/activate call out of order13:22
falktx*if13:22
youkifalktx: Installé : 2:20150718-1kxstudio313:22
rgareusfalktx: that's a good hint!   sometimes  bypass/unbypass fixed the issue.13:23
rgareusardour had a previous bug calling activate twice or so.13:23
falktxrgareus: please recheck this if you can13:24
rgareusfalktx: I'm on it.13:25
falktxI guess it's a change in the 4.2 code13:25
rgareusfalktx: that's the issue. there have been almost no changes to LV2 since 4.113:25
rgareusfalktx: and 4.1 works for youki .13:25
falktxklangfalter hasn't changed either13:26
rgareusthe only change was  min/max buffersize support for 4.213:26
falktxjuce yes, but I can't think of something related to this13:26
falktxmaybe I use those values, let me check13:26
rgareusfalktx: if it's a memory issue. then this would be erratic. and also explain why 4.2-debug works but 4.2 optimized dows not.13:26
rgareussadly running ardour under valgrind takes aaaaaages.13:27
falktxLV2_BUF_SIZE__boundedBlockLength is a required feature13:27
falktxoh13:28
falktxLV2_BUF_SIZE__maxBlockLength is used to know the current block size13:28
falktxrgareus: ardour sets that as a static 8192 value right?13:29
falktxcause I don't think that is correct13:29
falktxthe max block size would be the jack buffer-size.13:29
falktxand when the jack buffer-size changes you report that to the plugin via options->set()13:30
falktxI'm going to say that https://github.com/Ardour/ardour/commit/53e969e925eb087459eba620770e95abb46945be is wrong13:31
falktxthe min size is 1, that part is correct13:31
falktxbut the max size should be the current block size13:31
rgareusoops got ckieck off13:33
rgareusflaky internet13:33
rgareusthe max is the maxium possible.. which is not *current*13:33
rgareussplit cycles for example. export/freewheeling.  changing jack buffersize..13:34
falktxwhen the buffer-size changes you tell the plugin about it13:34
rgareusfalktx: that can happen every cycle (ie plugin analyisis)13:35
falktxso call options->set every cycle13:35
falktxbtw, klangfalter sets the fixedBlockLength property13:36
rgareusfalktx: run() gets the *current*   IIUC max is really the max possible that will ever called used in run()13:36
falktxrgareus: does ardour respect that^ ?13:36
rgareusfalktx: probably not13:36
falktxwell, I need to know the currently, in-use buffer-size13:36
falktxmax size is "the maximum sample_count parameter that will ever be passed to run()"13:37
rgareusardour should refuse to load the plugin (like currently all plugins with in-place broken)13:37
falktxI don't think ardour will pass a higher than current-buffer-size to run, will it?13:37
falktxrgareus: then ardour will refuse to load convo.lv2 as well13:38
rgareusfalktx: it does13:38
rgareusfalktx: convoLV2 handles these cases13:38
rgareusfalktx: it's not a hard requirement for convoLV2.13:38
falktxwell, I don't like this situation13:38
falktxuntil now all hosts used max-size to set the current buffer-size13:39
falktxand plugins used it to know the current buffer-size as well13:39
rgareusfalktx: which is wrong according to http://lv2plug.in/ns/ext/buf-size/#maxBlockLength13:39
LAbotTitle: LV2 Buf Size (at lv2plug.in)13:39
rgareusin Ardour "bounce with processing" for example uses 8K13:40
falktxfor those you change the max-size before bouncing13:40
rgareusssj71 brought up the issue13:40
falktxI'd like to propose this:13:40
falktxhear me out...13:40
falktx1. set min as 113:40
falktx2. set max as the current buffer size13:41
falktxwhen bouncing or analyzing, set the max to whatever max value those actions will use13:41
rgareusfalktx: it's an LV2 option. so you need to de-instantiate and re-instantiate the plugin don't you?13:42
falktx3. when changing between RT and Non-RT bouncing, use options->set to report the change to the plugin, or re-instantiate13:42
falktxcorrect13:42
rgareusno go13:42
falktxhttps://github.com/DISTRHO/DISTRHO-Ports/blob/master/libs/juce/source/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp#L165413:42
rgareusthat'll produce clicks when you re-instantiate13:42
falktxI'd prefer if you did NOT reinstantiate13:43
rgareusfalktx: how else can the option be changed?13:44
falktxI just posted code that does that in the plugin13:44
rgareuskeep a pointer to the option object's data?13:45
rgareusI don't think you can rely on that being valid in places other than instantiate()13:45
falktxhm? it's one of the reasons why C functions were made13:46
rgareusfalktx: in ardour's case   LV2_Options_Option options[]   is inside the init function (on the stack). it will go out of scope after the plugin is instantated13:46
falktxand that's ok13:46
falktxjust pass another stack variable to options->set()13:47
falktxthe plugins do not keep pointers that are in options13:47
falktxbufferSize = *(int*)options[j].value;13:47
falktxnote the * (int *)13:47
falktxit's like an atom buffer13:47
rgareusnitpick: should that not be int32_t ?13:48
falktxprobably13:49
falktxrgareus: does export always call run at 8192 and does it vary too?13:50
rgareusfalktx: currently export/freewheel is at fixed at max 819213:51
falktxthat's good :)13:51
rgareusit was 64K  previously but that caused lots of issues13:52
rgareus64K OR next automation-event  (that is)13:52
falktxdoes ardour respect powerOf2 at least?13:53
rgareusno. :)13:53
rgareusfalktx: I don't know a host that does.  does Carla do that?13:53
falktxyes, kinda13:53
rgareusideally the host would wrap such plugins in a ringbuffer13:54
rgareusbut that has all sorts of issues13:54
falktxif the current buffer-size is not ^2 and the plugin requires it, carla won't load it13:54
falktxI don't handle changing buffersize => invalidate plugin yet though13:54
rgareuson windows one almost never gets 2^N.  ASIO latecy is configured in msec.   common buffersizes are 441   and 480 fpp :(13:54
falktxbbl13:54
rgareusfalktx: ardour should also refuse to load those plugins.13:55
rgareusanyway.  we now know that Klangfalter has a problem IFF lv2-max buffersize != current buffersize. (current Ardour 4.2)13:56
rgareusas for the solution.. that's still TBD.13:56
falktxrgareus: that's not the single issue14:38
falktxrgareus: the issue is buffersize != real-one + not fixed14:38
rgareusfalktx: can you rephrase that?14:41
rgareuswhich buffersize?14:42
falktxrgareus: the issue is max plugin buffersize != current host buffersize + host not using fixed value (as requested by the plugin)14:43
falktxI think the issue would be fixed if ardour used fixed bufsize, but I'm not counting on that happening14:44
rgareusthat's what  run (... uint32_t n_samples) does14:47
rgareusoops14:47
rgareusscratch that14:48
*** wolftune has joined #kxstudio14:48
rgareusfalktx: the plugin should fail to instantiate if   requires  http://lv2plug.in/ns/ext/buf-size/#fixedBlockLength  and bufsz:minBlockLength != bufsz:maxBlockLength14:49
LAbotTitle: LV2 Buf Size (at lv2plug.in)14:49
rgareusfalktx: I'll update ardout to not allows plugins that require   2^N  or require fixedBlockLength  because it's not likley ardour will support that14:50
rgareusAFAICT jalv does not support it either.14:50
rgareusthe architecture is prepared in ardour: All plugins are wrapped into a processor object. the "processor" could include a ringbuffer.14:52
rgareussomeone would need to add that and then take care of all sorts of latency issues that come from that.14:53
rgareusthe latter is the reason why it hasn't happened yet.14:53
rgareusit would basically mean the plugin will always have  max-buffersize latency.14:54
falktxwell, and I dont know what to do here then15:19
falktxI need a property that tells me the current in-use engine buffer size15:20
falktxif max-size is not the one, then I'll create one myself15:20
falktxand fallback on max-size if that's not defined15:20
falktxrgareus: does that^ sound good to you?15:20
rgareusfalktx: #fixedBlockLength is what you want isn't it?15:22
rgareusthat requires the host to  say  min-blocksize == max-blocksize  and ensure that run () is only ever called with that15:23
*** jablo1 has joined #kxstudio15:24
falktxrgareus: not really, afaik fixed length has nothing to do with min and max15:27
falktxrgareus: the host can have a min, max and current values. the current one will be fixed, which is the value I need15:27
falktxdo the specs say anything about fixed forcing min == max ?15:28
rgareusfalktx: yes15:31
rgareusfalktx: see http://lv2plug.in/ns/ext/buf-size/#fixedBlockLength15:32
LAbotTitle: LV2 Buf Size (at lv2plug.in)15:32
rgareusit has a strong MUST15:32
falktxah ok, makes sense then15:32
falktxand then klangfalter is also correct15:32
falktxit was never made to be ran without fixed buffers15:33
rgareusyes. except it should fail to instantiate  if  min-length != max-length15:33
falktxerr, I though that was meta-data was there for15:33
rgareusfalktx: yeah that's why I said *should*.  not *must* :)15:33
falktx:P15:34
rgareusfalktx: fixedBlockLength is an extention. the host may not provide it15:34
rgareusbut in this case ardour is wrong.  it provides the extention and still allows the plugin15:34
*** wolftune has quit IRC15:37
rgareusfalktx: I know it's not nice towards plugins    https://github.com/Ardour/ardour/commit/ac1065b4315:52
rgareusfalktx: but at least it won't crash.15:52
falktxrgareus: can't you do that check during discovery?15:53
falktxrgareus: if you never going to support those plugins, then please don't show them :)15:54
rgareusfalktx: makes sense15:54
rgareusI just added to the existing case (in-place broken)15:54
rgareuswithout thinking15:54
rgareusfalktx: actually I can't the plugin list is generated by lilv15:55
rgareusmmh still possible to have ardour filter it15:56
rgareusI'll look into it15:56
rgareusfalktx: done16:12
falktxrgareus: are you checking for *optional* feature?16:14
rgareusfalktx: i think it's requiredFeature16:15
rgareusfalktx: at least that's what I've been testing16:15
falktxok, that's good16:15
rgareuslilv_plugin_has_feature()16:15
rgareusmmh16:16
falktxyeah, I saw the commit16:16
falktxthat's why I asked. it seems like it might use optional features too16:16
rgareusit does not. I just checked16:17
rgareusphew16:17
rgareuseven though the lilv API documentation says otherwise16:18
falktxsounds like something that might change in the future16:28
falktxI remember lilv having calls to get the required features16:28
*** wolftune has joined #kxstudio16:37
rgareusfalktx: I'm looking into it16:39
rgareusfalktx: when installing the A4.2 .deb can you display a note post-install?16:40
rgareuslike the usual debian maintainer messages.16:40
rgareusNote to VST plugin users: After installing, please open a new session (so you won't lose any plugin settings in your existing session) and then click "Preferences->Plugins->Clear VST Cache" and then re-scan your plugins.16:40
rgareus4.2 changed the vst-cache format16:41
rgareusmmh lilv should check both.  the code /looks/ correct.16:43
rgareusbut empirically  it only triggers if I add  bufsz:powerOf2BlockLength  to  lv2:requiredFeature .  if I add it to lv2:optionalFeature. lilv does not find it16:44
rgareusaah n/m my bad.16:45
falktxrgareus: can't that clear vst cache be done automatically?16:51
falktxdoesn't ardour store the version on is config file?16:51
falktx*its16:51
rgareusfalktx: it's really about creating the new cache16:52
rgareusfalktx: the old cache is ignored16:52
falktxah ok16:53
rgareusbut you may have .fsi files all over the place (e.g /usr/local/lib/vst/)16:53
rgareusload a session with VST -> VST is not yet scanned -> missing plugin -> save session -> lost plugin16:53
rgareusmost users are smart enough to not save16:54
*** BitPuffin has quit IRC16:54
*** itPuffinB has joined #kxstudio16:55
*** itPuffinB is now known as BitPuffin16:55
*** wolftune has quit IRC16:56
*** wolftune has joined #kxstudio16:58
*** prpl has joined #kxstudio17:01
*** designbybeck has quit IRC17:18
*** wolftune has quit IRC17:23
*** distrozapper has joined #kxstudio17:27
*** BitPuffin has quit IRC17:27
*** tjingboem has joined #kxstudio17:30
*** wolftune has joined #kxstudio17:30
*** JackWinter1 has joined #kxstudio18:12
*** tjingboem has quit IRC19:06
*** youki_ has joined #kxstudio19:34
*** youki__ has joined #kxstudio19:45
*** youki_ has quit IRC19:46
*** grobda24 has quit IRC20:13
*** prpl has quit IRC20:26
*** jablo1 has quit IRC20:26
*** flexus has joined #kxstudio20:38
*** wolftune has quit IRC20:39
*** wolftune has joined #kxstudio20:40
*** flexus has quit IRC21:44
*** youki__ has quit IRC21:47
*** JackWinter1 has quit IRC21:54
*** designbybeck_ has quit IRC22:03
*** youki has quit IRC22:42
*** youki has joined #kxstudio22:50
*** youki_ has joined #kxstudio23:45
*** youki has quit IRC23:47

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