Wednesday, 2014-10-22

*** rgareus has quit IRC00:20
*** falktx has quit IRC00:20
*** Yoda-- has quit IRC00:20
*** gabrbedd has quit IRC00:20
*** wrl has quit IRC00:20
*** Yoda-- has joined #lv200:25
*** wrl has joined #lv200:25
*** gabrbedd has joined #lv200:25
*** falktx has joined #lv200:26
*** ricardocrudo has joined #lv200:26
*** rgareus has joined #lv200:26
*** ricardocrudo has quit IRC01:22
*** gianMOD has quit IRC02:08
*** gianMOD has joined #lv202:09
*** gianMOD has quit IRC02:14
*** NickSB2 has quit IRC04:04
*** falktx has quit IRC04:54
*** edogawa has joined #lv206:06
*** grejppi_ has joined #lv206:32
*** NickSB2 has joined #lv208:59
*** gianMOD has joined #lv209:06
*** gianMOD has quit IRC09:22
*** gianMOD has joined #lv209:23
*** gianMOD_ has joined #lv209:25
*** gianMOD has quit IRC09:26
*** gianMOD_ has quit IRC09:34
*** gianMOD has joined #lv209:34
*** ddom has joined #lv209:35
*** gianMOD has quit IRC09:39
*** gianMOD has joined #lv209:56
*** gianMOD has quit IRC10:14
*** gianMOD has joined #lv210:15
*** gianMOD has quit IRC10:19
*** gianMOD has joined #lv210:54
*** gianMOD has quit IRC11:06
*** gianMOD has joined #lv211:06
*** gianMOD has quit IRC11:11
*** rncbc has joined #lv211:38
*** falktx has joined #lv212:00
*** ricardocrudo has joined #lv212:10
*** grejppi_ has quit IRC12:16
*** rncbc has quit IRC12:18
*** HarryHaaren has joined #lv212:24
*** gianMOD has joined #lv212:38
*** rncbc has joined #lv212:42
*** NickSB2 has quit IRC12:53
*** NickSB has quit IRC13:11
*** NickSB has joined #lv213:11
*** rncbc has quit IRC13:27
*** bgribble has joined #lv213:35
*** gianMOD has quit IRC14:01
*** gianMOD has joined #lv214:02
*** gianMOD has quit IRC14:07
*** mlpug has joined #lv214:15
*** gianMOD has joined #lv214:40
*** gianMOD has quit IRC14:43
*** gianMOD has joined #lv214:43
*** gianMOD has quit IRC14:48
*** bgribble has quit IRC15:25
*** rncbc has joined #lv215:33
*** HarryHaaren has quit IRC15:44
*** gianMOD has joined #lv215:45
*** bgribble has joined #lv215:47
*** gianMOD has quit IRC15:51
*** bgribble has quit IRC15:57
*** ddom has quit IRC16:04
*** gianMOD has joined #lv216:09
*** gianMOD has quit IRC16:21
*** gianMOD has joined #lv216:22
*** gianMOD has quit IRC16:27
*** zth has joined #lv216:35
*** bgribble has joined #lv217:09
*** bgribble has quit IRC17:18
*** bgribble has joined #lv217:28
*** NickSB2 has joined #lv217:31
*** bgribble has quit IRC17:39
*** gianMOD has joined #lv218:22
gianMODhey guys!18:42
gianMODopening up a bit of a discussion here18:42
gianMODwe're into a refactor of our software and that means new architecture18:42
gianMODone of the topics discussed today is about the session : LV2 plugins + JACK connections18:43
gianMODtoday we have json describing our pedalboards18:43
gianMODbut lots of future features do not fit this model18:44
gianMODand thus we're moving into a new one18:44
gianMODthe options boil down to two: an internal format, following sort of what Ardour does18:44
gianMODand a .lv2 bundle format comprising a package of ttl files plus some asstes (IR files, samples, etc)18:45
gianMODany light here on pros and cons?18:45
gianMODrgareus: would you have any comment on the Ardour way of saving and defining the session?18:46
rgareusgianMOD: whatever you do, don't use XML18:49
gianMOD:-)18:49
gianMODpersonally I believe the .lv2 bundle is a good way18:49
gianMODspecially taking into account the file attachments18:50
rgareusit's the biggest bloat in ardour (both memory wise as well as CPU intense; lots of malloc/free)18:50
gianMODbut this model would require some lilv, serd or sord hacking in order to parse the new data18:50
rgareusgianMOD: drobilla's recent hacks on reading  lv2 ttls into a b-tree is superb18:50
rgareusgianMOD: Ardour uses liblilv to manage  LV2 plugin presets. they're all self-contained .lv2 folders18:51
gianMODrgareus: the session, in our case, would be a step further18:52
gianMODrgareus: kind of a collection of plugins + the JACK conenctions18:52
gianMODrgareus: and later on would still add more info, like the controller assignmets and locations of files18:53
rgareusgianMOD: I don't thing any of the existing session-managers applies to your case.18:53
rgareusgianMOD: or does it?18:54
falktxso sorta like this? http://kxstudio.sourceforge.net/paste/ZQ64T :P18:54
gianMODrgareus: we did not go in depth into any of the existing ones18:55
gianMODHarry advocated a lot about the NSM but I see there is a lot of "no-no's" regarding it18:56
bgolafalktx: 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 wrote18:56
falktxa patchbay-like state complete with plugins, connects and settings?18:57
falktxthat would be awesome18:57
bgolafalktx: yes18:57
falktxthat would work for jack, carla, ingen and mod all at once18:58
falktxa full modular session format, I like it18:58
gianMODfalktx: that's the idea. But also with atatchment files (IRs, samples, loops)18:58
falktxaren't those part of the plugin state?18:58
bgolafalktx: i believe so.. at least it should be18:59
rgareusI don't see why the actual underlying format matters.  you can express the same in XML or JSON or RDF...18:59
rgareusthe real question is how you structure the content19:00
bgolargareus: im thinking more about API than format.. like the way you can save plugin states using lilv19:00
rgareusbgola: yes19:00
falktxa common format that is easier to implement will be a big thing19:00
rgareusI'd stay with JSON.  parses quickly and requires not much resources19:00
falktxwe'd be able to save stuff in mod and load it in ingen for example. provided the plugins are able to load19:00
rgareusRDF would be even cooler if you like that19:00
gianMODrgareus: you have any cons about the .lv2 bundle?19:01
bgolargareus: 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 case19:01
falktxgianMOD: it's not very user-friendly (as in to modify stuff manually)19:01
bgolai dont know how plugins handle files today when you save a state19:01
rgareusfalktx: I'll take RDF over XML and JSON any day19:02
rgareusbut falktx has a point RDF is not everyones.19:02
rgareusgianMOD: no, I can't think of any real cons.19:02
falktxI can't say the same. for me json > rdf > xml19:02
rgareususer's hacking files manually is an edge case anyway19:03
falktxyep19:03
rgareusand devs need to write RDF for lv2 plugis, so they can't really complain about the MOD following19:03
rgareusthey can complain about LV2 using RDF in the first place :)19:03
falktxthis could be done by saving each plugin state as a lv2 preset (different filename for each plugin)19:03
bgolaspecially in this case of save states, user should not deal with the files directly19:04
bgolaops, session*19:04
rgareusright and then you /only/ need an API to save connections19:04
rgareuswihch probably aleady exists in ingen19:04
bgolaand do you think it makes sense to have something like LilvSession, lilv_session_restore, etc ?19:05
falktxwill plugins have unique names?19:05
falktxthat's a limitation in jack currently19:05
rgareusbgola: jack-session is flat.   one set of connections.19:07
gianMODfalktx: the unique name would be the URL19:07
rgareusbgola: with ingen's approach you can nest things.19:07
gianMODand then the host would deal with the instances / nodes19:07
falktxURL ?19:07
rgareusbgola:  e.g. a sub-network inside a sub-network .19:07
* rgareus wishes drobilla were here. he did this all before19:10
bgolargareus: i believe this lv2 session would work independent on how the connections are really made... if it's jack or ingen's approach19:13
bgolaTBH i need to check how ingen works19:13
falktxFYI I'm all for having this implemented in Carla once we have a base format spec19:13
falktxthe 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
bgolafalktx: i was about to ask you about that :)19:14
falktxbut that will be up to the user to decide. if exporting to such format users need to use lv2 plugins only19:15
rgareusbgola: there's   ingen:Graph  node in the RDF that just uses lv2:port to specify connections19:19
rgareusall documented at http://drobilla.net/ns/ingen#19:19
rgareushttp://drobilla.net/ns/ingen#Arc  to be specific19:20
falktxconnecting 2 plugin control ports is not possible in jack (or carla, yet)19:21
falktxnot sure if the mod can do that either19:21
rgareusingen can do19:22
gianMODneither in MOD19:22
gianMODbut we have some ideas regarding control ports connections19:22
gianMODany of these existing solutions deal with attachmentes?19:26
gianMODlet's say, an Impusle Response used by a convolution reverb19:26
falktxdepends on the plugins19:29
falktxir.lv2 is pretty bad on this19:29
falktxsome plugins save state properly via lv2-state-files thing, which the host can use to pack things nicely19:30
bgolafalktx: that's good19:31
gianMODi guess some of the file handling job is done by the GTK or Qt layer, correct?19:32
*** zth has quit IRC19:33
*** rncbc is now known as rncbc|AFK19:34
falktxit's done by the host19:35
gianMODso 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 it19:36
gianMOD:-)19:36
bgolafalktx: can you point me to a plugin that handles files in a proper way?19:37
falktxeg-sampler19:37
falktxsamplv1 by rui in the latest update should do it too19:37
falktxthere's some convolver plugin by drobilla and rgareus too, forgot the name...19:37
rgareusconvo.lv219:38
falktxthe distrho ports certainly will *not* do this. by limitations of other plugins specs19:38
falktxhttp://lv2plug.in/ns/ext/state/#mapPath19:39
rgareusconvo.lv2  is a very minimalistic wrapper around fons' zita-convolver;  the only complex thing is state save/restore in the backround.19:40
falktxrgareus: it uses state mapPath right?19:40
rgareusyes19:40
bgolafalktx: nice, eg-sample source makes it much clearer for me :)19:41
bgolathanks19:41
rgareusand atom:Path19:41
falktxI don't think I have that packaged. I should do that... but still need to write the carla news...19:41
rgareusit may be the only plugin around that provides an interface that a host could use to show a file-selection dialog19:41
falktxeg-sampler does that too19:42
rgareusright19:42
rgareusit includes a miniamlisic GTK GUI - just a file-selection dialog in case the plugin-host cannot do that.19:42
bgolargareus: using eg-sampler the plugin-host can't set the sample file without using it's GTK UI, right?19:51
falktxit can, by sending a special atom:path message. but that's a different lv2 feature19:53
falktxhttp://lv2plug.in/ns/ext/patch/19:55
falktxmore specifically http://lv2plug.in/ns/ext/patch/#Set19:56
falktxthat's the one eg-sampler uses19:56
bgolafalktx: thanks, does carla or ingen support this feature?19:57
falktxcarla, no. don't know about ingen19:57
falktxnot sure if any host supports this yet19:57
falktxrgareus: do you know?19:58
rgareusI don't know any host that does support it19:59
*** mlpug has quit IRC20:02
bgolathis may be a stupid question but... do you know why it uses ext/patch instead of an atom port?20:12
*** gianMOD has quit IRC20:12
*** gianMOD has joined #lv220:12
*** gianMOD has quit IRC20:17
*** gianMOD has joined #lv220:19
falktxit's an atom port20:29
falktxthe patch extension just defines the message type so that the host can send to the plugin and understand each other20:30
*** gianMOD has quit IRC20:37
*** gianMOD has joined #lv220:37
*** gianMOD has quit IRC20:42
bgolafalktx: ok i get it, it uses the atom port to receive messages and the patch ext to define20:44
bgolathanks20:44
*** gianMOD has joined #lv220:52
*** rncbc|AFK has quit IRC21:03
* drobilla waves21:32
drobillagianMOD: IMO bundle directories (or archives) that are as straightforward and human-readable as possible are clearly the way to go21:33
drobillagianMOD: I use ttl and a format that's essentially a subset of an LV2 plugin, and am quite happy with that choice21:33
drobillagianMOD: 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 whatever21:35
drobillafalktx, bgola, rgareus: jalv supports setting that filename property on eg-sampler with host-generated UI21:35
drobillaIngen uses the patch vocabulary for 100% of its UI<=>engine communication internally, if that counts21:35
*** gianMOD has quit IRC21:36
*** gianMOD has joined #lv221:36
drobillaRe: 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
drobillaWhich you couldn't do with e.g. <inputport> :connectedTo <outputport>21:37
drobillagianMOD: The bundle idea really isn't novel.  Tons of programs do this, usually hidden in an archive.  Libre/OpenOffice, Ableton...21:40
drobillaIt's clearly vastly more sane than trying to pack a bunch of binary crap into some weird opaque thing21:40
*** gianMOD has quit IRC21:41
rgareusdrobilla: the party's over. (or just started) MOD team called it a day :)21:42
rgareusit's be cool if MOD "networks" could be loaded in ingen (and vice versa)21:44
rgareussince MOD just describes [audio|midi] connections between LV2 pluins, it should be easy to load those in ingen21:45
* bgola still here 21:46
drobillargareus: Well, the vocabulary's there21:46
rgareusingen to mod will depend on the MOD supporting control-port and Atom-port connections (if there are any in the ingen patch)21:46
bgolargareus: we plan to support those as well21:47
drobillaI 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, really21:48
drobillaThe main thing it lacks is a real separation between graph, er, "template" (class?) and instance21:48
drobillaThough this is more of an implementation thing than a vocab thing21:48
bgoladrobilla: jalv assumes every patch:writable is a file path and adds a file chooser controller?21:49
drobillabgola: Doesn't assume, no, but that's the only thing it actually supports.21:49
drobillabgola: Just kind of a proof of concept thing, really, it doesn't robustly support a bunch of controls via that mechanism21:49
drobillachickens 'n eggs and all that21:50
drobillaconceptually 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 oen21:53
*** edogawa has quit IRC22:01
*** ricardocrudo has quit IRC22:05
*** HarryHaaren has joined #lv222:18
* drobilla wasted most of the day sitting in a waiting room, stupidly without laptop22:20
Anchakorget a smartphone at least22:22
drobillaI forgot it, but in any case, can't do any real work on that anyway22:33
drobillaThey (oddly) happened to have the local left-wing student rag, but I was trapped in there for hours22:36
drobilla+1 for just ignoring any and all medical issues until you die22:36
rgareusdrobilla: are you cured now?22:41
drobillaI have to get an x-ray and ultrasound to confirm alien face-hugger infestation22:43
rgareusdrobilla: the x-rays should have killed those22:45
rgareusaah you /have to/ (not had to)22:45
*** HarryHaaren has quit IRC22:48
Joeboydrobilla: dying is absolutely verboten for you, I'm afraid.23:33
*** gianMOD has joined #lv223:33

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