[linux-audio-dev] 1.5 ms latency possible?

Anders Torger torger at ludd.luth.se
Tue Dec 31 14:00:00 UTC 2002


I have made a program which is to be run on a dedicated computer, 
equipped only with a multichannel soundcard (hammerfall), a small LCD 
and a remote control. This forms a dedicated surround processor (if 
interested in the software, look at 
http://www.ludd.luth.se/users/torger/almusvcu.html) for use in 
multichannel HiFi systems.

In some configurations, a 64 sample processing block is relevant, 
leaving a total IO-delay of 128 samples, which in 44.1 kHz is about 3 
ms.

With such a configuration, I have got the system going for a few hours 
at most before underflow. Of course the relevant processes are realtime 
scheduled, I have even used tricks with sched_yield to get the 
processes yield in the right order (I will probably have to pay for 
that sooner or later though) for the most safe operation.

So, my question to this list is if someone has run a similar system for 
days without underflows, and if there is some guide or tips on how to 
put together the for the moment best low-latency kernel, if there are 
kernel features that should be avoided, some bad driver or filesystem 
perhaps, and if there are some hardware setting tricks (apart from 
giving the sound card the highest interrupt priority). Perhaps tips on 
which user space processes that should not run (I have no syslogd or 
cron, but sshd is running)

Is it even possible today to build an embedded system with 1.5 ms 
processing block based on Linux, which runs until hardware or power 
failure? Oh, my software does not necessarily need to access any 
filesystem while it is processing, although it would be good if it 
could (to continuously save volume settings and similar if changed 
through the remote control). So it can be seen as a strict 
soundcard-to-the-cpu-and-back problem.

/Anders Torger



More information about the Linux-audio-dev mailing list