[linux-audio-dev] alsa ethernet streaming?

Asbjørn Sæbø asbjs at stud.ntnu.no
Mon Jun 20 08:26:18 UTC 2005


On Fri, Jun 17, 2005 at 11:27:14AM -0600, Garett Shulman wrote:
> Asbjorn, LDAS looks perfect. Can you give more detail about the status? 
> -Garett

Did you read the info I linked to?
<URL: http://www.q2s.ntnu.no/~asbjs/ldas/ldas.html >

It is, it must be said, still in early development.  But some basic 
functionality is present, and it has (almost?) reached a stage where it 
will be useful for me.

LDAS consists of a sender and a receiver.  It is, currently, capable of
quite reliable one-way transmission of two channels of audio.  
(More than two channels should also work, but has not been tested in 
this version.)

(I also just did some testing that indiciated that full duplex may be 
achieved by running both sender and receiver on both computers.  This 
may serve as a stopgap until I get around to merge the sender and the 
receiver into a full duplex version.)

Audio is taken from the analog input of the sending computer, and 
delivered to the the analog output of the receiving computer.

The sender is very simple, it is mainly a loop reading data from the 
sound card and writing them to a network socket.

The receiver is a bit more elaborate.  It has two threads, one receiving 
data from the network and queueing them, the other thread 
transferring data from the queue to the sound card.  The purpose of the 
queue is to deal with lost/late/out of order/duplicate packets.  There 
is also a very simple mechanism (skip/reuse samples) to deal with 
sampling frequency drift. (The sender and the receiver will not have 
exactly equal clock frequencies.)

The latency is currently four sound card periods plus queue 
length, network transmission time and A/D and D/A conversion time and 
some processing time.  With a good sound card and a short network 
distance, latencies suitable for music playing should be attainable.
(I have measured this version to between 70 and 80 milliseconds, but 
that was with 10 ms periods and a queue of three periods.)


It is still a bit early.  But if you don't mind trying early code, I'll 
send you the sources so you can see if it fits your needs.

Asbjørn



More information about the Linux-audio-dev mailing list