I know, I have to scale to the range of -1.0 to +1.0 for float audio. I do
this by dividing by 32768 for 16 bit audio and by 8388608 for 24 bit audio.
Vice versa I’m multiplying with the same value and this is bit transparent for
all possible values in the range of 16 and 24 bit audio. It doesn’t work for 32
bit integer audio. And in my eyes this makes perfect sense as a float has 1 bit
for the sign and 23 bits Mantissa which we both need for 24 bits integer audio.
So why should there be bits lost if you do the same operation back and forth on
16 and 24 bits audio?
Von: wdmaudiodev-bounce@xxxxxxxxxxxxx <wdmaudiodev-bounce@xxxxxxxxxxxxx> Im
Auftrag von Tim Roberts
Gesendet: Mittwoch, 22. August 2018 03:11
Betreff: [wdmaudiodev] Re: bit transparency from app to WDM audio driver
depending from API?
On Aug 21, 2018, at 3:13 PM, Johannes Freyberger
<jfreyberger@xxxxxxxxxxxxxxxxxxxx <mailto:jfreyberger@xxxxxxxxxxxxxxxxxxxx> >
Thank you very much. Probably there’s no way to detect inside my driver which
API is actually used and whether it’s in exclusive mode? If it’s only
int->float->int shouldn’t it be bit transparent up to 24 bit integers?
No, because the values in float mode range from -1.0 to +1.0. 32767 maps to
+1.0, so it's not as simple as a bit shift. There's a division.
Tim Roberts, timr@xxxxxxxxx <mailto:timr@xxxxxxxxx>
Providenza & Boekelheide, Inc.