Jump to content

64 bit fixed point internal sample format and DSP


Recommended Posts

Hello,

I was just wondering if you could please add 64 bit fixed point internal sample format and DSP, for better audio quality and precision. Thanks in advance!

Edited by romain8991
Link to comment
Share on other sites

  • Replies 30
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Just checked back a while, and from the release notes when the Poweramp v3 audio engine was first introduced:

  • Poweramp core DSP now uses 64-bit float internal math, helps a lot for accurate high amplification of bass

So yes, internal processing is 64-bit - but floating point not fixed.

Andre

Link to comment
Share on other sites

Posted (edited)

@andrewilley Thanks for the details about DSP format. What about the internal sample format, since some websites (like Slant) suggest that it uses 32 bit floating point? And could you still add 64 bit fixed point internal sample and DSP?

Screenshot_20240108_144532.png

Edited by romain8991
Link to comment
Share on other sites

From what Max just said, it would be fixed 32-bit for most of the audio pipeline - regardless of the source fidelity (16-bit, 24-bit, 32-bit, sampling frequencies, compressed or lossless). But float64 is used within the DSP processing code (such as EQ if enabled, etc).

Andre

Link to comment
Share on other sites

35 minutes ago, romain8991 said:

@andrewilley Alright, I see, thanks for the clarification. But could you please add support for 64 bit fixed point for internal sample and DSP, for better sound quality and precision?

Can you point to some other audio engine, DAW, software (for use with audio) that uses 64 bit fixed instead of floating point?

 

...I feel like every DAW under the sun uses 64 bit floating point operations, and that's not some sort of fluke.

Link to comment
Share on other sites

Even 32-bit float gives a theoretical dynamic range of 1,528dB. For reference, the loudest thing that ever occurred on earth was estimated to be Krakatoa erupting at around 300dB - and remember that dB is a logarithmic scale not a linear one, so these sort of numbers are basically meaningless in the real world of listening to music.

Andre

Link to comment
Share on other sites

Posted (edited)

@andrewilley I know that, I'm not seeking for a ridiculously high dB output. I'm actually looking for a more precise sample format conversion, with more transparent dithering, DSP with greater precision and a much better overall sound quality (more audio details and lifelike sound). It's mathematical, a conversion from a much higher internal format and its usage in DSP gives greater precision compared to floating point, especially if you compare 64 bit fixed point to Float32.

Edited by romain8991
Link to comment
Share on other sites

This proposal isn't even used in the audio workstations that produced, mixed, and mastered the sounds Poweramp is trying to reproduce. Consider that "much better sound quality" already gone.

 

If your output device supports >16 bit output, you do not need dither.

Poweramp could benefit from sample rate auto switching (or a definable matrix of when you want oversampling done and what ratio), but that's pretty much it.

Link to comment
Share on other sites

Posted (edited)

@Fitzian I disagree with you. 64 bit internal sample is indeed used in many DAW stations for DSP and the purpis to use it is to have a much more precise DSP and output of the signal, even after dithering.

Edited by romain8991
Link to comment
Share on other sites

Them being "64 bit OS" compatible and using 64 bit floating point math, are not in dispute. Poweramp too, uses 64 bit floating point math for its DSP.

 

Floating vs fixed, this is all discussion about where a decimal point goes.

Link to comment
Share on other sites

Posted (edited)

@Fitzian I didn't say otherwise and my point about the mathematical precision of 64 bit fixed point still stands. 🤔 If you use Float64 for DSP, why not at least use it for internal sample format as well or, if you go further the logic, 64 bit fixed point for both (DSP and internal sample format)?

Edited by romain8991
Link to comment
Share on other sites

When the cost (not including hardware to utilize it) of a DAW is at minimum, upwards of ten times to many hundred times the cost of Poweramp, must you really wonder why it's anything but a pipe dream?

We are playing back a single file, here. Not adding/subtracting/multiplying/dividing many waveforms on top of one another.

64bit floating point has all the precision needed for output at 32bit integer format, if your DAC even performs that well.

$3500 DACs (and some cheaper ones) get you SNR of between 125 and 135 dB. Well below 144dB of dynamic range possible to store in 24 bit integer format.

Link to comment
Share on other sites

Posted (edited)

@Fitzian I already implied that I'm not looking for more headroom or loudness but a bigger calculation precision. Besides, the internal sample format is not what goes directly into the audio output and dithered before arriving there (the output sample format exist for this purpose, and the real available headroom after that is dependent, like you said, of the capacities of the DAC).

Even though the final headroom is way bellow the mathematical values of 64 bit, the calculations can still be made in this format during sound processing/playing, while keeping alot of their precision, thanks to dithering. And that, in my sense, is why it has purpose and gives better quality results.

So, then again, why not, instead of Float32, use 64 bit for internal sample format, and not just DSP, fixed or, at least, floating point?

Edited by romain8991
Link to comment
Share on other sites

55 minutes ago, romain8991 said:

So, then again, why not, instead of Float32, use 64 bit for internal sample format, and not just DSP, fixed or, at least, floating point?

Why not? Well to start you are suggesting to try and get this performance from an Android device that for most users doesn't have nearly enough processing power.

And even if the very few devices available could manage it on the hardware side, what would be the real performance benefit? Certainly any gains would have already been lost when scaling the source material that is typically 24-bit sample depth at the most.

The diminishing return on the value of this feature today I would argue holds no weight against a lengthy list of other features awaiting development.

i would be satisfied just to see a "no resampling" option to at least maintain the source file's sample rate. But this too has been relegated to a lower priority development to date.

Link to comment
Share on other sites

Posted (edited)

@MotleyG Alright, but most Android devices currently available can handle 64 bit internal sample audio format and DSP with no issue (I can handle it with no lag whatsoever, using JRiver Media Center, even on my slow portable Acer computer, using 4 gigs of DDR3 ram and a simple 4 core low end CPU). The gain would be real, but the capacity of hearing it would depend on the audio device used (with bad quality speakers, earphones or headphones, the difference would be harder to tell, but the same goes for bypassing sample rate conversion, since SWR resample is pretty neutral and precise).

Regarding development, I don't think it would be too hard to implement with libswresample (and I would dare to say that I think it would be easier than "no resampling" option), but I leave this part on the developer's hand.

Edited by romain8991
Link to comment
Share on other sites

Poweramp v1-v2 (before alpha 700) used fixed point DSP, but only because some early Android devices had no FPU or it was too slow. When doing +15dB or more amplification on low frequencies, some biquad coefficients and intermediate values may require higher (than Float32, or, e.g. Q8.24 fixed) resolution to avoid adding any noise or intermediate clipping. Other than that, "normal" float32 is enough. 

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...