Jump to content

Adaptive sampling


PD.风沐白
 Share

Recommended Posts

9 minutes ago, PD.风沐白 said:

It is hoped that Poweramp can be adaptively sampled according to the sampling rate of the audio file to achieve no recovery, just like the USB audio player.

It's not quite clear what you are saying, perhaps a translation problem.

Do you want to play music without resampling ? That can be achieved with some devices and sampling rates.

For example when I play mp3 files ripped from CD on my S7 with Oreo and Build 820 I use High-Res with 44.1 kHz and a Bluetooth headset via SBC, no resampling is done.

 

1122019151219.jpg

1122019151259.jpg

Edited by blaubär
Link to comment
Share on other sites

15 minutes ago, blaubär said:

It's not quite clear what you are saying, perhaps a translation problem.

Do you want to play music without resampling ? That can be achieved with some devices and sampling rates.

For example when I play mp3 files ripped from CD on my S7 with Oreo and Build 820 I use High-Res with 44.1 kHz and a Bluetooth headset via SBC, no resampling is done.

 

1122019151219.jpg

1122019151259.jpg

Adaptive sampling. For example, if the sampling rate of a audio file is 48 khz, the sampling rate in Hi-Res auto set into 48 khz. And the next file's sampling rate is 96 khz, that in Hi-Res auto change into 96 khz. So, it's no resampling for every audio file.

Link to comment
Share on other sites

While it's tempting idea, current state of Android devices doesn't allow to do that in usable way for wired headset connected to 3.5 or usb-c dongle:

  • most devices just don't support 44.1kHz multiples. They always produce 48kHz x multiple rate (48, 96, 192, 384, etc.). There is always a system resampling if we feed 44.1khz or e.g. 172khz to it
    • in this case, Poweramp resampler(s) are superior as they are configurable and often a higher quality vs stock default Android resampler
    • for players which advertise following file sample frequency (e.g. Neutron), this means system resampling happens anyway
    • these are most Qualcomm devices
  • many devices support only few sampling frequencies (e.g. recent Samsungs do 48khz, 192khz and 384khz only, no 44.1khz)
    • for players which advertise following file sample frequency, this means system resampling happens anyway, again
    • Samsung @ Pie forces these frequencies on both Exynos and Qualcomm variants (previously, some Exynos based Samsung devices supported 44.1khz on 3.5, but that now is removed from Pie ROMs)
  • qualcomm/mtk based chinese devices have varying gains and amplifier modes depending on sampling frequency (48khz - 0dB,192khz 6dB+, and some have 384khz +12dB + special amplifier mode). I don't think +12dB volume jumps would be accepted when you suddenly have a 384khz track in the collection.

Note, all this applies to 3.5 output, bluetooth or USB DACs are completely different story (BT is locked to codec-defined sample rate, and USB DAC support varies greatly for OEMs).

I really don't like to add features which don't actually work, just show good numbers in a UI (e.g. 44.1khz sample rate), but make sound worse behind the scenes.

Link to comment
Share on other sites

  • 2 years later...
On 2/14/2019 at 2:32 AM, maxmp said:

While it's tempting idea, current state of Android devices doesn't allow to do that in usable way for wired headset connected to 3.5 or usb-c dongle:

  • most devices just don't support 44.1kHz multiples. They always produce 48kHz x multiple rate (48, 96, 192, 384, etc.). There is always a system resampling if we feed 44.1khz or e.g. 172khz to it
    • in this case, Poweramp resampler(s) are superior as they are configurable and often a higher quality vs stock default Android resampler
    • for players which advertise following file sample frequency (e.g. Neutron), this means system resampling happens anyway
    • these are most Qualcomm devices
  • many devices support only few sampling frequencies (e.g. recent Samsungs do 48khz, 192khz and 384khz only, no 44.1khz)
    • for players which advertise following file sample frequency, this means system resampling happens anyway, again
    • Samsung @ Pie forces these frequencies on both Exynos and Qualcomm variants (previously, some Exynos based Samsung devices supported 44.1khz on 3.5, but that now is removed from Pie ROMs)
  • qualcomm/mtk based chinese devices have varying gains and amplifier modes depending on sampling frequency (48khz - 0dB,192khz 6dB+, and some have 384khz +12dB + special amplifier mode). I don't think +12dB volume jumps would be accepted when you suddenly have a 384khz track in the collection.

Note, all this applies to 3.5 output, bluetooth or USB DACs are completely different story (BT is locked to codec-defined sample rate, and USB DAC support varies greatly for OEMs).

I really don't like to add features which don't actually work, just show good numbers in a UI (e.g. 44.1khz sample rate), but make sound worse behind the scenes.

So why not make an on/off setting (default OFF) for Adaptive sampling? 

Link to comment
Share on other sites

  • 5 weeks later...

Seems like every time this topic comes up, the developer of Poweramp inevitably dismisses it as a technically unfeasible or undesirable feature, and yet other player software seems to do it without difficulty, including Neutron, FiiO Music, Onkyo HF Player, HiBy Music, just name a few off the top of my head.  I have no idea why he is so reluctant to add a frequently asked for feature.  Poweramp has, in my opinion, the best interface on the market, but lacking this feature is a significant deficiency, and I could never recommend the player to someone else because of it.

Edited by Mountain Man
Link to comment
Share on other sites

I've been looking for a new player with this feature as well as a better overall feature set and U/I and Poweramp has all those except this one I also posted in this thread  - 

To expand on that post Poweramp has 44.1 and the multiples (88 176)  along with 48 and the  multiples (96 192) under the Hi-Res output options that you can choose manually but I'd rather not have to do so every time I switch files with different sample rates. Setting a single rate and letting it resample to that one would be fine but I have like most others a combination of 44.1 96 and 192 files and resampling to a non-multiple rate and the inevitable quantization errors is something I'd like to avoid if I can. I get that everyone's device is not the same as to what they support and there are obviously other challenges to implement it especially in a way that works with all of the app's other features but it would be nice as Poweramp sure seems to otherwise have the best U/I as well as mostly a better feature set.

 

Link to comment
Share on other sites

  • 2 weeks later...
7 minutes ago, tashikoma said:

Result is : we've moved to USB Audio Player pro, which handle this very well ....

I've never understood how apps such as USB APP seem to offer this as a feature, when Max has said it's not technically possible to do it on Android as whatever you may see on the surface, the underlying firmware gets in the way of any attempt to use the audio file's pure sampling rate throughout the whole audio chain.

Andre

Link to comment
Share on other sites

@andrewilley UAPP and Neutron both implement own USB Audio "driver" (it's technically not a driver, which is a kernel level objects and not for apps, but some layer of code, 99% open source and available for everyone), but unfortunately, there can't be just one "driver" solution as there are too many USB DACs with own quirks, so it never perfectly works for all devices out there. It bypasses Android audio layer completely (no notification, answering the phone in headset, etc. - speaking will ring and play notifications), and from my experience doesn't work well on Android phones generally, though works find for DAPs (digital players). Also it adds +10-15mb to the APK and brings more new issues than resolves those - in case of Poweramp.

Link to comment
Share on other sites

On 8/19/2021 at 3:18 PM, maxmp said:

@andrewilley UAPP and Neutron both implement own USB Audio "driver" (it's technically not a driver, which is a kernel level objects and not for apps, but some layer of code, 99% open source and available for everyone), but unfortunately, there can't be just one "driver" solution as there are too many USB DACs with own quirks, so it never perfectly works for all devices out there. It bypasses Android audio layer completely (no notification, answering the phone in headset, etc. - speaking will ring and play notifications), and from my experience doesn't work well on Android phones generally, though works find for DAPs (digital players). Also it adds +10-15mb to the APK and brings more new issues than resolves those - in case of Poweramp.

Thanks for the reply on this, when I was trying out both UAPP and Neutron one thing I should have tested was how they behaved with notifications, phone calls , etc... I may do that the next time I test them. I'd even take the feature with a disclaimer as to what it will affect when turned on. @maxmp thanks for the time you take to listen to requests :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...