Sunday, 2014-12-14

HarryHaarendrobilla, ping re Lv2:Presets and custom UIs?00:01
*** NickSB has joined #lv200:02
*** NickSB has quit IRC00:06
*** NickSB has joined #lv200:07
drobillaHarryHaaren: .00:21
HarryHaarenso I'd like to present a list of available presets in the custom UI: from a UX perspective this just makes sense: presets for plugin X are available in the UI of plugin X, not the host window (or sub-window/menu)00:22
HarryHaarenproposal is as follows: all stays as is, with the following changes: an extension to allow the plugin to query the host for a NULL terminated list of preset names. Host scans LV2_PATH etc, and returns list.00:23
*** gianMOD has joined #lv200:24
drobillaMeh.  Hosts that support presets are likely to already have the selector anyway00:24
HarryHaarenIt'd be nice to have some meta-data available ("genre" or "catagory" or something), but I'm not sure how to design that in an extension00:24
drobillaI could maybe be rammed in as an option.00:25
HarryHaarendrobilla, i know you know. You coded A3's LV2 and wrote LV2. Its not you that I'm thinking of, sorry. Its a normal user, who's trying get-rich-by-making-beatz00:25
HarryHaarenperhaps I'm confused in the best way to implement: i'm relaxed about how it works, but it would be awesome if it could happen00:26
HarryHaaren*would be awesome if it *did* happen too.00:26
drobillaWell, in effect you end up with two selectors for the same thing taking up space00:26
drobillaI mean, sure, that sounds nice, woo users, but does it actually make anything easier for anyone?00:26
HarryHaarenexcept for that one is in the plugin-UI, where a user reasonable expects it to be.00:26
HarryHaarenyes. Have you tried loading a preset in QTractor?00:26
drobillaNope.00:26
HarryHaarenas a plugin-dev I'm at the mercy of the UX of a host... and I don't like it.00:27
drobillaBut if the implementation is no good, well, requiring even more implementation which must be gooder...00:27
HarryHaarenIts in a right-click context menu, 2 levels deep.00:27
HarryHaarenin this case, a plugin can do it right. So yes, gooder :)00:27
drobillaWell, the problem is it will dive off the slipper slope deep-end00:28
drobillaYou need a URI for each, query mechanism to get all of them, set thingie to set one00:28
drobillaBut, oh right, need names00:28
HarryHaarenI've filed tickets against QTractor, no luck, tried explaining, still no luck. Rui did change move it *into* the r-click context menu though *facepalm*00:28
HarryHaarenthis: http://sourceforge.net/p/qtractor/tickets/126/00:28
drobillaSomehow I have a feeling "oh I need this and that and the other thing" will follow00:28
drobillaSo some half-assed thing isn't going to fly00:29
*** gianMOD has quit IRC00:29
drobillaAnyway, using the option interface is probably the way00:30
HarryHaarencould we somehow highjack Atom messages?00:30
drobillaNeed some kind of announce one00:30
drobillaor that, but it's more of a PITA00:30
HarryHaarenI'm thinking of Lv2:Time # position stuff that the host announces on-startup00:30
drobillaFrankly it's not a huge priority for me given the huge list of things that are actually limiting and just not a pain in everyone's ass to do something we can already do, but feel free00:31
HarryHaareni guess options is ~the same00:31
HarryHaarencool. I'll try my hand at it, if you can give me some guidance on a draft that'd be awesome00:31
drobillaKinda.  You just don't have to forge things and so on, though it's more limited as a result00:31
drobillaWell, not quite, since you *can* but it's mainly an 'easy case is easy' thing for flat stuff00:31
drobillaIt has no query facilities or anything like that, though.00:32
HarryHaarenok, so Options interface, and I"ll ping you about it in a few days when I've wrapped my head around a draft or so00:32
drobillaa message via the ports is also doable, in some sense, though it's a bit weird to have one that explictly *isn't* intended for the plugin00:33
HarryHaarenwhat about enumerating them? keep calling a host-supplied function pointer until NULL comes back, and then you have all preset structs?00:33
drobillaI dunno.  Basically whatever simple *generic* thing will get the job done, great00:33
drobillaJust not get_preset(int num, char* random_shitty_unextensible_thing_I_thought_of_at_the_moment, bool i_suck_at_api) etc00:34
HarryHaareni like the "keep callin me till return zero" thing: FLTK uses it a lot and its easy to work with.00:34
HarryHaarenhaha00:34
HarryHaareni do suck at api, but I'll try make it less obvious.00:34
drobillahm.  that could work.00:34
HarryHaarenassuming we're a bit careful with the struct, its future-proof for adding some extra things?00:35
drobillaand/or the result could be a list of some sort.  though this kind of clashes, since list != several values for the same property00:35
HarryHaarenits more like the features array that's passed to instantiate?00:35
HarryHaarenunique URI for each preset (its its unique ID anyway IIUC?)00:36
drobillaUnfortunately I didn't foresee multiple values so the option struct doesn't have support for that.  Not sure if it could be rammed in without breakage00:36
drobillayes, presets have URIs00:37
HarryHaarenkeep-calling till NULL would solve the multiple-return-values issue?00:37
drobillaif it makes sense in that context, I suppose00:38
drobillawe could add a status flag for "BTW there's more"00:38
drobillathe hidden statefulness of it is a bit shit, though00:38
HarryHaarentrue..00:39
HarryHaarenif I keep on trucking at this rate working on Fabla 2.0, it should be "ready" by late next week. 2.1 is intended to have LV2 presets and LV2 aux-busses : i'll leave it until then to get my hands dirty. Expect a ping *when* i'm struggling drafting up something.00:40
* HarryHaaren back to the codes, thanks for the chat / ideas.00:41
drobillattyl00:42
*** ricardocrudo has quit IRC00:48
*** HarryHaaren has quit IRC01:23
*** gianMOD has joined #lv201:26
*** gianMOD has quit IRC01:30
*** drobilla has quit IRC01:49
*** gianMOD has joined #lv202:27
*** gianMOD has quit IRC02:32
*** gianMOD has joined #lv203:04
*** gianMOD has quit IRC03:09
*** gabrbedd- has joined #lv203:46
*** falktx has quit IRC03:46
*** gabrbedd has quit IRC03:47
*** wrl has quit IRC03:47
*** wrl has joined #lv203:47
*** gabrbedd- is now known as gabrbedd03:48
*** triune has quit IRC04:28
*** triune has joined #lv204:30
*** Anchakor1 has joined #lv205:19
*** triune has quit IRC05:32
*** Anchakor_ has quit IRC05:32
*** bazz has quit IRC05:32
*** wrl has quit IRC05:32
*** Anchakor has quit IRC05:32
*** triune has joined #lv205:39
*** wrl has joined #lv205:39
*** Anchakor has joined #lv205:39
*** triune has quit IRC05:39
*** triune has joined #lv205:39
*** bazz has joined #lv205:48
*** bazz has quit IRC05:59
*** bazz has joined #lv206:00
*** unclechu has joined #lv208:25
*** zth has joined #lv209:00
*** NickSB2 has joined #lv210:54
*** HarryHaaren has joined #lv211:23
*** ricardocrudo has joined #lv211:39
*** ricardocrudo has quit IRC11:54
*** rncbc has joined #lv212:05
*** rncbc is now known as rncbc|AFK12:05
*** NickSB2 has quit IRC12:21
*** ricardocrudo has joined #lv213:01
*** zth has quit IRC13:09
*** zth has joined #lv213:22
*** gianMOD has joined #lv213:49
*** HarryHaaren has quit IRC14:02
*** HarryHaaren has joined #lv214:03
*** drobilla has joined #lv214:03
*** gianMOD has quit IRC14:18
*** edogawa has joined #lv215:12
*** ricardocrudo has quit IRC15:40
*** ricardocrudo has joined #lv215:54
*** rncbc|AFK is now known as rncbc17:15
HarryHaarendrobilla, hey hey... I've implemented that LV2 UI Preset List as an extension: its pretty clean. Simple. Extensible. (aannndddd I hope I didn't suck too hard on API)17:16
HarryHaarenhave time to chat about it now?17:17
* HarryHaaren notes later is also an option17:17
drobillaNot particularly17:21
drobillaAlso, when your pugl changes settle I would like to get that merged ASAP17:22
*** ricardocrudo has quit IRC17:22
*** crudo has joined #lv217:22
*** crudo is now known as Guest6759617:22
HarryHaarenah ok, cool. I want to get X11 DnD implemented for 2.1 of Fabla so that's on the cards for later17:22
drobillaPastebin the spec or send it to the list or something and I'll skim it17:22
* drobilla is working and stuff17:22
*** unclechu has quit IRC17:28
HarryHaarenaint pretty, but http://openavproductions.com/tmp/index.html   and a "show-off" test file: http://openavproductions.com/tmp/test.html17:38
HarryHaarenits strong points are: 1) extensible by adding variables to Preset_Descriptor 2) Simple to implement for hosts 3) plugins can keep only "name-URI" key:value pair if that's all they want, simple. 4) Plugins can be smart showing catagories etc etc if they wish17:40
HarryHaarenweaker points: 1) no way to get a smaller sub-set of presets, the entire list is always communicated17:41
drobillaI am not really a fan of adding a descriptor struct for something that isn't static17:42
drobillaAlso you spelled category wrong ;)17:43
HarryHaarenhit F5 ;)17:43
drobillaIt would actually be *easier* in the host to implement a 'get a property about <whatever>'17:43
HarryHaareni don't see how such an API would work: i don't get it sorry.17:45
HarryHaarenplugin queries host "give me properties about myself"?17:46
drobillaget(struct of three things harry though of about one specific object type) => not really extensible by any stretch, though you can stick more things in there later (if there was versioning anyway)17:46
drobillaget(thing, property_id) is17:47
drobillawhere thing in this case is a preset17:47
*** rncbc has quit IRC17:49
drobillaBasically, as a host if I just provide UI access to lilv_world_get you can get information about whatever you want and I don't have to special case every litle thing, which is a much nicer situation on both sides of the table17:49
drobillaIf everything had one value, this would be trivial and fully powerful and wonderful in general17:50
HarryHaarenits sounds good to me.17:50
drobillaMultiple values is the tricky part17:50
* drobilla idly wonders if the same interface could be dynmanifest-without-turtle17:51
drobillaI guess as a sort of compromise there could be that, and a special get_presets17:52
drobillaSince querying for those is a bit weird17:52
*** falktx has joined #lv217:53
HarryHaareni've learnt a load even just getting to the point of what I wrote there. I don't think given the experience I have I can do much better.. I'd like have a solution: although it'd be nice if its simple + extensible, I'll settle for in-production :)17:53
drobillaOnce you have the preset URI it's easy.  get(pset, label), get(pset, type), get(pser, 3D animated GL icon) etc17:53
drobillaYeah, I'll think about it17:53
drobillaThe timing is pretty awful, to be honest.  I have 90 things to do, and getting a release of LV2 out is one of them, and actively don't really want to add any extensions right now...17:54
HarryHaarencool. I'm back to Fabla code in that case, and I'll ping you later in week or so17:54
drobillaand after that, ideally *reducing* the number of extensions we have17:55
drobilla(the index is pretty terrible in a 'where's the stuff to do X?" sense right now)17:55
drobillaActually *setting* the preset could be an option18:01
drobillaand an announce interface for those in the current option ext would be simple18:01
drobillaSo perhaps the 'getting information about stuff' is totally separate18:01
drobillaand, for now, the option thing could work with presets you know about ahead of time (i.e. stock ones)18:02
HarryHaaren+1 if that method scales (eventually) to requesting a preset-list and setting that too18:36
*** falktx has quit IRC18:47
*** zth has quit IRC19:16
HarryHaarendrobilla, just a note on PUGL git workflow etc: https://github.com/apenwarr/git-subtree/blob/master/git-subtree.txt#L49  These sub-modules seem pretty neat for what I'm trying to do...20:13
HarryHaaren(PUGL / AVTK)20:13
*** HarryHaaren has quit IRC20:19
drobillaHm.  maybe20:52
*** HarryHaaren has joined #lv220:56
HarryHaarens'cuse me for timin-out after talkin, strange lock-up issue20:57
LAbot`HarryHaaren: Sent 26 minutes ago: <rgareus> to ask drobilla about pugl + submodule. He'd prefer a submodule for merging (getting subtree commits back upstream is not-trivial). I made that mistake and falktx, too (though pugl was not git'ified back then)20:57
HarryHaarenhmm. is that still the case?20:58
HarryHaaren(@ you drob)20:58
HarryHaarenrgareus, out of interest, why is it harder? Commit names? I'll split commit PUGL stuff, and the AVTK stuff seperatly20:59
HarryHaarenah, the rebase issue i guess21:01
drobillaI don't know if git can apply such commits because the paths would be messed up21:07
drobillaI can't just add an upstream and cherry pick or whatever21:07
drobillas/upstream/remote/21:08
HarryHaarenactually, i'm doing it here already. AKA the existing PUGL remote on my github will have my changes21:09
HarryHaarenwhich will be easy for you to cherry-pick / merge as its just-another-repo.21:10
HarryHaarenwin/win21:10
drobillajust-another-repo is what I want21:10
drobillaIf you have a pugl repo, how is it incorporated in avtk?21:10
HarryHaarenand you got it :)21:10
HarryHaarenright now its a copy-pasted codebase. I might sub-module PUGL into AVTK21:11
HarryHaarenill see21:11
HarryHaareneither way, patches to you will be on github.com/harryhaaren/pugl21:12
drobillaWhat's with the leading - in commit messages?21:13
HarryHaarenjust my thing.. dunno. Bullet points21:13
* HarryHaaren gets asked that a lot21:14
drobillaThat's because git has a universal standard for commit message formats, and that ain't it :)21:14
drobilla(so the summary makes sense)21:14
drobillaI tend to like bullet point commit messages too, but c'est la vie21:15
drobilla(First line is summary of commit, < 70 chars I think, though not sure.  Magit makes it all red and angry past some point I blissfully assume is worth adhering to)21:17
HarryHaarenyep. I keep commits small enough so the whole contents fit in there21:19
HarryHaarenif you prefer essay style commits with huge change-sets.. let me know ;) Or just pull --squash :D21:20
drobillaJust don't put a weird looking dash in front of the summary that will mangle my log and I'm happy :)21:22
drobilla(blank line afterwards)21:22
* HarryHaaren will try remember21:23
*** falktx has joined #lv221:33
*** edogawa_ has joined #lv222:23
*** edogawa has quit IRC22:24
*** edogawa_ is now known as edogawa22:59
*** HarryHaaren has quit IRC23:16
*** edogawa has quit IRC23:35

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