Re: [linux-audio-dev] XAP and Event Outputs

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] XAP and Event Outputs
From: David Olofson (david_AT_olofson.net)
Date: Wed Dec 11 2002 - 03:04:49 EET


On Wednesday 11 December 2002 01.44, Paul Davis wrote:
> >See how I handle this in Audiality. Originally, I thought it would
> > be a nice idea to be able to queue events ahead of the current
> > buffer, but it turned out to be a very bad idea for various
> > reasons.
> >
> >And normal plugins don't generate and "output" audio or control
> > data an arbitrary number of buffers ahead. Why should they do
> > that with events?
>
> you are discussing an API that is intended to support
> *instruments*.

And very few instruments understand musical time, and practically
none *should* think in terms of notes.

Just use time (seconds, audio sample frames,...) and pitch (linear
pitch, Hz,...), and you'll eliminate the need for instuments to
understand musical time and scales, without imposing any restrictions
whatsoever upon them.

> any such API needs to be able to handle the
> following kind of request:
>
> at bar 13, beat 3, start playing a sound corresponding to note
> 134, and enter a release phase at bar 14, beat 2.

This kind of information is relevant only in sequencers, and a few
special types of plugins. I don't see why the whole API should be
made significantly more complex and a lot slower, just to make life
slightly easier for the few that would ever consider writing a plugin
that cares about musical time.

> now, if you don't handle this by prequeing events, then that simply
> means that something else has to queue the events and deliver them
> at the right time.

That is the job of a sequencer. The job of the event system is to
transmit "messages" between ports with sample accurate timing.

> so this devolves into that old question: do you implement
> prequeueing once and make it available to all clients of the API,
> or you do require each one to do it over?

If you don't want sequencers and the few other plugins ("MIDI
echo"...?) that actually need prequeueing to implement it, throw a
basic solution for that into the plugin SDK, or perhaps even put a
"prequeue sequencer" in the host.

This does *not* belong in the actual event system, IMNSHO.

//David Olofson - Programmer, Composer, Open Source Advocate

.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`---------------------------> http://olofson.net/audiality -'
.- M A I A -------------------------------------------------.
| The Multimedia Application Integration Architecture |
`----------------------------> http://www.linuxdj.com/maia -'
   --- http://olofson.net --- http://www.reologica.se ---


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Wed Dec 11 2002 - 03:11:36 EET