-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How can I eliminate xruns when I use jackminimix? #7
Comments
I guess xruns were caused because
I added jackminimix to audio cgroup in /etc/cgroup/cgrules.conf and made sure that jackd starts after cgrulesengd starts. audio cgroup includes jackd, zita-a2j, zita-j2a, and jackminimix. |
After fixing cgroup issue, I still get xruns. Xruns seems to come from spk-vol in headphone mode and hdp-vol in speaker mode. So, I severed connections between hdp-vol and headphones in speaker mode and spk-vol and system in headphone mode. But, severing unused connections doesn't remove xruns. hdp-vol finishes after a callback in speaker mode, and spk-vol finishes after a callback in headphone mode. |
Executing |
My CPU is FX-8300 which has 4 cores and 8 threads.
I tried giving realtime ionice priorities to jackd and all JACK clients, but I tweaked realtime ionice priorities, frames per periods, and periods per buffer. The following setup seems to withstand
without xruns. On Raspberry Pi 3 B+:
On my desktop computer:Programs started in init scripts
~/.asoundrc
ConclusionI guess that writing to ZFS interferes with reading from and writing to USB soundcard or ethernet adaptor. I thought ionice only affected file system operations. Perhaps, does ionice affect xruns because I log stdout and stderr of jackd, zita-ajbridge, and jackminimix into files on ZFS without buffering? ( I will report this issue to jack2. |
Raspberry Pi 3 B+:
(384 = 48 frames/ms * 8 ms = 128 frames/period * 3 periods/buffer)
My Desktop Computer:
(spdif-in of a USB soundcard is connected to spdif-out of my onboard soundcard. Default alsa PCM device is ALSA dmix which outputs to spdif-out of my onboard soundcard.)
Connections managed by my own jack connection manager that I wrote in python:
Speaker mode:
Display in i3 bar
![2019-08-19_Mon_04:18:57](https://user-images.githubusercontent.com/748856/63238986-f9440680-c283-11e9-974d-200a6f65e237.png)
Headphone mode:
Display in i3 bar
![2019-08-19_Mon_04:19:10](https://user-images.githubusercontent.com/748856/63238991-fd702400-c283-11e9-885c-6bbe3a83d505.png)
Xruns from netone while CPU load is close to 100%:
Possibilities:
hdp-vol finished after current callback
means hdp-vol didn't finish time and caused xruns in other JACK clients.Question:
What caused xruns?
The text was updated successfully, but these errors were encountered: