Wednesday, 2015-09-09

*** LAbot has joined #lv200:49
*** tytel has quit IRC01:02
*** LAbot` has joined #lv203:31
*** LAbot has quit IRC03:31
*** edogawa has joined #lv205:38
*** ventosus has joined #lv207:15
*** sigma6 has joined #lv207:33
*** ricardocrudo has joined #lv209:11
*** falktx has joined #lv209:17
*** ventosus has quit IRC10:03
*** ventosus has joined #lv211:02
*** falktx has quit IRC11:10
*** falktx has joined #lv212:15
*** kalimann has joined #lv212:41
kalimannhi, is there some info on how to use this lv2?12:42
kalimanninstalled it through pacman on linux chakra, but thats it, dont know where to go from here12:42
*** falktx has quit IRC12:56
*** frinknet has joined #lv213:00
*** falktx has joined #lv213:04
*** drobilla has joined #lv213:12
rgareuskalimann: LV2 are usually plugins.   you get plugins  and a host (that loads those plugins)13:25
rgareuskalimann: http://ardour.org  or http://kxstudio.linuxaudio.org/Applications:Carla  are common hosts which load plugins...  but there are a lot more13:25
rgareuskalimann: as for plugins..  there are LOTS.   http://calf-studio-gear.org/  or http://guitarix.org/  are popular. just to name two13:26
*** ventosus has quit IRC13:41
kalimannahh, i see13:52
kalimanni was recommended them because i wanted an eq13:52
kalimannfor my arch environment13:55
kalimannnot to make music, but to equalize my general sound on my computer for media and music and games13:55
*** kalimann has quit IRC13:55
*** kalimann has joined #lv213:55
kalimannrgareus: my response above  ^13:55
*** kalimann has quit IRC14:27
*** NickSB2 has quit IRC14:34
*** kalimann has joined #lv214:37
rgareusfalktx, drobilla: brace yourselves :)14:40
*** son0p has quit IRC14:48
*** son0p has joined #lv214:50
*** ventosus has joined #lv215:02
*** kalimann has quit IRC15:05
falktxrgareus: oh I'm writing a bit response already :)15:07
falktx*big15:07
*** curlymorphic has quit IRC15:08
rgareusfalktx: cool.15:16
* ssj71 goes for popcorn ;)15:18
falktxok, I'm tired now...15:49
*** kalimann has joined #lv215:56
rgareusfalktx: Siesta15:57
falktxps4 now!15:59
falktxbetter wait until the boss leaves :P15:59
*** sigma6 has quit IRC16:05
rgareusfalktx: I'm going to reply in length. but your premise that plugin-analysis if off-line is wrong. it's real-time data16:16
rgareusmaybe that's why we had this misunderstanding all the time.16:17
falktxrgareus: but does it spawn a 2nd instance or not?16:17
rgareusno16:17
falktxah wow16:17
falktxso, hmm how does that work?16:17
rgareusit could..16:17
rgareusand thereby avoid the problem, but that would duplicate DSP load16:17
falktxso ardour processes the regular plugin that is loaded (timeline), then again for analysis?16:19
falktxrgareus: please don't write too much, I don't want this to turn into a long discussion16:19
falktxrgareus: at least not until drobilla says a thing16:20
falktxdrobilla: emmm ping?16:20
rgareusso far I'm only reading16:20
rgareusfalktx: there is a 2nd instance just for the impulse-response.  but the actual current spectrum is /live/ data, using a larger block-size (for proper FFT)16:21
falktxrgareus: so what happens if the plugin being analyzed has automation?16:21
rgareusthe automation granulary becomes larger while under test.16:21
falktxthe analyze buffers are fixed size right?16:22
rgareusyep 8K16:22
falktxok16:22
falktxquite a big change in there16:22
*** tytel has joined #lv216:22
rgareussame as export,  which some see as a bug.  since export-automation does not match when you have with live-playing < 8K16:22
falktx256 frames => 8192 => then back to 25616:22
falktxwhy does export need to use 8192 anyway?16:23
falktxmake it faster?16:23
rgareusbecause it's a lot faster16:23
rgareusyes16:23
rgareusit was 64K which is blazing..16:23
falktxI'd assume quality > performance during export16:23
falktxI don't use ardour, but if I did I'd love to have an option for this16:23
rgareusbut 64K screwd up automation and crashes some plugins :)16:23
falktxie, Max HQ export = 8 frames :)16:24
falktxlet the cpu burn, I want that quality precise automation changes16:24
* falktx wonders what other hosts do16:24
rgareusfalktx: in reality a control rate (automation) or 20Hz is more than one sufficient.   most plugins actually smooth it much lower.16:24
rgareushow fast can you turn a knob or move fader on a real mixing desk?  100ms from end-to end if you're good.16:25
falktxreducing zipper noise in bad plugins is a good thing16:25
rgareus"sample accurate automation"  is just some marketing thing. nobody needs it :)16:26
rgareusanyway. getting OT.16:26
ssj71isn't exposing that a plugin is bad better?16:26
falktxhow is bad better?16:26
ssj71KNOWING its bad is better than hiding the fact16:26
falktxsure16:27
ssj71IMHO, anyway OT16:27
falktxbut on commercial world we get no source16:27
falktxmaybe there's one fantastic plugin that does crazy shit, but has that stupid zipper noise16:27
rgareuswell, you can measure it.16:27
ssj71if commercial plugins are zippering they don't deserve our money16:27
falktxwell, freeware then16:27
falktxanyway really OT16:27
* ssj71 stopping16:27
rgareusssj71: lol.  that did't keep a lot of VST being sold.16:27
rgareusssj71: well, you're good with *our* money16:28
ssj71just sayin. now I'm really stopping16:28
ssj71ok. I'm not stopping. I don't use closed source stuff, so I'm jaded.16:29
rgareusfalktx: another quick question: since there's currently no callback.  how will a plugin notice the buffersize has changed?16:35
rgareusssj71, falktx: what happens with rkrlv2 in carla.   instantiate plugin. then use  jack_buffersize   and increase the period (say from 256 to 1024) ?16:42
falktxrgareus: options->set16:42
rgareusIIUC rkrlv2  pre-allocates buffers  using maxBuffersize during instantiation.16:42
rgareusfalktx: how does rkrlv2 respond to this?16:43
falktxhttps://github.com/falkTX/Carla/blob/master/source/backend/plugin/CarlaPluginLV2.cpp#L378316:43
falktxno idea16:43
falktxmy plugins do16:43
rgareusfalktx: will the set()  trigger a callback?16:44
falktxset is the "callback"16:44
rgareusfalktx: the link you posted is the host-side?  or a plugin-wrapper?16:47
ssj71rgareus: I guess either 1) rkrlv2 will need to instatiate options->set() or 2) the host must reinstantiate or call run() multiple times to not exceed the maxBufSize16:47
falktxit's carla16:47
*** rncbc has joined #lv216:47
falktxhost-side16:47
rgareusfalktx: do you have a DSP example  ie a plugin that responds to this?16:47
falktxall dpf and juce plugins do16:48
falktxrgareus: https://github.com/DISTRHO/DPF/blob/master/distrho/src/DistrhoPluginLV2.cpp#L66016:48
rgareusaah, yes. so it *is*  lv2_extension_data() !16:49
rgareusand not an instantion option.16:49
falktxsee below16:49
falktxrgareus: https://github.com/DISTRHO/DPF/blob/master/distrho/src/DistrhoPluginLV2.cpp#L101116:49
rgareusI think L660 is great.     but L1011  is not.16:50
falktxI don't see how it's different16:50
falktxbut please comment on the mail instead16:50
rgareussee rkrlv2's case here.   it wants' max buf-size to allocate during instantation.16:51
falktxfeel free to use snipets of that code, or just link to it16:51
falktxsame as here16:51
rgareusfalktx: ok16:51
*** son0p has quit IRC16:52
rgareusfalktx: long story short: I think we need a #currentBlockSize     the min/max  does not cut it.  do you agree?16:52
*** son0p has joined #lv216:54
rncbchowdy16:55
rncbcdrobilla: http://dev.drobilla.net/ticket/108416:56
ssj71rgareus: so do you have an opinion what should happen to rkrlv2 in your proposed scenario?17:04
ssj71it will need to allocate new larger buffers17:04
rgareusssj71: I think the *proper* solution is for the host to  set *max* buffersize during instantiate to the max. possible that the host will even use17:04
rgareus8K in jack's case.17:04
ssj71ah yes.17:05
rgareusand for falktx's use-case of requiring the *current*  we need a  currentBlocksize  (not max)17:05
ssj71since rkrlv2 is independant of "currentBufSize" then I don't need options->set()17:05
ssj71I concur17:05
rgareusI expect this will be most of the plugins: pre-allocate buffers.   the convolution ones (which need current) are a corner-case.17:06
*** badmankali has joined #lv217:07
falktxrgareus: sorta, I think "current" is the wrong name17:09
rgareus"expected"  or "nominal"17:10
*** kalimann has quit IRC17:10
falktxnominal sounds fancy :)17:11
*** badmankali has quit IRC17:12
falktxnormalBlockLength ?17:12
falktxexpected doesn't sound right17:12
*** badmankali has joined #lv217:13
*** badmankali is now known as kalimann17:13
ssj71nextBlockLength?17:13
falktxnominalBlockLength17:17
ssj71newBlockLength17:20
ssj71nominal doesn't make a lot of sense to me.17:20
falktxmaxRunBlockLength17:23
ssj71no, because thats what maxBlockLength is17:23
ssj71we're only talking about blocks handed to run17:24
ssj71we have a max and min, and want a way to know what it will be when run is called()17:25
ssj71or in other words what the next block size will be. What the current block size being used is.17:25
falktxbut current seems like a wrong name17:26
falktxbecause the size is variable, the "current" one will change all the time17:26
falktxbut I have no ideas for any other names17:26
ssj71why? it is the block size currently being used and when it changes, the host passes the new current value to options->set()17:26
ssj71isn't that exactly what you want to track? what the "current" one changes to?17:27
ssj71I'm missing the distinction.17:27
*** ventosus has quit IRC17:32
rgareusfalktx: I'm halfway done with a reply.  bu need to go grocery shopping before it's too late.17:36
rgareusbbl17:36
falktxssj71: see my reply to lv217:37
falktxssj71: I don't want a "current" one (ie, the one used in run), since that can always be changing in carla17:38
falktxI want a "max possible in the current engine state" value :)17:38
falktxssj71: does that make sense?17:38
falktxssj71: I hope it does...17:43
ssj71not fully. so you are kind of wanting to know what the jack bufsize is?17:44
ssj71and why/how is the plugin dependent on that?17:44
ssj71rereading your message in lv217:47
falktxit's the maximum that run() is ever going to take17:48
falktxthat what other specs consider the "current buffer size"17:49
falktxbut I always felt that calling that "current" was a bad idea17:49
ssj71ok, now that I understand your desire a bit better, perhaps nominalMaxBlockSize makes sense, but I don't understand why still.17:49
falktxI just think using currentBlockLength some devs might get the wrong impression17:49
ssj71why not just set up for maxBlockSize because sooner or later ardour will throw it at you17:49
ssj71falktx: I agree now17:50
ssj71with the semantics that is.17:50
falktxẃell, if ardour changes the code back again this whole thing stops :P17:50
falktxthis disussion only happened because of rgareus ;)17:50
ssj71falktx: actually because of the change rgareus made to resolve the bug report I made after rkrlv2 were crashing17:51
ssj71so I'll take the blame. I just don't get why you can't use the current implementation of maxBlockLength. it matches the definition you gave: run will never be called with more than that value17:52
falktxit's just overkill17:52
ssj71the only reason I can think of needing to know the block length is to allocate adequate buffers.17:53
falktxyep17:53
ssj71ffts efficiency as well17:53
falktxalthough for me is to make the plugin wrapper happy too17:54
*** brummer has joined #lv217:54
ssj71thats the part that I don't understand the details of at all so its hard for me to analyze17:55
ssj71so you want a lower value that 90% of the blocks will be smaller than. Then when the 8k buffer comes you want a notification so that you can re-allocate, then run(), then get the smaller buffer size again and re-allocate again?17:56
ssj7190% is obviously a fictitious value17:56
falktxmost hosts will use the "max engine" has current17:57
falktxat least the opensource ones17:57
falktx*as17:57
ssj71max engine would be the jack block size?17:57
falktxyes17:58
falktxor the alsa one17:58
ssj71sure17:58
ssj71maybe its just the engineer in me, but it just seems like a bad idea when ardour may at any time pass you an 8k block.18:00
ssj71in realtime.18:00
ssj71its a tradeoff between load balancing and RAM18:03
ssj71anyhow bbl18:05
*** ricardocrudo has quit IRC18:13
*** falktx has quit IRC18:19
*** kalimann has quit IRC18:20
brummerA plugin shout be resposible to didn't extend it's own allocated buffers. A host, can't realy know, were the max buffer size goes, as the buffersize could be changed from outside.18:21
brummerSo, what you expect as max value here, is usless in 99% of the cases.18:21
brummerSo, what I understand from the current maxBuffersize value given from the host, is what the current Jack buffer size is.18:24
brummerOtherwise, this maxBuffersize value is allready known, before you start to code your plugin.18:25
brummerThe very same is true for the min value18:26
brummerA nicely coded plug needs to know the jack buffersize, that's why jack does it the way it's done.18:27
brummerany other value is since.18:27
rgareusa host does know what the max possible buffer-size is18:28
rgareusyou can query it from the hardware.  ALSA has an API for it, ASIO has, Coreaudio has18:29
rgareusas opposed to JACK, coreaudio (and pulseaudio) can change the buffer-size dynamically (no dropout)18:29
rgareususing sliding buffers18:29
brummerbut it didn't change the stance that the max buffersize to be expected is allready known, before you start to code your plugin18:32
brummerbecause smaller values then the once given by hardware could be changed any time from outside18:34
*** nicksbx has quit IRC18:42
*** nicksbx has joined #lv218:42
*** falktx has joined #lv218:51
brummerso please, forgime my ignorance (and my engish writtig skills), but for what, exactely is the maxBuffersize extension is worse?18:59
rgareusbrummer: the extention is fine.  The problem is that  the specs are not 100% clear:  Can "maxBuffersize" change while the plugin is running?19:01
rgareussome people said "yes of course" (thinking maxBlockLength is like jack's period).   other said "no, certainly not."19:02
brummeras I sad, a plu shout be responsible to take care that it didn't extend it's own allocated buffers. Given a value for that, removes this resposibility. That's bad, in my opinion.19:03
rgareushttp://lv2plug.in/ns/ext/buf-size/#maxBlockLength  by itself is rather clear.19:03
brummerWell, then again my question, for what is it worse?19:06
rgareusbrummer: yeah the solution you came up with is valid:   plugin checks run().   buffersize mismatches ->  schedule worker.. and do silent-runs.19:07
rgareusbrummer: I think gx currently passes the value unmodified (rather than produce silence)  while it is re-initializing.19:07
rgareusbrummer: is that correct?19:07
rgareuss/value/audio/19:07
rgareus"..for what is it worse"  "fuer welche anwendungs-zwecke es schlechter ist?"  Schlechter als was?19:09
brummeryes19:09
*** flexus has joined #lv219:09
rgareusbrummer: instantiate(.. option) {  plugin looks up max buffersize option,   allocates a buffer large enough).   run() will _always_ work, no re-init is needed.19:10
rgareusno "silent-runs" ever.19:10
rgareusas you may know ssj71's rkrlv2 uses this for example.   allocate once.  run forever.19:12
rgareusfor plugins like this it would be a regression if buffer-size changes would cause a dropout.19:13
brummerdo you know that this plugs run in guitarix without receive any value from guitarix?19:14
brummerThey realy didn't need it, and runs well without asking for this19:15
rgareusI expect ssj71 is cool and pre-seeded the buffersize.19:16
brummersorry mean s/worse/worth/19:16
brummerexact, and he can do that, because he realy didn't need to know the buffersize.19:17
rgareusso he did.    plug->period_max = INTERMEDIATE_BUFSIZE;19:17
rgareusINTERMEDIATE_BUFSIZE is 1024.  try running at 2048  and it'll crash in guitarix (unless guitarix tells the plugin a proper LV2_BUF_SIZE__maxBlockLength)19:19
brummerotherwise, when no bufsize is given, the buffer get allocated to a fixed value ( witch he simple choose to small for the ardour analysys tool)19:19
rgareusbrummer: many people mix and master at 2k or 4k.19:20
brummerhowever, my question remains, for what should the maxBuffersize feature be worth (do you see my development in the writting skills, I wrote worth, not worse) he, he19:22
rgareusmaxBuffersize is worth a LOT if a plugin needs to pre-allocate buffers.19:24
rgareusdelaylines, reverb,... are common examples19:24
brummerto the silence, in case of convolution, when the buffersize grow, the convolution effect get smothed out, so there is no need to produce silence, or return just the buffer, as the effect is anyway smaler the expected19:25
rgareusduring run()   N samples will be written to those buffers.    and   N <= maxBlockLength19:25
rgareusbrummer: yeah convolution kernels are different.19:25
brummerbut, again, the maxBuffersize is a KNOWN value beforehand19:26
rgareusbrummer: convolution is the only case that I know where  "nominalBufferLength" (current buffer-size)  can be very useful to optimize the convolution kernel19:26
rgareusthe difference:  maxBufferLenght  MUST not change (it requires alloc, not realtime safe),    current aka "nominalBufferLength"  (jack-period-size) can change any time  it may not require re-allocation19:27
rgareusyou can implement convolution kernels less optimized for the latter case.19:27
rgareusbrummer: well, if you're of different opinion.  please reply to the LV2-devel thread.19:32
rgareusthe "actual" problem is that the specs are really not clear.   some plugins/host interpreted it one way (max can change)...   whatever it'll be.. all hosts/plugins should behave he same.19:34
rgareusThe actual change (implement nominalBufferLength on hosts  or make maxBufferSize dynamic) will be trivial in most cases.19:36
brummeroh, I'm done, I acept what ever get thrown on me, even if it sounds that I'm pissed, I'm not, be ensured. Even when others feel like I hitch them, sorry for that, I wont. My skills in writting may be the culprit here. But, to be honest, for my future work, it dosen't matter any more, what this feature means. I made my plugs independend from that. As I said in the guitarix bug thread, here we are at a point were comerzial develpoers19:38
brummerwill throw there twols, as I do.19:38
falktxplease leave that discussion to the list19:40
falktxbrummer: don't panic, drobilla hasn't said a word yet19:40
brummerfalktx>:no panic here. (I'm in Berlin right now, for the next 2 month, I guess we will see us)19:42
drobillaHoly backlog, batman19:44
* drobilla doesn't get how maximum buffer size is in any way confusing19:47
brummerOh, the master of desaster enter the scene19:49
rgareusdrobilla:  tl;dr   Can maxBufferLength  be changed while the plugin is instantiated?19:49
brummer????19:50
rgareusbrummer: I don't think your assessment is correct.  proprietary standards (VST, AU) have specifified this precicely.19:53
rgareusLV2-doc is not bad but not yet on the same level as commercial documentation.19:53
*** tytel has quit IRC19:54
drobillaAFAIK the only actual use of that property is as an instantiation time option19:54
drobillaSo, inherently, no.19:54
rgareusdrobilla: then jalv does it wrong :)19:55
rgareusand ardour did19:55
drobillahow?19:55
drobillaJack buffer size change?19:56
rgareusdrobilla: yes,19:56
rgareusjack_buffer_size_cb() {  jalv->block_length = nframes; }19:56
drobillaLike anything supports that correctly... :P19:56
rgareusand block_length is used for jalv.urids.bufsz_maxBlockLength19:57
drobillaYes, but at that point the plugin has no idea anyway19:57
rgareusas long as it's only valid during instantiate, all is fine.19:57
drobillaIt's not really maxBufferSize changing so much as the actual buffer size changing and exceeding the previously established value19:57
drobillaOh, it's totally not fine, but the weird description confused me19:58
falktxdrobilla: carla and my plugins/ports have been using this dynamicly for years19:58
rgareusdrobilla: start a plugin with jack_bufsize 256   -> plugin instantiates, allocates buffers..     then  run jack_bufsize 1024  -> crash.19:58
* falktx feels ignore here19:58
rgareusfalktx: ?19:58
* drobilla shrugs19:59
falktxmy plugins and host have been doing this for years, dang it19:59
drobillay'all know the drill19:59
falktxI hate it when you all say nothing supports this19:59
rgareusdrobilla: what?  write Proposals to amend the spec to lv2-devel?19:59
drobillaTo say what, exactly?20:00
falktxlv2 used to have a bug tracker20:00
drobillaI see a jalv bug20:00
drobillaand a whooooooooooooole lot of ado about nothing spec wise20:00
falktxshould we use the lv2 github project for bugs/requests?20:00
drobillaCurrently if you support dynamic then it's kind of implied you support dynamic everything, which is limited but doing that fine-grained doesn't sound very fun20:00
drobillafalktx: *shrug* I guess.20:01
falktxdrobilla: well, I want to use the old one, but all the bugs were lost with the site update20:01
drobillaThere weren't any of significance20:02
rgareusdrobilla: the actual bug-fixing is indeed trivial.   but currently the spec is not clear which way it need fixing.20:02
rgareusdrobilla: http://lv2plug.in/ns/ext/options/  says " dynamic properties that may be changed at run time"20:03
drobillargareus: I fail to see why.  Clearly reporting a given maximum buffer size during init() then calling run() with a bigger one is not okay20:03
rgareusdrobilla: maxBlockLength is a property..  and hence could change any time.20:03
drobillargareus: Leaving two options: re-instantiate plugin, or use the dynamic thing if the plugin supports it20:03
drobillaWell, yes, as I said earlier, we could establish a bunch of vocab for this-and-that-and-the-other-property can be dynamic20:04
drobillaWhich I can do, but nobody is going to like it.20:04
rgareusdrobilla: I don't think it needs a vocab.  just a small sentence in the doc.20:05
drobillaGiven the context I'd rather just reinstantiate the thing and call it a day20:05
rgareusdrobilla: I'm right with you there.20:06
drobillaNote that the dynamic options interface is in the instantiation threading class20:06
rgareusdrobilla: in the email I proposed to add one sentence to #maxBlockLength : "This value will be valid for complete lifetime of the plugin after20:07
rgareusinstantiation and not change dynamically."20:07
drobillaSo there't not really any issue about actually doing it.  You can reallocate whatever and so on20:07
drobillaJust whether or not a plugin exists that supports maxBufferSize and also dynamic options but doesn't want to implement it there20:07
drobillargareus: A certain pedantic part of me dislikes baking lifetime semantics into the definition of a property, but that aside, sure.  Easy.20:08
drobillaI don't see a whole lot of benefit do burdening plugins with having to do this.  Click-free would theoretically be a possibility kinda sorta but since the point is to allocate buffers........ not really.20:08
rgareusdrobilla: support "maxBufferSize"  can be twofold:  (1)  query in during instantiate.   but not allow dynamic changes.    or (2) extention data -> get()/set() dynamic changes20:08
rgareusif a plugin only want to know the max.  burdeining the plugin to implement dynamic changes  only because it uses the maxBuffersize option in instantiate is IMHO wrong.20:09
drobillaThere's a simpler old-school C take on this: define return values for options::set for "I don't know what that is" or "I can not change this dynamically"20:10
drobillaWhich should really be there anyway (I made the return a uint32_t but haven't actually defined any codes)20:10
rgareusnice20:11
rgareus-1 on error - oh wait uint32_t :)20:11
falktxlv2 already uses (uint32_t)-1 for some things20:13
rgareusstill, that does not address the issue with "nominalBufferLength" (ie  current jack buffersize).20:15
rgareusthe host does not know a-priori if a plugin supports changing the maxBlockLength.20:15
rgareusthe host would need to call the set() function to find out..20:15
falktxthere's supportedOption and requiredOption that could be used for this20:15
rgareusplugin-can change BS ->   cool, always use current jack's         plugin-can't ->  use some large value to be sure.20:16
falktxmake it so that if it's supported or required the plugin MUST implement set()20:16
drobillaI don't think "nominal buffer size" makes a whole lot of sense20:18
falktxdo you have suggestions for a better name?20:19
*** edogawa has quit IRC20:19
drobillaI don't think the concept itself makes a whole lot of sense.20:19
*** ricardocrudo has joined #lv220:19
*** edogawa has joined #lv220:21
rgareusa plugin can just check in run()   and shedule a worker.   but if the BS changes rapidly a dedicated inteface for nominalBlockLength may be beneficial.20:23
rgareusfalktx mentioned that VST has an inteface like this.. and so it may make it easier for devs to port plugins to LV220:23
drobillalink?20:24
rgareuspersonally I believe that a plugin requiring to know about BS changes out-of-band leads to writing bad DSP.20:24
drobillaI more or less agree and think this is a bunch of striving for complexity for complexity's sake20:25
drobillaMax, min, and fixed, are necessary and useful for obvious reasons20:25
rgareusdrobilla: http://vstdev.richackard.com/doc/vstsdk/faq.html#faqProcessing320:25
drobillaI thought you meant VST had some "nominal" thing20:26
rgareusdrobilla: I don't know.  falktx mentioned this.20:26
* drobilla doubts it20:27
rgareusVST3 requirs a call to  setupProcessing() ..   which is not unlike re-instantiation20:27
falktxnot re-instantiate, but rather activate20:28
drobillahttp://vstdev.richackard.com/doc/vstinterfaces/structSteinberg_1_1Vst_1_1ProcessSetup.html20:28
rgareusdrobilla: I dimly recall that VST2 has some callback for the block-length.20:28
falktxthat's old stuff20:28
falktxlet me check carla code20:28
rgareuseffSetBlockSize20:28
falktxyes20:28
falktxardour should have that too20:28
rgareusfalktx: yes, it de-activates the plugin when doing that20:29
falktxthere's also audioMasterGetBlockSize20:29
*** NickSB2 has joined #lv220:29
falktxthe plugin can request the current buffer size at anytime20:29
falktxand sample rate via audioMasterGetSampleRate20:29
rgareusfalktx: right,  so in  run()   a plugin could ask for the "real" audioMasterGetBlockSize20:30
rgareusLV2 can't do this currently20:30
falktxvst plugins usually do that during instantiate or activate20:31
falktxcause they know that value won't change until the next activate20:31
falktxso it can be cached20:31
brummerin lv2 you can get the buffsize durring run, but, when you use the worker extension, you wont know when you can react on the recived information20:33
rgareusdrobilla: would you mind chiming in on the mailing-list..  and leave a more permenent record of what you said here?20:33
rgareusbrummer: no  run() is not the buffer-size20:33
rgareusbrummer: it can be less20:34
drobillaI'd prefer just doing that to having my nick mentioned ominously a bunch of times on IRC as you well know :P20:34
rgareusbrummer: ardour does that regularly.  e.g looping   and some hosts split the cycle when parameter changes.20:34
* falktx casually mentions drobilla in a self comment :)20:34
drobillaI don't understand what the worker extension has to do with anything20:34
brummerdrobilla>reallocate buffers20:35
rgareusdrobilla:   run(.., u_int32 n_samples)  {    if (n_samples != previous_n_samples) {   schedule worker...   and do silent runs }  }20:35
falktxoptions->set is instantiation class, you're allowed to do anything there20:35
drobilla... don't do that.20:35
drobillaThough the usual reply mechanism works for whatever if you need to 'apply' work in run() when its done20:37
drobillaSkimmed this thread and linked discussion, still don't get it20:43
brummerso, for what exactly is the maxBufferisze feature worth, is it ofr, let's come on about a value were nobody cares about wasted resorses, so let's use it?20:43
drobillaSeems y'all have invented a bunch of problems by making max not actually the max20:43
drobillaThen wanting to invent a "nominal" thing to be kinda sorta the max but not really the max20:43
drobillaFor nebulous purposes20:43
drobillabrummer: it's.................. the maximum buffer size.  Obviously.20:44
falktxdrobilla: I blame rgareus :)20:44
* rgareus blames ssj71 :)20:44
brummerI know the max bufferasize before i WROTE MY PLUG, SO LEAVE IT20:44
drobillaWell, two things: being called with *less* than the max is clearly okay, so if a plugin broke in that case, the plugin is broken20:44
* falktx blames ssj71 too20:44
falktxssj71: what did you do!?20:44
drobillaBeing called with *more* than the max is clearly a host bug20:45
drobillabrummer: uh...... okay?20:45
drobillabrummer: it is a property of the current system configuration, so that is nonsense20:45
rgareusfalktx: well, I blame myself too. I use maxBufferSize in one plugin.  and there I don't expect it to change  - ever - after instantiation.20:45
drobillaJust so we're clear on that bit I have every intention of sticking "this doesn't change" in the spec in some way or another.20:46
drobillaI am super ultra not into making my life more difficult than it already is as you guys clearly are at the moment ;)20:46
rgareusbut since we're already blaming     git blame src/jalv.c    sets a bad example :) sorry David, could not resist.20:47
brummerAs Isaid before, I don20:47
drobillaBut if you can sum up the actual utility of a nominal block size in a sentence, feel free20:47
drobillaIf it's anything that requires a reallocation if sample_count goes over it, no.  That's max.20:47
brummercare about this any more,20:48
falktxardour uses a static max of 8192, I want the real actual max nframes that's going to be used during run()20:48
falktxthat's one sentence20:48
brummerIn my plugs I handle buffersize over or under run anyway20:48
brummerso, this value say's nothing then a hint to me20:49
drobillabrummer: Okay.  Well, to answer your question, not having to do so is the utility of maxBufferSize20:49
rgareusbrummer: yeah, you do.   but requiring all plugins to do this is overkill.  try to explain this to a newbie LV2 developer.20:50
drobillaIf you want to cause a bunch of dropouts instead of use a number given to you, feel free.  That doesn't mean the number is not useful.20:50
drobillaAnything that uses auxiliary audio buffers clearly 'needs' it20:51
rgareusdrobilla: it can be useful for optimization (convolution kernel size is one good example)20:51
brummerBut, the number is'nt usefull for me, as it is abstracted away from the real situation20:51
drobillaIt isn't abstracted away from anything.  It means exactly what it says on the tin20:52
drobillafalktx: Not changing the spec for that.  Max is max.20:52
brummerMAx, well, hardware didicte it20:53
falktxchanging the spec != adding new things20:53
drobillaIf Ardour wants to make it 8192 and make everything pay the RAM cost, well... okay.  Questionable IMO.20:53
drobillaAdding new confusing things with highly questionable motivation, that tellingly doesn't seem to be present in any other audio API I'm aware of...20:53
falktxif lv2 doens't do it, I will20:54
drobillaOf course you will.20:54
brummerand I don't care, I handle that internal, on the cost of the users20:54
falktxnot all plugins need to care20:54
drobillaLovely.20:54
drobillaSo we can all see why I find IRC annoying since nobody actually gives a fuck whether or not this makes any sense whatsoever20:55
* rgareus cares20:55
drobillaSo if you'll excuse me I have some work to do that both has a purpose and a pay cheque associated with it.  ttyl.20:55
rgareusfalktx cares, too20:55
drobillargareus: The subtext is that it doesn't make any sense, if that's not clear ;)20:55
brummer ahte IRC as well, I'm only here because of this issue20:56
drobillaI might even add the property anyway because of that whole optimization thing20:56
drobillaThough I'm slightly hesitant to do so given how batshit insane the rationale I've been provided is....20:56
falktxdrobilla: did you read all the emails?20:57
falktxdrobilla: this talk on irc has been influenced by it. without the emails you'll miss the context20:57
rgareusfalktx: I would not mind to add   lv2plug.in/ns/ext/buf-size/#nominalBlockLength  to Ardour  which does what Carla currently does with maxBlockLength20:57
falktxrgareus: I wouldn't mind using min/max as global static values20:58
falktxif that gets added that is20:58
rgareusnow we need the dictator's signature.  and we're good :)20:58
falktxdrobilla: we support you :)20:59
falktxbut I still believe lv2 needs more maintainers21:00
falktxone single person taking care of it is exausting, look at all the crap we started :P21:00
rgareusit could also be a http://kxstudio... URI... but lv2plug.in  would be a lot better21:00
falktxyep21:00
falktxspecially since the URI changed now, damn sourceforge...21:01
falktx*URL21:01
brummerrevulution21:04
brummers/u/o/21:04
falktxDDR?21:05
brummers/r/e/21:05
brummerfalktx> nope, western guy21:06
*** curlymorphic has joined #lv221:13
* falktx doesn't know what to do21:15
drobillaIs there actually a convolution plugin in existence that will make use of this thing to do an actual optimization?21:16
falktxklangfalter allocates buffers using the "current block length" size21:18
drobillaBuffers clearly need to be allocated with maxBlockLength21:18
falktxif that is too low during processing it reallocates21:18
drobillaThat defeats the whole purpose of knowing that value in the first place21:18
falktxwell, it prevents xruns because it doesn't need to wait for run21:19
drobillaLet's be super clear about one thing: if a nominalBlockLength exists, it is very definitely totally fine and expected for the host to call run() with a larger value21:19
rgareusdrobilla: convo.lv2 currently schedules a worker and goes silent (until re-init) if the current and prev blocksize mismatch in run()21:20
drobillargareus: That's because it's really fixed, though21:20
rgareusdrobilla: in ardour's loop and analysis case it's bad though.   the plugin will constantly re-initialize21:21
drobillargareus: Can't Ardour just use a different instance for analysis or something? or just call analysis with the jack block size?21:21
rgareusdrobilla: it could follow the nominalBufferLength  -> re-init it that changes.  and otherwise just ignore short cycles.21:22
drobillaSurely I can't be the only one who thinks this spec fallout from ardour using a static max is dubious at best...21:22
* falktx is back to blaming rgareus21:23
falktxget that engine max value back and implement options->set please21:23
rgareusdrobilla: the live-view uses the current-data and instance.   the tranfer-function display uses a 2nd instance21:23
drobillaWell, that is the seed, clearly21:23
*** edogawa has quit IRC21:23
drobillaBut it seems everyone but myself is conflating max with this new thing21:23
rgareusfalktx: that goes waaay back. to before my involvement with ardour as dev.21:23
drobillaWhich I emphatically refuse to accept.  Max is max is max is max.21:23
rgareusfalktx: but I'll take the blame for beeing lazy and not changing it :)21:24
drobillaOptimization?  fine.21:24
drobillaBut if you're going to reallocate buffers if "nominal" is exceeded, you are doing it wrong.21:24
drobillaand amending the spec so people can do things wrong is not all that motivating :)21:24
rgareusdrobilla: "nominal"  would schedule a woker in my case.21:24
rgareusdrobilla: rather than using run()   current != prev_run    to trigger that21:25
drobillargareus: If you mean a change, it is impossible to change options while rolling anyway.  instantiation class21:25
*** tytel has joined #lv221:25
rgareusdrobilla: but run() must not be called while  option->set() is beeing called.   (that's in the spec)21:26
drobillaYes, but it's not real-time either21:26
rgareusthe spec says nothing if a plugin may perform non-rt tasks in option->set()   yet "instantiation class" implies that21:26
drobilla(The only reason you can even slightly get away with that is if you have no control ports thus skirting split cycles anyway)21:27
rgareusthe plugin would indeed behave "badly"  during split-cycles (remain silent).      but it may not live-loop hog the system when there are constant split-cycles.21:28
drobillaThe theme of "let's amend the spec to support clearly wrong things" is getting stronger... :)21:28
drobillaSeems to me fixed plugins should either be literally fixed, or ringbuffer internally and not care.  There's no reasonable middle ground21:29
*** flexus has quit IRC21:29
brummerSo to be clear, ANY LV2 host, including the reference host jalv, have done it wrong in the past, and now, there is a new way which is right, but clearly different from how this spec is used before. r/e/v/o/u/lution, indeed.21:32
drobillafalktx's take on introcing a new thing that is actually just max is definitely not right.21:33
drobillaWe have had a max for a long time, it means precisely what it says it means, and that's that.21:33
falktxdrobilla: if you can convince rgareus to change ardour's code back I'll be a happy person21:34
drobillafalktx: I am still not sure what your actual concrete reason to care is21:34
drobillafalktx: Because it sounds like it's to use it as a max, to allocate buffers, which is definitely wrong.21:34
brummerbut even jalv didn't use it as that21:34
falktxyep, jalv always used it as the current buf size21:34
rgareusbrummer: I don't know if *any* host is correct. but yes, most hosts got it wrong  and it caused regular crashes.21:35
drobillaNo. Jalv didn't support jack block size changes correctly21:35
falktxnot 8192 as it's the real max jack buf size21:35
brummerno host do it, before arour change it21:35
drobillaif the host tells you 8192, from a spec POV, then 8192 is the max.21:35
drobillaIf you want to allocate buffers that need to fit a cycle, then they must be 819221:35
drobillaWe can argue all day about what Ardour does21:36
falktxI guess jalv will change to 8192 as well21:36
drobillaBut the meaning is crystal clear there, LV2 wise21:36
brummerand if some one tell you to jump out of the window, . . .21:36
drobillafalktx: I'll reinitialize the thing21:36
rgareusyeah. we need to clarify the spec.    implementing (ardour, jalv,....) it will be easy.21:36
drobillaWhich is the obvious fix that would take about 1/16th the amount of time as this bloody conversation :P21:36
falktxok, then *please* decide on something then21:38
rgareusallowing "max" to change seems weird.   "current-maxium"   is an odd concept.21:38
falktxshould it be the 8192 value? yes or no?21:38
drobillaI am not familiar enough with this aspect of Ardour to know.21:38
rgareusfalktx: I'm 95% implementing nominalBufferLength in Ardour.    some small   -Wcast-align   remain to be fixed21:39
drobillaFrom a plugin POV if 8192 is the max you are given, then 8192 is your max, and run() may be called with a value up to 819221:39
drobillaHaving max and kinda sorta max is fucking insane21:39
falktxit's the "current" value other specs refer to21:40
drobillaThus far every single case for this aside from an 'optimization' one is wrong, wrong, wrong.21:40
falktxsorry that I don't have a better wording for it21:40
drobillaOther specs have a max, just like ours.21:40
falktxvst doesn't have a max21:40
drobilla(Which is telling)21:40
drobilla... yes it does21:40
falktxardour doesn't send vst currentBufferSize as 819221:41
falktxvst has a current buffer size and sample rate21:41
falktxnot a max21:41
falktxthe "current" buffer size in vst is only a hint21:41
falktxhosts can call with higher values21:41
rgareusfalktx: right.  currentBufferSize  is *current*  and not MAX21:42
drobillaI see maxSamplesPerBlock21:42
drobillaClearly Ardour doesn't even vaguely have any such thing21:42
falktxthe 8192 was imposed by rgareus21:42
rgareusdrobilla, falktx:  https://paste.debian.net/311125/    #<  ardour support for LV2 current aka nominalBlockLength21:42
drobillas/Ardour/tons of things/21:42
falktxrgareus: thanks, let's see how this discussion goes first21:43
rgareusfalktx: 8192 is ardour's max.  (well, jack's really, but other engines follow)21:43
falktxrgareus: I also need to implement min/current/max in carla engine+plugin class, soon21:43
falktxthat way carla-lv2 can work again21:43
drobillaI think it's pretty clear what my position on this is21:43
rgareusmax is max.   na naa naaaaaah naah nah.  max is max.21:44
drobillaand fine, I'll add the property, with a description about optimization or whatever, because this actually makes sense21:44
drobillawhat y'all are *actually* seeking to do with it is straight up idiotic21:44
falktxsigh21:45
drobillaMeh.  You asked.21:45
falktxdrobilla: do you find the vst currentBlockSize idiotic too?21:45
rgareusdrobilla: a lot of plugins got used to expect the /buggy/ jalv behaviour   maxBufferLength  == *current*21:45
drobillaand there is no reason why too large a max should mean anything doesn't work anyway21:45
rgareusdrobilla: or even old ardours.    now that ardour changed  to say  max = max = 8192 and not current.    -> uproar.21:46
drobillathis "current" business is confusing.21:46
rgareuswell, it is.21:46
drobilla"current max" is a perfectly reasonable thing.21:46
rgareusbut it was kinda wrong for years..  and nobody noticed except for occasional crashes when increasing the jack_bufsiz ..21:46
drobillaI very highly doubt the jalv bug had much influence on anything whatsoever21:47
rgareusand some plugins like guitarix don't even crash..  just produce silence.21:47
falktxrgareus: which again, carla+distrho/dpf did not have21:47
drobilla(Largely due to almost nobody actually dynamically tinkering their jack block size to begin with, which most drivers don't even support)21:47
rgareusfalktx: yeah..21:47
drobillaI am just extremely irritated at this attempt to invent nonsense and subsequently abuse it to work around a straightforward bug21:48
brummerresonable, may be, but used in the past "wrong" by any hosts, because of the examples given21:48
rgareussoo.   long story short. we either keep the "old way"   and update the documentation: "max can change any time"    or we introduce a new property for the few cases where a plugin (mainly VST ports) needs it.21:48
drobillaeffSetBlockSize: "maximum number of sampleframes an audio block may contain"21:49
* rgareus votes for the latter. http://lv2plug.in/ns/ext/buf-size/#maxBlockLength is pretty solid as is. just mention it must not change.21:49
rgareusdrobilla: audioMasterGetBlockSize  is what you want to look up21:50
*** rncbc has quit IRC21:51
falktxI'm fine with max being static21:51
falktxbut the docs have to state that21:51
drobillaI would assume the definition of that is the same "block size" as above21:51
rgareusdrobilla: which may or may not be the current run() size21:52
drobillargareus: Prove it.21:52
rgareusdrobilla: split-cycles21:52
drobillargareus: run might be called with *less*, sure.21:52
drobillaEverything I see suggests this is a true max21:52
falktxhttp://learn.juce.com/doc/classAudioProcessor.php#a3b59606e6e85f262d465c7f779ca0c4a21:53
drobillaI don't actually have a problem with such a thing21:53
drobillaEverybody talking about using it as a max, to allocate buffers, gives me a ton of reason to want this to not exist21:53
rgareusfalktx: nice link.  "The actual block sizes used may be larger or smaller than this, and will vary between successive calls."21:54
drobillaBecause if *you* people get so confused, lord knows what John Q New Implementer will think21:54
drobillaDropouts are bad, mmkay?21:54
rgareusdrobilla: john implementer will be happy so have doc.   like the one linked from falktx :)21:54
drobillaBut fine.  I tire of this.21:55
rgareusthey managed to churn out VSTs.21:55
drobillaYou get your stupid property.21:55
drobillaI can't stop anyone from writing shitty plugins that drop out all the time for no good reason anyway.21:55
rgareusdrobilla: it's a sad world, indeed.21:55
drobillaIt's sadder when you encourage such things21:56
rgareusI was not a proponent of this  property myself at first..    mostly became pragmatic.21:56
drobillaPragmatic is using the bloody max and calling it a day :P21:56
falktxI'm not the best one to explain why we need this, but we do21:58
drobillaIt's an optimization.  We do not "need" it at all.22:00
drobillaThat much is certain.22:00
brummerFor sure, I didn't need it any more, and, still, if it get implemented, I wont trust it.22:01
falktxif you want to run 100+ plugins all with wasted resources, fine22:01
drobillabrummer: Its definition is not meaningful enough to be "trusted" in any sense at all anyway22:02
brummerfalktx>exactly22:02
drobillanominal block size of 1024?  Sure.  run(1024); run(1025); run(1026); run(1027);22:02
falktxbut we can make that definition!22:02
drobillaNo we can't.22:02
brummerIf I can't trust it, I dont need it22:02
falktxI sure can22:02
drobillaBecause if we did it would be equivalent to maxBlockLength22:02
falktxbut max is static22:02
falktxI don't want a static, I want the smaller dynamic one22:03
drobillaDefine "static"22:03
falktx8192 static22:03
falktxas in, never changes, ever22:03
drobillaThat is indeed the max ardour currently reports22:03
drobillaWhy I'm the only one who thinks fucking up LV2 because of that is a problem is way beyond me22:04
falktxyes, and that's exactly the value I'm *not* interested in22:04
drobillaIf there's a nice thing abour proprietary specs it's that this shit just doesn't even get considered, let alone happen :P22:04
drobillafalktx: and why are you interested in the other one?22:04
falktxif you want to run 100+ plugins all with wasted resources, fine22:04
falktxwhy are not NOT interested on it?22:04
drobillaIndeed, fine.  You are a plugin.  You do what the host tells you.22:04
drobillafalktx: Burden of proof is on you.22:05
falktxnot all plugins use it yeah, but some will22:05
drobillaTo do what?22:05
falktxif you want to run 100+ plugins all with wasted resources, fine22:05
falktxdo I need to say it again?22:05
drobillaOh, fuck off.22:05
* drobilla works22:05
* falktx doesn't understand how this is not just obvious22:05
drobillaIf you can't even be bothered to give a "why", don't start the god damned conversation in the first place.22:06
falktxI don't make complex plugins, I'm not the most knowledgeable person to fully answer that22:06
falktxbut optimization is one big reason22:06
drobillaIt's one reason.22:07
drobillaVirtually the entire thread leading up to this is *not* about that, is my point.22:07
drobillaand also has zero to do with wasted resources22:07
drobillaNo matter how many times you paste it22:07
falktxwhatever reasons discussed here were not made by commercial vendors22:07
falktxask them if you really want to know what they think22:08
drobillaI'll wrap this up with some meta:22:09
drobillaIn the course of this discussion, there's been lamenting the arrival of the benevolent dictator, lamenting the fact that there is one and not more maintainers, and discussing hosting the property in the first place.22:09
drobillaThere has not been the 5 line patch which I would have just applied and got on with my life.22:09
drobillaDespite the super magical git repository now existing which I was repeatedly ensured would cause just that to happen22:10
falktxwell, tbh, you're not the best person to discuss things with22:10
drobillaSure aren't!22:10
falktxdrobilla: I already have 2 changes for lv2 btw22:10
* rgareus still rebases & posts regular jalv patches every months - eagerly awaiting LAD.git22:10
falktxbut because you're always so busy I didn't really made much from them22:11
* drobilla shrugs22:11
drobillaJust saying22:11
rgareusdrobilla: I can write up the spec and file a pull-request22:11
falktxhttps://github.com/falkTX/lv2/commit/0c8b704450019e6cb0fab2794b884e1cbb536e9522:11
rgareusdrobilla: but I wanted to discuss this first rather than /force/ a documentation change22:11
falktxhttps://github.com/falkTX/lv2/commit/cc48b1f968ce2d07d1e50a3d7fb28ad0df11edad22:11
drobillaThis, right here, fucks up my life.  I'm already having a nervous breakdown as it is22:11
falktx^that last one needs some revision on the writing22:11
drobillaBut until I'm wise enough to ONLY communicate in emails and patches, I'll just bitch about it instead until I break down22:12
* rgareus hands drobilla a cigaratte22:13
rgareuswe need some fresh air22:13
drobillaGetting some fresh air then doing the work I need to do tonight WAS the agenda22:14
drobillaThen IRC happened22:14
rgareusfalktx: can you have a quick look at https://paste.debian.net/311125/  line 82..   the LV2_Options_Option  will only be valid during the callback.22:14
rgareusfalktx: that may not be right.22:14
brummerI'm vote for falktx as a co maintainer22:15
rgareusbrummer: he is alredy high-inquistor22:15
drobillaIt's kind of a given that set options are valid until proven otherwise (i.e. changed)22:15
falktxme and drobilla have very different viewing points of very different things22:15
rgareusdrobilla: the complete  LV2_Options_Option  block or only the parameter?22:16
falktxI vote for rgareus as co-maintainer22:16
drobillaI also vote for rgareus.  No offense :)22:16
brummernot inquisor, but co-mainatiner is what is needed22:16
falktxrgareus: you need to pass that option during instantiate too22:17
rgareusin this specific case  line 87   int32_t block_length    could just become a class variable  ..22:17
rgareusthanks for the confidence.22:17
drobillafalktx is too keen on kludging around things in specs and APIs22:17
rgareusnow I wish I had less on my plate.22:17
drobillaYou don't need someone who is *quite* as demanding an asshole as myself for such roles, but you do a little bit :)22:17
falktxyeah, 2 asshole leading a project would lead to disasters... :S22:18
rgareusthe funny thing is: I don't think neither of you guys is an a*hole :)22:18
falktxthat doesn't sound right22:18
drobillaWell, that's mainly a joke.  Spec/kernel/API maintainers just need to say no, lots.22:19
drobillargareus: I'm not an asshole, but I play one on the Internet :D22:19
falktx2 stubborn guys leading a project would lead to disasters...22:19
rgareusyeah, I figured.22:19
brummerand, no offence here, but rgareus is a bit to "reticent" for thsi rple22:19
rgareusmuch more easy on a bus-trip at LAC.22:19
drobillaThough seriously, I've received like..... I don't know, 2 patches for LV2, ever22:20
drobillaMaintenance burden is really not the bottleneck here22:20
drobillaOkay, not 2.  Many of the extensions came from others entirely.  The bus factor being > 1 would certainly be good, but "maintenance" isn't really the issue.22:22
rgareuswell,  multiply this 4 person discussion by 100 and you'll know why design by comitte sucks.  C++11 specs, anyone?22:22
drobillaDesign by la-de-da decentralized everything didn't work out so well either, but live and learn :)22:22
brummermaintenance is the bottleneck, because conversation with you is realy hard (bussy, any one?)22:23
drobillabrummer: You're not so hot yourself on that one, if you hadn't noticed22:23
brummerumpf22:23
rgareusdrobilla: hey, he won the FAUST award with an LV2 plugin22:24
brummerbut I didn' mention myself to do that22:24
rgareusdrobilla: and you were even in the room.22:24
falktxI think we also need more people22:24
drobillargareus: I clearly didn't say he was worthless and does nothing of value :P22:24
falktx4-5 people debating over a thing will get repeated arguments quickly22:24
drobillaIndeed22:24
falktxwe need commercial pro-vendors22:24
rgareusright, *hot* is not what it'd call him either :)22:25
drobillaand being the arbiter of acceptance (i.e. spec maintainer) puts you in the asshole role inherently22:25
falktxthe sort of people that are making real money with this22:25
drobillaBecause you have to convince me.  and it's frustrating if you can't.22:25
drobillaI get it, but that's the game.22:25
falktxI suck at convincing others22:25
rgareusdrobilla: as long as we can call you bastard, all is fine :)22:25
falktxbenevolent bastard? ;P22:26
drobillaI don't care.  Part of the game is not getting all personally bent out of shape about development arguments on the Internet22:26
drobillaThat's just how things get done22:26
drobilla(Plus I am a bastard, so fair enough)22:26
falktxrgareus: anyway, that looks good, just needs to have the option passed during initialization please22:28
falktxrgareus: also http://lv2plug.in/ns/ext/buf-size/#nominalBlockLength is wrong, there's an extra / before #22:28
drobilla10 points for anyone who can configure apache to fix that one :/22:29
rgareusfalktx: ok. I'm on it.22:29
drobillaI don't think the pages can be in their own directories and still have proper slashless links22:29
falktxMOD got this right though22:29
falktxsee eg, http://portalmod.com/ns/modgui#iconTemplate22:30
drobillaYes, you just can't have each be its own directory and do that22:30
drobillaWhich unfortunately conflicts with the bundle thing22:30
drobillaI could fix it by putting the spec page in the parent directory, just a messy job and the nice self-containedness goes away22:31
drobillaBut I try not to let my obsessive compulsive nature think to much about the mess that is the LV2 directory structure...22:31
drobilla(extensions/ is the worst)22:32
brummerapropos comercial vendors, when I get it right, falktx get pait by the MOD currently, so, comercial vendors be on board, when falk takes a more role then a  inquisor22:32
falktxdrobilla: I seem to have the same issue now though, in https://moddevices.github.io/mod-sdk/modgui/#iconTemplate22:33
falktx:(22:33
rgareusdrobilla, falktx:   https://paste.debian.net/311131/22:33
falktxbrummer: soon, MOD is not actually selling stuff. just pre-selling22:33
*** curlymorphic has quit IRC22:34
rgareusbrummer: I also sell LV2 plugins (with Mixbus) commercially22:34
brummerfalktx>I realy hope it males it to paid you very well22:34
* falktx would like that too...22:35
brummers/males/makes/22:35
brummerI'm sure it will.22:37
drobillaI look forward to graduating and once again slowly running out of money trying to actually pay the rent with this free software nonsense :P22:37
* rgareus should have postponed this discussion. another day without a page written on the thesis22:38
drobilla^ this22:39
drobillaWell, written benchmark in my case.22:42
drobillaMotivation has been pretty hard to come by for a loooooong time now22:42
brummerI'm never have a interesst to get paid for my work in open source, and I refuse it. The ever only graduate I accept was the one from GRAME FAUST.22:44
drobilla"nominal" is a bit weird but I can't think of anything better22:45
falktxin my view MOD is not being paid for the opensource work, but for the cloud infrastructure and hardware development + integration22:45
drobillaMust be nice :P22:45
falktxif I had a place to live it would be :P22:45
falktxdamn berlin22:46
drobillaI'm pretty much doing a PhD and powerfully hate my life because I didn't make enough doing open source stuff22:46
drobillaNot that I tried very hard, but hey22:46
brummerI'm glade about the MOD22:46
falktxwell, it's not starting so well tbh22:47
falktxwe're already late for the kickstarter shipment... :(22:47
brummerhey, I'm sure you'll make it, lately, but make it22:49
ssj71oh my google. I leave for a couple hours and you guys...22:49
ssj71I'll never get through that backlog22:49
falktxthe important part is the hardware, that's the thing we're getting really precise about22:49
rgareusbrummer: well, there's some truth to "never make your hobby your profession".   but if I can get paid for what you like to do anyway, that's fine with me.22:49
falktxsoftware can be fixed later22:49
rgareusssj71: did you run out of popcorn?22:49
ssj71lol. no spent 4 hours loading and unloading fencing supplies :)22:50
falktxshit, I hate writing typos on emails22:50
brummerrgareus> well, for me not, any more, I've loss to much "hobys" this way.22:51
falktxcan't edit them now22:51
ssj71I'll go through the emails and comment if I have any opinion22:51
falktxthe important conversation happened on IRC22:54
falktxI wouldn't bother too much22:54
rgareusfalktx, drobilla: pushed to ardour-git.   I dare way you have a week or three until Ardour-4.3    for this to become /final/.22:57
falktxnow you're the fast one22:58
falktxwait for me man22:58
* falktx has not done much in kx or carla since working for MOD...22:58
brummercould you gime a link so that a pure plugin autor know what is to be expected22:59
*** tytel has quit IRC23:03
brummerfalktx> I still wonder why the MOD coose to use ingen as endine instead carla, as carlo open a lot more opinions23:06
falktxthe change was not made during my time23:06
falktxtoo late now23:06
brummersade23:07
falktxbut I'll try to convince Gian next year :P23:07
brummerI'll come along near time in beta hause, . .23:09
drobilla"open a lot more opinions"?23:09
falktxbrummer: we changed to a different location now23:09
brummerwere you are now23:10
falktxbrummer: http://www.schleicher-electronic.com/en/contact/23:10
falktxWilhelm-Kabus-Str. 21-3523:10
falktxit's where the assembly will be done23:10
brummerit's around 8 kilometers from my base23:17
brummerso I'll meat you in the next day's23:18
falktxrgareus: thanks for the 09caf8336f4ec681668a940e7df00ec18b3fd83623:19
falktxrgareus: I'll try a nightly build soon and verify if my plugins work there, sometime soon23:19
falktxso I guess we'll go with nominal as name. good for me23:21
brummerdrobilla>yes, unbounded to the requirments of a overhelmd open source spec maintainer. (I hope, you know, I'm not the asshole as it seems to be)23:21
falktxrgareus: oh also, https://distrho.github.io/DPF/classPlugin.html#a2643e638f62cfd4990247ec66bed60d223:21
falktxrgareus: already prepared for a real nominal (not <= nframes) in DPF, same as juce23:21
rgareusfalktx: nice. so this das was not wasted after all :)23:22
drobillaMeh.  I have been and will continue to do the things MOD requires of Ingen23:22
falktxsoon ingen will have a real stress test23:23
falktxI hope it handles it well :)23:23
drobillaIt has always been designed from the ground up to be suitable for such things, architecturally23:24
drobillaJust needs some features and other changes required of the new use case23:24
drobillaThough all that bundle unloading stuff I still have zero idea what to do about23:24
falktxit's for when a user removes some plugins23:25
falktxor sometimes updates it23:25
falktxwe need to remove the old version, then add the new one23:25
falktxif it's being used that gets tricky...23:25
drobillaDoesn't strike me as a click-free thing23:25
drobillaIndeed.23:25
falktxnot click-free, there will likely be xruns when installing plugins23:26
falktxbut I think that's fine23:26
drobillaWell the *way* easier solution is to just reload everything23:26
drobillaSomething more fine-grained might be possible, but hard to get right, and probably way more problematic as a result23:27
* falktx -> sleep23:29
*** frinknet has quit IRC23:30
*** falktx has quit IRC23:34
*** brummer has quit IRC23:36

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