[LAD] Dumb Idea #27: LV2 host as kernel?

Paul Davis paul at linuxaudiosystems.com
Sat Feb 21 19:55:42 UTC 2009

On Sat, Feb 21, 2009 at 2:37 PM, Darren Landrum <
darren.landrum at sbcglobal.net> wrote:

> If one were to build a "kernel" to a digital audio workstation that was
> itself a bare-bones LV2 host, could things like audio tracks, midi
> tracks, and mixer channels and the like be built as LV2 plug-ins?

this has been many people's dream. its part of the reason why systems like
PureData exist.
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.

I've been thinking a lot about a comment made a while back about how
> monolithic applications are very ill-suited to the open-source method of
> development.

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
between modularity and monolithic-ness.

So I got to thinking about how an operating system works

which operating system?

> This "kernel" would have to handle things like audio routing, and
> message passing between two "processes" (the LV2 plug-ins), and would
> jockey the audio in and out of the plug-in graph. It would need to
> support the GUI and event extensions, and probably a few others, at the
> very least.

hmm... does this sound anything like JACK?

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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxaudio.org/pipermail/linux-audio-dev/attachments/20090221/cadc704f/attachment.html>

More information about the Linux-audio-dev mailing list