Sunday, 2016-09-18

*** unclechu-audio has joined #lv200:35
*** trebmuh has quit IRC01:52
*** EntropySink has quit IRC01:57
*** EntropySink has joined #lv202:00
*** EntropyS1nk has joined #lv202:05
*** EntropySink has quit IRC02:06
*** unclechu-audio has quit IRC03:09
*** falktx` has joined #lv203:16
*** falktx has quit IRC03:21
*** ventosus has quit IRC07:47
*** ventosus has joined #lv207:47
*** ricardocrudo has joined #lv208:49
ventosusdrobilla: my https://open-music-kontrollers.ch/lv2/moony event metaplugin has dynamically definable properties09:36
rgareusventosus: nice!10:45
* rgareus should lift that event system for Ardour lua DSP scripts10:46
drobillaventosus: Ah, right.  I'll keep that in mind10:48
drobillaI need to write a plugin to execute ardour's FORTHey MIDI transform programs, though one could argue the Lua stuff has kind of made this vestigial10:49
drobillaIt is a pretty nice way to write streaming transforms though10:50
rgareuslooking at the code. are plugins expected to call mlock() in instantiate for their instance?10:51
rgareusthe LV2 Atom API is arguably nicer to use in scripts that ardour's libevoral11:00
rgareusso moony does not have a dedicated data-structure for events, either. just bindings to script various LV2 atom operations11:08
drobillaI wondered about that when writing the new lilv python bindings... can't use any of the utilities in bindings because they're all static inline11:09
drobillaThough I suppose most aren't terribly useful in other languages anyway, except perhaps the forge11:09
*** trebmuh has joined #lv211:40
rgareusdrobilla: can you review https://github.com/x42/lv2/blob/master-rg/lv2/ardour.org/ns/ext/misc/ardour-misc.ttl#L20  ?11:57
drobillargareus: Why the funny (different prefix) URIs?11:59
rgareusdrobilla: I can't use  lv2plug.in  until it's /official/11:59
drobillaI mean /lv2/ext#foo and /lv2/procesing#foo12:00
rgareusthe idea is/was to make a HTML page for those at some point12:00
drobillaAnyway, if enable is an integer it should have that as a range12:00
rgareusand different extensions would go to different pages12:01
drobillaWhat's the use case for no sample accurate controls?12:01
rgareusindeed.   xsd:boolean    is wrong12:01
rgareus"don't break the process cycle on my account"12:01
rgareuse.g a convolver with an additional gain contrl.12:01
rgareusthe gain may be automated and break the process cycle at automation events.  which in turn would make the convolver mad (block-size changes)12:02
drobillaCan we just define all the bypass states even if they're not implemented, or is even the set of sensible states (with latency) unclear?12:02
drobillaI'd rather just add simple stuff like this to LV2 than have it scattered everywhere12:03
drobillaOkay.12:03
rgareussure can. -1: insertion/removal:12:03
rgareusbut  that also needs feedback from the plugin to the host.12:03
drobillaSeems like the plugin would have to define what "regular" is for that to really mean anything12:03
* drobilla is really starting to hate this HTML in Turtle thing and needs to get on that Markdown project12:04
rgareusthe only criticism so far was that the api is postive.  "enable" = 1     and not "bypass"12:06
rgareuscriticized by falktx in this case12:06
drobillaI guess the trouble with non-boolean is the magic widget won't be a toggle12:06
drobillaI had that thought, but either seems valid12:07
rgareusthe motivation here is to allow -1, 0, 1   -- it can be a toggle. since LV2 toggle is <=0  vs > 012:07
drobillaHaving a control called "bypass" would be more typical though12:07
rgareusand <=0 will be bypassed in either case12:07
drobillaYeah, but nothing to say it acts toggley12:07
rgareussince it's a port designation.  the port can have additional properties12:08
drobillaNo real way around that though.  Typically you'd make such a thing an enumeration, but the states only make sense for internal host control12:08
drobillatrue12:08
rgareusdrobilla: I don't know if one can mix + enforce it.   If a port has this designation it also must have  XXX properties12:08
rgareusdrobilla: I've added this to Ardour a few months ago and was just reminded by https://forum.moddevices.com/t/clicks-and-pops-when-changing-effects/592/712:09
rgareusfalktx said he'll add this to the MOD at some point as well.12:09
drobillaWell, I guess a partially defined designation is better than nothing12:11
drobillaI'm not sure the click-free latent removal is even possible anyway, or at least in any way that's not equivalent to the host just fading the thing out12:11
rgareusdrobilla: personally I find "bypass" always confusing. esp when coupled with a red LED which when lit means "not bypassed"12:11
drobillaYeah.  Some gear is confusing that way12:12
drobillaBut that's the LEDs fault, anything that looks toggley called "bypass" is pretty clear12:12
rgareusfor LV2 itself it make no real difference.  >0  or <=0  meh.  it just needs to be documented in a clear way.12:13
drobillaThough, on that, labeling it "bypass/enable" is definitely the most confusing of all possible choices :)12:13
rgareushah12:14
drobilla(Won't show up for a port anyway, but still)12:14
drobillaI guess it'd be work in Ardour to switch the semantics now12:14
rgareusindeed  and the a-plugins12:15
rgareusthe only plugin using it which is not bundled with ardour is fil4.lv212:16
rgareusAFAIK12:16
rgareusbut the URI will need to change anyway12:16
rgareusso that's fine12:16
drobillaSo I guess the ultimate idea is that 0 is latent bypass, and -1 is non-latent bypass?12:17
drobillaEven without latency you kind of need feedback to actually do this right, but we can still ignore that part12:18
drobilla(might not be enough frames in the cycle to bypass)12:18
rgareusdrobilla: yeah, feedback is only needed for click-free insert/removal12:27
*** unclechu-audio has joined #lv212:29
rgareusdrobilla: for latent effects the only reliable way I can think of is :  fade to silence...  remove latency .. fade in.12:31
rgareusthere might be some FX that could use dry/wet  x-fade12:31
rgareusfor delays dry/wet can work I suppose12:31
* drobilla shudders to think of the latency comp situation there12:32
drobillaAnyway, bufsz:preferRegularBlockLength and params:enable I suppose?12:33
drobilla(buf-size has a stupid name, oh well)12:34
rgareusbufsz, yes12:39
rgareusdrobilla: given that isSideChain is in lv2core   'enable' could also go there12:39
rgareushttp://lv2plug.in/ns/lv2core/#reportsLatency  is also in the code12:39
rgareuscore*12:39
rgareusI could not find a pattern for port designation namespacing.12:40
rgareushttp://lv2plug.in/ns/lv2core/#enableProcessing   maybe12:42
drobillaor that12:43
drobillargareus: I am deep in the guts of Ingen working on undo/redo/atomic bulk event execution/etc, but I'll add them in a bit12:59
*** oofus has quit IRC13:09
*** edogawa has joined #lv213:26
*** rncbc has joined #lv214:13
*** oofus has joined #lv214:26
drobillargareus: I think I like describing this as "coarse" block length better14:31
*** EntropyS1nk has quit IRC14:34
*** EntropySink has joined #lv214:35
drobillargareus: http://lv2plug.in/git/cgit.cgi/lv2.git/commit/?id=f2dcf90d3185a7493f98a51352c6fde80b36b58f14:43
drobillargareus: http://lv2plug.in/git/cgit.cgi/lv2.git/commit/?id=34d5cb311a893937f5507a6bfe208af819beb95514:43
rgareuscool!14:44
rgareusdrobilla: I'll update Ardour soon (later today or tomorrow)14:45
*** EntropySink has quit IRC14:51
*** artfwo has joined #lv214:59
*** EntropySink has joined #lv215:05
*** EntropyS1nk has joined #lv215:20
*** EntropySink has quit IRC15:22
*** EntropyS1nk has quit IRC15:23
*** EntropySink has joined #lv215:31
*** EntropySink has quit IRC15:58
*** EntropySink has joined #lv216:00
*** EntropySink has quit IRC16:09
*** EntropySink has joined #lv216:12
*** oofus_lt has joined #lv216:21
*** Yruama_Lairba has joined #lv216:23
*** oofus has quit IRC16:32
*** EntropySink has quit IRC16:35
*** EntropySink has joined #lv216:44
*** EntropySink has quit IRC16:51
*** deva has joined #lv216:54
*** oofus has joined #lv216:55
*** EntropySink has joined #lv216:55
*** oofus_lt_ has joined #lv216:56
*** ricardocrudo has quit IRC16:59
*** oofus_lt has quit IRC17:01
*** EntropySink has quit IRC17:05
*** oofus_lt_ has quit IRC17:08
*** oofus_lt has joined #lv217:08
*** EntropySink has joined #lv217:10
ventosusdrobilla: I'm a bit at a loss on how to properly name this URID "Blank ID" feature17:13
ventosusis this any good? https://github.com/ventosus/lv2/commit/4112b89a369f0db7bee42432837b1aa506c2320417:14
*** EntropyS1nk has joined #lv217:15
*** EntropySink has quit IRC17:17
rgareusdrobilla: https://github.com/Ardour/ardour/commit/e2b06156c9106939fb23d8ff4567cf234f7d3001  and https://github.com/Ardour/ardour/commit/aca6e667a88100c061b71de0346312727f1938d617:22
*** EntropyS1nk has quit IRC17:22
*** unclechu-audio_ has joined #lv217:25
*** oofus_lt has quit IRC17:25
*** oofus_lt has joined #lv217:26
*** EntropySink has joined #lv217:26
*** unclechu-audio has quit IRC17:27
drobillaventosus: For the record, LV2 always uses odd numbers for non-releases17:28
drobillaventosus: mmmmmm I dunno... bit overloadey with the RDF concept of a blank node.  Which is maybe a good thing or a bad thing17:29
* drobilla shrugs17:29
drobillaventosus: Good as anything I guess17:29
*** EntropySink has quit IRC17:30
drobillaventosus: Thanks for the proper patch.  I'm going to take a break from this tedious release QC process and Go The Fuck Outside(TM) now, but seems good to me17:32
drobillaSidenote: it'd be nice if we had some kind of fancy external example snippet thingie to avoid too much (non-verifyiable via compiler) code in comments17:32
* ventosus always mixes up even and odd17:36
ventosusthe example snippet is not really needed, could as well be (re)moved17:39
ventosushave fun outside!17:40
drobillaNah, examples are good.  Just thinking fancy, as I do :)17:40
* drobilla is pathologically paranoid of all things not machine verifiable17:40
ventosus:)17:40
*** oofus_lt_ has joined #lv217:45
*** oofus_lt has quit IRC17:49
*** deva has quit IRC17:55
Yruama_Lairbahello, i'm interested about LV2 plugin developpment, even if i don't want to do it now18:07
Yruama_Lairbais it easy compared to VST plugin ?18:10
drobillaThat would depend on your pre-existing skill-set, and what you want to do, and how you want to define "easy"...18:15
drobillaBut if I had to pick in general, not really, no18:15
Yruama_Lairbafor example, is it easy to do graphical interface for a lv2 ?18:17
drobillaIt's roughly as easy as writing a GUI in whatever you choose to use.  LV2 does not provide a GUI toolkit itself18:18
Yruama_Lairbacan we use general GUI framwork like qt,wxwidget or FLTK ?18:18
drobillaDepending on where you're targeting your plugin releases, there are pros and cons with various choices, but yes18:19
*** EntropySink has joined #lv218:20
Yruama_Lairbaideally i'd like to target several platform and several plugin format18:21
drobillaIf you want to make binary releases on Windows, OSX, then Qt and Gtk are out18:22
drobilla(Not an LV2 thing, an inherent thing)18:23
Yruama_Lairbai fact, i ask this question because when a tried to do VST with a gui, i use the provided gui toolkit, but the gui appearded to be inconsitent across diffferent host18:24
Yruama_Lairbaand, functionnality where very limited18:24
Yruama_Lairbasorry, i don't understand what you mean when you say "Qt and GTK are out" (i'm not english native)18:28
drobilla"out" as in not suitable.  You can't use them.18:28
Yruama_Lairbawhy ? it's thechnical issue or a licsence issue ?18:29
drobillaThey aren't designed for plugins18:29
drobillaIt basically only works if both the host and plugin are linked against the exact same version18:29
drobillaSo, essentially, free Unix where it's a system package, and not anywhere else18:30
drobillaThings like FLTK that can live on their own and just work with a native window handle are fine18:30
Yruama_Lairbado know other gui frameworks suitable for plugin ?18:32
drobillaToo many to count18:33
drobillaThere's practically as many one-offs as there are plugin developers :)18:33
drobillaPart of why JUCE is so popular18:34
Yruama_Lairbabut free version of JUCE is GPL, I think can't use it for VST18:37
drobillaFLTK is the most well-known thing that's suitable.  There's a "ntk" fork of it18:41
drobillaVarious LV2 devs have tackled it in their own way.  Pugl gets you the basics, robtk is a gtk-like API, avtk its own thing, rutebaga another...18:42
drobillaCouple of us tinkering with a nanogui fork lately18:42
drobillaand so on.  Any of the myriad toolkits on the 'net that will give you a native window handle will do18:43
*** oofus_lt_ has quit IRC18:44
drobillaThough many if not most aren't plugin suitable (for often stupid, minor reasons)18:44
drobillaIt's kind of a nichey thing.  All the proprietary devs usually just baked their own from the ground up and kept it to themselves18:44
Yruama_Lairbaouch, seems very complicated18:49
drobillaWelcome to GUI development18:50
Yruama_Lairbai think i will take take my time and go step by step when I will start writing LV2/DSP) plugins.18:55
*** NickSB has quit IRC19:19
*** NickSB has joined #lv219:20
*** drobilla has quit IRC19:43
*** NickSB has quit IRC19:50
*** NickSB has joined #lv219:52
*** dsheeler has quit IRC20:02
*** oofus has quit IRC20:51
*** drobilla has joined #lv221:18
drobillaMan, I got sloppy there for a while.  Significant amount of work making the test suites run valgrind-clean again22:06
*** rncbc is now known as rncbc|AFK22:07
*** edogawa has quit IRC23:18

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