[Jack-Devel] Netjack 2: how to improve reliability by allowing greater latency?

André Pinto andredasilvapinto at gmail.com
Wed May 20 21:17:45 CEST 2015


Judging by the lack of replies, I guess this is not a use case that the
current netjack implementation supports right?

I don't know how much work would imply making netjack a viable solution for
WiFi streaming but if it is something relatively easy to do, it might be
interesting to explore that path considering the lack of alternatives for
"low latency" audio streaming, bad bluetooth audio quality and support,
proliferation of devices and omnipresence of WiFi networks across the globe.

Thank you all anyway for your work on Jack!
Cheers,
André

On Fri, May 15, 2015 at 7:51 PM, André Pinto <andredasilvapinto at gmail.com>
wrote:

> Hello,
>
> I've been playing around with Jack/Netjack and the Opus codec in order to
> setup a "low latency" WiFi audio stream at home.
>
> After compiling Opus with custom modes and Jack2 with Opus support (both
> from the master branches of the respective repositories), I was able to run
> the Master-Slave setup:
>
> Master.
> jackd -R -d alsa -d hw:1 -D=false -r44100 -S -n16
> jack_load netmanager
>
> Slave:
> jackd -R -d net -C0 -P2 -o0 -i0 -O320 -M1200 -l5
>
> + jack_connect to route the net input on the master to the speakers
>
> But as I was getting quite frequent audio deterioration, with the master
> showing messages like these:
>
> Packet(s) missing from... -1 1
> Wrong packet type : a
> JackEngine::XRun: client = SLAVE_HOSTNAME was not finished, state = Running
> JackEngine::XRun: client netmanager finished after current callback
> JackAudioDriver::ProcessGraphAsyncMaster: Process error
> Wrong packet type : a
> Packet(s) missing from... -1 1
> JackAudioDriver::ProcessGraphAsyncMaster: Process error
> JackEngine::XRun: client = SLAVE_HOSTNAME was not finished, state =
> Triggered
>
> I've thought that maybe I should just try increasing the network latency
> argument on the slave, as, for my use case, I'm happy with latency < 200
> ms.
>
> By using something like -l30 (the maximum I'm allowed to set) on the slave
> I was able to greatly diminish the Process errors (I still get the same
> lots of wrong packet type and packet missing messages though) but it didn't
> fix the audio artifacts. Actually sometimes this change makes the playback
> even worse with ms pauses every second.
>
> So I would like to know if there is any other way to relax the low latency
> requirement in order to improve playback reliability. Or is there some kind
> of incompatibility in the configuration I'm passing to both endpoints that
> is causing these problems?
>
> Thanks!
> André.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.linuxaudio.org/archives/jackaudio/attachments/20150520/6845790c/attachment.html>


More information about the Jackaudio mailing list