Native DSD on devices supporting it

Feature description:

Ill keep it short and sweet, the lack of support for DSD playback (dsf files) seems to be all this app is really missing. I am using an iBasso DX180, an android based portable audio player, which natively supports DSD playback, however Symfonium seems to only be able to handle dsd by converting it to high rate PCM. This is better than Plexamp, which doesnt support dsd at all, but converting to pcm is not a lossless conversion and if the hardware supports it, then natively playing dsd would be preferred.

I have tried enabling high res support, decoding offloading, disabling transcoding, but an option to just send the dsd content directly to the devices playback engine there is not.

Could an option along the lines of “my device can handle DSD, dont worry about transcoding, thanks” be added?

Thanks

Problem solved:

Support for native dsd playback in a pretty bleak world of android audio players where most cant even handle high res pcm

Brought benefits:

Android digital audio players have been gaining popularity in recent years, and native dsd playback would increase symfoniums appeal to those users.

Other application solutions:

 

 

Additional description and context:

 

 

Screenshots / Mockup:

    

Unfortunately that’s not that easy on Android, Google was supposed to add something in Android 14 but so far it’s only available on Pixel 9.

In this case transcoding or decoding via Symfonium ffmpeg would give the same result, offloading the DSD requires specific usb drivers or hacks so out of scope outside of the new Google API.

But not sure that API will be present on your device in the future.

Interesting. The device runs android 13, but a modified version that replaces, somehow, the standard media engine (which is how it supports high res playback without resampling to 48kHz). Theres a representative of iBasso thats fairly active on the headfi forums, i can try to get more info about their modifications. Their media player app that ships on the device supports native DSD, as does UAPP (tho UAPP obviously uses their own custom driver).

Qobuz and Plexamp also support high res PCM playback on the device and they market the device as having system-wide support for high res playback, which leads me to believe that they are using some custom api rather than a custom driver for their media player app.

Part of me thinks that it may just work if DSD were to be sent to whatever API shouldnt support it, with the modifications theyve made, else it wouldnt work very well as a system wide mod (which it does seem to, as evidenced by other apps being able to play high res pcm that shoudnt work on android 13).

That being said, DSD and PCM are completely different and there really arent any other apps out there that support DSD that i can even test with to verify that theory. So, youre likely correct that all three apps known to work with dsd (mango, uapp, and neutron) are using custom drivers.

If i reach out and get a response from iBasso, would it be something you would consider taking a look at? I do recognize that it would only benefit a tiny subset of an already small subset of users, but if it turns out to be trivial enough to implement i would happily test any builds for you.

As an aside, the more developers i talk to the more i realize what a mess of a platform android is to develop for, so the fact that youve got high res PCM working is already impressive when 95% of android apps do not work properly with it.

Well you’d need them to send me a device along the way to achieve it without resorting to use MediaPlayer that does not properly support gapless anyway.

I can’t code things that I can’t actually test.

For the hi res stuff they just remove an arbitrary value set in AOSP, most android devices do that too now, my pixels goes up to 192Kh without any changes.

I did not get a useful response… seems android devs are on their own to figure out how to play DSD if Google doesnt provide a library. Maybe worth kicking it upstream to exoplayer as a feature request to support dsd as thats probably the only option.

Im not in a position to send hardware, but if you find yourself in the market for a dedicated DAP, i would highly recommend an iBasso device… selfish motivations aside, ive been very happy with it and its sound quality. The user replacable battery is nice too :wink:

The issue is not about how to Play DSD, they are played fine.

The issue is about having an Android official API to offload the DSD file to the DAC or an iBasso one.
Since it’s not native of the OS until Android 14 and some devices including that, this is not possible without reverse engineering and hacks or custom drivers.

ExoPlayer have nothing more to do here.

1 Like

Might not be the best thread to ask but

I’m interested into this because even if I should be limited by the android driver using an external USB dac should I be able to play songs at 192KHz without resampling?
Because seems like it’s using my phones dac (pixel 7a) and then passing it to the USB dac.
I’ve already reset every settings and disabled the eq + turned off the “prefer internal decoder” and still seems to use the internal dac first