Monday, 2015-06-29

*** NickSB2 has joined #lv201:29
*** NickSB2 has quit IRC02:11
*** aombk3 has joined #lv202:48
*** aombk2 has quit IRC02:50
*** yann-kaelig has quit IRC03:09
*** artfwo has joined #lv203:52
*** edogawa has joined #lv206:40
*** edogawa has quit IRC06:49
*** ricardocrudo has joined #lv207:01
*** edogawa has joined #lv207:45
*** sigma6 has joined #lv207:53
*** falktx has joined #lv208:27
*** rncbc_jolla has joined #lv211:39
*** yann-kaelig has joined #lv211:40
*** rncbc_jolla has joined #lv211:40
*** rncbc_jolla has quit IRC11:41
*** rncbc_jolla has joined #lv211:41
*** rncbc_jolla has quit IRC11:45
*** rncbc_jolla has joined #lv211:46
*** rncbc_jolla has quit IRC11:55
*** rncbc_jolla has joined #lv211:55
*** rncbc_jolla has quit IRC11:59
*** rncbc_jolla has joined #lv212:48
*** rncbc_jolla has quit IRC12:48
*** rncbc_jolla has joined #lv212:49
*** rncbc_jolla has quit IRC12:49
*** rncbc_jolla has joined #lv212:50
*** rncbc_jolla has quit IRC12:56
*** tytel has joined #lv213:39
falktxhmm I don't think doap:shortname is valid for ports13:47
falktxthere's a reason lv2 made lv2:name, and I think it was because doap:* stuff only applies to projects13:48
*** rncbc has joined #lv213:52
*** flexus has joined #lv213:59
*** tytel has quit IRC14:10
*** ricardocrudo has quit IRC15:55
*** ricardocrudo has joined #lv215:56
falktxgood news, drobilla is not dead :)16:01
rgareusfalktx: you make it soud like he's barely alive16:09
falktxapparently on vacation16:10
*** sigma6 has quit IRC16:31
*** ricardocrudo has quit IRC17:02
ssj71falktx: do you have an opinion on whether I should have a bypass control on the rkr ports?18:53
rgareusssj71: if the bypass is smooth and clickless, then yes.18:55
ssj71rgareus: naturally18:55
rgareusssj71: if it's just a hard bypass (like hosts do) then there's no need18:55
ssj71rgareus: no it would be whatever the original rakarrack does with bypass18:55
ssj71I guess I should double check that that is clickless. I know it does some cleanup of delay buffers and things like that18:56
rgareusssj71: at some point (hopefully sooner than later)  there'll be a dedicated port-property for bypass ports.18:56
ssj71rgareus: mostly I just wish I had thought of it before doing 36 of them that I now need to edit :\18:57
rgareusthe idea is to allow for click-free  plugin insert/remove:   ie host adds plugin in bypassed mode, then unbypasses it.  and likewise for remove.   and if a plugin has a "bypass" tagged port, the host should use that instead of the host's built in.18:57
rgareusbut there is currently no such port-prop.18:57
falktxrgareus: nothing is stopping you from creating that port designation18:57
falktxnot a port prop. designation is what we need18:58
rgareusfalktx: well it should be on lv2plug.in  officially.18:58
falktxmake a patch :)18:58
falktxI'll apply it into kxstudio pkgs until drobilla officially merges it18:59
rgareusfalktx: drobilla already did  (make two).  the question is  if it should be an atom message (sample-exact)  or a port   or both18:59
rgareusfalktx: he sent the patch out shortly after the LAC.19:00
rgareusit quicksanded with Fons reply.19:01
falktxI'd prefer a designation19:01
rgareushttp://pastebin.com/8iCVSy8919:01
falktxit can be used later as parameter19:01
falktx*later used19:01
rgareusfalktx: yes.   MUST designate both an input and output control port as lv2:bypass19:01
falktxoutput?19:02
rgareusfalktx: to confirm that the plugin has bypassed19:03
rgareusfalktx: depending on the period size and the plugin in question this can take > 1 cycle19:04
ssj71bleh19:04
ssj71it makes sense, but seems like a bit of a hassle19:04
rgareuse.g a fade out of 64 samples  will still click for all signals > 48000/64 = 750Hz19:05
falktxgot it19:05
rgareusuhm less than 750Hz (at 48K)19:06
rgareusanyway.19:06
ssj71how do you get from bypassed latency to remove latency? is every plugin supposed to implement a timestretch?19:07
rgareusssj71: you can just do a x-fade.   There may be a short comb-filter effect but that's probably lost in transition anyway19:09
rgareusssj71: it depends what's causing the latency in the first place and what the effect is about19:09
ssj71rgareus: several of my plugins have some latency. Not so much in the rakarrack ports. One of the infamous plugins has 10 seconds of latency though19:11
rgareusssj71: whatfor?19:11
ssj71to see the future of course19:12
rgareuslol19:12
rgareusbut 10 seconds...19:12
ssj71http://ssj71.github.io/infamousPlugins/plugs.html#powerup19:12
ssj71it allows up to 10 second acceleration period19:13
ssj71its terribly obnoxious but the only conceivable way to accomplish it (in my little brain at least)19:13
rgareusssj71: did you try it in Ardour?   if you start playback at 00:00:00:00   it should take 10 sec until playback starts rolling19:16
ssj71yep it does (hence terribly obnoxious)19:16
ssj71rgareus: I should make a version that only goes to 1s.19:16
rgareusardour is also somewhat odd in that case.  ideally it'd just read-ahead 10 sec.  but that's small problem when starting at 0.19:17
ssj71it would be nice if variable latency were supported. The latency is just a function of the rise time. then if you only have it set to 500ms you'd only have about that much delay19:18
ssj71now I don't know what to do about bypass though. Maybe I'll have a single port for it and just have the redundancy19:20
ssj71the host can wait until the output is silent and take out the latency if it chooses19:21
ssj71:)19:21
* ssj71 is lazy19:21
ssj71falktx: lets make an extension that has a simple bypass designator for single port bypass operation.20:02
falktxthat's just a string20:03
ssj71yep20:03
ssj71falktx: so not extension worthy you mean20:03
ssj71?20:03
falktxuse lv2:bypass then20:03
ssj71can we have an lv2:inverted_bypass as well for an On button logic? (most stomp pedals light up when bypass is OFF)20:04
falktxthe host can do that20:04
ssj71ok20:05
ssj71just that I wasn't really thinking about it and now have to go through all 36 plugins ttl again :|20:05
ssj71I guess I have to add lv2:bypass anyway20:05
ssj71its going to have to wait until next lunch break. I've gotta get caught up at work20:09
rgareusthere's no lv2:bypass  aka http://lv2plug.in/ns/lv2core/#bypass  is there?20:14
rgareusat least not yet in version 12.4 from 2015-04-0720:14
ssj71good point. We don't have control of that domain. kxstudio:bypass it is :)20:19
rgareusplease don't do this.  it'll be the issue we had with extUI and nedko all over again20:19
ssj71aw :(20:19
rgareusas soon as the's lv2:bypass  there'll be 2 almost equivalent implementations20:19
rgareusI suppose we'll have to wait until drobilla comes back from his holidays20:20
ssj71rgareus: fair enough20:20
rgareusssj71: I suppose you can add kxstudio:bypass  for the time being if you want to *test* and falktx supports it.. but eventually it'll be duplicate work20:21
ssj71I would propose a "simple" version that would reqire the host to monitor the audio output to know when it's bypassed if it cares20:22
ssj71I really think its a mistake to make the plugin to change the latency20:22
rgareusbut not many hosts will add support for kxstudio:*  uris.  probably only Carla.   I doubt ingen, jalv  (qjtractor, ardour) will do it.20:23
ssj71sure20:23
rgareusssj71: what do you think should happen?20:23
rgareuswith latency, I mean20:23
ssj71the host should handle it. Its not going to change at all between plugins20:23
rgareusssj71: it's only the plugin that knows what to do..  so the plugin needs to do it.20:23
ssj71on latency change?20:24
rgareusyes20:24
rgareusthe host has no clue how to clicklessly get back from latency X to 0.20:24
ssj71neither do my plugins20:24
rgareusit really depends what the plugin is about.  an EQ, a lookahead limiter...20:24
rgareusssj71: sure the plugin does the DSP.  it does know20:24
rgareusif you know the algorithm..  you know.20:25
ssj71I know of 1 way to "silently" change latency and thats time stretching.20:26
ssj71once the plugin has no effect but latency I don't see why it matters what the plugin is about20:26
rgareusthe main use case is "live use"  so it only has to be click-free.    time-strech is valid, but for most cases probably overkill20:27
rgareusmany EQs have 1-2 samples latency, limiters or compressors can have as well.  that 10 sec effect of yours is an odd one out.20:28
ssj71but why would an EQ's latency removal be different than a limiters?20:28
ssj71oops sorry. Need patience20:29
ssj71rgareus: sure. 10s is really extreme20:29
ssj71but a couple of mine have hundreds of samples latency20:30
ssj71or full on delay lines20:30
ssj71I guess though once 100% dry delay lines are 0 latency though20:30
rgareusthe host has no clue what the effect does and what the correct way is.  a cross-fade may be correct or it may introduce peaks (resonance with delaylines in the effect).20:31
ssj71I still don't see the need for /plugins/ to implement the 1 to 2 transition in the paste you gave earlier. Once in state 1 it makes no difference what the effect is. The host knows the latency and can remove it if it wants. I agree with the rest though. that all makes sense20:32
rgareuslv2:bypass is intended as option.   if an effect supports it great.  if not:  just hard-switch  and possibly "click".20:32
ssj71sure20:32
ssj71is a plugin supposed to transition from 0 latency to its target latency when instantiated?20:34
ssj71I'm not trying to be argumentative. I just genuinely don't understand. It could well be something missing in my DSP education. But I want the gap filled if its there20:36
rgareusssj71: IIRC when we discussed this the first idea was that the reported latency does not change and the plugin delays the signal.   but then every latent plugin would need a delayline20:36
ssj71that is how my plugins operate. Is that not how its suposed to work?20:37
rgareusssj71: it's still under discussion.20:38
rgareusto remove a plugin, the latency will have to be reduced to zero before removing it20:38
rgareusso the host will have to do some work (it may simply swap the bypassed plugin with a delayline itself for live use)20:39
ssj71rgareus: I've been under the assumption that the plugin  has a delay line20:39
rgareusbut it'd be a lot clener if the plugin could reduce its own latency to zero20:39
rgareusssj71: right.  a variable delayline is not too hard though. so it could be part of a header implementation that comes with lv220:40
ssj71rgareus: I'll have to stew on this a bit. I'm unconvinced its cleaner to push this to the plugin20:42
rgareusssj71: yes.  that's where it's at.    it's not a "hard problem" but it's somthing to be thought over.20:42
ssj71agreed20:44
rgareusthe initial proposal came up at LAC. a discussion with the MOD-team (who want clickless bypass), Fons, drobilla and me.   I'm not sure if falktx was around.  We had a few beers with it, so probably not.20:47
rgareusdrobilla kept notes, Fons & I were drinking^Wdiscussing and Gian did the catering :)20:49
ssj71 rgareus  I suppose I can see the case for 1->2 by the plugin. Now I'm starting to think though that many plugins would want to jump right from 0->2. i.e. x-fade right to a no latency state20:52
rgareusindeed20:53
rgareusthough the plugin can just make 0->1  noop20:54
rgareusand do all the work in 1->220:54
ssj71wouldn't it need to be 100% dry at that point that it returns 1?20:54
rgareusthat's what the last "Q" is about.20:55
rgareus"Is 1 being identical to the plugin not being there at all, except for latency"20:55
ssj71rgareus: I assumend it was20:57
rgareusthere hasn't been consensus it.21:00
rgareusas you said. jumping from 0->2 in one step may be something to consider one way or another21:01
ssj71rgareus: perhaps a few different designations in ttl are in order to indicate what the plugin does (0->1 only,  0->2 in one step, all 3 states etc)21:07
ssj71then the host can deal accordingly. But then again thats a lot of cases for the host to deal with21:07
*** flexus has quit IRC21:09
*** flexus has joined #lv221:21
*** rncbc has quit IRC21:37
*** rncbc has joined #lv221:38
*** rncbc has quit IRC21:49
*** ricardocrudo has joined #lv222:09
*** NickSB2 has joined #lv222:10
*** falktx has quit IRC22:26
*** ricardocrudo_ has joined #lv222:59
*** edogawa has quit IRC23:01
*** ricardocrudo has quit IRC23:02
*** flexus has quit IRC23:36
*** ricardocrudo_ has quit IRC23:37

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