On Sat, 7 Nov 2009, David Robillard wrote: > A better analogy would be well-formed XML or RDF, where things can > easily be added but it doesn't break anything because the technology has > been designed specifically to handle this; or my shared library analogy > from earlier.
<rant> Except when you want your XHTML (1.1)+MathML (v3)+SVG (1.1)+CSS (Level 3)+XSLT (1.0)+Javascript content to work as expected in everyone's browser. It doesn't break in the sense that babies aren't dying... but it doesn't *work*, either. Manwhile the hapless user with IE6 is thinking, "Why doesn't this stuff work?? It's just a web page! Microsoft's site looks fine... so it must be /them/." Hell, even if you stick to HTML 4.0 + CSS 1... you <blink>still</blink> have to find workarounds for IE 6. </rant> FWIW, I think XML is awesome... but this part grates on my nerves. I think LV2 looks awesome, too... but I can't get a grip on this... THE PROBLEM: I *want* to write a host that can load anyone's LV2 synth and FX... and it just works. I want to write synths and FX that will work in anyone's host.[5] Where do I start? Looking over the docs... it looks like a host has to support nearly every extension listed on the wiki[1] if I want to accomplish this. The more I dig in... and the more I read David's comments... the more that this appears to be the case. And if something gets added to the list, looks like I'll have to update my host to support it. I know of two synths, zyn[3] and linuxsampler[4]. Zyn requires rtmempool and wants dynparam. LinuxSampler wants hardRtCapable (whatever that is) and saverestore. I can't find mention of EventPort or MidiEvent in the RDF files -- but I'm sure those are necessary, too (since they're synths). Meanwhile, I know of one LV2 host for synths, zynjacku.[2] I have no idea which extensions it supports... except that I know it supports whatever zyn has (because it appears Nedko did them together). So, if I write a synth that requires URI Map -- I don't know if it will work with zynjacku without digging into source code or bugging Nedko about it. Then, Lars's tutorial appears to be using his own portgroups extension, as well as some kind of namespace extension, and I'm not sure if he's using Midi Port or Midi Event. I have no idea if his examples will work in zynjacku without compiling them and trying it. And this is before considering GUI extensions.... Looking at this, people say, "This is good, but it's kind of a mess at the moment. Can we get some sort of 'canonical list of extensions' or /something/ stable for devs to work from?" To which Dave replies, "FUD! FUD! FUD! Such a list accomplishes nothing!" Am I just missing it, or what? What's the solution to "The Problem"? Is there core infrastructure (critical extensions) still missing or something? I'm _really_ willing to help, but so far every idea that I've put forth has been shot down... and Dave *seems* to think that "The Problem" isn't a problem. Thanks, Gabriel [1] http://lv2plug.in/docs/index.php?title=Main_Page [2] http://home.gna.org/zynjacku/ [3] aka "zynadd" http://home.gna.org/zyn/ [4] Version 1.0 at least includes an LV2 version. [5] Yes, I know there's cases where you have something that is so application-specific that you can't always do this. I think it's really cool that LV2 is extensible so that you can work around it. _______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev