Subject: Re: [linux-audio-dev] a new application underway
From: David Olofson (audiality_AT_swipnet.se)
Date: pe loka 08 1999 - 18:14:11 EDT
On Fri, 08 Oct 1999, Paul Barton-Davis wrote:
> [ ... MIDI-based automation with the ALSA sequencer ... ]
>
> >The same can be done with an engine using a plug-in API with my event
> >system. A sequencer could be either a plug-in or a client
> >application, and it could record anything that goes on in the
> >system. (That's the routing functionality that's one of all things I
> >worry about when trying to design an efficient even t system...) No
> >need for a special automated mixer (although one would be very nice
> >as a GUI) and *anything* could be automated. And it would be sample
> >accurate...
>
> actually, i don't think this is quite true unless you're talking about
> RTLinux or special audio apps. userspace processes have a fundamental
> timing limit of 1/HZ seconds, unless they (1) run at RT priority and
> use the RTC to kick them periodically or (2) continually drive +
> monitor the status of a DAC of some kind.
>
> the beauty of the ALSA sequencer is that it offers an extremely
> generic event router with a timing limit that is not subject to the
> same limits. Alas, this is a theoretical possibility right now, since
> even the kernel doesn't check the timer queue more than HZ times a
> second. However, add the UTIME patch, and the kernel can do flexibly
> scheduled stuff with microsecond resolution.
Of course there's no way to get kernel space real time performance with a user
space engine... As the ALSA sequencer is in kernel space, so would any other
solution have to be, at least if it's about *latency* - accuracy is completely
different, unless you're controlling something that doesn't support
timestamps...
But what would the ALSA sequencer automate then? In what way does it't timing
accuracy help? External MIDI devices won't benefit from better than ms accuracy.
> also, note that my point about automation was not that one would have
> a "specially automated mixer" - in fact, I meant *exactly* the
> opposite: an application can take the simple step of writing a
> Standard MIDI file as a record of all automation messages.
You could automate *both* MIDI devices and <insert the name we still
don't have here> plug-ins using the event system. Of course, unless the engine
is in kernel space, it would have to delegate the MIDI conversion out to some
other system - like the ALSA sequencer.
> why MIDI ?
> why not some more "evolved" event specification ? 99% of all
> available control surfaces use MIDI to do their thing. if you're doing
> this stuff with any seriousness, US$300 for a PC1600X is a fairly
> minimal investment in 16 physical faders.
Using some other protocol internally in some areas of the system doesn't make
MIDI I/O impossible, does it...? :-)
> once you've got the MIDI file, the existence of MIDI playback tools
> *and* the ALSA sequencer allow anything to become automated *without*
> any special code: you just add the relevant sequencer port to the list
> of MIDI ports you select(2) on, and it all works like magic.
That's pretty cool, and it's already there, more or less. :-)
> yes, you could instead come up with a new event API and record the
> "happenings" in the application with it, and then arrange for a way to
> play it back. while you code it, we'll get on with using the ALSA
> sequencer :)
Well, I thought we were actually to *use* the plug-in API... One of the *BIG*
points with a buffered event system, IMO, is to use it for more than the
engine<->plug-in communication.
Besides, MIDI automation won't do for non-destructive hard disk editing, and if
there's one thing I hate, it's multiple similar systems that are supposed to
cooperate. (Reminds me of M$ style design... ;-)
//David
·A·U·D·I·A·L·I·T·Y· P r o f e s s i o n a l L i n u x A u d i o
- - ------------------------------------------------------------- - -
·Rock Solid David Olofson:
·Low Latency www.angelfire.com/or/audiality ·Audio Hacker
·Plug-Ins audiality_AT_swipnet.se ·Linux Advocate
·Open Source ·Singer/Composer
This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:27:13 EST