<br><br><div class="gmail_quote">On Sat, Feb 21, 2009 at 2:37 PM, Darren Landrum <span dir="ltr"><<a href="mailto:darren.landrum@sbcglobal.net">darren.landrum@sbcglobal.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
If one were to build a "kernel" to a digital audio workstation that was<br>
itself a bare-bones LV2 host, could things like audio tracks, midi<br>
tracks, and mixer channels and the like be built as LV2 plug-ins? </blockquote><div><br>this has been many people's dream. its part of the reason why systems like PureData exist.  <br>there are some rather hard problems along the way. transport is one of them - this has effects on components of a DAW in ways that are not immediately obvious, and its one reason why you will have a hard time making a purely modular system usable as an HDR. conceptually speaking, modular systems patch together using data flow; adding a timeline creates a new kind of dependency that is othorgonal to the actual flow of data between the "nodes". the consequences of moving data from one node to another are easily expressed, highly constrained and generally very encapsulatable. by contrast, the consequences of moving between points on a timeline do not have these properties.<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I've been thinking a lot about a comment made a while back about how<br>
monolithic applications are very ill-suited to the open-source method of<br>
development.</blockquote><div><br>i'm not sure i'd agree with this anyway, but even if i did, it doesn't mean that the answer is to immediately ditch any semblance of "monolithic-ness". it could be that the right answer is a host with plugins that finds the right balance<br>
between modularity and monolithic-ness.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> So I got to thinking about how an operating system works</blockquote>
<div><br>which operating system?<br></div><div> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
This "kernel" would have to handle things like audio routing, and<br>
message passing between two "processes" (the LV2 plug-ins), and would<br>
jockey the audio in and out of the plug-in graph. It would need to<br>
support the GUI and event extensions, and probably a few others, at the<br>
very least.</blockquote><div><br>hmm... does this sound anything like JACK? <br></div><br>if you want to understand why this is hard (not impossible, just hard), go read the ardour source code and find all the places where *unexpected* inter-object dependencies appear. then figure out how to remove them. if you can do that, you'll be able to make a modular system work. if not, you'll at least understand why nobody has else has been able to do it so far.<br>
</div><br>