I know that a lot of people here likes good sound quality and want to use USB DAC on their head unit.
So I started this thread so maybe someone can come up with a solution to get rid of our USB Audio problems. :good:
First of all, I have 3 different USB audio interfaces I tried on my MTCD PX5 head unit. I use these for SPDIF Coaxial output, so I can send a clean digital signal to my DSP (MiniDSP 6X8) spdif input.
My USB audio devices:
PCM2704 (Worst sound quality of the 3, but still good)
CM6631A (Nice sound quality)
SMSL x-usb (XMOS chip) (Excellent, best sound quality of my adapters)
Here is my findings for each model so far:
PCM2704 - With native Android USB Audio driver (MTCD Music player, Spotify, Google Music, etc) : Plays without any pops&clicks noises 44khz, 48Khz, 96Khz files (Thats good).. BUT only in MONO, so no stereo ! (That sucks.)
PCM2704 - With custom USB Audio driver (Usb Audio Player Pro, Neutron, Hibby, Onkyo apps) : Plays perfectly 44khz audio files but CANNOT play 48khz or 96khz audio files, there is no sound. at all :crying:
CM6631A - With native Android USB Audio driver (MTCD Music player, Spotify, Google Music, etc) : Lots of pops&clicks noises, cannot listen to this.. BUT output in stereo, plays 44khz/48khz/96khz files.
CM6631A - With custom USB Audio driver (Usb Audio Player Pro, Neutron, Hibby, Onkyo apps) : Lots of pops&clicks noises, cannot listen to this.. Output in stereo, plays 44khz/48khz/96khz.
SMSL X-USB Xmos - With native Android USB Audio driver (MTCD Music player, Spotify, Google Music, etc) : Lots of pops&clicks noises, cannot listen to this.. BUT output in stereo, plays 44khz/48khz/96khz files.
SMSL X-USB Xmos - With custom USB Audio driver (Usb Audio Player Pro, Neutron, Hibby, Onkyo apps) : Lots of pops&clicks noises, cannot listen to this.. Output in stereo, plays 44khz/48khz/96khz.
Good to know:
PCM2704 is USB 1.1 full speed device, isosynchronous.
CM6631A is USB 2.0 fullspeed/high speed device, asynchronous.
SMSL X-usb Xmos is USB 2.0 fullspeed/high speed device, asynchronous.
Also good to know: Android Marshmallow 6 Mono output USB Audio problem is a well known problem across multiple Android devices (Cellphones, tablets, etc.) So lets assume the mono output on the PCM2704 is "normal". What is not normal with the PCM2704 is that it can only play 44khz audio, no 48khz.
First question that comes to my mind: Does the PX5 USB drivers/kernel has a problem with USB2.0 ?
Another question: Does our PX5 firmware mess with the sample frequency (44khz, 48khz, etc) ?
Thanks for any useful comment !
I can't believe I'm the only one here using a USB DAC on a PX5..?
I also interested
Sent from my MI MAX 2 using Tapatalk
---------- Post added at 01:17 PM ---------- Previous post was at 01:15 PM ----------
How to get the px5 use usb as digital out? I tried cyrus soundkey but no sound
Sent from my MI MAX 2 using Tapatalk
excellent thread, I was just trying to search on this very thing. My guess that using this as audio output it does not pass the radio or AVIN through it does it? since the MCU is separate from android
I have heard (but not tested first hand) that these will play stereo on 6.0.1
HiFimeDIY Sabre 2016
SA9227 + PCM5102A ( on eBay, http://www.ebay.com/itm/182289773453?_trksid=p2057872.m2749.l2649&ssPageName=STRK:MEBIDX:IT)
M2Tech HiFace DAC
FiiO Q1
-=Jeff=- said:
excellent thread, I was just trying to search on this very thing. My guess that using this as audio output it does not pass the radio or AVIN through it does it? since the MCU is separate from android
I have heard (but not tested first hand) that these will play stereo on 6.0.1
HiFimeDIY Sabre 2016
SA9227 + PCM5102A ( on eBay, http://www.ebay.com/itm/182289773453?_trksid=p2057872.m2749.l2649&ssPageName=STRK:MEBIDX:IT)
M2Tech HiFace DAC
FiiO Q1
Click to expand...
Click to collapse
If I test my 3 USB audio devices with USB Audio Player Pro, they all work great on my Android 6 Lenovo Tablet, Nexus 6P cellphone (Android 7/ Android 8 Beta), and worked perfectly on my previous PX3 (RK3188) (Android 5.1) Head unit.
So I dont think it's a compatbility problem with the Android version, it's more of a software/kernel issue, the way the audio is handled with the PX5.
I tried changing some settings in audio_policy.cfg but I did not manage to stop the pops/clicks from happening.
Hi,
I am also very interested in using USB Audio on a PX5.
I have an EONON GA7150A 32GB BMW unit.
MCU is "MTCD_WWW_V2.54b_2", Build is "px5-userdebug 6.0.1 MXC89l user.hct.20170617.171922 test-keys"
I run a car audio / performance / engineering company. We're doing a SQ install on a 04 BMW M3 with all Audison Prima gear going to an Audison Bit 8.9 amp/processor.
I got a Behringer UCA-222 hoping to use it - plugging it into my tablet (Samsung Tab S 8.4") - it works perfectly without any configuration, so I had hoped it'd work with the Android HU as well.
Plugging it into the Android HU - it DOES work - I can play audio from any apps (YouTube, Google Voice Search both output to the USB device) - I have installed SoundAbout Pro to try and re-route all audio to the USB DAC but it doesn't work for everything.
My issues are:
- The FM radio plays through the internal pre-amp/amplifier.
- The volume control (whether through the touchscreen on the menu, or using the hardware knob) does not affect the USB device - there is no way to change it's volume from the head unit this far.
I'm ready/willing to flash/hack this unit as best I can, can't brick it as it belongs to a client (fingers crossed) but I definitely want to use the USB DAC full-time.
If I could find a way to loop the RCA inputs to the optical output on the UCA222 (maybe a custom app) that would be enough to route the radio output through the optical but that's definitely not ideal.
There has to be other people wanting/needing to do this! These units DACs leave a lot to be desired (I'm being nice) and there's a huge selection of great USB DACs.. Heck, in my configuration I won't even be using the DAC in the Behringer - it'll be all digital until it hits the Audison processor/amp with it's internal DAC feeding it's internal amp and a pre-amp that outputs to the separate sub-woofer amplifier (AP1D).
I have the deck setup on my desk right now hooked to a power supply and booted, on WiFi and ready for hacking. What can we do?
From what I've read the MCU controls all the hardware buttons - though I'm not sure it'll be required to mess with it..?
How does Android see the internal audio chip? I know the MCU communicates with it over SDIO, does android as well? I guess no as I read another thread that has a hack/app allowing more control over the audio chip by interfacing one the SoCs GPIO/SDIOs to the chip.
So, how does the radio app work then? Does it just send a signal telling the radio chip to route its audio to the audio chip? Or does Android actually see some sort of audio device for the radio? If it just tells the audio chip which "source" to use and the radio chip outputs directly to it, I'm not sure there's going to be a way to get radio over digital without a converter box to convert that analog output to digital..
All other Android outputs shouldn't be a problem, from what I can tell everything else is already playing over USB for me.. except the radio and volume control.. even the "beeps" you hear when adjusting the volume come over the internal audio device not USB..but Google Voice Search and YouTube work over USB fine..
---------- Post added at 03:05 AM ---------- Previous post was at 03:04 AM ----------
I find it odd that your seeing pops/clicks.. I have had no issues and fully stable audio from the apps it does work from.
forbiddenera said:
Hi,
I am also very interested in using USB Audio on a PX5.
I have an EONON GA7150A 32GB BMW unit.
MCU is "MTCD_WWW_V2.54b_2", Build is "px5-userdebug 6.0.1 MXC89l user.hct.20170617.171922 test-keys"
I run a car audio / performance / engineering company. We're doing a SQ install on a 04 BMW M3 with all Audison Prima gear going to an Audison Bit 8.9 amp/processor.
I got a Behringer UCA-222 hoping to use it - plugging it into my tablet (Samsung Tab S 8.4") - it works perfectly without any configuration, so I had hoped it'd work with the Android HU as well.
Plugging it into the Android HU - it DOES work - I can play audio from any apps (YouTube, Google Voice Search both output to the USB device) - I have installed SoundAbout Pro to try and re-route all audio to the USB DAC but it doesn't work for everything.
My issues are:
- The FM radio plays through the internal pre-amp/amplifier.
- The volume control (whether through the touchscreen on the menu, or using the hardware knob) does not affect the USB device - there is no way to change it's volume from the head unit this far.
I'm ready/willing to flash/hack this unit as best I can, can't brick it as it belongs to a client (fingers crossed) but I definitely want to use the USB DAC full-time.
If I could find a way to loop the RCA inputs to the optical output on the UCA222 (maybe a custom app) that would be enough to route the radio output through the optical but that's definitely not ideal.
There has to be other people wanting/needing to do this! These units DACs leave a lot to be desired (I'm being nice) and there's a huge selection of great USB DACs.. Heck, in my configuration I won't even be using the DAC in the Behringer - it'll be all digital until it hits the Audison processor/amp with it's internal DAC feeding it's internal amp and a pre-amp that outputs to the separate sub-woofer amplifier (AP1D).
I have the deck setup on my desk right now hooked to a power supply and booted, on WiFi and ready for hacking. What can we do?
From what I've read the MCU controls all the hardware buttons - though I'm not sure it'll be required to mess with it..?
How does Android see the internal audio chip? I know the MCU communicates with it over SDIO, does android as well? I guess no as I read another thread that has a hack/app allowing more control over the audio chip by interfacing one the SoCs GPIO/SDIOs to the chip.
So, how does the radio app work then? Does it just send a signal telling the radio chip to route its audio to the audio chip? Or does Android actually see some sort of audio device for the radio? If it just tells the audio chip which "source" to use and the radio chip outputs directly to it, I'm not sure there's going to be a way to get radio over digital without a converter box to convert that analog output to digital..
All other Android outputs shouldn't be a problem, from what I can tell everything else is already playing over USB for me.. except the radio and volume control.. even the "beeps" you hear when adjusting the volume come over the internal audio device not USB..but Google Voice Search and YouTube work over USB fine..
---------- Post added at 03:05 AM ---------- Previous post was at 03:04 AM ----------
I find it odd that your seeing pops/clicks.. I have had no issues and fully stable audio from the apps it does work from.
Click to expand...
Click to collapse
That's cool. I suppose you're member of Strictly Sound Quality group on Facebook ?
I'm really into SQ as well, Pioneer Premier / Hivi amps, MiniDSP C-DSP 6X8, Wavecor/Peerless 3 way active.
Anyways, back on topic: You say your Behringer UCA-222 outputs music without problem with regular players, but does it play in stereo ? Because my PCM2704 also plays audio nice without any click/pops noises but it output both channel mono, so no stereo effect, every sounds plays on both Left and Right. Sounds pretty dull for a SQ setup, it stages like poop lol. I only get stereo out of my PCM2704 if I play it through USB Audio Player Pro app, because that app uses his own USB audio driver.
For you FM Radio routing problem, is there I way to sum input channels on your DSP ? IE: With my MiniDSP I can play both SPDIF and RCA Inputs at the same time on specified output channels.
Thanks for your participation btw. :good:
Thought about getting a minidsp but the beringer was available locally and as I'm actually not using the DAC within it, I didn't care.
The 222 does have a monitor switch which sums all inputs to the 1/8 headphone jack but not over optical.
I could potentially write a small background app to sum the rca input on it to the output constantly but still have the volume control problem.
Video of interface.. I'll make a demo on how the USB audio actually works shortly, I'll install a frequency generator app so I can test stereo for you.
Happy New Year guys!
1. All Rockchips headunits (rk3066/3188/3288/px3/px5) have a big problem with their DWC-OTG USB 2.0 controller kernel driver from Designware/Synopsys.
This driver generates a huge amount of interrupts on usb bus (about 15000 per second under load and 8000 minimum without any use of usb devices). So any wide streaming devices like USB-DACs, USB-CAM, EasyCAP and others cannot properly function. USB-DACs on samplerates higher 44100 or 48000 Hz and bit depth higher 16 bit generate many pop and clicks in sound or just noise. All usb streams are very slow, even copying files from usb flesh to sd card.
This problem is well known and it has the resolution - kernel driver needs to be patched.
Here are some links:
http://hwswbits.blogspot.ru/2013/09/dwc-usb-interrupt-spam-in-rockchip-socs.html?m=1
https://www.google.ru/amp/s/ideechaniz.wordpress.com/2014/02/26/dwc-otg-drivers/amp/
We have not kernel sources to patch it. Any open sources will not go because of many special functions of our HUs have been compiled into kernel. I wrote about this to SHEN ZHEN KLYDE ELECTRONICS CO twice, but no reaction (I have their HU).
So you cannot play sound higher then 16 bit 44100Hz or 48000Hz. If you try 24 bit and/or 96kHz you can hear clicks and pops or just a noise. The first step to make the situation better is to get usb-dac/converter with only FULL-speed (12Mb/s) usb-reciever chip, like sa9023, te7022, pcm2704(6) (mono!) etc. Unplug all usb devices except usb-dac from usb. Note that wifi and processor's loads affect too. Edit /etc/audio_policy.conf to limit sr and bd to 44100 and 16 for usb_device section. If you want to use your high speed usb-dac you can try to find and use a full speed usb hub on ali or ebay.
2. All android HUs for now have mcu and android boards inside. All apps like youtube, navigation, poweramp etc are sounding from android board and all of them can be routed to play through usb-dac using usb audio function of android. But dvd, bt hands-free, radio are located on and managed by mcu board. So sound from them does not going to/through android board. The only one way to get their sound on your car audio processor is connection of rca-outs and set processor to auto switch between analog and digital inputs by signal determination (helix dsp and many others can do that).
3. The volume. The best way for SQ is to use the dsp's volume adjustment. Note for digital volume adjustment every -6bB from max level excludes 1 bit from effective bit depth. So you loose your sound quality (dynamic range) by digital volume adjusting on HU because you can only have 16bit output (see 1). But if you WANT to do it there is one difficult way - write your own app service to catch mcu's broadcast commands for volume adjusting and then send alsamixer's comnands to change usb dac volume same level (need to install alsa). I made it for rk3066/rk3188 HUs on petrows microntec headunit service. Hope this help https://github.com/petrows/RK3066-Headunit-service
https://www.google.ru/url?sa=t&sour...MQ5YQBCCcwAA&usg=AOvVaw2W8hsXylKrMeQRC2R2mOVt
This service also can send buttons presses to Poweramp, USB Audio Player Pro, Spotify, PCRadio etc. But it is for MTCB, not for MTCD HUs. I dont know a difference of Microntek services of this versions of HUs. So I cannot say will it work or not on MTCD.
Question which has better sound?
Chich output > dsp > amp or
Usb dac > amp
??? I think the sound should just be good with a dsp or im wrong?
aluver said:
All apps like youtube, navigation, poweramp etc are sounding from android board and all of them can be routed to play through usb-dac using usb audio function of android.
Click to expand...
Click to collapse
Thanks man for the detailed post.
How do i do this. Is it in the developer options where we select to use Audio source for USB . What would happen in case we have multiple USB devices in use?
Thanks in advance.
kaderekusen said:
Question which has better sound?
Chich output > dsp > amp or
Usb dac > amp
??? I think the sound should just be good with a dsp or im wrong?
Click to expand...
Click to collapse
What do you mean under "Chich output". RCA? I think dsp cannot make the sound of HU's RCA better. It has a very poor quality with low voltage - so you get a lot of noise and "unsharped" sound.
---------- Post added at 11:39 AM ---------- Previous post was at 11:29 AM ----------
piyush7243 said:
Thanks man for the detailed post.
How do i do this. Is it in the developer options where we select to use Audio source for USB . What would happen in case we have multiple USB devices in use?
Thanks in advance.
Click to expand...
Click to collapse
I don't think dev options have it. I think usb audio must work from the box on android 6 firmware, but it may depends from firmware version. To dermine usb audio driver exist in kernel just plug in your usb-dac and view file /proc/asound/cards - it will show you all plugged sound devices for this moment. But note at first you need to entirely stop all installed direct players like UAPP, Hybi, NeutronMP etc.
aluver said:
[/COLOR]I don't think dev options have it. I think usb audio must work from the box on android 6 firmware, but it may depends from firmware version. To dermine usb audio driver exist in kernel just plug in your usb-dac and view file /proc/asound/cards - it will show you all plugged sound devices for this moment. But note at first you need to entirely stop all installed direct players like UAPP, Hybi, NeutronMP etc.
Click to expand...
Click to collapse
Dev options have it and i have enabled it there as well. but not sure on which USB port. Also currently i am at the highest firmware level and ROM level. No 3rd party USB driver is installed, still cant get the USB audio out. I have even replaced the audio_policy.conf.
I will check if the device is getting detected or not
piyush7243 said:
Dev options have it and i have enabled it there as well. but not sure on which USB port.
Click to expand...
Click to collapse
Good info. Is your firmware from enthusiasts or from a producer?
You have to use USB port for 3g-modem - it must be otg. But on my Klyde rk3066 mtcb hu I have all 3 usb ports working with dac.
audio_policy.conf must be in /etc for proper usb audio functionality.
Didn't understand about usb modem. I use 2 HDD and a USB DAC .the firmware is Hotaudio Dasaita default one. Do you have the audio_policy.conf file for my reference
Sent from my Pixel 2 XL using Tapatalk
I mean otg usb port is usually marked "3g-modem" or like that.
audio_policy.conf may be different for our HUs. Besides, I have android 4.4.4 rom. But I attach my 2 versions of audio_policy.conf. The second version is from ROM that contains a file /system/lib/hw/audio.alsa_usb.rk30board.so. So policy contains alsa_usb section.
What is your result with driver?
aluver said:
I mean otg usb port is usually marked "3g-modem" or like that.
audio_policy.conf may be different for our HUs. Besides, I have android 4.4.4 rom. But I attach my 2 versions of audio_policy.conf. The second version is from ROM that contains a file /system/lib/hw/audio.alsa_usb.rk30board.so. So policy contains alsa_usb section.
What is your result with driver?
Click to expand...
Click to collapse
Thanks for putting this here. Btw nothing was marked on my USB cables so swapping usb helped and one of them worked on apps.
Now another quick question. Tried Poweramp but it didn't see the usb DAC. Jet audio would hang. Any other music apps which doesn't use its proprietary driver.
I can use UAPP but it seems that it locks the usb DAC and doesn't allow the other apps to have access.
With UAPP it says usb device initialised but yesterday no such message.
Sent from my Pixel 2 XL using Tapatalk
piyush7243 said:
Now another quick question. Tried Poweramp but it didn't see the usb DAC. Jet audio would hang. Any other music apps which doesn't use its proprietary driver.
Click to expand...
Click to collapse
Did you use Poweramp v3 alpha? What version? Better use v703 for your android 6. What samplerate do you have in audio_policy.conf at usb_device section now? Need to limit it 44100 and 16 bit depth. Poweramp 3 may not work with usb-dac directly in case of many software and hardware combinations reasons. But you can use Poweramp v2 - it may work as other apps through android kernel usb audio driver.
---------- Post added at 08:44 AM ---------- Previous post was at 08:29 AM ----------
piyush7243 said:
I can use UAPP but it seems that it locks the usb DAC and doesn't allow the other apps to have access.
With UAPP it says usb device initialised but yesterday no such message.
Click to expand...
Click to collapse
I wrote earlier about this. All direct players always lock usb-dac. I am not sure but seems to be Poweramp v3 alpha does not lock dacs, internal at least. Try it.
I am back , after the reboot, the usb DAC is not being used again. Ughhhh. Need to break my head more to get to bottom of this behaviour.
Sent from my Pixel 2 XL using Tapatalk