Jump to content

Adaptive sampling


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

The dev, Max, has said he does not want to introduce this as it will break gapless playback and crossfading, and introduce clicks/noise between tracks as the output rate is adjusted. He suggests you set output to the highest rate you will need and allow PA to upsample lower resolution tracks.

Andre

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

  • 6 months later...

I think, despite of the disadvantages like incompatibility with some DACs, can't get notification sounds or don't have crossfade, it could be great to have the option.
I mean, if someone don"t care to listen notifications and just listen music, it's perfect.

I think the solution could be add this festure exclusively for USB play.

Like it works in apps like Tidal and Hiby player.

This app is great, and this feature could be an improvement, I don't know any app with an equalizer like this has. 

Edited by Raul G.
Link to comment
Share on other sites

  • 1 year later...

I understand this would not work for most devices, but then the same could be said for high-res output. There are high-end music players with good clocking systems that will properly output different sample rates without resampling. For example my FiiO M11plus has the DAC clocked from an FPGA which has inputs from two seperate crystal oscillators (49.152MHz and 45.1584MHz), so it needs no resampling. I love Poweramp but it's sad to have to have an unnecessary software resampling step in the ouput pipeline.

So I'd really like to see this feature implemented. Just put a warning about compatibility next to the option.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...