[linux-audio-dev] Audio over Ethernet?

David Olofson david at olofson.net
Wed Apr 14 09:11:53 UTC 2004


On Wednesday 14 April 2004 09.47, Anders Torger wrote:
[...]
> Thus, I think it is necessary to implement something operating on
> the ethernet level to get best performance in terms of throughput
> and latency.

Sounds like you'll need something like this:

	* A real time operating system

	* Decent ethernet hardware (most 100+ Mbit h/w should do)

	* A protocol stack with RT streaming support. (Or
	  implement your own protocol, using the ethernet h/w
	  as high speed serial ports/bus interfaces.

	* A distributed hard RT application


The ethernet hardware won't be a problem. We're talking µs latencies 
on decent cards, so it's all about the software, including the OS, 
the drivers, the protocol stack and your application.

However, since you have a roundtrip latency (master->nodes->master), 
you get much more sensitive to scheduling jitter than an ordinary RT 
audio system. Unless the scheduling jitter is practically zero, the 
network connections have to be handled like streaming audio 
connections; ie the same as if you were using audio interfaces for 
the master/node streaming.

(Right; the NICs transfer data faster than audio interfaces locked at 
audio rate streaming, but that only affects the fixed/minimum 
latency. If you send data too late, someone will still miss a 
deadline; either you, or the receiver on the other node.)

Some people have been doing this sort of stuff with RTLinux and/or 
RTAI. Maybe you should ask on the respective lists. (I'm not up to 
date...)

Note that these days, both RTL and RTAI let you run hard RT code in 
user space (pretty much like the SCHED_FIFO threads we're using for 
"normal" user space RT), so you don't *have* to split your RT code 
off into kernel modules. If you're using lock-free sync constructs, 
porting an app with SCHED_FIFO audio threads should be trivial. If 
you use OS provided sync constructs, you'll probably have to replace 
those with RTL/RTAI equivalents.


Some URLs:

	http://sourceforge.net/projects/rtnet/
	http://www.ecsl.cs.sunysb.edu/rether/
	http://www.fsmlabs.com/products/lnet/


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

.- Audiality -----------------------------------------------.
|  Free/Open Source audio engine for games and multimedia.  |
| MIDI, modular synthesis, real time effects, scripting,... |
`-----------------------------------> http://audiality.org -'
   --- http://olofson.net --- http://www.reologica.se ---





More information about the Linux-audio-dev mailing list