*** unclechu-audio has joined #lv2 | 00:35 | |
*** trebmuh has quit IRC | 01:52 | |
*** EntropySink has quit IRC | 01:57 | |
*** EntropySink has joined #lv2 | 02:00 | |
*** EntropyS1nk has joined #lv2 | 02:05 | |
*** EntropySink has quit IRC | 02:06 | |
*** unclechu-audio has quit IRC | 03:09 | |
*** falktx` has joined #lv2 | 03:16 | |
*** falktx has quit IRC | 03:21 | |
*** ventosus has quit IRC | 07:47 | |
*** ventosus has joined #lv2 | 07:47 | |
*** ricardocrudo has joined #lv2 | 08:49 | |
ventosus | drobilla: my https://open-music-kontrollers.ch/lv2/moony event metaplugin has dynamically definable properties | 09:36 |
---|---|---|
rgareus | ventosus: nice! | 10:45 |
* rgareus should lift that event system for Ardour lua DSP scripts | 10:46 | |
drobilla | ventosus: Ah, right. I'll keep that in mind | 10:48 |
drobilla | I 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 vestigial | 10:49 |
drobilla | It is a pretty nice way to write streaming transforms though | 10:50 |
rgareus | looking at the code. are plugins expected to call mlock() in instantiate for their instance? | 10:51 |
rgareus | the LV2 Atom API is arguably nicer to use in scripts that ardour's libevoral | 11:00 |
rgareus | so moony does not have a dedicated data-structure for events, either. just bindings to script various LV2 atom operations | 11:08 |
drobilla | I wondered about that when writing the new lilv python bindings... can't use any of the utilities in bindings because they're all static inline | 11:09 |
drobilla | Though I suppose most aren't terribly useful in other languages anyway, except perhaps the forge | 11:09 |
*** trebmuh has joined #lv2 | 11:40 | |
rgareus | drobilla: can you review https://github.com/x42/lv2/blob/master-rg/lv2/ardour.org/ns/ext/misc/ardour-misc.ttl#L20 ? | 11:57 |
drobilla | rgareus: Why the funny (different prefix) URIs? | 11:59 |
rgareus | drobilla: I can't use lv2plug.in until it's /official/ | 11:59 |
drobilla | I mean /lv2/ext#foo and /lv2/procesing#foo | 12:00 |
rgareus | the idea is/was to make a HTML page for those at some point | 12:00 |
drobilla | Anyway, if enable is an integer it should have that as a range | 12:00 |
rgareus | and different extensions would go to different pages | 12:01 |
drobilla | What's the use case for no sample accurate controls? | 12:01 |
rgareus | indeed. xsd:boolean is wrong | 12:01 |
rgareus | "don't break the process cycle on my account" | 12:01 |
rgareus | e.g a convolver with an additional gain contrl. | 12:01 |
rgareus | the 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 |
drobilla | Can 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 |
drobilla | I'd rather just add simple stuff like this to LV2 than have it scattered everywhere | 12:03 |
drobilla | Okay. | 12:03 |
rgareus | sure can. -1: insertion/removal: | 12:03 |
rgareus | but that also needs feedback from the plugin to the host. | 12:03 |
drobilla | Seems like the plugin would have to define what "regular" is for that to really mean anything | 12:03 |
* drobilla is really starting to hate this HTML in Turtle thing and needs to get on that Markdown project | 12:04 | |
rgareus | the only criticism so far was that the api is postive. "enable" = 1 and not "bypass" | 12:06 |
rgareus | criticized by falktx in this case | 12:06 |
drobilla | I guess the trouble with non-boolean is the magic widget won't be a toggle | 12:06 |
drobilla | I had that thought, but either seems valid | 12:07 |
rgareus | the motivation here is to allow -1, 0, 1 -- it can be a toggle. since LV2 toggle is <=0 vs > 0 | 12:07 |
drobilla | Having a control called "bypass" would be more typical though | 12:07 |
rgareus | and <=0 will be bypassed in either case | 12:07 |
drobilla | Yeah, but nothing to say it acts toggley | 12:07 |
rgareus | since it's a port designation. the port can have additional properties | 12:08 |
drobilla | No real way around that though. Typically you'd make such a thing an enumeration, but the states only make sense for internal host control | 12:08 |
drobilla | true | 12:08 |
rgareus | drobilla: I don't know if one can mix + enforce it. If a port has this designation it also must have XXX properties | 12:08 |
rgareus | drobilla: 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/7 | 12:09 |
rgareus | falktx said he'll add this to the MOD at some point as well. | 12:09 |
drobilla | Well, I guess a partially defined designation is better than nothing | 12:11 |
drobilla | I'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 out | 12:11 |
rgareus | drobilla: personally I find "bypass" always confusing. esp when coupled with a red LED which when lit means "not bypassed" | 12:11 |
drobilla | Yeah. Some gear is confusing that way | 12:12 |
drobilla | But that's the LEDs fault, anything that looks toggley called "bypass" is pretty clear | 12:12 |
rgareus | for LV2 itself it make no real difference. >0 or <=0 meh. it just needs to be documented in a clear way. | 12:13 |
drobilla | Though, on that, labeling it "bypass/enable" is definitely the most confusing of all possible choices :) | 12:13 |
rgareus | hah | 12:14 |
drobilla | (Won't show up for a port anyway, but still) | 12:14 |
drobilla | I guess it'd be work in Ardour to switch the semantics now | 12:14 |
rgareus | indeed and the a-plugins | 12:15 |
rgareus | the only plugin using it which is not bundled with ardour is fil4.lv2 | 12:16 |
rgareus | AFAIK | 12:16 |
rgareus | but the URI will need to change anyway | 12:16 |
rgareus | so that's fine | 12:16 |
drobilla | So I guess the ultimate idea is that 0 is latent bypass, and -1 is non-latent bypass? | 12:17 |
drobilla | Even without latency you kind of need feedback to actually do this right, but we can still ignore that part | 12:18 |
drobilla | (might not be enough frames in the cycle to bypass) | 12:18 |
rgareus | drobilla: yeah, feedback is only needed for click-free insert/removal | 12:27 |
*** unclechu-audio has joined #lv2 | 12:29 | |
rgareus | drobilla: for latent effects the only reliable way I can think of is : fade to silence... remove latency .. fade in. | 12:31 |
rgareus | there might be some FX that could use dry/wet x-fade | 12:31 |
rgareus | for delays dry/wet can work I suppose | 12:31 |
* drobilla shudders to think of the latency comp situation there | 12:32 | |
drobilla | Anyway, bufsz:preferRegularBlockLength and params:enable I suppose? | 12:33 |
drobilla | (buf-size has a stupid name, oh well) | 12:34 |
rgareus | bufsz, yes | 12:39 |
rgareus | drobilla: given that isSideChain is in lv2core 'enable' could also go there | 12:39 |
rgareus | http://lv2plug.in/ns/lv2core/#reportsLatency is also in the code | 12:39 |
rgareus | core* | 12:39 |
rgareus | I could not find a pattern for port designation namespacing. | 12:40 |
rgareus | http://lv2plug.in/ns/lv2core/#enableProcessing maybe | 12:42 |
drobilla | or that | 12:43 |
drobilla | rgareus: I am deep in the guts of Ingen working on undo/redo/atomic bulk event execution/etc, but I'll add them in a bit | 12:59 |
*** oofus has quit IRC | 13:09 | |
*** edogawa has joined #lv2 | 13:26 | |
*** rncbc has joined #lv2 | 14:13 | |
*** oofus has joined #lv2 | 14:26 | |
drobilla | rgareus: I think I like describing this as "coarse" block length better | 14:31 |
*** EntropyS1nk has quit IRC | 14:34 | |
*** EntropySink has joined #lv2 | 14:35 | |
drobilla | rgareus: http://lv2plug.in/git/cgit.cgi/lv2.git/commit/?id=f2dcf90d3185a7493f98a51352c6fde80b36b58f | 14:43 |
drobilla | rgareus: http://lv2plug.in/git/cgit.cgi/lv2.git/commit/?id=34d5cb311a893937f5507a6bfe208af819beb955 | 14:43 |
rgareus | cool! | 14:44 |
rgareus | drobilla: I'll update Ardour soon (later today or tomorrow) | 14:45 |
*** EntropySink has quit IRC | 14:51 | |
*** artfwo has joined #lv2 | 14:59 | |
*** EntropySink has joined #lv2 | 15:05 | |
*** EntropyS1nk has joined #lv2 | 15:20 | |
*** EntropySink has quit IRC | 15:22 | |
*** EntropyS1nk has quit IRC | 15:23 | |
*** EntropySink has joined #lv2 | 15:31 | |
*** EntropySink has quit IRC | 15:58 | |
*** EntropySink has joined #lv2 | 16:00 | |
*** EntropySink has quit IRC | 16:09 | |
*** EntropySink has joined #lv2 | 16:12 | |
*** oofus_lt has joined #lv2 | 16:21 | |
*** Yruama_Lairba has joined #lv2 | 16:23 | |
*** oofus has quit IRC | 16:32 | |
*** EntropySink has quit IRC | 16:35 | |
*** EntropySink has joined #lv2 | 16:44 | |
*** EntropySink has quit IRC | 16:51 | |
*** deva has joined #lv2 | 16:54 | |
*** oofus has joined #lv2 | 16:55 | |
*** EntropySink has joined #lv2 | 16:55 | |
*** oofus_lt_ has joined #lv2 | 16:56 | |
*** ricardocrudo has quit IRC | 16:59 | |
*** oofus_lt has quit IRC | 17:01 | |
*** EntropySink has quit IRC | 17:05 | |
*** oofus_lt_ has quit IRC | 17:08 | |
*** oofus_lt has joined #lv2 | 17:08 | |
*** EntropySink has joined #lv2 | 17:10 | |
ventosus | drobilla: I'm a bit at a loss on how to properly name this URID "Blank ID" feature | 17:13 |
ventosus | is this any good? https://github.com/ventosus/lv2/commit/4112b89a369f0db7bee42432837b1aa506c23204 | 17:14 |
*** EntropyS1nk has joined #lv2 | 17:15 | |
*** EntropySink has quit IRC | 17:17 | |
rgareus | drobilla: https://github.com/Ardour/ardour/commit/e2b06156c9106939fb23d8ff4567cf234f7d3001 and https://github.com/Ardour/ardour/commit/aca6e667a88100c061b71de0346312727f1938d6 | 17:22 |
*** EntropyS1nk has quit IRC | 17:22 | |
*** unclechu-audio_ has joined #lv2 | 17:25 | |
*** oofus_lt has quit IRC | 17:25 | |
*** oofus_lt has joined #lv2 | 17:26 | |
*** EntropySink has joined #lv2 | 17:26 | |
*** unclechu-audio has quit IRC | 17:27 | |
drobilla | ventosus: For the record, LV2 always uses odd numbers for non-releases | 17:28 |
drobilla | ventosus: mmmmmm I dunno... bit overloadey with the RDF concept of a blank node. Which is maybe a good thing or a bad thing | 17:29 |
* drobilla shrugs | 17:29 | |
drobilla | ventosus: Good as anything I guess | 17:29 |
*** EntropySink has quit IRC | 17:30 | |
drobilla | ventosus: 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 me | 17:32 |
drobilla | Sidenote: 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 comments | 17:32 |
* ventosus always mixes up even and odd | 17:36 | |
ventosus | the example snippet is not really needed, could as well be (re)moved | 17:39 |
ventosus | have fun outside! | 17:40 |
drobilla | Nah, examples are good. Just thinking fancy, as I do :) | 17:40 |
* drobilla is pathologically paranoid of all things not machine verifiable | 17:40 | |
ventosus | :) | 17:40 |
*** oofus_lt_ has joined #lv2 | 17:45 | |
*** oofus_lt has quit IRC | 17:49 | |
*** deva has quit IRC | 17:55 | |
Yruama_Lairba | hello, i'm interested about LV2 plugin developpment, even if i don't want to do it now | 18:07 |
Yruama_Lairba | is it easy compared to VST plugin ? | 18:10 |
drobilla | That would depend on your pre-existing skill-set, and what you want to do, and how you want to define "easy"... | 18:15 |
drobilla | But if I had to pick in general, not really, no | 18:15 |
Yruama_Lairba | for example, is it easy to do graphical interface for a lv2 ? | 18:17 |
drobilla | It's roughly as easy as writing a GUI in whatever you choose to use. LV2 does not provide a GUI toolkit itself | 18:18 |
Yruama_Lairba | can we use general GUI framwork like qt,wxwidget or FLTK ? | 18:18 |
drobilla | Depending on where you're targeting your plugin releases, there are pros and cons with various choices, but yes | 18:19 |
*** EntropySink has joined #lv2 | 18:20 | |
Yruama_Lairba | ideally i'd like to target several platform and several plugin format | 18:21 |
drobilla | If you want to make binary releases on Windows, OSX, then Qt and Gtk are out | 18:22 |
drobilla | (Not an LV2 thing, an inherent thing) | 18:23 |
Yruama_Lairba | i 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 host | 18:24 |
Yruama_Lairba | and, functionnality where very limited | 18:24 |
Yruama_Lairba | sorry, 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_Lairba | why ? it's thechnical issue or a licsence issue ? | 18:29 |
drobilla | They aren't designed for plugins | 18:29 |
drobilla | It basically only works if both the host and plugin are linked against the exact same version | 18:29 |
drobilla | So, essentially, free Unix where it's a system package, and not anywhere else | 18:30 |
drobilla | Things like FLTK that can live on their own and just work with a native window handle are fine | 18:30 |
Yruama_Lairba | do know other gui frameworks suitable for plugin ? | 18:32 |
drobilla | Too many to count | 18:33 |
drobilla | There's practically as many one-offs as there are plugin developers :) | 18:33 |
drobilla | Part of why JUCE is so popular | 18:34 |
Yruama_Lairba | but free version of JUCE is GPL, I think can't use it for VST | 18:37 |
drobilla | FLTK is the most well-known thing that's suitable. There's a "ntk" fork of it | 18:41 |
drobilla | Various 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 |
drobilla | Couple of us tinkering with a nanogui fork lately | 18:42 |
drobilla | and so on. Any of the myriad toolkits on the 'net that will give you a native window handle will do | 18:43 |
*** oofus_lt_ has quit IRC | 18:44 | |
drobilla | Though many if not most aren't plugin suitable (for often stupid, minor reasons) | 18:44 |
drobilla | It's kind of a nichey thing. All the proprietary devs usually just baked their own from the ground up and kept it to themselves | 18:44 |
Yruama_Lairba | ouch, seems very complicated | 18:49 |
drobilla | Welcome to GUI development | 18:50 |
Yruama_Lairba | i 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 IRC | 19:19 | |
*** NickSB has joined #lv2 | 19:20 | |
*** drobilla has quit IRC | 19:43 | |
*** NickSB has quit IRC | 19:50 | |
*** NickSB has joined #lv2 | 19:52 | |
*** dsheeler has quit IRC | 20:02 | |
*** oofus has quit IRC | 20:51 | |
*** drobilla has joined #lv2 | 21:18 | |
drobilla | Man, I got sloppy there for a while. Significant amount of work making the test suites run valgrind-clean again | 22:06 |
*** rncbc is now known as rncbc|AFK | 22:07 | |
*** edogawa has quit IRC | 23:18 |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!