Tuesday, 2015-01-20

*** NickSB2 has quit IRC03:30
*** edogawa has joined #lv207:23
*** unclechu has joined #lv208:38
*** unclechu has quit IRC08:38
*** unclechu has joined #lv208:38
*** NickSB2 has joined #lv211:12
*** ricardocrudo has joined #lv211:28
*** falktx has joined #lv211:56
*** falktx has quit IRC13:05
*** falktx has joined #lv213:19
*** ricardocrudo has quit IRC14:36
*** falktx has quit IRC14:41
*** ricardocrudo has joined #lv214:58
*** edogawa_ has joined #lv215:36
*** edogawa has quit IRC15:38
*** falktx has joined #lv215:48
*** unclechu has quit IRC16:09
*** HarryHaaren has joined #lv216:19
HarryHaarendrobilla, ping for a 5 min discussion about the AuxBus extension I'm working on for Fabla?16:20
*** unclechu has joined #lv216:24
falktxHarryHaaren: can I get a preview when it's working in fabla? (on the extension)16:24
falktx*of the16:25
HarryHaarenfalktx, nowhere near that yet. If its done before the LAC i'll be lucky.16:25
HarryHaarenalso, I feel its important that the community actually *want* this16:25
HarryHaarenas we know, extensions that aren't generally accepted aren't any good16:25
HarryHaarenI think from a musicians POV this is very important for workflow.16:25
falktxI know male wanted something like this16:25
HarryHaarendid he? I wasn't aware.. hm. Did he mention on IRC or when?16:26
falktxwell, on the "daz" thing ;) he insisted to have a way to handle aux ports16:26
HarryHaarenah ok, yeah16:27
falktxHarryHaaren: will this be used to handle sidechain ports?16:27
HarryHaarennot directly, but yes, it does improve the workflow of side-chaining16:27
falktxwell, when there's a draft online I'd love to see it16:28
HarryHaarenfalktx, tea-time here, I'll be back in 20 or so. I'll prepare some graphics for the use-cases that I'm targetting, and then hopefully we can have a discussion with you Drob Rgar Las and perhaps some others16:28
* HarryHaaren out for tea :)16:28
*** zth has joined #lv216:36
*** zth has quit IRC16:42
*** zth has joined #lv216:43
*** edogawa_ is now known as edogawa16:50
*** zth has quit IRC16:51
*** unclechu has quit IRC16:53
*** zth has joined #lv217:11
drobillaHarryHaaren: I thought we determined an extension wasn't really necessary.  What's it do?17:57
drobilla(Today on: why disussing such things on the mailing list is better)17:58
drobillaGotta to to work, bbl17:58
HarryHaarendrobilla, expect a mailing list post17:58
HarryHaarencheers17:58
bgoladrobilla: i finally got pset:preset working :) whats the best way to send you a patch?18:00
*** mlpug has joined #lv219:11
*** mlpug has quit IRC20:18
*** zth has quit IRC20:53
*** ricardocrudo has quit IRC22:13
*** HarryHaaren has quit IRC22:14
*** HarryHaaren has joined #lv222:15
*** edogawa has quit IRC23:00
drobillabgola: nice.   email23:02
HarryHaarendrobilla, i've chatted to las rgareus falktx and wrl a bit about this AuxBus, that I pinged you about earlier. http://openavproductions.com/tmp/fabla2auxbus.png23:07
HarryHaarenif you have some time now I can chat for a bit?23:07
HarryHaarenotherwise I can post to lv2-dev if you prefer23:07
drobillaHarryHaaren: Shoot.  mainly I'm wonder what extension is needed23:14
HarryHaarendrobilla, have a look at the link there23:15
drobillaI did.  I see some ports.  So?23:15
HarryHaarenbasically, the plugin mixes *voice* into these AuxBus buffers.23:15
HarryHaarenthese buffers are then handled by the DAW as the input for an audio bus23:15
HarryHaarenthe workflow of the user is greatly improved by having these "AuxBus" sends from *inside* the plugin.23:16
drobillaYou expect loading a plugin to automatically create a ton of busses?23:16
drobillaBecause I highly doubt any DAW is actually going to do so23:16
drobillaIf the users wants to, fine, they can23:16
HarryHaarenthe main use-case is: A) kick drum -> needs compression B) snares -> reverb23:16
drobillaFrom my perspective it seems your head is a little too in your plugin ATM and ideas are crossing abstractions barriers they don't really need to23:17
HarryHaarendrobilla, "a ton" no, a few? optionally. Ardour could expose the buffers in its routing-matrix as if it had multiple "normal audio outputs"23:17
drobillaThere are some DAW features that could make this easier that would be nice, no argument there23:17
drobillaBut plugin API wise there's nothing really special going on here23:17
HarryHaarenwell.. not yet. let me keep talking for a bit23:18
HarryHaarenthe point is that since the user can create "submixes" *inside* the plugin, there's a lot of flexibility + power there23:18
drobillaYes, Ardour can and should do so.  As sends23:18
drobilla(Where that send goes is the user's business)23:18
HarryHaareneach *MIDI note-on* event can have a different amount of send to each AuxBus.23:19
HarryHaarenthat is currently not possible23:19
drobillaNot really possible at all without actual polyphonic output, unless you have a fixed number of voices where n_voices == n_aux sends23:19
drobillaIn which case they aren't really aux sends at all23:19
HarryHaarenno not true23:19
drobillaWell, fine, kinda possible in a plugin give certain static restrictions about what to do with voices23:20
HarryHaarensince the *plugin* mixes the voices into the aux buffers, and MIDI CC as automation for the AuxBus level, we actually can change the amount of AuxBus send *on the same audio-file* for two similar notes (consequtive in time)23:21
drobillaUninteresting from host POV anyway.23:21
HarryHaarenperhaps not totally interesting: but the point is, what good is a submix (from a preset) if you don't know what FX to apply on it!?23:21
drobillaWho's "you"23:22
HarryHaarenthe user23:22
HarryHaarenaka, Fabla2, user loads a big complex drum kit, but doesn't know if AuxBus 1 is reverb or compression23:22
HarryHaarenuseless preset23:22
drobillaWell, sure.  I can put verb on aux one if I want.. verb on aux one.23:22
HarryHaarenshort of experimentation of different FX per AuxBus, how will you know which AuxBus needs what FX?23:23
HarryHaarenthis is where some meta-data is needed, that the plugin can communicate to the DAW / user what FX should be on that AuxBus.23:23
drobillaBatshit.23:23
HarryHaarenwhy?23:23
drobillaBecause it is.  You want a bidirectional mechanism for a plugin and preset to both figure out and dictate what effects are on an "aux"23:23
drobillaWhich isn't even a well defined thing for approximately 9999999999999999999999999999999999999999999999999999999999999999999999999999 reasons23:24
*** fundamental has joined #lv223:24
drobillaA plugin that wants to play DAW and launch plugins should probably just literally do so23:24
HarryHaarentake a step back and concider what workflow this would offer to users23:25
drobillaTake a different step back and consider how utterly pissed off people are going to be if somehow setting a preset in a plugin fucks up their Ardour session :)23:25
HarryHaarenit won't :D23:25
HarryHaarenArdour can "just" expose the AuxBus ports to its routing graph23:26
drobillaYes.  That's all well and good.23:26
HarryHaarenits hosts that are hard-coded stereo, or QTractor, which only supports stereo plugins: these *could* offer a better way of routing with busses or whatever23:26
rgareusfrom an ealier #lad comment:  the "Ardour way"   Midi -> plugin -> 10 channels  --(10)-> Send A  take chan 3+4 send to Bus B1  --(10)-> Send B take chan 5+6 send to Bus B2 --(10)->  BlackBox that removes channels 3-10 --(2)-> out23:27
drobillaAt least half the reason I want some kind of even vaguely concrete proposal about what extension is needed is I can't tell where the hell this is going23:27
drobillaGigantic pot of ideas, 90% of them Fabla internals23:27
drobillaExactly what's missing in LV2?  What do you want to do that you can't?23:27
HarryHaarenthe "problem" this is solving is that currently samplers like currently released Fabla are pointless: having kick + snare *in the same audio stream* is useless.23:27
drobillaSeems to me like just some ports.  Maybe some new designations needed at most.23:27
HarryHaarenFabla needs a way to output submixes23:28
drobillaSo make some non-main ports and output submixes23:29
HarryHaarendrobilla, you're gonna kill me for the implementation, but at least you'll get the idea: http://openavproductions.com/tmp/auxbus/lv2_auxbus.h23:29
HarryHaarenbasically, the plugin communicates some   float*  's to the DAW23:30
HarryHaarensimple23:30
HarryHaarenthat's what I want.23:30
HarryHaarenI'd prefer if they *weren't* normal audio ports, because then hosts like QTractor that can't deal with audio_ports > 2 won't load it23:30
drobilla.............. you want audio ports that aren't audio ports23:31
HarryHaarenrgareus, ^ maybe you wanna have a glance at the actual WIP header that i hacked together23:31
drobillaYeah, no.23:31
drobillaObviously.23:31
drobillaThat's what connectionOptional is for23:31
HarryHaarenyou know I'm not good at API design, and you know I'm not as familiar with LV2 RDF etc as I'd like to be23:32
HarryHaareni'm open to how this is implemented: the header above is my take on it, and i'm not married to it23:32
drobillaHarryHaaren: Too many ideas mashed into one23:32
drobillaHarryHaaren: Do you actually need dynamicism?23:32
drobillaDynamic ports are one thing.  "aux busses" are another.23:32
HarryHaarenkind-of yes, if you load a preset, it will have a different use of the AuxBusses23:33
HarryHaarenthe *count* won't change though23:33
drobillaSo, no.23:33
rgareusHarryHaaren: I imagined some hardcoded semantics in the TTL23:33
HarryHaarenits also possible (i think.. but my weakness in familiarity with TTL is know)23:33
rgareusDynamically setting these can have some uses.23:34
drobillaLet me put it this way: you can make life dramatically more difficult for yourself and tackle the age old dynamic I/O problem in LV2 despite not actually needing it23:34
rgareusbut in that case there should be generic dynamic meta-data.23:34
drobillaOr, just use audio output ports to get the ................ audio output ports, that you want23:34
HarryHaarenno i'm all for letting dyn-manifest die23:34
drobillaLike........ the amount of overthinking and hyper complexity here to get some audio output ports is fucking ludicrous23:34
HarryHaarendon't focus on the implementation: try to see the workflow I'm trying to offer users23:35
drobillaImplementation from a host POV is literally all I care about on this one.23:35
HarryHaarenif an audio-port is just that: hard-coded in TTL, then how should the plugin say what FX it expects on that audio stream?23:36
drobillaUsers can have precisely the same workflow with normal ports23:36
HarryHaarenthere's also more complex issues, like should the AuxBus stream be mixed back in with the original or not23:36
drobillaand, more importantly, someone (i.e. me) can implement it WAAAAAAAAAAAAAAAAAAAAAAYYYYYYYYYY more easily if it's just........ normal23:36
drobillaBecause dynamic ports ain't happening tomorrow.  or the next day.23:36
HarryHaarendon't need to be dynamic ports. There is a static number of them.23:36
drobillaWhereas ignoring connectionOptional is trivial and basically required anyway23:36
drobillaand checking what ports are the "main" ones and treating others (aux) specially is straightforward.  Just need to actually check.23:37
drobillaHarryHaaren: Then no new API is necessary.23:37
HarryHaarenso what is a solution to "suggesting" the FX applied to a specific set of Aux ports?23:37
drobillaThe realistic one?  No DAW is actually going to do anything with it.23:38
drobillaThat aside, how specific?  "reverb", or "this plugin, then this plugin, then this plugin?"23:38
grejppiHarryHaaren: is the idea that the plugin tells the host what effects to load for the aux buses?23:38
HarryHaarengrejppi, one result of : yes23:38
drobillaTagging a group with, say, "reverb" is reasonable enough.23:38
drobillaProbably just re-use plugin categories for that23:39
HarryHaarenyes, i've got that in v2 of the header23:39
HarryHaarensure. Adding a plugin URI and a preset URI was the next step23:39
drobillaThe hypothetical DAW author who is actually going to do something about this can let users tag busses with the same things and they can be matched up23:39
HarryHaarenaka, "suggested plugin" and "suggested preset"23:39
drobillaThen you need a way for the plugin to even know this information in the first place23:39
drobillaFrankly I suggest you drop the idea and do the rest, which is infinitely more realistic and useful23:40
HarryHaarenlook i know I seem to be asking for a crazy workflow, but IMO this is the future of DAW: one that provides the user with an experience : not features23:40
* drobilla dodges the waving hands23:40
HarryHaarenyes, my suggestion is that when a preset is saved, the AuxBus FX state is saved too, giving the preset this info23:41
drobillaSo if I have that aux routed to 3 different buses and a Jack client, what then?23:41
* HarryHaaren notes there's no waving hands from me : just trying to clearly describe why I think this stuff is important23:41
HarryHaarenit doesn't scale to the whole JACK graph etc etc, perhaps set a limit to one-plugin.23:42
drobillaWell, I'm pretty sure you want to actually get it done and provide a release, so I'm basically giving feedback on the realism of these things23:42
drobillaThis is WAY the fuck out there23:42
drobillaDoing aux right and having ardour/whatever makes sends appropriately, is not.  Totally doable, can and should be handled correctly23:42
HarryHaaren"this" can all be done relatively easily with an LV2 extension (hence not using audio ports from the beginning) and providing accurate meta-data. Hosts can ignore it if they wish. Acutally, if they don't provide the feature, they won't even know about it.23:43
HarryHaarenI agree a fallback to providing audio-output ports like busses would be good23:43
HarryHaarenand that its also possible using Audio ports described in the TTL23:44
drobillaAn API for "aux busses" specially is a terrible idea.  Sorry.23:44
HarryHaarenand I had concidered that23:44
drobillaParticularly a completely unextensible one.  It's a harder problem.23:44
HarryHaarenI'm not saying its easy, and I'm aware that header was blissfully ignorant to anything extensible etc23:45
drobillaDynamic I/O is an interesting problem that would be nice to tackle, but as far as "making Fabla do the thing I want", a really unbelievably amazingly inefficient way of getting to the goal that almost nothing will implement for a very long time if ever23:45
HarryHaarenmy point is that I feel this needs to be dealt with: there is not way to provide a better user-experience without actually have the info to act upon right?23:45
* HarryHaaren reads23:45
drobillaIf you want to throw in with that effort, I'm totall game, but that's the situation23:45
drobillaMy point is that getting your workflow (as far as aux outs are concerned) is trivially easy with stuff we have23:46
HarryHaarenyes i'm aware of that. How to build the "way out there" stuff on top of that implementation is what I'm not sure of23:46
rgareusrealistically.  1) use existing port-group semantics   -> halfway done.   2) a simple way to add "human readable" meta-data to ports23:47
HarryHaarenthis meta-data needs to be dynamic per preset though: i guess that's where the big problem comes from23:47
rgareus(2) can be used with JACK   and in Ardour we could display them on hover over the (currently too small) port/wire23:47
rgareusfixed number of outputs23:48
HarryHaarenyes, but the "metadata" re each AuxBus needs to change23:48
rgareusadding a simple way to add sends of a sub-group  should be added to the DAW.23:48
drobillaHonestly, I don't think what you're connected to is any of the damned plugin's business23:48
HarryHaarenpreset 1 has reverb on Aux1, preset2 has a delay.23:48
drobillaLeast of all a preset for said plugin23:48
rgareusHarryHaaren: presets are broken23:48
drobillaI'd be shocked if anyone actually implements such a thing.  It's a fractal of hard problems with no clear solution23:49
HarryHaarenwell... how else can I load a huge drumkit every time I use Fabla? Lv2:State saves a preset right?23:49
HarryHaarendrob: yes I've understood that too: I see limiting the actual functionality is a solution to that23:50
rgareusHarryHaaren: the problem only exists if you  switch from   preset 1 (aux1,2 -> reverb)   to preset 2 (aud 5,6 -> reverb) in the same session23:50
HarryHaarenaka, an AuxBus can "recommend" only one plugin, and one specific preset for that plugin.23:50
HarryHaarenrgareus, yes exactly23:50
drobillaAn options-like announce interfae would let you change stuff about ports dynamically...23:50
rgareusHarryHaaren: same session =>  don't do this23:50
HarryHaarenrgareus, unfortunatly this is pretty common for testing out drumkits / presets in a session?23:51
rgareusHarryHaaren: then the presets are broken23:51
rgareusHarryHaaren: or you need to re-wire23:51
drobillaSomewhat funnily, it'd actually be way easier to have the host literally just load a plugin for the plugin and pass its handle23:52
HarryHaarendrobilla, I don't have experience with the options interface much, but if it allows changing meta-data about a port, then perhaps this is a solution.23:52
rgareusHarryHaaren: making the connection to real-live drumkits on stage..   Band changes -> Drumkit gets replaced   BUT the mic + channel mapping is identical for the whole show23:52
drobillaHarryHaaren: In one directly only at present (host tells plugin stuff)23:52
rgareusHarryHaaren: some mics might be unused in certain sets. but you don't re-wire23:52
drobillaWhat did las have to say about this?23:53
HarryHaarenrgareus, yeah.. ok, good analogy, but that argues "have tons of AuxBusses" in case a user wants specifically "this"23:53
drobillaI'd expect the very idea of plugins dicking with a session's structure to have gotten an.... entertaining response :)23:53
HarryHaarenwe didn't get that far, i only talked of the AuxBus idea with him, and exposing to Ardour routing23:54
HarryHaarenthat said, that's all I'd expect Ardour to implement / support23:54
HarryHaarenkeep in mind I'm trying to push boundaries for live-performance: things like auto-creation of busses for FX etc are not that insane23:54
drobillaI suspect dynamic ports in LV2 should just announce the presence of new ports that otherwise work just like other ports.  i.e. a thing with an index you connect_port23:54
drobillaSo even with hypothetical dynamicism you should just use ports anyway23:55
drobillaHaving multiple kinds of ports strikes me as about as well as we can do as far as making LV2 a big inconsistent mess, to be slandered and replaced ASAP...23:56
falktxlv2 already has  a mechanism to announce things => options23:56
falktxuse "options" to announce a new/removal of a port23:56
HarryHaareni don't know enough to comment on this: it kinda defines the "direction" LV2 goes for expansion in future though: i imagine nasty topics like per-voice controls etc can be done through dynamic ports, so I'm staying well away :D23:56
drobillafalktx: No "announce" currently, but yes.  Clear ties there23:57
drobillaDoing nested descriptions will be less fun, but hey.  Ports tend to be flat anyway23:57
drobillaPer voice controls is just event business.  Nothing particularly alarming.23:57
HarryHaarenok, coming back to planet available-right-now, what solution do we have to provide AuxBus type functionality?23:57
drobillaHarryHaaren: http://lv2plug.in/ns/ext/port-groups#mainOutput and mainInput23:58
drobillaHarryHaaren: Auxes lv2:connectionOptional23:58
HarryHaarenoutput only, connectionOptional sure23:58
drobillaHarryHaaren: done and done.23:59
drobillaWe could maybe use a designation or property or something for "I'm aux-like"23:59
HarryHaarennow we need to communicate *somehow* to the user what FX should be on what AuxBus23:59
HarryHaarenyeah, i'd like that23:59

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