Kai Vehmanen wrote:
> Well, if you have a GUI-knob that affects the produced audio, you will
> need a <5ms delay from changing the knob value to hearing the result. So
> in this case 20ms is too much for the plugin<->GUI communication.
Yeah, sorry - it seems I've confused several people it seem by talking
about these delays. I'm referring to the time to do a safe round trip
from the low-latency server process, out to an external app, and back
again. This is the latency for an `external loop' or `out-of-process
loop' from the low-latency server, however you want to describe it.
For feeding controller data into the plugin, it can go straight
through a shared memory segment with no delay between writing it there
and it affecting the output (except the 1ms/whatever latency of the
server).
Something I was going to ask - can we consider writing an aligned int
(4 bytes) to memory to be an atomic operation on a SMP machine ? Is
this true for all possible target platforms ? Any SMP 68000 machines
out there !?
If we can consider it atomic, it makes a lot of things much easier -
just write new int or float controller data values to SHM without
worry. If not, to safely use SHM needs a few additional precautions
to make sure the plugin never reads half-complete sets of data.
> Another set of possible clients to consider are the various
> audio-producing sequencers (SoundTracker, Octal), and then audio players
> (Alsaplayer, XMMS). But I think these app types either benefit less from
> LAAGA, or are much more difficult to turn into a plugin.
I'm quite interested in the idea of using a text-mode tracker
interface to drive all the parameters of a set of plugins. All this
real-time low latency framework we're discussing would be ideal. In
the `good old days', the Amiga custom chips made sound immediately on
being programmed - no delay at all. A low-latency server running a
hardware-emulating plugin with a shared memory interface isn't too
much different to this ...
There's a lot of potential here, I think.
Jim
--
Jim Peters / __ | \ Aguazul
/ /| /| )| /| / )|| \
jim@aguazul. \ (_|(_|(_|(_| )(_|I / www.aguazul.
demon.co.uk \ ._) _/ / demon.co.uk