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 --'
