On Wednesday 31 January 2007 21:02, Michael Ost wrote:
[...]
We have a 32 sample setting (.7 msecs) in Receptor
which I have yet
to see in a Windows driver. And it actually works with some plugins,
even a large sampler like Synthogy Ivory --- if you don't try to
play too many notes. %)
[...]
Have you considered RTAI/LXRT (microsecond scale hard real time in
user space, sort of) for really insane latencies? ;-)
You would have to wire any API calls used in real time threads to
implementations over RTAI, as you'll be switched back to normal
SCHED_FIFO if you try to make any normal system calls. Further, you'd
have to use shared memory (ie raw DMA buffer) mode, and
some "external" synchronization mechanism, so you can avoid talking
directly to the audio driver from the RT thread.
Now, you still can't get below the minimum latency of the sound card,
which is usually defined by the PCI DMA burst size. Scheduling jitter
can be low enough to process one sample at a time at 44.1 kHz, but
the only real use for that is better CPU utilization; that is, you
can push closer to 100% load without getting dropouts.
Of course, all of this is pretty much moot, unless all code that runs
in the real time thread is strictly deterministic. My point is just
that with an Open Source OS, at least in environments where you can
have total control over the whole system, you don't have to stop
at "sensible" solutions. There really is no limit to what you can do,
if you really have to or want to, and have the time and resources at
hand.
//David Olofson - Programmer, Composer, Open Source Advocate
.-------
http://olofson.net - Games, SDL examples -------.
|
http://zeespace.net - 2.5D rendering engine |
|
http://audiality.org - Music/audio engine |
|
http://eel.olofson.net - Real time scripting |
'--
http://www.reologica.se - Rheology instrumentation --'