Saturday, 2014-02-01

drobilla... I'm beginning to regret choosing to publicly log this place00:05
drobillaAnchakor: Not sure.  Their online compiler thingie is down due to a security breach though00:05
drobillaAnchakor: Re: paper, I'd ask about the overall scope and focus, but you're an RDF nerd, so maybe I just shouldn't :)00:12
Anchakorwell I tried to suppress my RDF knowledge and idealism :)00:14
AnchakorI think it is well done00:14
Anchakorif you address the things which have confused me00:15
Anchakoralso I wonder how the forge section would be, stopped reading there as it was clearly mostly notes for yourself what to write about there00:15
drobillaYeah, haven't really made it that far00:16
drobillaWas trying to make that damned forge snippet fit in the column :)00:16
drobillaBut it kind of needs to be right next to the corresponding Turtle00:16
Anchakorwhat did you use for the atom type hierarchy diagram?00:17
drobillabut this is talked about much ealier.  tricky.00:17
drobillaAnchakor: tikz00:17
drobillaWhich I totally don't understand, mostly blind copy/paste.  It's weird.00:17
drobillaWould have been less work to just draw it.00:17
drobilla(ipe being my usual weapon of choice)00:17
AnchakorI saw diagrams pretty clearly done with the same tool in some other papers00:17
Anchakorseems popular with tex people00:18
drobillait's built in00:18
AnchakorI use inkscape/yEd00:18
drobillalatex package that gives you a graphics language in your document00:19
drobillaI use ipe because you can typeset labels in latex00:19
drobillaParticularly important if it corresponds to variables in the text00:19
AnchakorI did draw some vertex stuff in latex class I took, worse part of the course00:20
Anchakorworst*00:20
drobillaYeah, I never draw with any of those weird packages00:21
*** Gethiox has quit IRC00:21
drobillaThis is literally the only time I tried, and it wasn't fun00:21
*** HarryHaaren has quit IRC01:26
* drobilla goes to bed, having totally not finished the paper at all05:37
drobillasigh.05:37
*** falktx_ has joined #lv205:53
*** falktx has quit IRC05:54
*** edogawa has joined #lv207:02
*** abique has joined #lv208:45
*** abique has quit IRC08:51
*** abique has joined #lv208:51
*** drobilla has quit IRC09:30
*** rncbc has joined #lv209:33
*** drobilla has joined #lv209:34
*** Gethiox has joined #lv209:48
*** falktx_ has quit IRC10:29
*** falktx has joined #lv210:35
*** NickSB2 has joined #lv212:32
*** rncbc is now known as rncbc|AFK13:21
*** shanipribadi has quit IRC13:27
*** edogawa_ has joined #lv215:30
*** edogawa has quit IRC15:33
*** mlpug has joined #lv215:39
*** edogawa_ is now known as edogawa15:41
rgareuslv2_atom_forge_blank()  has been deprecated, use lv2_atom_forge_resource() instead...16:03
rgareuslv2_atom_forge_resource()  has been deprecated, use lv2_atom_forge_resource() instead.16:04
rgareusdrobilla: ^^ is that a typo?16:04
falktxI reported something similar a few days ago16:05
rgareusfalktx: and?16:06
rgareusfalktx: did you get an answer?16:06
rgareusfalktx: did you file a ticket?16:06
falktxdrobilla fixed it I believe16:06
falktxbut it was in a comment16:06
rgareusfalktx: svn rev905 fixed only part of this16:08
rgareusit did  s/lv2_atom_forge_resource/lv2_atom_forge_object/16:09
rgareusin forge.h16:09
falktxit's the copy paste16:10
rgareus http://dev.drobilla.net/ticket/95716:13
*** mlpug has quit IRC16:28
*** mlpug has joined #lv216:32
*** mlpug has quit IRC16:37
drobillaOops, half fix.  Fixed now.16:56
rgareusdrobilla: oh, sorry. I should have used http://lv2plug.in/report17:15
drobillaI wonder if there's a decent fancy trac module to hijack from other accounts these days17:16
drobillapreferably many, like openid, google, etc17:16
drobillaI'd like to maintain my own services without the make an account barrier...17:16
rgareusit's called github :)17:16
* rgareus ducks17:16
drobillaIf anything I'd move to gitorious17:17
drobillaI do not approve of github's proprietization of FS development17:17
drobillaHaving the *two* sites to run sucks though17:18
rgareusdrobilla: the question I asked myself: Do i want to spend time on maintaining it and fighting spam. vs how much freedom/control is lost by not hosting it myself.17:18
AnchakorI think github is ok if you don't *rely* on its additional features17:18
rgareusAnchakor: yeah. I came to the same conclusion17:19
Anchakoraka someone who doesn't use github can still contribute to github-based projects17:19
drobillaAlmost nobody actually uses the LV2 trac anyway.  Mine is a little more useful.17:20
rgareusI like the 'issue/ticket' system on github, too17:20
Anchakorif you don't force people to use pull requests, and the bugtracker, it is fine17:20
drobilla'course, when the super cool trendy hosting site of the month goes away, then you get to move it all over again17:20
drobillaAnchakor: A bug tracker is the main thing I need.17:20
drobillaI have also idly considered installing something more heavy-duty and multi project at lv2plug.in and just moving all my LAD stuff there17:21
AnchakorI think bugtracker I liked the most was mantis17:21
drobillaand inviting whoever else to do the same17:21
drobillaThough few probably would17:21
drobillamantis strikes me as hyper complicated17:21
drobillaTrac is nice in that you can link back and forth, I close tickets with a link to the commit that resolved them.17:22
rgareusdrobilla: I close tickets with a commit message :)17:22
drobillaYes, I mean, I don't think Mantis can do such things.17:23
drobillaand that's just *another* service to run.17:23
Anchakormany people seem to like redmine, but it is ruby :|17:24
drobillaYeah, no thanks.17:25
drobillaI am more or less happy with trac anyway, just account shit is problematic.17:25
drobillaI assume the git stuff is working decently these days.17:25
falktxa user is reporting an issue with latest lv2 update17:26
falktx"lv2ls" gives a segmentation fault...17:26
drobillaI doubt an LV2 update could make lv2ls segfault17:26
falktxI did the update to latest svn17:26
falktxafaik it was working (for him) before17:27
falktxanyway, I asked for a "strace lv2ls" to see if a specific ttl is the issue17:27
drobillaIIRC only atom stuff has changed17:27
drobillawhich lv2ls doesn't use17:27
falktxI don't know either17:31
falktxusers have a special skill to break stuff17:32
rgareusmaybe s/he installed a fancy plugin?17:32
rgareuswith a buffer-overflow'ing URI17:32
drobillayeah, most all it does is read ttl17:34
rgareushttp://coolplugin\0rm%20-rf%20/#borked17:35
drobillathere have been some non trivial *lilv* changes...17:35
drobillaif you can track it down to a file that would be good17:35
drobillargareus: hah.  serd is pretty robust, but I haven't specifically gone over it with a security eye, I guess you never know :)17:35
falktxmaybe it's naspro again...17:36
rgareusstrace -f -e trace=open lv2ls 2>/tmp/debug.out17:37
rgareus-f might not be needed, lv2ls does not fork itself, but who knows17:38
rgareusthere might be some exploits possible with those launchers that just go   lv2ls, user-selection, run jalv.gtk..17:46
rgareusbut that's just academic. if the plugin is executed it can do anything, anyway17:49
falktxlater17:49
*** falktx has quit IRC17:49
Anchakorit can steal your music!17:50
drobillaI wonder if any other projects would end up at lv2plug.in if it was pitched that way17:52
drobillaPlugins, in particuar.17:52
drobillalv2-universe17:52
Anchakordoesn't seem to be much of a point17:53
drobillathe main point there would be maintaing otherwise dead plugins I suppose17:53
Anchakoryou can always fork those17:54
drobillaI dunno.  I don't like hosting projects on some companies Product™17:54
drobillaLV2: Now Hosted on UltraHub Pro™17:54
drobillaFucking Facebook of programming is what we've come to17:55
wrlthen use bitbucket or gitorious or repo.or.cz or something17:55
drobillaIt would be nice not to run 2 tracs, but I don't really want lv2plug.in to be a drobilla only party any more than it already is17:55
drobillaThough lilv and friends probably should move into LV2 proper regardless17:56
drobillaserd/sord are the tricky parts17:56
drobillaApps and plugins are so unbelievably easy and unproblematic.  Sigh.17:57
drobillaAnyway, I'm going to go finish this damned paper now17:58
AnchakorI think maybe in what could lv2plug.in be more useful is if it turned to be more community site - people would manage catalogization of lv2 plugins to promote their plugins or plugins they use + would have account so could easily report problems with your SW18:01
drobillaI can't really map that to concrete software18:02
drobillaMore community centric is what I was going on about yesterday.18:02
drobillaThere *is* a wiki...18:02
drobillaI like the question things18:02
Anchakortrac has a wiki, can you restrict users to giving them write rights to only certain pages?18:03
drobillaI don't think so, but is there really a need?18:03
Anchakorhmm good point18:03
Anchakorif it is resistant to bot vandalism18:03
drobillaMaybe jumping off the deep-end of new software isn't really worth it, and the trac should just be restructured to look more contribute/community friendly, google accounts supported, etc.18:04
Anchakoryeah I think so, integrating another system would be PITA18:04
drobillaI guess one obvious thing is to move all that current stuff to a separate page.18:36
drobillaMaybe intro for developers, intro for users.18:36
drobillaWhere the latter is all screenshots and whiz-bang features18:36
* drobilla launches the 17 gig Windows vbox image he just downloaded18:51
drobillapleaseworkpleaseworkpleasework18:51
*** mlpug has joined #lv218:59
*** abique has quit IRC19:03
rgareusI have/had this idea to make 1 page per plugin with generated doc + user-comment-section at the bottom.19:15
rgareuslv2ls | lv2tohtml -> http://robin.linuxaudio.org/tmp/lv2doc/19:15
rgareusthe screenshot does not work for every plugin and the old event ports are not rendered correctly in the HTML.  and it's currently static html19:16
rgareusalso, for the plugins that I have around, dave and I are the only ones who provide a plugin-description and port-documentation in the ttl.19:17
drobillargareus: cool stuff19:20
drobillaYeah, I was hoping more obvious support in hosts would get more plugins to do it19:20
drobillaTooltips aren't so obvious though19:21
rgareuspublishing this could become an incentive for others to add [build-in] docmentation19:21
rgareusdrobilla: yeah. the html+CSS is also up for improvement19:21
drobillaI was going to make such a thing based on the lv2specgen theme19:21
drobillargareus: I use the same stylesheet for all lv2 stuff.  Feel free to steal it19:22
drobillaan option to make this output things in a way that would be resolvable for plugin URI, so projects can do that, would be cool19:22
rgareusthere could be an iframe included for comments..19:22
rgareuspersonally I'm not a fan of web-forums, but I suppose most users would like that19:23
rgareusdrobilla: it'll need some planning. I hacked this together to docuent my own plugins.  to make this work generally it'll need some tweaks19:24
rgareushttp://robin.linuxaudio.org/tmp/lv2doc/http___www_openavproductions_com_fabla.html wins the awared to highest port-count :)19:25
rgareussome sort-option and grouping in the index-page would be needed as well..19:26
drobillaneeds groups19:26
rgareusit eventually boils down how automated it should become.19:26
rgareusdrobilla: oh my. I still have your age old 'OSC Metronome' around. Is that still maintained?19:28
drobillargareus: huh.  I don't know if that thing ever even worked19:29
drobillaI sort of implemented LV2ey OSC at one point...19:29
drobillai.e., no19:30
rgareusdrobilla: I have it in /usr/local/lib/lv2/metro.lv2/ - Feb/200819:30
* rgareus feels old, now19:30
drobillaYeah, I get weirded out by how long LV2 has been around sometimes19:34
drobillaIt's insane how long Windows updates take19:51
drobillaI am almost tempted to just omit the forge section entirely.19:59
drobilla1 Introduction, 2 Mechanics, 3 Semantics, 4 Reading and Writing Atoms, 6 Future Work19:59
drobilla4 really messes up the flow of the thing19:59
Anchakor4 was Applications no?20:04
Anchakoryou probably could omit the forge section as it is basically just a tutorial material20:04
Anchakorjust explain wht it is and that it should be used instead of having to make atoms by hand20:05
drobillaer, right, insert Applications at 420:10
rgareusAppendix A: code examples20:12
rgareusAppendix B: Collection of email-flames regarding LV2-Atoms20:13
drobillaAppendix would conveniently get me out of trying to cram code into 40 columns, but also could just be ommitted20:13
drobillahah20:13
drobillaWell, I'll revise and finish up the rest of the stuff and see where the length stands20:13
*** drobilla has quit IRC20:40
*** drobilla has joined #lv220:53
* drobilla 's machine hard locked20:54
drobillaWell, that's fun20:54
Javafantyou think hard locks are fun?20:55
drobillaWhee!20:58
drobillaI blame Windows.20:59
drobillaSpeaking of Windwos, I saw something on stack overflow that's actually a nice idea which is a Windows convention20:59
drobillaStructs start with a size field, which serves as both size and version (since you only append to structs).  So, you can initialize them like Foo x = {sizeof(x)}21:00
drobillaThe compiler will zero out the rest, though I'm not sure that's actually standard C behaviour.  Things certainly warn about that.21:00
drobillaAnyway, LV2 definitely should have put size fields in all the stricts.  There's always extension_data, but that sort of makes things a second class citizen forever.21:01
drobillaApparently zeroing the rest is standard, -Wall or -Wextra is just being paranoid21:05
rgareuswhy would you want a size AND version field in any struct. Strikes me as the same stupid idea as hungarian notation.21:15
rgareusit does not help with API/ABI versioning in anyway way, and the compiler does not know what to make of this, either way21:17
drobillargareus: there is just a size.  size effectively serves as version.21:17
rgareusdrobilla: struct versioning for runtime?21:17
drobillargareus: yes21:18
drobillae.g. load an LV2_Descriptor and you can check the size to know if, say, ultra_run() is there21:18
rgareusquestionable at best.21:19
drobillawhy?21:19
drobillaotherwise you have no mechanism to add anything.21:19
rgareusdrobilla: you'll need to change LV2_Descriptor in the first place to add .size21:19
drobillayou just straight up can't, because there's no way to check what version something is using21:19
drobillargareus: Well, yeah, that's the point.  Should have, but didn't.21:20
rgareusdrobilla: and further fragmenting LV2 by allowing more functions in there seems unwise, too21:20
drobillaIt doesn't fragment anything.21:20
rgareusdrobilla: host 1 supports ultra_run(),  some other dev increments the size and adds special_in_place()21:21
rgareusoops same .size21:21
rgareusdrobilla: host 3 does not know about either..21:21
drobillargareus: uh, obviously anyone can't just set the size to whatever the hell they want21:21
drobillargareus: it's sizeof(LV2_Descriptor)21:21
rgareusdrobilla: right, you add ultra_run, I add special_in_place21:21
drobillaThis is how you make structs extensible in a dynamically loaded API.21:21
rgareusdrobilla: same sizeof()21:21
drobillargareus: Uh, no.  Two people can't both change lv2.h obviously.  Any more than they can now.21:22
drobillaThis is to do with structs in (inherently centralized) APIs.21:22
drobillaIt is not a decentralized extension mechanism.21:23
rgareusdrobilla: mmkay. for dlopen() descriptor this is compatible way21:24
rgareusdrobilla: for API in general, a better idea is to simply deprecated the struct and provide a new one.21:25
drobillargareus: Right.  For library APIs, the static sizeof(struct) will tell you if this is even necessary at all (which is unlikely), but for modules, you need the size to be able to extend structs21:25
drobillargareus: For library APIs you just append stuff and bump the minor version21:25
rgareusdrobilla: but code-wise. the host will need to check size() anyway and then do something depending on the version found21:26
rgareusdrobilla: it could also just check for different descriptors directly21:26
drobillargareus: Indeed it will.  Being the whole point and all :)21:26
drobillargareus: Now *that's* fragmentation...21:27
rgareusdrobilla: heh. same thing really21:27
drobillargareus: No.  A plugin that uses a newer extended version would work in an old host21:27
rgareusdrobilla: could be done with unions, too21:28
drobillaI really don't get why you'd actively try to come up with all these crazy difficult ways of doing the same thing :P21:29
rgareusdrobilla: well, yeah. are you planning to change LV2_Descriptor?21:29
rgareus..anytime soon?21:29
drobillaNo, because I can't, because of this mistake.21:29
rgareusdrobilla: I was just brainstorming if there'd be a more elegant or practical solution..21:30
drobillaMy loathing of the unbelievably stupid connect_port() is pretty well known.  I will make an extension for that at some point that just passes an array of pointers to run_on() or whatever.21:30
drobilla(Which is also const-correct, as it happens)21:30
drobillargareus: Size is a great solution.  Extensible, but zero clunky overhead for either side.21:31
rgareusdrobilla: how about variable port-counts?21:31
drobillargareus: I don't know, but it's not really related to those APIs.  Some other API could change up how many ports there are.21:31
drobillargareus: Not a can of worms I plan on opening any time soon.21:32
drobillaEvent-based control is vastly more important IMO.21:32
drobilla(If it weren't for zero-copy requirements I'd probably want to send audio that way too)21:33
drobillargareus: A group port strikes me as a more realistic route to multi-channel configurability than full on variable ports21:33
rgareusdrobilla: I have not thought about using Atoms for variable-ports. That could be neat indeed.21:34
rgareusdrobilla: one could even go so far as to pass a pointer to a float* in an Atom21:35
rgareusdrobilla: and achieve in-place processing like that21:35
drobillargareus: Maybe kinda sorta, but atoms are POD by definition.21:35
drobillargareus: Type 0 is reserved for references, but I'd rather just not go there.21:35
drobillaThe event extension had a half-baked never used stab at this.21:35
drobillaWhich is the main place I learned that half-baked never used things shouldn't get standardised.21:36
drobillargareus: I don't know, an array of float* or whatever would be the more conservative thing21:36
drobillabut literally just having one input and one output and doing all things via messages is a far more sane general model than this ports stuff21:36
drobillamore or less analogous to what OO was originall envisioned as21:37
drobillaBut until somebody has a real active interest in this I probably will just ignore it.21:37
drobillaThe weird question with non-POD is... what does it point to?  Not an atom, if you want to have pointers in it.21:41
drobillaFor the more conservative route, note the dynamic options API can probably already do all that's required.21:42
drobillaSet port 5 rdf:type to pg:FivePointOneGroup or some such thing21:43
drobillaI wonder if atom:String could have been ommitted in favour of just using atom:Vector21:57
drobillaSimpler model, more annoying use, I suppose.21:58
rgareusdrobilla: re falkTX's example to send Midi-data as atom. introducing a22:14
rgareusstruct LV2_Atom_MidiEvent22:14
rgareusand not using the forge seems odd to me22:14
drobillaI have no plan to define such a struct since the atom extension does not define a MIDI type22:14
drobillaHowever utility functions to clear and append to a sequence would be useful to people who don't want to deal with the forge22:15
drobillaIt's a 'regression' from event in people like Herman's eyes.  I hadn't noticed because I just use the forge.22:15
rgareusdrobilla: +1 for a wrapper function22:15
drobillaNeed to think of some really basic MIDI sending example plugin22:16
rgareusdrobilla: does the forge know the 'midi_Event' URI internally?  that's biggest problem I see with a wrapper-function.22:18
drobillargareus: They'll have to map it.  Same as event.22:19
drobillaWould be nice to just have 'all the URIs in this extension' structs with fancy auto-map functions, which I guess we could, but the order is relevant, so that'd get messy over time22:20
rgareusdrobilla: I'm pondering to reply to the email and either point to http://pastebin.com/LnfKbuEV  or https://github.com/x42/tuna.lv2/blob/ccd85a340/src/tuna.c#L44122:21
drobillargareus: Yeah, I suppose it should be mentioned that the forge is what's used which is why that function isn't there22:21
drobillalast two lines can be merged by using forge_write instead22:22
rgareusdrobilla: an example plugin would be either a 'random note generator'  or  maybe a simple hardcoded midi-filter.22:23
drobillargareus: Maybe a fifths generator22:23
rgareusdrobilla: yeah.22:24
rgareusdrobilla: the hard-part only comes up if you allow to change that note dynamically (you'll need to keep track of note-on/offs)22:25
rgareusdrobilla: if it's 5th and only 5ths. it'll be easy22:25
drobillajust fifths.  doing all that would only serve to obscure the point22:25
drobillasampler and scope are way too complicated as examples too, really.22:27
rgareusyeah. the scope introduces 3 or 4 things. mono/stereo variants, state-save and Array transfer22:29
rgareusnot to mention all the cairo-GUI stuff22:29
drobillaThe variants should probably go, but it's more important to add new very simple examples of various things anyway.22:34
rgareusdrobilla: yeah, though I can't really think of anything simpler that would require shipping raw audio-data to a GUI :)22:35
drobillargareus: waveform view in a sampler22:36
rgareusdrobilla: would be pretty much the same (GUI wise)22:37
drobillaPretty much.  mono/stereo is just distracting though.22:37
drobillaWhatever, it's fine.  The book is still really bad anyway.22:37
drobillaAt some point it will become a little more deserving of the title "book", I hope :)22:38
*** rncbc|AFK has quit IRC23:05
*** edogawa has quit IRC23:29

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