I have this DAC and as a lot of people I have some serious trouble with streaming DOP (DSD OVER PCM) using Linux and MPD or Squeezelite.
Just google "chord 2qute hiccups".
After more than 1 week installing MPD , Squeezelite on 5 different PC's (3 Laptops and Odroid C1+ and wandboard Dual) and several AUDIO distro , homebrew Arch Linux I found a setup which is quite stable.
My problem was/is that I get these annoying hiccpus (1-2 seconds) stops when I play DOP, and only DOP, all other formats is 100% okay.
The most stable setup right now is my wandboard Dual with an Arch Linux 4.12.3-1-ARCH #1 SMP, and the GitHub - ralph-irving/squeezelite: Lightweight headless squeezebox client emulator git version.
The best setup for squeezelite is the following :
Of course It could change when I have done more testing.
What I can see that made a difference I the following.
1) YOU NEED A ROCK STEADY NETWORK, as your Chord need DATA every single ms , else it goes from white to blue/red and drops DOP mode.
2) The Irq Rate on your linux distro is crucial. On my Odroid C1+ ,it got 7-8000 irqs/sec on USB (piece of crap) AND I can only play for 15-25 mins without these fall outs.
3) A decent CPU for the job, I have tried with a Intel Atom N450 it lack the processing power.
Things I can see which works on my best player so far (Wandboard DUAL).
It have a decent network speed better that my Odroid C1+ , iperf3 says
4) It have low rates of interrupts cat /proc/interrupts about ca
315/sec for USB and 95/sec for network, this is really the only difference between the faster odroid C1+ which gives me constantly hiccups.
I haven't had the same luck with MPD it gives me hiccups a couple of times every hour, still trying to see if I can do something with it.
If you have a Chord 2Qute DAC or other very problematic DOP DACs feel free to comment.
Just google "chord 2qute hiccups".
After more than 1 week installing MPD , Squeezelite on 5 different PC's (3 Laptops and Odroid C1+ and wandboard Dual) and several AUDIO distro , homebrew Arch Linux I found a setup which is quite stable.
My problem was/is that I get these annoying hiccpus (1-2 seconds) stops when I play DOP, and only DOP, all other formats is 100% okay.
The most stable setup right now is my wandboard Dual with an Arch Linux 4.12.3-1-ARCH #1 SMP, and the GitHub - ralph-irving/squeezelite: Lightweight headless squeezebox client emulator git version.
The best setup for squeezelite is the following :
Code:
/usr/bin/squeezelite -o front:CARD=D2Qute,DEV=0 -n michael -a 0 -b 25000 50000 -D -p 95 -s 172.16.0.93
Of course It could change when I have done more testing.
What I can see that made a difference I the following.
1) YOU NEED A ROCK STEADY NETWORK, as your Chord need DATA every single ms , else it goes from white to blue/red and drops DOP mode.
2) The Irq Rate on your linux distro is crucial. On my Odroid C1+ ,it got 7-8000 irqs/sec on USB (piece of crap) AND I can only play for 15-25 mins without these fall outs.
3) A decent CPU for the job, I have tried with a Intel Atom N450 it lack the processing power.
Things I can see which works on my best player so far (Wandboard DUAL).
It have a decent network speed better that my Odroid C1+ , iperf3 says
Code:
Connecting to host 172.16.0.90, port 5201
[ 4] local 172.16.0.19 port 60342 connected to 172.16.0.90 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 58.5 MBytes 490 Mbits/sec 0 370 KBytes
[ 4] 1.00-2.00 sec 59.2 MBytes 497 Mbits/sec 0 433 KBytes
[ 4] 2.00-3.00 sec 59.5 MBytes 499 Mbits/sec 0 454 KBytes
[ 4] 3.00-4.00 sec 59.4 MBytes 497 Mbits/sec 0 454 KBytes
[ 4] 4.00-5.00 sec 58.5 MBytes 493 Mbits/sec 0 454 KBytes
[ 4] 5.00-6.00 sec 59.2 MBytes 497 Mbits/sec 0 454 KBytes
[ 4] 6.00-7.00 sec 59.4 MBytes 498 Mbits/sec 0 454 KBytes
[ 4] 7.00-8.00 sec 59.2 MBytes 497 Mbits/sec 0 454 KBytes
[ 4] 8.00-9.00 sec 59.8 MBytes 501 Mbits/sec 0 454 KBytes
[ 4] 9.00-10.00 sec 59.0 MBytes 496 Mbits/sec 0 454 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 592 MBytes 496 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 591 MBytes 495 Mbits/sec receiver
iperf Done.
4) It have low rates of interrupts cat /proc/interrupts about ca
315/sec for USB and 95/sec for network, this is really the only difference between the faster odroid C1+ which gives me constantly hiccups.
I haven't had the same luck with MPD it gives me hiccups a couple of times every hour, still trying to see if I can do something with it.
If you have a Chord 2Qute DAC or other very problematic DOP DACs feel free to comment.
Normally I can play for hours (really a joke) but It's a long time DOP on the Chord without issues.
I'm monitoring in cron every min to see If something unusual is happening.
Top
cronlogs every min
Quite rocket science but things need to be right for DOP over network with the Chord 2Qute.
I'm monitoring in cron every min to see If something unusual is happening.
Top

cronlogs every min

Quite rocket science but things need to be right for DOP over network with the Chord 2Qute.
Since so many people complain only about the 2qute version, IMO the chord USB2 firmware is buggy. It is actually quite common, many manufacturers have bugs in their USB-audio protocol implementation.
8k irqs/s is exactly one IRQ per every USB2 frame (125us).
The problem was never reported to the alsa-devel mailing list (linux audio system) so that developers could have a look if it could be fixed with some quirk in the driver https://www.google.com/search?num=3..."+chord+"2qute"&oq="alsa-devel"+chord+"2qute" like many other non-complying USB audio devices http://elixir.free-electrons.com/linux/latest/source/sound/usb/quirks.c
If you really want to help (to yourself and other 2qute owners), I can guide you through reporting the problem. Normally it is job of the manufacturer but they hardly care - you already gave them your money.
8k irqs/s is exactly one IRQ per every USB2 frame (125us).
The problem was never reported to the alsa-devel mailing list (linux audio system) so that developers could have a look if it could be fixed with some quirk in the driver https://www.google.com/search?num=3..."+chord+"2qute"&oq="alsa-devel"+chord+"2qute" like many other non-complying USB audio devices http://elixir.free-electrons.com/linux/latest/source/sound/usb/quirks.c
If you really want to help (to yourself and other 2qute owners), I can guide you through reporting the problem. Normally it is job of the manufacturer but they hardly care - you already gave them your money.
Hi Phofman.
I'm very interested to get help , as It's not working, I have these hiccups on DOP...
What do you need. You help would be very very appreciated.
I'm very interested to get help , as It's not working, I have these hiccups on DOP...
What do you need. You help would be very very appreciated.
Look forward to all the help i can get.
The ubuntu 16.4 LTS kernel 4.4.0-62 is the best so far, but It still have issues.
But at least an improvement.
The ubuntu 16.4 LTS kernel 4.4.0-62 is the best so far, but It still have issues.
But at least an improvement.
I do not guarantee alsa devs will fix the issue, but we can try. If they suggest a patch to test, you will need to recompile the kernel with the patch. Are you ok with that?
First we should gather info for the initial mail. Please post here output of the alsa-info.sh script as described in https://www.alsa-project.org/main/index.php/Help_To_Debug
First we should gather info for the initial mail. Please post here output of the alsa-info.sh script as described in https://www.alsa-project.org/main/index.php/Help_To_Debug
Hi..
Just tell me what to do 🙂
This is from the best most stable driver I can find, If you need Info from a newer Linux
just let me know.
Its a while since recompiled Linux Kernel but I think I'll find out...
info is here : http://www.fyn13.dk/diy/alsa_output_chord_2qute_4.4.0-62.txt
Thanks Michael.
Just tell me what to do 🙂
This is from the best most stable driver I can find, If you need Info from a newer Linux
just let me know.
Its a while since recompiled Linux Kernel but I think I'll find out...
info is here : http://www.fyn13.dk/diy/alsa_output_chord_2qute_4.4.0-62.txt
Thanks Michael.
Great. Let's add detailed lsusb info provided by your dac:
sudo lsusb -v -d 245f:1213
Then we need contents of the kernel virtual file /proc/asound/card1/pcm0p/sub0/hw_params (card1 should be your usb dac - the index is listed in aplay -l) for two cases:
1) while PCM samples are being played (playback OK)
2) while DSD (DoP) samples are being played (playback stutters)
Also the usb IRQ rate for the two cases above would be useful - e.g. command
sudo lsusb -v -d 245f:1213
Then we need contents of the kernel virtual file /proc/asound/card1/pcm0p/sub0/hw_params (card1 should be your usb dac - the index is listed in aplay -l) for two cases:
1) while PCM samples are being played (playback OK)
2) while DSD (DoP) samples are being played (playback stutters)
Also the usb IRQ rate for the two cases above would be useful - e.g. command
Code:
watch -n 1 'cat /proc/interrupts | grep -i usb'
Actually for the first case please play a 176.4/24 track so that the samples are identical to the DoP format. You can make one e.g. with sox
Code:
sox -V inputfile.flac -b 24 -r 176400 outputfile_176400_24.flac
Hi
first sudo lsusb -v -d 245f:1213
http://www.fyn13.dk/diy/chord_lsusb.txt
Okay , SHALL I install a more unstable kernel version for instance the Arch Manjaro 4.12 , as it could
take quite some time to see these hiccups under the ubuntu 16.4 LTS kernel 4.4.0-62 ???
first sudo lsusb -v -d 245f:1213
http://www.fyn13.dk/diy/chord_lsusb.txt
Okay , SHALL I install a more unstable kernel version for instance the Arch Manjaro 4.12 , as it could
take quite some time to see these hiccups under the ubuntu 16.4 LTS kernel 4.4.0-62 ???
The newer the kernel (closer to the actual development branch of alsa), the better.
Please also include output of /proc/asound/card1/stream0 for both cases so that we see stream details.
Please also include output of /proc/asound/card1/stream0 for both cases so that we see stream details.
Last edited:
Hi.
I'm on the troubled setup right now , so first the ALSA info
http://www.fyn13.dk/diy/alsa_output_chord_2qute_arch_manjaro.txt.
Okay then I did the sudo lsusb -v -d 245f:1213 just in case there should be a difference.
http://www.fyn13.dk/diy/chord_lsusb_manjaro.txt.
It's difficult to get an output for the playback stutters mode as It happens just 1-2 secs once in a while.
But this is the output playing DOP right now.
/proc/asound/card1/pcm0p/sub0/hw_params
Interrupts are quite many this if from /proc/interrupts
If you need more info , just ask ...
Thanks Michael.
I'm on the troubled setup right now , so first the ALSA info
http://www.fyn13.dk/diy/alsa_output_chord_2qute_arch_manjaro.txt.
Okay then I did the sudo lsusb -v -d 245f:1213 just in case there should be a difference.
http://www.fyn13.dk/diy/chord_lsusb_manjaro.txt.
It's difficult to get an output for the playback stutters mode as It happens just 1-2 secs once in a while.
But this is the output playing DOP right now.
/proc/asound/card1/pcm0p/sub0/hw_params
Code:
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 176400 (176400/1)
period_size: 3528
buffer_size: 14112
Interrupts are quite many this if from /proc/interrupts
Code:
CPU0 CPU1 CPU2 CPU3
0: 27 0 0 0 IR-IO-APIC 2-edge timer
1: 0 0 8 1 IR-IO-APIC 1-edge i8042
8: 0 0 0 1 IR-IO-APIC 8-edge rtc0
9: 118 2 3 22 IR-IO-APIC 9-fasteoi acpi
12: 76 15 36 13 IR-IO-APIC 12-edge i8042
16: 0 0 0 0 IR-IO-APIC 16-fasteoi i801_smbus
120: 0 0 0 0 DMAR-MSI 0-edge dmar0
121: 0 0 0 0 DMAR-MSI 1-edge dmar1
[b]122: 578570 14804 10392372 55692 IR-PCI-MSI 327680-edge xhci_hcd[/b]
123: 5034 1042 5925 1015 IR-PCI-MSI 376832-edge ahci[0000:00:17.0]
124: 29 0 0 3 IR-PCI-MSI 360448-edge mei_me
[b]125: 141891 7519 929772 13344 IR-PCI-MSI 524288-edge enp1s0[/b]
126: 149 19 119 40 IR-PCI-MSI 32768-edge i915
127: 6475 116 14631 156 IR-PCI-MSI 1048576-edge ath10k_pci
128: 296 188 195 303 IR-PCI-MSI 514048-edge snd_hda_intel:card0
NMI: 0 0 0 0 Non-maskable interrupts
LOC: 18922 20758 50542 10558 Local timer interrupts
SPU: 0 0 0 0 Spurious interrupts
PMI: 0 0 0 0 Performance monitoring interrupts
IWI: 0 0 0 0 IRQ work interrupts
RTR: 3 0 0 0 APIC ICR read retries
RES: 1560 1298 2482 838 Rescheduling interrupts
CAL: 1231 1574 1371 1607 Function call interrupts
TLB: 86 74 73 67 TLB shootdowns
TRM: 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 Threshold APIC interrupts
DFR: 0 0 0 0 Deferred Error APIC interrupts
MCE: 0 0 0 0 Machine check exceptions
MCP: 6 6 6 6 Machine check polls
ERR: 0
MIS: 0
PIN: 0 0 0 0 Posted-interrupt notification event
PIW: 0 0 0 0 Posted-interrupt wakeup event
If you need more info , just ask ...
Thanks Michael.
Last edited:
Thanks. You do not have to copy the files at the very moment the playback stutters, it was meant "during the playback mode which produces the glitches".
For the interrupts we need the irqs per second - just take two values 1 second apart for xhci (while playing) and subtract them - approximate figure is fine.
For the interrupts we need the irqs per second - just take two values 1 second apart for xhci (while playing) and subtract them - approximate figure is fine.
This is irqs beetween 30 sec.
(1200003+24924+25187222+65886)-(1197337+24872+24949728+65840) = 240258/30 = 8008 irq /secs.
Code:
122: 1197337 24872 24949728 65840 IR-PCI-MSI 327680-edge xhci_hcd
122: 1200003 24924 25187222 65886 IR-PCI-MSI 327680-edge xhci_hcd
(1200003+24924+25187222+65886)-(1197337+24872+24949728+65840) = 240258/30 = 8008 irq /secs.
Good, and the irq/sec for the no-glitches PCM 176.4/24 mode?
Please post the stream0 and hw_params files for both modes too.
Please post the stream0 and hw_params files for both modes too.
Another thing to be aware of is that LMS (with squeezelite) is at least 10-20 times less frequent in these hiccups than MPD.
I'll play a little on the MPD just to provoke the hiccups.
I'll play a little on the MPD just to provoke the hiccups.
OK, but we need the files/numbers from same software chain, to make them comparable.
LMS probably uses different period/buffer sizes, we would see that in hw_params file. Also please make sure you are not playing through pulseaudio to your usb dac - your alsa-info.sh output shows pulseaudio is your default alsa device.
LMS probably uses different period/buffer sizes, we would see that in hw_params file. Also please make sure you are not playing through pulseaudio to your usb dac - your alsa-info.sh output shows pulseaudio is your default alsa device.
Good, and the irq/sec for the no-glitches PCM 176.4/24 mode?
Please post the stream0 and hw_params files for both modes too.
Now quite with, shall I play something 176K/24bit none DOP , I have something 192K/24bit I try or I can try without DOP...
This is without DOP.
/proc/asound/card1/pcm0p/sub0/hw_params
Code:
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 352800 (352800/1)
period_size: 7056
buffer_size: 28224
This is irqs for this mode
Code:
122: 1445374 46861 31207725 82469 IR-PCI-MSI 327680-edge xhci_hcd
122: 1459348 48306 31431841 83208 IR-PCI-MSI 327680-edge xhci_hcd
(1459348+48306 +31431841+83208)-(1445374+46861+31207725+82469) = 240274/30 = 8009 irq /secs.
- Status
- Not open for further replies.
- Home
- Source & Line
- PC Based
- Chord 2qute and my DOP challenge