General Issues with USB Dongles and external USB DACs - Google Pixel 6 Pro

There is another problem with the Pixel 6 (6 and 6 pro) devices. External USB DACs and dongles do not work properly. USB Host API or the DAC offloading and hand-over are bugged. Apps like Tidal, Neutron, USB audio Player Pro crash or can't play music in high res. The problem has already been reported by some users. There has been no statement from Google yet.
A work around for me to get music playing and stop apps freezing was switching off the toggle for "allow all apps use mic" in system/privacy settings.
But this does not solve the issue, as the apps still can not access the USB Dongles or external DACs directly and by pass android system limitations and software processing.
Google skips the 3.5 port and users are forced to use dongles, etc., which do not even work properly.

Google is going the Apple way by certifying hardware that is compatible with the P6P and P6. Their response will be to buy a certified DAC or wait for a software patch

WTF, I don't find the USB PLAYER PRO on playstore... And you?

Myrzul said:
WTF, I don't find the USB PLAYER PRO on playstore... And you?
Click to expand...
Click to collapse
This one? https://play.google.com/store/apps/details?id=com.extreamsd.usbaudioplayerpro&hl=en

roirraW edor ehT said:
This one? https://play.google.com/store/apps/details?id=com.extreamsd.usbaudioplayerpro&hl=en
Click to expand...
Click to collapse
Yes.. It's not available on my pixel 6 pro.

Myrzul said:
Yes.. It's not available on my pixel 6 pro.
Click to expand...
Click to collapse
Maybe they're still using some old Android API and need to start using a newer one. Hopefully, they update it for Android 12.

roirraW edor ehT said:
Maybe they're still using some old Android API and need to start using a newer one. Hopefully, they update it for Android 12.
Click to expand...
Click to collapse
I hope for my DAC too... I'm sad

Myrzul said:
I hope for my DAC too... I'm sad
Click to expand...
Click to collapse
Try their website https://www.extreamsd.com/ or their support email address [email protected] and let them know. If they're not already actively working on a solution, hopefully they will after you talk to them. Good luck!

They are all aware. I've talked to Davy (USB audio Player Pro). They removed the app for pixel 6 and pixel 6 pro from playstore because of the mentioned issues. The problems have nothing to do with their app. E.g. neutron and tidal are also not working properly or freezing. Google needs to fix their USB DAC hand over.

Nemuritor01 said:
They are all aware. I've talked to Davy (USB audio Player Pro). They removed the app for pixel 6 and pixel 6 pro from playstore because of the mentioned issues. The problems have nothing to do with their app. E.g. neutron and tidal are also not working properly or freezing. Google needs to fix their USB DAC hand over.
Click to expand...
Click to collapse
Wow, that sucks. I hope they fix that pronto! Otherwise, I smell a class-action lawsuit (not from me).

Is it app specific and/or USB DAC specific? Because my FiiO BTR3K works fine.

Which app are you using?
Some apps can play music, but most can not bypass Android Software processing.
If you e.g. use tidal in MQA the app connects directly to the DAC and plays in high res.
Same does USB audio Player Pro. Then you see at the bottom "DAC" + bit...
Actually if I get it to play music at all, it's just direct mode, which means nothing.
Some dongles and DACs seem to be working, but just in low/software-processed quality.
So the problem is playing REAL high res, instead of android software compressed/processed audio.
Therefore the USB API seems to be broken. So as soon as the app tries to get direct access to the DAC it freezes or crashes.

Nemuritor01 said:
Which app are you using?
Some apps can play music, but most can not bypass Android Software processing.
If you e.g. use tidal in MQA the app connects directly to the DAC and plays in high res.
Same does USB audio Player Pro. Then you see at the bottom "DAC" + bit...
Actually if I get it to play music at all, it's just direct mode, which means nothing.
So the problem is playing REAL high res, instead of android software compressed/processed audio.
Click to expand...
Click to collapse
Ah gotcha. I don't have anything playing actual high res audio files.

EeZeEpEe said:
Ah gotcha. I don't have anything playing actual high res audio files.
Click to expand...
Click to collapse
Yeah, maybe you can play some processed, low quality music through your high res DAC. So the DAC is pretty useless, you could use a standard dongle with bull**** chip, as it doesn't matter.
I know a little bit what I'm talking about.
I did some audio ports and worked with UltraM8 and the other dudes on the Ainur Audio mods.

Nemuritor01 said:
Yeah, maybe you can play some processed, low quality music through your high res DAC. So the DAC is pretty useless, you could use a standard dongle with bull**** chip, as it doesn't matter.
I know a little bit what I'm talking about.
I was the guy doing the DTS port and worked with UltraM8 and the other dudes on the Ainur Audio mods.
Click to expand...
Click to collapse
Yeah I don't even use it wired anyway. I just wanted a very good Bluetooth DAC. For me it's the best of both, using my wired headphones yet not tethered to the device it's connected to.

No issues playing the Hi-Res/Ultra HD music files on Amazon Music through the official Google dongle. Sounds pretty good, can't really tell the difference between it and the V60 that I've had prior.

prohibido_por_la_ley said:
No issues playing the Hi-Res/Ultra HD music files on Amazon Music through the official Google dongle. Sounds pretty good, can't really tell the difference between it and the V60 that I've had prior.
Click to expand...
Click to collapse
As far as I know, Amazon app is still limited to phones native sampling rate and does not bypass Android limitations (android mixer). So it does not make use of the external DAC directly. Different story again. But please correct me, if I'm wrong.
But at least it's one DAC that plays some music.

Here the link to the Google support conversation.
What to do about USB-C audio outputs (adaptor + USB DAC) with pixel 6? - Google Pixel Community

I had a OnePlus 6 with Jack 3.5 and I bought a DAC for the Pixel 6 and I find this problem, I hope they will solve it soon. I can play music but with worse quality

Nemuritor01 said:
Here the link to the Google support conversation.
What to do about USB-C audio outputs (adaptor + USB DAC) with pixel 6? - Google Pixel Community
Click to expand...
Click to collapse
I just read through the conversation and it just baffles me. So the "official" Pixel support forum is run by volunteers who basically tell you "if you have a problem, don't bother us, we just give you pre-prepared text-blocks - if they can't help you, we're out" - if you want "real" support, go and use "feedback form" - meaning you write a wall of text to an known person, won't get any sort of answer or input and have to pray that Google will care?
Uff.
I mean, as a Pixel user you can always try the
-> Settings
-> Tips & Support
-> Contact us
form, that way you can at least write to a person/talk to a human, even though they will most likely also just form a "feedback form" after your conversation, since they are powerless Tier I tech people.
I hope that Google can fix those problems here, so you guys can have fun with your device. Google certainly doesn't deserve the "our phone just works" - status, if they forget to add basic compatibility to common third party hardware.

Related

No audio with my videos

When i transfer videos i recorded with my Evo to my computer there is no audio. When i play them on the phone everything works fine. Is there a setting i dont know about? Anyone else having this problem?
slacker76 said:
When i transfer videos i recorded with my Evo to my computer there is no audio. When i play them on the phone everything works fine. Is there a setting i dont know about? Anyone else having this problem?
Click to expand...
Click to collapse
My guess is you don't have the proper codec installed on your computer. Your homework is to find out what codecs the Evo uses (for whichever format you're recording) and then install a compatible codec on your PC.
SilverZero said:
My guess is you don't have the proper codec installed on your computer. Your homework is to find out what codecs the Evo uses (for whichever format you're recording) and then install a compatible codec on your PC.
Click to expand...
Click to collapse
That is most assuredly what the problem is. Look for an mp4 codec. (generally the one that you need unless you are doing some different formatting)
found it
I found what I was looking for. Thanks for the help.
slacker76 said:
I found what I was looking for. Thanks for the help.
Click to expand...
Click to collapse
Darn...I was going to play trouble shooting 101.
*In best Indian tech support voice*
"Did you try turning up the volume?"
damn headphones!
The volume was up but I had the damn headphones were plugged in! Just kidding. I just installed a codec package and its all good. My computer is 6 months old so its kinda weird it didn't already support mp4 audio.
Depending on the system, it may not have had a lot of multimedia programs (and, thus, codecs) installed. If you ask me, the world of AV codecs has gotten far too large and forked. There should be a standard or set of standards, at least for matching codecs and containers and all that crap. Glad you got it, though.

[Q] LG G3 192kHz/24bit or NOT??

I just got my G3, which I've been eagerly awaiting. Main reason I bought this was my understanding it would support 192kHz/24 bit audio like the G2. However, any attempt to play anything higher than 96kHz, plays back in MONO.
I have just spent 90 minutes with T-Mo support and then LG - both were clueless. So I hoping some of you kind folks would check this out on your phone, if you can.
Hi-res files that play fine on my PC, play in Mono on the G3. The same file converted to 96kHz/24bit format play in stereo. I am using WAV annd FLAC files. Thanks to all! - FRUSTRATED NEW OWNER
Have you read this? http://people.xiph.org/~xiphmont/demo/neil-young.html ?
Apparently humans can't even hear the difference. It's more of a gimmick.
What kind of headphones are you using that you think 24/192 will benefit you?
I'm not sure why it's not working though.
DigitalChris602 said:
Have you read this? http://people.xiph.org/~xiphmont/demo/neil-young.html ?
Apparently humans can't even hear the difference. It's more of a gimmick.
Click to expand...
Click to collapse
Argh... Why'd you go and post that article? I just spent 15mins reading it all and it's soooooo long.... :crying:
Don't get me wrong, it's informative and predicated on evidence and I was curious, but soooooo long. And I actually read it all. Why did I do that?
Now I think I'm hearing things.... :silly:
Sorry to go OT, but the sounds told me to do it. :victory:
DigitalChris602 said:
Apparently humans can't even hear the difference. It's more of a gimmick.
What kind of headphones are you using that you think 24/192 will benefit you?
I'm not sure why it's not working though.
Click to expand...
Click to collapse
I really don't want to get into a discussion of the value of 24/192 - it's a feature that I paid for and frankly the thing that sold me on the LG. And I am amazed that even LG Tech Support is clueless as to whether this is supported or not... I had to educate them about sampling rates!
So, I downloaded a 3rd party player (Neutron) and another which I can't recall. They WERE able to play my hi-res files in stereo, so it appears Google Play is buggy.
Portland_LG_G3 said:
I really don't want to get into a discussion of the value of 24/192 - it's a feature that I paid for and frankly the thing that sold me on the LG. And I am amazed that even LG Tech Support is clueless as to whether this is supported or not... I had to educate them about sampling rates!
So, I downloaded a 3rd party player (Neutron) and another which I can't recall. They WERE able to play my hi-res files in stereo, so it appears Google Play is buggy.
Click to expand...
Click to collapse
So the native G3 music player is what's buggy? Not the G3 hardware itself, correct?
JustLok said:
So the native G3 music player is what's buggy? Not the G3 hardware itself, correct?
Click to expand...
Click to collapse
Yes, my 24/176k files I loaded played in stereo using two different 3rd party players; but in mono using the stock Google play app. :good:
Portland_LG_G3 said:
I really don't want to get into a discussion of the value of 24/192 - it's a feature that I paid for and frankly the thing that sold me on the LG. And I am amazed that even LG Tech Support is clueless as to whether this is supported or not... I had to educate them about sampling rates!
So, I downloaded a 3rd party player (Neutron) and another which I can't recall. They WERE able to play my hi-res files in stereo, so it appears Google Play is buggy.
Click to expand...
Click to collapse
Good point! Hopefully LG fixes the stock app.
Google Play isn't the stock music app. My G3 plays the files in stereo with a hi-def tag for anything over 96k

[APK] USB Audio Player Pro, is a standout & uses our DAC to 192k!

USB Audio Player Pro.
Plays DSD, and FLAC files up to 192000 bit rate on our standard DAC, no USB Hw used.
FLACs get can be played through UAPP at their full glory from non OTG memory.
SACD rips are converted to PCM at 192K from OTG only, which forces you to pick files individuality. If played through UAPP they get downgraded to 44K.
I have tried out every notable player and none sounded like this. I have always preferred vinyl but when Super Audio CDs started growing, I was thrilled. Now I can play my hard drive stash on my phone! Too bad the app does not see OTG.
Playing from OTG is a bit convoluted ( more than a bit ? Depends if you have audiophile ears).
I use File Commander to get UAP to play/find the .dsf or .flac.
Then once playing you can create a playlist as you go. Never having to pick it again with FC.
More on the app's issues with Android 6 http://www.extreamsd.com/forum/showthread.php?tid=155
It isn't easy messing with Mother Android!
File Commander is the only app I can find that does this service well enough. It can be slow on hard drives greater than 200 GB. It is not much good for housekeeping chores.
Update, there are others: File Manager + unlike FC, does a download (efing slow) , X-plore and B1 File too but do not recognize DSD. ES is useless for OTG. Filers are in a sad state for MM on our phone.
I use Solid (not classic) for deleting/ copying.
Note this app does not limit any low or high frequency junk. Vinyl transcriptions that I thought to be OK are not listenable due to pops and clicks.
Be sure to choose Android bit rate as Variable (pic 2).
See pic 1: using FC to load a .DSF (DSD) to UAPP from OTG drive. Pic 4 - 6 settings I used to get 192k.
Pic 7: .dsf (DSD) file residing on internal memory (or sdcard) showing 44k PCM.
Pic 8: the plugin EQ tweeked for my Apple earbuds.
FC
https://play.google.com/store/apps/details?id=com.mobisystems.fileman
UAPP
https://play.google.com/store/apps/details?id=com.extreamsd.usbaudioplayerpro
More to come....
How is the DAC capable of such? Does it even sound good for a mid range phone or even compared to a dedicated DAC?
Locklear308 said:
How is the DAC capable of such? Does it even sound good for a mid range phone or even compared to a dedicated DAC?
Click to expand...
Click to collapse
As I compare the DSD (.dsf) output from a file residing on OTG (192 k PCM) vs the same from SDcard or internal memory (44k PCM) it is stunning as to stereo imaging and placement of instruments beyond the space in my head. Highs are much smoother as well.
I was considering buying a 40 dollar ESS DAC (micro usb) on Amazon and an adapter. Now ....
Locklear308 said:
How is the DAC capable of such? Does it even sound good for a mid range phone or even compared to a dedicated DAC?
Click to expand...
Click to collapse
I think that ESS DAC would allow DSD direct!
Also at volume near 100% I notice no clipping of our Amplifier.
aviwdoowks said:
USB Audio Player Pro.
Plays DSD, and FLAC files up to 192000 bit rate on our standard DAC, no USB Hw used.
FLACs get can be played through UAPP at their full glory from non OTG memory.
SACD rips are converted to PCM at 192K from OTG only, which forces you to pick files individuality. If played through UAPP they get downgraded to 44K.
I have tried out every notable player and none sounded like this. I have always preferred vinyl but when Super Audio CDs started growing, I was thrilled. Now I can play my hard drive stash on my phone! Too bad the app does not see OTG.
Playing from OTG is a bit convoluted ( more than a bit ? Depends if you have audiophile ears).
I use FX Commander to get UAP to play/find the .dsf or .flac.
Then once playing you can create a playlist as you go. Never having to pick it again with FX.
More on the app's issues with Android 6 http://www.extreamsd.com/forum/showthread.php?tid=155
It isn't easy messing with Mother Android!
FX is the only app I can find that does this service well enough. It can be slow on hard drives greater than 200 GB. It is not much good for housekeeping chores, I use Solid for deleting/ copying.
Note this app does not limit any low or high frequency junk. Vinyl transcriptions that I thought to be OK are not listenable due to pops and clicks.
Be sure to choose Android bit rate as Variable (pic 2).
See pic 1: using FX to load a .DSF (DSD) to UAPP from OTG drive. Pic 4 - 6 settings I used to get 192k.
Pic 7: .dsf (DSD) file residing on internal memory (or sdcard) showing 44k PCM.
Pic 8: the plugin EQ tweeked for my Apple earbuds.
https://play.google.com/store/apps/details?id=com.mobisystems.fileman
https://play.google.com/store/apps/details?id=com.extreamsd.usbaudioplayerpro
More to come....
Click to expand...
Click to collapse
How does it compare to the neutron music player. (which I believe holds its own in audio quality)
akshaypatil869 said:
How does it compare to the neutron music player. (which I believe holds its own in audio quality)
Click to expand...
Click to collapse
This is different when using only the phone and no DAC. Neutron may try to render at higher rates but it never blew me away. Nor is there any acknowledgment of it's output.
In UAPP, I did not have to check the Android output shown on the player screen. It was like night and day.
akshaypatil869 said:
How does it compare to the neutron music player. (which I believe holds its own in audio quality)
Click to expand...
Click to collapse
Uuap would not have sounded better if I had not checked the android bitrate to be variable.
Standard settings of it and, I think, other players result in 44k output through the phone without any DAC present
Will it work with music on the SD card too? Or does it have to be loaded from OTG?
It does work! My S7 is dead to me! This phone is great. My FiiO Q1 might collect dust.
From audio_Policy.conf
Snip
AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_LINE|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_HDMI
flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
}
compress_offload {
sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000|88200|96000|176400|192000
channel_masks AUDIO_CHANNEL_OUT_MONO|AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2|AUDIO_FORMAT_FLAC
devices
Snip
I just made a request for support with a big name player that browses OTG and plays DSD too. Can you guess who?
So I am considering getting this app, however want to make sure it will do what I want it to, LOL.
So I dont have any external USB DAC right now, and normally stream music to my car using Bluetooth to my AudioEngine B1. It sounds good, but looking for the Android DAC to help improve once I start playing my local DSD files and high quality recordings. With this setup, will this improve the sound considerably?
banshee28 said:
So I am considering getting this app, however want to make sure it will do what I want it to, LOL.
So I dont have any external USB DAC right now, and normally stream music to my car using Bluetooth to my AudioEngine B1. It sounds good, but looking for the Android DAC to help improve once I start playing my local DSD files and high quality recordings. With this setup, will this improve the sound considerably?
Click to expand...
Click to collapse
You may want to wait as UAPP will not browse OTG and said to me, no plans to do it.
Yet PowerAmp does browse now and they say they are tring to support all phone DACs
Go my post in Q & A. Register and submit.
You may not get 192k over BT
banshee28 said:
So I am considering getting this app, however want to make sure it will do what I want it to, LOL.
So I dont have any external USB DAC right now, and normally stream music to my car using Bluetooth to my AudioEngine B1. It sounds good, but looking for the Android DAC to help improve once I start playing my local DSD files and high quality recordings. With this setup, will this improve the sound considerably?
Click to expand...
Click to collapse
You can play OTG from a Playlist, it is the only way to get 192k PCM from a dsf too.
I am still on Marshmallow and unrooted. Nougat users, does USB Audio player play high resolution?
Does File Commander browse OTG and pass audio files to the player?
Thanks
Any Nougat stock no root working equalizer software for MZP need advices what to use.
Wysłane z mojego XT1635-02 przy użyciu Tapatalka
Has anyone tested this with a dragonfly?
Locklear308 said:
Has anyone tested this with a dragonfly?
Click to expand...
Click to collapse
Splain pleaze
DAC
Right!
I never used a DAC btw.
sebx_g1 said:
Any Nougat stock no root working equalizer software for MZP need advices what to use.
Wysłane z mojego XT1635-02 przy użyciu Tapatalka
Click to expand...
Click to collapse
This works for me.

Have VZW or Not Rooted? Block Buggy Noug'y, Be Wise wait for a later Edition

https://forum.xda-developers.com/moto-z-play/themes/app-moto-z-play-apps-stop-ota-motocare-t3538812
Still gotta be better than Marshmallow.
ironbesterer said:
Still gotta be better than Marshmallow.
Click to expand...
Click to collapse
I love ❤ this phone's audio abilities. It can play DSF (DSD) and 192k flac's. I bet N (Beta) won't.
How long will it take for USB Audio or Poweramp to get up to speed?
aviwdoowks said:
I love this phone's audio abilities. It can play DSF (DSD) and 192k flac's. I bet N (Beta) won't.
How long will it take for USB Audio or Poweramp to get up to speed?
Click to expand...
Click to collapse
USB Audio player does work with the native DAC on the Z Play. Poweramp is supposed to be getting support soon (that was said three weeks ago)
ironbesterer said:
USB Audio player does work with the native DAC on the Z Play. Poweramp is supposed to be getting support soon (that was said three weeks ago)
Click to expand...
Click to collapse
So which work on 7?
Most problems with Nougat are a result of sideloading an OTA that in not your authorized update.

Avoiding Android Mixer/48Khz upsampling of 44.1/16 audio

Is anybody aware of a system-wide solution to avoid the upsampling of 44.1KHz / 16-bit music to 48KHz?
With system-wide, I mean a solution that does not rely on certain player apps such as UAPP or Neutron, which we know can do it, but only when playing from inside that app. A solution which works with all (or most) audio sources and apps, modifying the default system behavior of upsampling 44/16 to 48KHz when playing to the Quad DAC.
Personally, I am looking for solutions to work with Tidal offline tracks. Others are looking for solutions to Qobuz, Spotify, Google Play Music or other apps.
Do some of the custom ROMs have fixes for this? Are there policy file or build.prop changes that are proven to fix it?
Googling and searching on XDA finds many references to Android's infamous 48KHz upsampling/re-sampling (SRC) but none that look to be actual, working solutions for our phones. I hope I am wrong and that there is a simple fix which I overlooked.
Background
The LG V series and G series (most models) are appreciated by audiophiles for their excellent ESS Sabre DAC (ES9218P, branded Quad DAC by LG). It can deliver amazing sound quality when paired with good headphones or IEMs (In-Ear-Monitors, earphones). (And no, that doesn't necessarily mean High-Impedance headphones/IEMs, but that's a whole other discussion.)
V30 in particular has gained a rather large following among audiophiles, many of whom congregate on head-fi.org, where you will find a huge V30 thread, a growing V40 thread and a dedicated V30 Music apps, tricks and tips thread.
When it comes to HiRes music (anything higher than 48KHz sample rate and anything 24-bit) most music apps play it correctly: Bit-perfect, without any processing or re-sampling, directly to the DAC -- exactly as audiophiles want it. A few apps are known to downsample HiRes music to Android's default sample rate of 48KHz, but those are the exception.
However 44.1KHz / 16-bit music is always routed through Android's Mixer, which upsamples it to 48Khz. This causes artifacts that are audible to good ears, particularly when played on sensitive IEMs. Since 44/16 includes anything CD quality (whether compressed or uncompressed) that means most music in the world gets molested before it reaches the DAC.
For whatever reason, LGs implementation of the ESS DAC throughout the V and G series have suffered from this inability to play 44/16 music without upsampling. It is the one thing that truly hampers their reputation among audiophiles (arguably even more so than the inability to select between gain modes, which is annoying, but not a deal breaker for most).
This can be verified by inspecting the Output Thread of audio_flinger dumps, showing whether an output stream is played through the DIRECT path (not the MIXER path) and with the offloadable flag (sent straight to the DAC for decoding and rendering). Of course it can also be verified by listening for those artifacts.
The last 1.5 years, audiophile V30 users have relied on UAPP or Neutron as music players because they are able to work around this upsampling. They do so by converting 44/16 format music to 44/24 on the fly, adding zero bits to convert 16-bit to 24-bit. Different from the 48KHz upsampling, this is a harmless conversion which doesn't affect audio quality. (Of course it's also much faster, requiring no interpolation.) And once music is in 44/24 format, it is no problem sending it directly to the DAC, as described above.
We recently confirmed that PowerAmp also is able to do this correctly now (which wasn't always the case). But only if you configure it to convert all music to 44/24, which obviously isn’t desirable for HiRes.
UAPP is my personal favorite, as it also supports streaming services Tidal, Qobuz and Google Play Music, in addition to network services and any PCM or DSD file you can throw at it. All of it pristinely bit-perfect. But it cannot support Tidal or Qobuz offline, which means when playing offline you are limited to HiRes music (only a small part of their catalog) unless you can tolerate the 48KHz upsampling of CD quality tracks in the Tidal/Qobuz apps.
Head-Fi titan @csglinux and I have set out looking for a solution to this, along with other interested head-fi members. csglinux has been testing various policy and build.prop edits (so far no cigar), while I have been digging through the ESS driver source code from the kernel (but I am not set up to actually build the kernel).
More background and discussion can be found in csglinux' V30 Music apps, tricks and tips thread on head-fi. I also recently had a brief (and more technical) discussion with @ctheanh about this over in the XDA V40 forum, starting here. Arguably those posts would be more suited here.
We have several ideas, but it is a steep hill to climb, as none of us are Android developers. But before posting pages of what we have already tried, or dozens of audio_flinger dumps from various setups, we wanted to throw the topic out there for input. Again, maybe there is already a solution we have overlooked.
Any input is much appreciated!
TL;DR
I personally recommend UAPP as the best $8 anybody can spend if they care about sound quality on their V30. This is not about avoiding that. But UAPP doesn't cover all scenarios, in particular offline Tidal and Qobuz.
That's why we're looking for a system-wide fix (mod or custom ROM) that avoids the upsampling.
Reserved (more technical background and evidence to come)
TheDannemand said:
Is anybody aware of a system-wide solution to avoid the upsampling of 44.1KHz / 16-bit music to 48KHz?
With system-wide, I mean a solution that does not rely on certain player apps such as UAPP or Neutron, which we know can do it. A solution which works with all (or most) audio sources and apps, changing the default behavior of upsampling 44/16 to 48KHz (when playing to the Quad DAC).
Personally, I am looking for solutions to work with Tidal offline tracks. Others are looking for solutions to Qobuz, Spotify, Google Play Music or other apps.
Do some of the custom ROMs have fixes for this? Are there policy file or build.prop changes that are proven to fix it?
Googling and searching on XDA finds many references to Android's infamous 48KHz upsampling/re-sampling (SRC) but none that look to be actual, working solutions for our phones. I hope I am wrong and that there is a simple fix which I overlooked.
Background
The LG V series and G series (most models) are appreciated by audiophiles for their excellent ESS Sabre DAC (ES9218P, branded Quad DAC by LG). It can deliver amazing sound quality when paired with good headphones or IEMs (In-Ear-Monitors, earphones). (And no, that doesn't necessarily mean High-Impedance headphones/IEMs, but that's a whole other discussion.)
V30 in particular has gained a rather large following among audiophiles, many of whom congregate on head-fi.org, where you will find a huge V30 thread, a growing V40 thread and a dedicated V30 Music apps, tricks and tips thread.
When it comes to HiRes music (anything higher than 48KHz sample rate and anything 24-bit) most music apps play it correctly: Bit-perfect, without any processing or re-sampling, directly to the DAC -- exactly as audiophiles want it. A few apps are known to downsample HiRes music to Android's default sample rate of 48KHz, but those are the exception.
However 44.1KHz / 16-bit music is always routed through Android's Mixer, which upsamples it to 48Khz. This causes artifacts that are audible to good ears, particularly when played on sensitive IEMs. Since 44/16 includes anything CD quality (whether compressed or uncompressed) that means most music in the world gets molested before it reaches the DAC.
For whatever reason, LGs implementation of the ESS DAC throughout the V and G series have suffered from this inability to play 44/16 music without upsampling. It is the one thing that truly hampers their reputation among audiophiles (arguably even more so than the inability to select between gain modes, which is annoying, but not a deal breaker for most).
This can be verified by inspecting the Output Thread of audio_flinger dumps, showing whether an output stream is played through the DIRECT path (not the MIXER path) and with the offloadable flag (sent straight to the DAC for decoding and rendering). Of course it can also be verified by listening for those artifacts.
The last 1.5 years, audiophile V30 users have relied on UAPP or Neutron as music players because they are able to work around this upsampling. They do so by converting 44/16 format music to 44/24 on the fly, adding zero bits to convert 16-bit to 24-bit. Different from the 48KHz upsampling, this is a harmless conversion which doesn't affect audio quality. (Of course it's also much faster, requiring no interpolation.) And once music is in 44/24 format, it is no problem sending it directly to the DAC, as described above.
We recently confirmed that PowerAmp also is able to do this correctly now (which wasn't always the case). But only if you configure it to convert all music to 44/24, which obviously isn’t desirable for HiRes.
UAPP is my personal favorite, as it also supports streaming services Tidal, Qobuz and Google Play Music, in addition to network services and any HiRes PCM or DSD file you can throw at it. All of it pristinely bit-perfect. But it cannot support Tidal or Qobuz offline, which means when playing offline you are limited to HiRes music (only a small part of their catalog) unless you can tolerate the 48KHz upsampling of CD quality tracks in the Tidal/Qobuz apps.
Head-Fi titan @csglinux and I have set out looking for a solution to this, along with other interested head-fi members. csglinux has been testing various policy and build.prop edits (so far no cigar), while I have been digging through the ESS driver source code from the kernel (but I am not set up to actually build the kernel).
More background and discussion can be found in csglinux' V30 Music apps, tricks and tips thread on head-fi. I also recently had a brief (and more technical) discussion with @ctheanh about this over in the XDA V40 forum, starting here. Arguably those posts would be more suited here.
We have several ideas, but it is a steep hill to climb, as none of us are Android developers. But before posting pages of what we have already tried, or dozens of audio_flinger dumps from various setups, we wanted to throw the topic out there for input. Again, maybe there is already a solution we have overlooked.
Any input is much appreciated!
Click to expand...
Click to collapse
Erm i suggest bit perfect mode on USB audio player pro
Mrxyzl said:
Erm i suggest bit perfect mode on USB audio player pro
Click to expand...
Click to collapse
Thank you. Again, I already use that, and have for the last 1.5 years. But UAPP doesn't cover all scenarios, in particular offline Tidal and Qobuz, nor Spotify and other popular streaming services.
That's why I'm asking if anybody knows of a system-wide fix (mod or custom ROM) that avoids the upsampling.
I seem to recall that you did some work into this in a custom ROM, right?
Edit: It's a long opening post, so maybe I should state this briefly:
1) This is about a system-wide fix to avoid the Mixer and upsampling of 44/16 audio when playing through the Quad DAC.
2) This is not about avoiding UAPP or Neutron. I personally recommend UAPP as the best $8 anybody can spend if they care about sound quality on the V30.
So my settings sucks?
TheDannemand said:
snip.
Click to expand...
Click to collapse
Sent from my LG-H932 using XDA Labs
BROKEN1981 said:
So my settings sucks?
Click to expand...
Click to collapse
Well, yes and no
Personally I wouldn't do it. I would set PowerAmp to output at 44.1KHz and 24-bit, which should avoid any re-sampling and just convert to 24-bit. Make sure you disable Dither (somewhere else in those Settings) so that it just adds zero bits in that 16-to-24-bit conversion. That way your 44/16 music should be sent unchanged to the DAC in 44/24 format.
But then you need to change your settings when you play HiRes music in PowerAmp, since otherwise it will be downsampled to 44.1KHz.
That said, as a fixed setting you are much better off letting PowerAmp upsample to 352Khz than letting the Android Mixer upsample to 48Khz. 44-to-352KHz is a harmonic upsampling (8x44=352) so it can be done perfectly, whereas 44-to-48KHz is just ugly. And when playing HiRes 88KHz and 176KHz music, it will be harmonically upsampled to 352Khz as well.
Ideally, PowerAmp would have had a way to only convert 44/16 to 44/24 and pass everything else through untouched. That's what UAPP does when it detects that it's running on a V30.
Another benefit of UAPP is it understands MQA and knows how to set a flag to enable the V30's hardware unfolding and rendering. (Note that you don't have to buy UAPP's optional MQA decoder for this.) With PowerAmp, the MQA will either be lost (if you re-sample or process the stream in any way) or ignored because the flag to enable MQA decoding won't be set.
Disclaimer: I don't use PowerAmp myself, so I cannot say if it it does something other than what those settings imply. I am completely open to corrections if any of my assumptions about it are wrong.
The DAC itself will upsample internally as part of so-called "noise shaping" to minimize the rounding errors that occur when trying to fit a digital sample into an analog sine wave. But we want to leave this process just to the DAC, and not add another step of upsampling (or any other digital modification) before sending music to the DAC. And particularly not an ugly upsampling like 44-to-48KHz, which simply cannot be done in a pretty way.
TheDannemand said:
snip.
Click to expand...
Click to collapse
Thanks for that detailed answer man, I appreciate it!
I tried neutron, hated the UI. I'll try out USB audio pro. Looks like it's a bit updated to MD. It's not as nice looking as PA, but that's ok lol.
Sent from my LG-H932 using XDA Labs
BROKEN1981 said:
Thanks for that detailed answer man, I appreciate it!
I tried neutron, hated the UI. I'll try out USB audio pro. Looks like it's a bit updated to MD. It's not as nice looking as PA, but that's ok lol.
Click to expand...
Click to collapse
I am the same: I tried Neutron and absolutely could not stand that UI. But I know some who love it. And they deserve credit for being first to crack the 48KHz upsampling on V30 (as I understand).
With UAPP I was instantly comfortable with its UI, features, and of course the sound quality -- the latter being as good as it can get, since it plays everything bit perfect and even supports MQA. If it could handle Tidal offline, I wouldn't even need a solution to bypass the Android Mixer, as that is the only big thing missing for me. Again, with others it's Qobuz offline or Spotify or some other music service.
TheDannemand said:
I am the same: I tried Neutron and absolutely could not stand that UI. But I know some who love it. And they deserve credit for being first to crack the 48KHz upsampling on V30 (as I understand).
With UAPP I was instantly comfortable with its UI, features, and of course the sound quality -- the latter being as good as it can get, since it plays everything bit perfect and even supports MQA. If it could handle Tidal offline, I wouldn't even need a solution to bypass the Android Mixer, as that is the only big thing missing for me. Again, with others it's Qobuz offline or Spotify or some other music service.
Click to expand...
Click to collapse
Trying it out, I like it but have a few issues that are getting on my nerves.
1) no cross fade into the new track.
2) It separates my albums for whatever reason. PowerAmp will not do this. My tags are the way I want them. I did my own edits.
Edit, the EM album that's solo is also in the EM album collection. Just chose to list it 2 times.
Sent from my LG-H932 using XDA Labs
BROKEN1981 said:
Trying it out, I like it but have a few issues that are getting on my nerves.
1) no cross fade into the new track.
2) It separates my albums for whatever reason. PowerAmp will not do this. My tags are the way I want them. I did my own edits.
Edit, the EM album that's solo is also in the EM album collection. Just chose to list it 2 times.
Click to expand...
Click to collapse
I apologize for the tardy response. Swamped these days.
1) Ahh. I don't use cross fading myself, but I see what you mean, it's a valid request.
2) My entire music collection is carefully curated as well (manually edited tags) and I've never seen any problems with UAPP handling albums correctly. You could try Clearing the database and Scan again. But you probably already did...
I suggest you write to the Dev about both issues. You can either email [email protected] or post in their support thread on Head-Fi. I've found them very response to user requests and issues.
BTW, also check this recent Head-Fi post by @csglinux: It appears LG really screwed up the Quad DAC in Pie, so it now re-samples even some HiRes files (which all play perfectly on Oreo from most apps). It also sabotages UAPP in the process.
I don't know why LG is so hellbent on messing up music playback, when they spend good money putting a high-end audiophile grade DAC in their phones
TheDannemand said:
I apologize for the tardy response. Swamped these days.
1) Ahh. I don't use cross fading myself, but I see what you mean, it's a valid request.
2) My entire music collection is carefully curated as well (manually edited tags) and I've never seen any problems with UAPP handling albums correctly. You could try Clearing the database and Scan again. But you probably already did...
I suggest you write to the Dev about both issues. You can either email [email protected] or post in their support thread on Head-Fi. I've found them very response to user requests and issues.
BTW, also check this recent Head-Fi post by @csglinux: It appears LG really screwed up the Quad DAC in Pie, so it now re-samples even some HiRes files (which all play perfectly on Oreo from most apps). It also sabotages UAPP in the process.
I don't know why LG is so hellbent on messing up music playback, when they spend good money putting a high-end audiophile grade DAC in their phones
Click to expand...
Click to collapse
I did send an email to the Dev. We tested a few things and then I guess he quickly made a newer version of the app and gave me a download link. It's a beta but he seen what the issue was and fixed it. Total time with emails and download link took about 30 minutes. I never expected the guy to reply so fast that a few minutes would go by with me not seeing his new email.
Awesome support! Just wish the UI would be gesture-based. Having to back out of a current playing album is a pain in the butt. PowerAmp definitely did this correctly.
Sent from my LG-H932 using XDA Labs
I've edited three config files from US998 30b which I attached to this post. With this mod I always get 24bit and 44.1kHz output through Mixer. Now I can't hear the noise, but I'm curious if anyone can so please test it after making a system backup in TWRP. The mod contains the files without any script.
@TheDannemand and everyone who is interested.
I was trying to get direct output, but it's maybe impossible. I tried to have direct output instead of deep_buffer, but only UAPP wanted to use direct and other apps "moved" to primary output. Also the primary output does not tolerate any messing cause it's a p...y. So I'm not able to do what even @csglinux couldn't.
Solutions:
1) It's not possible due to most apps just don't support direct output even if we convert it to 24bit on the fly. Apps can use primary output instead of deep buffer but direct is like an isolated thing lol. I did enough tests with policy files to get bored of it.
2) Maybe I can try replacing or somewhat in mixer_paths_tavil.xml in vendor/etc to get the direct output. (?)
3) We need to do hard modifications in source codes and codec driver. Or just accept this Mixer and use it with some mod. So sad.
DooMLoRD77 said:
I've edited three config files from US998 30b which I attached to this post. With this mod I always get 24bit and 44.1kHz output through Mixer. Now I can't hear the noise, but I'm curious if anyone can so please test it after making a system backup in TWRP. The mod contains the files without any script.
@TheDannemand and everyone who is interested.
I was trying to get direct output, but it's maybe impossible. I tried to have direct output instead of deep_buffer, but only UAPP wanted to use direct and other apps "moved" to primary output. Also the primary output does not tolerate any messing cause it's a p...y. So I'm not able to do what even @csglinux couldn't.
Solutions:
1) It's not possible due to most apps just don't support direct output even if we convert it to 24bit on the fly. Apps can use primary output instead of deep buffer but direct is like an isolated thing lol. I did enough tests with policy files to get bored of it.
2) Maybe I can try replacing or somewhat in mixer_paths_tavil.xml in vendor/etc to get the direct output. (?)
3) We need to do hard modifications in source codes and codec driver. Or just accept this Mixer and use it with some mod. So sad.
Click to expand...
Click to collapse
Huge thanks to you, DoomLoRD77, for your efforts on this. Major props also to TheDanemmand, who has been relentlessly pursuing this little problem with LG's phones.
So, I took your config files, and voila, they work as promised, at least according to audio_flinger:
Output thread 0xeb1034c0, name AudioOut_15, tid 1804, type 0 (MIXER):
I/O handle: 21
Standby: no
Sample rate: 44100 Hz
HAL frame count: 1792
HAL format: 0x6 (AUDIO_FORMAT_PCM_24_BIT_PACKED)
HAL buffer size: 10752 bytes
Channel count: 2
Channel mask: 0x00000003 (front-left, front-right)
Processing format: 0x6 (AUDIO_FORMAT_PCM_24_BIT_PACKED)
That's the good news. The bad news... for reasons I don't completely understand, all the exact same re-sampling artifacts are there, just as audible as before. (I think most of us are using the same test track here - Speak to Me, from The Dark Side Of The Moon.) Either audio_flinger is misreporting, or being fooled, or there's something else going on here that I don't understand.
I'd mentioned to some of the other headfi folks that Amazon's new lossless streaming service doesn't display these digital artifacts (it still doesn't sound quite as good as Tidal to my ears, but the SQ gap is much closer). Amazon re-samples everything on Android to 48 kHz using 32-bit float. I would have thought doing no resampling at all and shifting to 24-bit for the digital volume control would be enough, but apparently not. My best guess is those extra zeros we're packing into those remaining 8 bits aren't actually being used by the digital volume control.
DooMLoRD77 said:
I've edited three config files from US998 30b which I attached to this post. With this mod I always get 24bit and 44.1kHz output through Mixer. Now I can't hear the noise, but I'm curious if anyone can so please test it after making a system backup in TWRP. The mod contains the files without any script.
@TheDannemand and everyone who is interested.
I was trying to get direct output, but it's maybe impossible. I tried to have direct output instead of deep_buffer, but only UAPP wanted to use direct and other apps "moved" to primary output. Also the primary output does not tolerate any messing cause it's a p...y. So I'm not able to do what even @csglinux couldn't.
Solutions:
1) It's not possible due to most apps just don't support direct output even if we convert it to 24bit on the fly. Apps can use primary output instead of deep buffer but direct is like an isolated thing lol. I did enough tests with policy files to get bored of it.
2) Maybe I can try replacing or somewhat in mixer_paths_tavil.xml in vendor/etc to get the direct output. (?)
3) We need to do hard modifications in source codes and codec driver. Or just accept this Mixer and use it with some mod. So sad.
Click to expand...
Click to collapse
Thanks a ton for your efforts here and for sharing these modified files!
Unfortunately I won't be able to test them myself, both because my V30 is still on Oreo (and I have no plans to update it yet) and because I am currently unrooted, waiting for LG to approve a warranty claim (at which they're dragging their feet).
I think with your work and @csglinux' feedback we have established that there is something going on beyond just the re-sampling of the Mixer. The fact your changes eliminated the noise you were hearing, but NOT the artifacts csglinux has reported, would indicate that maybe we have two different problems going on. And so far only playing DIRECT (bypassing the Mixer) solves both problems.
Re your point (3) I did actually spent quite a bit of time studying the source code for the ESS codec driver for the various LG models (es9218p.c and es9218p.h in the kernel source code). Interestingly, 44100 is NOT one of the sample rates listed in there as being supported. The rates and formats listed below are references in the snd_soc_dai_driver structure towards the end of the driver, with which the codec driver declares its capabilities. I've been puzzled how DIRECT play of 24/44 is even possible given this fact. But audio_flinger claims to do it -- and it sounds great when it does.
Code:
#define ES9218_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | \
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | \
SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | \
SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000 | SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_384000 ) //|SNDRV_PCM_RATE_352800 TODO for dop128
#define ES9218_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE | \
SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S20_3BE | \
SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S24_BE | \
SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE)
I am completely swamped with work at the moment, so I have no time at all to play (neither play music NOR tinker with my phone). I promise I will contribute more actively again once I have more time AND once I have a phone I can root.
Once again thanks a lot for your contribution! :good::good::good:
csglinux said:
*
Click to expand...
Click to collapse
You're welcome. Yes, I played the Speak To Me song at the volume level of 10/75 from about 0:14 to 0:40. It can be possible that it's just misreporting, but it's weird that you hear the same artifacts and I hear just very very little noise instead of big. So we hear 2 different thing separately. From my experience it seems that the extra 8 bits are used for volume control. Or 24bit is more accurate for interpolating as you wrote something on head-fi. I will see more results later with GR09.
Also, thank you for the efforts and for this test!
I can mention an app for 16/44.1 lossless it's called D**zl#ad*r (replace "*" with "e" and "#" with "o"). I know it's not great to get files for free but I can play it offline through direct. It's for Android too and there are some funny facts how it can work.
TheDannemand said:
*
Click to expand...
Click to collapse
You're welcome, too. Something is really weird about the Mixer as there is 2 kind of issue, indeed. I will just probably give up this soon for now, but I'm thankful for the support as I could achieve a small improvement.
If it's really a declaration as you said and I looked a bit into it then it's also weird how it can support 44.1 without resampling.
To replace Tidal offline there is an app above but it requires re-downloading everything. I solved it by automation. Life is just short to be always a good boy:silly:
Looks like deep-buffer is used for high latency low power output and this is ok for music. As I'm new I can't post proper link here, but googling "android audio deep buffer" gives answer.
To enable deep-buffer for music we need:
adb shell setprop audio.deep_buffer.media 1
So it looks like without it android is still using 48kHz from primary output and still resamples internally or I'm missing something. I own V30 but I'm not rooted yet so can't test this.
In the meantime I've looked into policy and there's additional MQA policy available. Maybe UAPP is using it to play MQA on LG?
I've also tried to use 16bit direct output from UAPP and there's noise on all recordings when V30 volume is low and I set my amplifier to almost full. This is unrealistic scenario but easily shows 16bit limitation. @DooMLoRD77, @TheDannemand could you check this UAPP setting if it plays through mixer or directly: MQA enabled and 16 bit hi-res driver audio format. Could tou also check if setting mixer into 32bit float mode works? This setting works for UAPP.
Eneen said:
*
Click to expand...
Click to collapse
You are right that mixer is using 48khz upsampling either through deep buffer or primary output or call it whatever. Deep buffer for music is by default. Where did you found that MQA policy?
I can't help you now as my V30's motherboard is dying and it will take some time to replace it, but I can tell you that modifying the mixer to give 32bit output gives nothing just mute sound and lagging youtube playback maybe because of buffer size or idk.
You can have 32bit with direct, of course. Anyway, what recordings are giving noise? Vinyl? 16 bit does not have limitations like that. I guess you hear the noise generated by AVC in the Quad DAC. It has a high SNR but not enough if you amplify it with don't know what at max volume. I just assume that. I appreciate your interest.
DooMLoRD77 said:
You are right that mixer is using 48khz upsampling either through deep buffer or primary output or call it whatever. Deep buffer for music is by default. Where did you found that MQA policy?
I can't help you now as my V30's motherboard is dying and it will take some time to replace it, but I can tell you that modifying the mixer to give 32bit output gives nothing just mute sound and lagging youtube playback maybe because of buffer size or idk.
You can have 32bit with direct, of course. Anyway, what recordings are giving noise? Vinyl? 16 bit does not have limitations like that. I guess you hear the noise generated by AVC in the Quad DAC. It has a high SNR but not enough if you amplify it with don't know what at max volume. I just assume that. I appreciate your interest.
Click to expand...
Click to collapse
Recordings from Tidal app (except MQAa) and when UAPP is set into 16bit mode inside "HiRes driver audio format" give noise. When I change this option to "Auto" then noise is gone. To hear it I just set sound level to 1/70 (lowest possible) and amplify rest on my amp. I'm not sure it's due to digital volume control or something else, but noise is there and I'm still above my NAD C372 noise level (100dB). How to check output path? I can do it myself but haven't found how...
If music is using deep buffer then your solution is very elegant IHMO and should work. Is youtube also using deep_buffer? Is deep_buffer always used or only when phone is sleeping?
MQA policies are inside /vendor/audio_output_policy.conf: direct_pcm_16_mqa and direct_pcm_24_mqa. As I see /etc/audio_policy.conf is depreciated but looks like /vendor/etc/audio_output_policy.conf is used and there are two different audio_policy_configuration.xml files. Is there documentation for android audio available?
Eneen said:
*
Click to expand...
Click to collapse
I think direct does not support 16bit. It can be DVC or just the not really perfect mixer makes noise or what kind of interpolation error. You should have SDK platform tools to check it. Start inside an adb connection in cmd. Command: "adb shell" or "./adb shell" then "dumpsys media.audio_flinger" and it should read much thing about path and so on.
YouTube uses deep_buffer if it's available. It's used when music is played not only when sleeping. Primary is more like for notifications maybe some games. Sorry, what solution? LoL. 24bit modification?
I will check that policies again, thanks.

Categories

Resources