| *** rgareus has quit IRC | 00:20 | |
| *** falktx has quit IRC | 00:20 | |
| *** Yoda-- has quit IRC | 00:20 | |
| *** gabrbedd has quit IRC | 00:20 | |
| *** wrl has quit IRC | 00:20 | |
| *** Yoda-- has joined #lv2 | 00:25 | |
| *** wrl has joined #lv2 | 00:25 | |
| *** gabrbedd has joined #lv2 | 00:25 | |
| *** falktx has joined #lv2 | 00:26 | |
| *** ricardocrudo has joined #lv2 | 00:26 | |
| *** rgareus has joined #lv2 | 00:26 | |
| *** ricardocrudo has quit IRC | 01:22 | |
| *** gianMOD has quit IRC | 02:08 | |
| *** gianMOD has joined #lv2 | 02:09 | |
| *** gianMOD has quit IRC | 02:14 | |
| *** NickSB2 has quit IRC | 04:04 | |
| *** falktx has quit IRC | 04:54 | |
| *** edogawa has joined #lv2 | 06:06 | |
| *** grejppi_ has joined #lv2 | 06:32 | |
| *** NickSB2 has joined #lv2 | 08:59 | |
| *** gianMOD has joined #lv2 | 09:06 | |
| *** gianMOD has quit IRC | 09:22 | |
| *** gianMOD has joined #lv2 | 09:23 | |
| *** gianMOD_ has joined #lv2 | 09:25 | |
| *** gianMOD has quit IRC | 09:26 | |
| *** gianMOD_ has quit IRC | 09:34 | |
| *** gianMOD has joined #lv2 | 09:34 | |
| *** ddom has joined #lv2 | 09:35 | |
| *** gianMOD has quit IRC | 09:39 | |
| *** gianMOD has joined #lv2 | 09:56 | |
| *** gianMOD has quit IRC | 10:14 | |
| *** gianMOD has joined #lv2 | 10:15 | |
| *** gianMOD has quit IRC | 10:19 | |
| *** gianMOD has joined #lv2 | 10:54 | |
| *** gianMOD has quit IRC | 11:06 | |
| *** gianMOD has joined #lv2 | 11:06 | |
| *** gianMOD has quit IRC | 11:11 | |
| *** rncbc has joined #lv2 | 11:38 | |
| *** falktx has joined #lv2 | 12:00 | |
| *** ricardocrudo has joined #lv2 | 12:10 | |
| *** grejppi_ has quit IRC | 12:16 | |
| *** rncbc has quit IRC | 12:18 | |
| *** HarryHaaren has joined #lv2 | 12:24 | |
| *** gianMOD has joined #lv2 | 12:38 | |
| *** rncbc has joined #lv2 | 12:42 | |
| *** NickSB2 has quit IRC | 12:53 | |
| *** NickSB has quit IRC | 13:11 | |
| *** NickSB has joined #lv2 | 13:11 | |
| *** rncbc has quit IRC | 13:27 | |
| *** bgribble has joined #lv2 | 13:35 | |
| *** gianMOD has quit IRC | 14:01 | |
| *** gianMOD has joined #lv2 | 14:02 | |
| *** gianMOD has quit IRC | 14:07 | |
| *** mlpug has joined #lv2 | 14:15 | |
| *** gianMOD has joined #lv2 | 14:40 | |
| *** gianMOD has quit IRC | 14:43 | |
| *** gianMOD has joined #lv2 | 14:43 | |
| *** gianMOD has quit IRC | 14:48 | |
| *** bgribble has quit IRC | 15:25 | |
| *** rncbc has joined #lv2 | 15:33 | |
| *** HarryHaaren has quit IRC | 15:44 | |
| *** gianMOD has joined #lv2 | 15:45 | |
| *** bgribble has joined #lv2 | 15:47 | |
| *** gianMOD has quit IRC | 15:51 | |
| *** bgribble has quit IRC | 15:57 | |
| *** ddom has quit IRC | 16:04 | |
| *** gianMOD has joined #lv2 | 16:09 | |
| *** gianMOD has quit IRC | 16:21 | |
| *** gianMOD has joined #lv2 | 16:22 | |
| *** gianMOD has quit IRC | 16:27 | |
| *** zth has joined #lv2 | 16:35 | |
| *** bgribble has joined #lv2 | 17:09 | |
| *** bgribble has quit IRC | 17:18 | |
| *** bgribble has joined #lv2 | 17:28 | |
| *** NickSB2 has joined #lv2 | 17:31 | |
| *** bgribble has quit IRC | 17:39 | |
| *** gianMOD has joined #lv2 | 18:22 | |
| gianMOD | hey guys! | 18:42 |
|---|---|---|
| gianMOD | opening up a bit of a discussion here | 18:42 |
| gianMOD | we're into a refactor of our software and that means new architecture | 18:42 |
| gianMOD | one of the topics discussed today is about the session : LV2 plugins + JACK connections | 18:43 |
| gianMOD | today we have json describing our pedalboards | 18:43 |
| gianMOD | but lots of future features do not fit this model | 18:44 |
| gianMOD | and thus we're moving into a new one | 18:44 |
| gianMOD | the options boil down to two: an internal format, following sort of what Ardour does | 18:44 |
| gianMOD | and a .lv2 bundle format comprising a package of ttl files plus some asstes (IR files, samples, etc) | 18:45 |
| gianMOD | any light here on pros and cons? | 18:45 |
| gianMOD | rgareus: would you have any comment on the Ardour way of saving and defining the session? | 18:46 |
| rgareus | gianMOD: whatever you do, don't use XML | 18:49 |
| gianMOD | :-) | 18:49 |
| gianMOD | personally I believe the .lv2 bundle is a good way | 18:49 |
| gianMOD | specially taking into account the file attachments | 18:50 |
| rgareus | it's the biggest bloat in ardour (both memory wise as well as CPU intense; lots of malloc/free) | 18:50 |
| gianMOD | but this model would require some lilv, serd or sord hacking in order to parse the new data | 18:50 |
| rgareus | gianMOD: drobilla's recent hacks on reading lv2 ttls into a b-tree is superb | 18:50 |
| rgareus | gianMOD: Ardour uses liblilv to manage LV2 plugin presets. they're all self-contained .lv2 folders | 18:51 |
| gianMOD | rgareus: the session, in our case, would be a step further | 18:52 |
| gianMOD | rgareus: kind of a collection of plugins + the JACK conenctions | 18:52 |
| gianMOD | rgareus: and later on would still add more info, like the controller assignmets and locations of files | 18:53 |
| rgareus | gianMOD: I don't thing any of the existing session-managers applies to your case. | 18:53 |
| rgareus | gianMOD: or does it? | 18:54 |
| falktx | so sorta like this? http://kxstudio.sourceforge.net/paste/ZQ64T :P | 18:54 |
| gianMOD | rgareus: we did not go in depth into any of the existing ones | 18:55 |
| gianMOD | Harry advocated a lot about the NSM but I see there is a lot of "no-no's" regarding it | 18:56 |
| bgola | falktx: today MOD saves the "session" or "pedalboard" as a json file, but i believe the thing is if it makes sense to have a state extension for lv2, so hosts can share sessions, by session i mean plugin state (port values, etc) + port connections, as gianMOD wrote | 18:56 |
| falktx | a patchbay-like state complete with plugins, connects and settings? | 18:57 |
| falktx | that would be awesome | 18:57 |
| bgola | falktx: yes | 18:57 |
| falktx | that would work for jack, carla, ingen and mod all at once | 18:58 |
| falktx | a full modular session format, I like it | 18:58 |
| gianMOD | falktx: that's the idea. But also with atatchment files (IRs, samples, loops) | 18:58 |
| falktx | aren't those part of the plugin state? | 18:58 |
| bgola | falktx: i believe so.. at least it should be | 18:59 |
| rgareus | I don't see why the actual underlying format matters. you can express the same in XML or JSON or RDF... | 18:59 |
| rgareus | the real question is how you structure the content | 19:00 |
| bgola | rgareus: im thinking more about API than format.. like the way you can save plugin states using lilv | 19:00 |
| rgareus | bgola: yes | 19:00 |
| falktx | a common format that is easier to implement will be a big thing | 19:00 |
| rgareus | I'd stay with JSON. parses quickly and requires not much resources | 19:00 |
| falktx | we'd be able to save stuff in mod and load it in ingen for example. provided the plugins are able to load | 19:00 |
| rgareus | RDF would be even cooler if you like that | 19:00 |
| gianMOD | rgareus: you have any cons about the .lv2 bundle? | 19:01 |
| bgola | rgareus: the thing about using a bundle/lv2 kind of thing is that you can "attach" files and other things inside the bundle.. using a json file would be a mess in that case | 19:01 |
| falktx | gianMOD: it's not very user-friendly (as in to modify stuff manually) | 19:01 |
| bgola | i dont know how plugins handle files today when you save a state | 19:01 |
| rgareus | falktx: I'll take RDF over XML and JSON any day | 19:02 |
| rgareus | but falktx has a point RDF is not everyones. | 19:02 |
| rgareus | gianMOD: no, I can't think of any real cons. | 19:02 |
| falktx | I can't say the same. for me json > rdf > xml | 19:02 |
| rgareus | user's hacking files manually is an edge case anyway | 19:03 |
| falktx | yep | 19:03 |
| rgareus | and devs need to write RDF for lv2 plugis, so they can't really complain about the MOD following | 19:03 |
| rgareus | they can complain about LV2 using RDF in the first place :) | 19:03 |
| falktx | this could be done by saving each plugin state as a lv2 preset (different filename for each plugin) | 19:03 |
| bgola | specially in this case of save states, user should not deal with the files directly | 19:04 |
| bgola | ops, session* | 19:04 |
| rgareus | right and then you /only/ need an API to save connections | 19:04 |
| rgareus | wihch probably aleady exists in ingen | 19:04 |
| bgola | and do you think it makes sense to have something like LilvSession, lilv_session_restore, etc ? | 19:05 |
| falktx | will plugins have unique names? | 19:05 |
| falktx | that's a limitation in jack currently | 19:05 |
| rgareus | bgola: jack-session is flat. one set of connections. | 19:07 |
| gianMOD | falktx: the unique name would be the URL | 19:07 |
| rgareus | bgola: with ingen's approach you can nest things. | 19:07 |
| gianMOD | and then the host would deal with the instances / nodes | 19:07 |
| falktx | URL ? | 19:07 |
| rgareus | bgola: e.g. a sub-network inside a sub-network . | 19:07 |
| * rgareus wishes drobilla were here. he did this all before | 19:10 | |
| bgola | rgareus: i believe this lv2 session would work independent on how the connections are really made... if it's jack or ingen's approach | 19:13 |
| bgola | TBH i need to check how ingen works | 19:13 |
| falktx | FYI I'm all for having this implemented in Carla once we have a base format spec | 19:13 |
| falktx | the only issue I see is that carla can load far more plugins than mod and ingen (ladspa, dssi, vst, au plus gig, sf2, sfz files) | 19:14 |
| bgola | falktx: i was about to ask you about that :) | 19:14 |
| falktx | but that will be up to the user to decide. if exporting to such format users need to use lv2 plugins only | 19:15 |
| rgareus | bgola: there's ingen:Graph node in the RDF that just uses lv2:port to specify connections | 19:19 |
| rgareus | all documented at http://drobilla.net/ns/ingen# | 19:19 |
| rgareus | http://drobilla.net/ns/ingen#Arc to be specific | 19:20 |
| falktx | connecting 2 plugin control ports is not possible in jack (or carla, yet) | 19:21 |
| falktx | not sure if the mod can do that either | 19:21 |
| rgareus | ingen can do | 19:22 |
| gianMOD | neither in MOD | 19:22 |
| gianMOD | but we have some ideas regarding control ports connections | 19:22 |
| gianMOD | any of these existing solutions deal with attachmentes? | 19:26 |
| gianMOD | let's say, an Impusle Response used by a convolution reverb | 19:26 |
| falktx | depends on the plugins | 19:29 |
| falktx | ir.lv2 is pretty bad on this | 19:29 |
| falktx | some plugins save state properly via lv2-state-files thing, which the host can use to pack things nicely | 19:30 |
| bgola | falktx: that's good | 19:31 |
| gianMOD | i guess some of the file handling job is done by the GTK or Qt layer, correct? | 19:32 |
| *** zth has quit IRC | 19:33 | |
| *** rncbc is now known as rncbc|AFK | 19:34 | |
| falktx | it's done by the host | 19:35 |
| gianMOD | so the GTK / Qt layer is only responsible for pointing the file location on the file system? | 19:36 |
| * falktx doesn't know how to explain it | 19:36 | |
| gianMOD | :-) | 19:36 |
| bgola | falktx: can you point me to a plugin that handles files in a proper way? | 19:37 |
| falktx | eg-sampler | 19:37 |
| falktx | samplv1 by rui in the latest update should do it too | 19:37 |
| falktx | there's some convolver plugin by drobilla and rgareus too, forgot the name... | 19:37 |
| rgareus | convo.lv2 | 19:38 |
| falktx | the distrho ports certainly will *not* do this. by limitations of other plugins specs | 19:38 |
| falktx | http://lv2plug.in/ns/ext/state/#mapPath | 19:39 |
| rgareus | convo.lv2 is a very minimalistic wrapper around fons' zita-convolver; the only complex thing is state save/restore in the backround. | 19:40 |
| falktx | rgareus: it uses state mapPath right? | 19:40 |
| rgareus | yes | 19:40 |
| bgola | falktx: nice, eg-sample source makes it much clearer for me :) | 19:41 |
| bgola | thanks | 19:41 |
| rgareus | and atom:Path | 19:41 |
| falktx | I don't think I have that packaged. I should do that... but still need to write the carla news... | 19:41 |
| rgareus | it may be the only plugin around that provides an interface that a host could use to show a file-selection dialog | 19:41 |
| falktx | eg-sampler does that too | 19:42 |
| rgareus | right | 19:42 |
| rgareus | it includes a miniamlisic GTK GUI - just a file-selection dialog in case the plugin-host cannot do that. | 19:42 |
| bgola | rgareus: using eg-sampler the plugin-host can't set the sample file without using it's GTK UI, right? | 19:51 |
| falktx | it can, by sending a special atom:path message. but that's a different lv2 feature | 19:53 |
| falktx | http://lv2plug.in/ns/ext/patch/ | 19:55 |
| falktx | more specifically http://lv2plug.in/ns/ext/patch/#Set | 19:56 |
| falktx | that's the one eg-sampler uses | 19:56 |
| bgola | falktx: thanks, does carla or ingen support this feature? | 19:57 |
| falktx | carla, no. don't know about ingen | 19:57 |
| falktx | not sure if any host supports this yet | 19:57 |
| falktx | rgareus: do you know? | 19:58 |
| rgareus | I don't know any host that does support it | 19:59 |
| *** mlpug has quit IRC | 20:02 | |
| bgola | this may be a stupid question but... do you know why it uses ext/patch instead of an atom port? | 20:12 |
| *** gianMOD has quit IRC | 20:12 | |
| *** gianMOD has joined #lv2 | 20:12 | |
| *** gianMOD has quit IRC | 20:17 | |
| *** gianMOD has joined #lv2 | 20:19 | |
| falktx | it's an atom port | 20:29 |
| falktx | the patch extension just defines the message type so that the host can send to the plugin and understand each other | 20:30 |
| *** gianMOD has quit IRC | 20:37 | |
| *** gianMOD has joined #lv2 | 20:37 | |
| *** gianMOD has quit IRC | 20:42 | |
| bgola | falktx: ok i get it, it uses the atom port to receive messages and the patch ext to define | 20:44 |
| bgola | thanks | 20:44 |
| *** gianMOD has joined #lv2 | 20:52 | |
| *** rncbc|AFK has quit IRC | 21:03 | |
| * drobilla waves | 21:32 | |
| drobilla | gianMOD: IMO bundle directories (or archives) that are as straightforward and human-readable as possible are clearly the way to go | 21:33 |
| drobilla | gianMOD: I use ttl and a format that's essentially a subset of an LV2 plugin, and am quite happy with that choice | 21:33 |
| drobilla | gianMOD: You may not have a need for it to be just like an LV2 plugin, but that's just an ingen thing. You can use a similar pattern for whatever | 21:35 |
| drobilla | falktx, bgola, rgareus: jalv supports setting that filename property on eg-sampler with host-generated UI | 21:35 |
| drobilla | Ingen uses the patch vocabulary for 100% of its UI<=>engine communication internally, if that counts | 21:35 |
| *** gianMOD has quit IRC | 21:36 | |
| *** gianMOD has joined #lv2 | 21:36 | |
| drobilla | Re: ingen:Arc, the reason for that being a thing itself, rather than just a property, is I figured sometimes you want to annotate an arc (mix mode, colour, whatever) | 21:37 |
| drobilla | Which you couldn't do with e.g. <inputport> :connectedTo <outputport> | 21:37 |
| drobilla | gianMOD: The bundle idea really isn't novel. Tons of programs do this, usually hidden in an archive. Libre/OpenOffice, Ableton... | 21:40 |
| drobilla | It's clearly vastly more sane than trying to pack a bunch of binary crap into some weird opaque thing | 21:40 |
| *** gianMOD has quit IRC | 21:41 | |
| rgareus | drobilla: the party's over. (or just started) MOD team called it a day :) | 21:42 |
| rgareus | it's be cool if MOD "networks" could be loaded in ingen (and vice versa) | 21:44 |
| rgareus | since MOD just describes [audio|midi] connections between LV2 pluins, it should be easy to load those in ingen | 21:45 |
| * bgola still here | 21:46 | |
| drobilla | rgareus: Well, the vocabulary's there | 21:46 |
| rgareus | ingen to mod will depend on the MOD supporting control-port and Atom-port connections (if there are any in the ingen patch) | 21:46 |
| bgola | rgareus: we plan to support those as well | 21:47 |
| drobilla | I haven't particularly gussied it up with the intent of pitching it as a standard of any sort, but it could be. Only so many ways you can express a patch in ttl, really | 21:48 |
| drobilla | The main thing it lacks is a real separation between graph, er, "template" (class?) and instance | 21:48 |
| drobilla | Though this is more of an implementation thing than a vocab thing | 21:48 |
| bgola | drobilla: jalv assumes every patch:writable is a file path and adds a file chooser controller? | 21:49 |
| drobilla | bgola: Doesn't assume, no, but that's the only thing it actually supports. | 21:49 |
| drobilla | bgola: Just kind of a proof of concept thing, really, it doesn't robustly support a bunch of controls via that mechanism | 21:49 |
| drobilla | chickens 'n eggs and all that | 21:50 |
| drobilla | conceptually setting properties is a lovely elegant way to control things, though I'm not sure if it's what we want as a control mechanism for absolutely everything. The messages are a tad verbose, for oen | 21:53 |
| *** edogawa has quit IRC | 22:01 | |
| *** ricardocrudo has quit IRC | 22:05 | |
| *** HarryHaaren has joined #lv2 | 22:18 | |
| * drobilla wasted most of the day sitting in a waiting room, stupidly without laptop | 22:20 | |
| Anchakor | get a smartphone at least | 22:22 |
| drobilla | I forgot it, but in any case, can't do any real work on that anyway | 22:33 |
| drobilla | They (oddly) happened to have the local left-wing student rag, but I was trapped in there for hours | 22:36 |
| drobilla | +1 for just ignoring any and all medical issues until you die | 22:36 |
| rgareus | drobilla: are you cured now? | 22:41 |
| drobilla | I have to get an x-ray and ultrasound to confirm alien face-hugger infestation | 22:43 |
| rgareus | drobilla: the x-rays should have killed those | 22:45 |
| rgareus | aah you /have to/ (not had to) | 22:45 |
| *** HarryHaaren has quit IRC | 22:48 | |
| Joeboy | drobilla: dying is absolutely verboten for you, I'm afraid. | 23:33 |
| *** gianMOD has joined #lv2 | 23:33 | |
Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!