Patrick Shirkey wrote:
Have you looked into netjack?
Several of the network timing issues have been worked through quite extensively. We have used it to distribute data across several machines in a cluster and find it to be very stable and workable with acceptable latency over gigbit lan.
You might find netjack gives you a good headstart on this project.
Adding support for JACK is a minor task compared to rewriting (and testing) netjack. You will also gain access to a host of other professional functionality and ALSA, OSS, FIrewire support too.
In addition your software will play nice with other professional software and have direct access to data on the JACK graph as a bonus.
Thanks for the pointer! It indeed appears that this project is trying the same thing as we are doing.
It will require some further study. Documentation appears to be scarce, I have not been able to locate a document yet that describles what it actually achieves and what caveats there are. I saw one thing on the Wiki: it transmits data all the time. We will probably need some form of on/off control to avoid wasting bandwidth, but maybe it can be done in a CODEC.
I also saw it has fixed network latency setting, while I had already envisioned a system for automatically determining the added latency based on feedback from the remotes.
But at least it provides a lot of insight into using Alsa in timing critical applications, something I had been looking for.
(I know that writing documentation is a drag, but projects like Alsa and this one would be so much more useful and accessible when there would be more detailed documentation that goes beyond an installation HOWTO and a plain listing of available functions and parameters)
Rob