Automatic resampling to 48kHz

Last night I used my LG V30+ as a Roon endpoint for the first time since the recent refresh. I tried out a bunch of different tracks (both local and TIDAL) and made the following observations:

1/ With local content, anything that wasn’t already 48kHz (I don’t have a huge amount of this) was either upsampled or downsampled to 48kHz.

2/ With TIDAL, anything 44.1kHz (or multiples of) was also resampled, but tracks that were multiples of 48kHz (i.e. 96kHz, 192 kHz) seemed to be left as is.

I could be mistaken because it’s been a while since I used the phone as an endpoint (and even then not often) but I don’t seem to remember this behaviour before. I have not set up DSP to resample and in fact seem unable to access that option on the phone anyhow.

Anyone got any further info on this?

1 Like

It’s an Android thing. No matter what you do with Roon, Android takes control and uses its own core services.

This is not the case on DAPs or phones like this that bypass the src in Android os. There really needs to be an option to bypass this for such devices.

Yeah, I knew that Android has issues with audio to the extent that 48kHz was its max but I’d never noticed Roon upsampling 44.1 to 48 before?

I’m curious how USB Audio Player Pro and Neutron player get round this?

Very frustrating as the LG V30 has a great quad dac.

1 Like

Does seem to be a slight change in behaviour since adopting a slightly new version of the android music replay software standard on 1.7.
What gets me is that Qobuz manages just fine to use a device’s hardware. Must be related to the RAAT stream and how that is used?

From UAPP site

Many recent high-end Android phones come equipped with a high quality audio chip. However, this chip is usually not available to third-party apps and can only be accessed by the media player that comes with the phone, or when it works, it works only at a fixed rate of 44100 or 48000Hz. The HiRes direct driver in USB Audio Player PRO tries to work around that problem by accessing a so-called ‘direct’ audio path of the Android audio system. Using this direct path, audio can be passed to the chip in 24-bit at all the sample rates that the chip supports, without resampling or other audio degrading ‘features’ of Android.

Note: selecting the HiRes direct driver and the display of ‘Direct’ in the player is no guarantee that the app actually plays through the direct audio path! The app (or any app for that matter) cannot know or query the system if the request to play in direct mode is honoured or if Android choses another non-direct path. In some occassions, the player will give a failure at playback, but often this is not the case. Only inspection of system logs, listening tests and frequency analysis of the output will prove it. However, if your device is listed below as compatible, you can be reasonably sure that the direct path is used.


@danny was wondering if this side of the Android app is being looked at or are we stuck with resampling forever even though a lot of the devices are capable of bypassing it. such as DAPS and the LG phones. It seems a shame to have this limitation still after the refresh.

1 Like

Roon playback on an Android devices was always being resampled to 48 by the OS after it left Roon. However, Roon decided to do it instead of letting the Android OS do it; because, they can do it better.

Thanks for that info - that makes sense.

1 Like

But if devices don’t pass it to the systems SRC like DAPs we are getting no choice to turn it off and we are stuck with 48khz as Roons doing the upsampling when my device can handle much higher.

1 Like

It’s a shame that we can’t use the full capabilities of Roon on Android. I’ve been looking into it but can not figure out how it works exactly in Android.
I found a couple of files that I think are used to identify possible sample rates: /system/etc/audio_policy_configuration.xml and /system/vendor/etc/audio_output_policy.conf. I don’t know however how they are used but they suggest that playing at other rates than 48kHz should be possible.

Is there a way for Roon to use this?

Checking through bits, after the upgrade to 1.7 and opengl es, Roon does indeed downsample to 48k, which I believe is what Android is reporting as it’s default.
But Poweramp reports it’s playing a 24/192 file with no downsampling. This is on a LG v20.

I really want to be using Roon around the house through my phone with the current quarantine and everything, but sadly Roon sounds bad on Android compared to the other players that can access internal or external DACs.

1 Like

yes, I agree, Android is more open and easier to deal with than iOS, and it will be major hurdle for Roon Mobile as the quality can’t be assured because no direct access to Android device DAC directly.

my XDP-100R from its line out still singing extremely nice but so many conversions and no access to MQA decode still made me can’t hear it’s full potential!

Not sure this applies to all Android devices. DAPS at least for the whole navigate past the standard limitations of Android OS and 3rd party apps work with this so why cant Roon. I am using standard Tidal, Qobuz apps, Bubbleupnp and USB Audio Pro on my Hiby R5 , all output bit perfect and the correct sample rate of source and switch and MQA works for those that support it. Its so frustrstaing they make it stick to one way of working when other apps work across all these devices and let the os decide what to do.

Those apps are tweaked individually for each DAP?

No they are off the play store standard Android versions in the Hibys case. The OS is modded to miss out the the resampling as is FiOS as well, but not all have inbuilt playstore and some like Sony and Pioneer only have the option in their own players as they do it at software level like UPnP does on any Android Device. It’s possible to do if they want to of this cheap app can I am sure Roon could.

So although the DAC Inthe Hiby is capable of DSD, Roon app forces everything to 44.1/24 as it thinks that’s all the device supports as it’s using native System audio to get this info. I bet if I could turn off Roons sresampler off it might just work, but I cant as there is no way to do it. I guess they did it this way for better support as old app was not great. But now nobbled those with better DACs.

1 Like