Jump to content

24 Bit playback problem - crackle &pop


Frege

Recommended Posts

I am having an issue playing 24 bit files on my audio system.  I am feeding from an Odroid C2 running Armbian Ubuntu to a Schiit Yggrasil DAC, via USB.  The problem is that while all 16 bit files play perfectly, all 24 bit files play with crackles and pops and are unlistenable.  I am trying to figure out where the incompatibility lies in the USB interface between the units - is it a Linux issue (I've tried other distributions with the same results) or is it something in the hardware?

 

Any thoughts on the issue would be most appreciated.

 

 

Link to comment
Share on other sites

8 minutes ago, TonyMac32 said:

I had this on the tinker board, check/adjust your cpu governor, that may be the issue getting the (isochronous, I believe?) packets there on time, 24 bits is 50% more data per transaction.

 

 

 

Thanks.  I admit to being a newbie on these matters - could you give some explicit instructions on how to do this?  Much appreciated.

Link to comment
Share on other sites

21 hours ago, Frege said:

 

Man, you are my savior!  I'n been trying to figure this out for weeks.  Thanks so much!!

Sorry, take that back!  I still have the problem.  (I hadn't noticed that I had neglected to re-set a switch in Roon that forces play of 24 bit files at 16 bit resolution.

 

So, if anyone has further suggestions, they would be most appreciated.

Link to comment
Share on other sites

hmmmm, what else is on the USB?  Unfortunately the USB on Amlogic devices is... interesting.  I think the S905 should be fully supported, it's the s905x/d/w/omgwtfbbq that isn't completely there yet on mainline.

 

Looking at that DAC, it has this little guy on the receiving end:  Input Receiver, USB: C-Media CM6631A

  • Can you give me the output of "lsusb -t" to verify the identity?
  • Has this worked properly with A) another SBC or B ) Windows?

 

 

The controller can handle all sorts of different transfer modes, so I have to wonder if the linux driver is choosing the "wrong one"

looks like, from the vendor page for the IC:

Quote
  • Supports USB Audio Class 2.0 and high-speed mode with Cmedia vendor drivers
  • USB Audio class 1.0 with full-speed/high-speed modes compatible with Windows®  UAA driver, Mac OS X and Linux embedded USB audio drivers

 

Going from there I found another vendor FAQ:

http://rotel.com/faq/why-cant-i-play-192khz-audio-pc-usb-connection

 

and from yet another source, showing 96 khz as maximum for USB audio 1.0:

http://www.farnell.com/datasheets/1738852.pdf#subsection.3.4.2

 

(If the link doesn't take you to the right page, it is section 3.4.2)

 

The DAC is most likely only capable of 192khz using a Windows master, and I would most likely question it's ability to handle 96khz with 24-bit payload in full-speed USB audio 1.0 mode.  Have you tested with any 48khz 24-bit material?

 

Link to comment
Share on other sites

1 hour ago, TonyMac32 said:

hmmmm, what else is on the USB?  Unfortunately the USB on Amlogic devices is... interesting.  I think the S905 should be fully supported, it's the s905x/d/w/omgwtfbbq that isn't completely there yet on mainline.

 

Looking at that DAC, it has this little guy on the receiving end:  Input Receiver, USB: C-Media CM6631A

  • Can you give me the output of "lsusb -t" to verify the identity?
  • Has this worked properly with A) another SBC or B ) Windows?

 

 

The controller can handle all sorts of different transfer modes, so I have to wonder if the linux driver is choosing the "wrong one"

looks like, from the vendor page for the IC:

 

Going from there I found another vendor FAQ:

http://rotel.com/faq/why-cant-i-play-192khz-audio-pc-usb-connection

 

and from yet another source, showing 96 khz as maximum for USB audio 1.0:

http://www.farnell.com/datasheets/1738852.pdf#subsection.3.4.2

 

(If the link doesn't take you to the right page, it is section 3.4.2)

 

The DAC is most likely only capable of 192khz using a Windows master, and I would most likely question it's ability to handle 96khz with 24-bit payload in full-speed USB audio 1.0 mode.  Have you tested with any 48khz 24-bit material?

 

Thanks for the reply.

 

Some more information. 

 

1) Both 16bit and 24bit files played without problem in their Gen3 USB.  The upgrade to their Gen5 USB gave rise to the problem.

2) 24 bit files play fine if the USB is connected to a Mac Mini.  (The Mac Mini has the RoonCore; the Odroid C2 is a RoonBridge renderer.) (No Windows machines here.)

3) The problem exists with all 24bit files, regardless of sampling rate:  48, 96 and 192.  All played perfectly with the previous USB.

4) Nothing else is connected to the Odroid USB2.0 bus. DAC is 2.0 as far as I know.

5) I've attached a couple of audio clips so that you can hear the problem.  The 24 bit file is 96khz

 

Thanks!

16 Bit.m4a

24 Bit.m4a

Link to comment
Share on other sites

19 minutes ago, TonyMac32 said:

Yes please.

 

The issue is the DAC is USB 2.0, but if it is only running US Audio 1.0, then it's running "full speed" (12 Mbps)

 

frege@odroidc2:~$ lsusb -t

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M

/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M

    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M

        |__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M

            |__ Port 1: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

            |__ Port 1: Dev 5, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M

            |__ Port 2: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 12M

            |__ Port 2: Dev 6, If 1, Class=Human Interface Device, Driver=usbhid, 12M

        |__ Port 3: Dev 4, If 0, Class=Audio, Driver=snd-usb-audio, 480M

        |__ Port 3: Dev 4, If 1, Class=Audio, Driver=snd-usb-audio, 480M

        |__ Port 3: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 480M

Link to comment
Share on other sites

https://www.head-fi.org/threads/schiit-yggdrasil-impressions-thread.766347/page-397

Alright, other than the common audiophile bickering, it is obvious the device has had a problematic past with USB.  The C2 itself also seems to share in the blame with:

https://volumio.org/forum/odroid-usb-audio-dac-issues-t5618.html

 

Alright, one last thing, 'sudo armbianmonitor -u', paste the link.  I doubt there are any errors since it's working with PA and such, but you never know.  And it will tell us the kernel.  If it's 3.14, you may see an improvement with 4.14.  I don't handle the Odroid C2 builds, however mainline support should mean a better situation.

 

@gkkpch may have something to add, at this point I'm out of ideas.

 

Link to comment
Share on other sites

Linux 3.14.79-odroidc2 (odroidc2) 	04/02/2018 	_aarch64_	(4 CPU)

OK, so you're using a default image, which seems, according to google, to be problematic with a great many USB DAC's. 

 

Nothing too crazy in there, a lot of noise about the HDMI audio system settings, but I'm not so familiar with this kernel.  If you are willing to go through the work, could you configure an SD using an armbian-next image? (4.14 LTS kernel)  I'm afraid I can't buy one of these DACs for testing... unless you want to donate one...  :lol::lol::lol::lol:;)

 

Assuming this SBC is being used as nothing more than a Roon endpoint, a Stretch Server image may be best. https://dl.armbian.com/odroidc2/Debian_stretch_next_nightly.7z

 

That will give you command line only with no extra muss, assuming you can install/configure everything from there. 

Link to comment
Share on other sites

I'll give the Stretch Server a try.  All I need to do is add some terminal commands to set up the RoonBridge. 

 

Thanks for taking all the time to help.  Much appreciated!

Link to comment
Share on other sites

@TonyMac32Sorry about the delay, I don’t read the forum very often (you can contact me at volumio(at)bluewin.ch)

I don’t believe we will get any improvement  for the buggy usb drivers in 3.14.79, so I dropped my efforts for Odroids.

We did release a newer version, which should improve support for a range of usb dacs (including dsd support).

I have informed Asus about it and they did add the patches to their latest 4.4.x kernel too.

 

As soon as Baylibre releases i2s audio drivers for amlogic, I will drop the 3.14.79 kernel for Odroid C2 and move to mainline.

Link to comment
Share on other sites

29 minutes ago, gkkpch said:

i2s audio drivers for amlogic

 

I haven't tried the separate I2S pins, but the patchset we are using includes HDMI audio/etc.  I have a 5102A board lying around to look at it later (too nice a day to be inside right now)  :lol:

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines