[wdmaudiodev] AW: Re: bit transparency from app to WDM audio driver depending from API?

  • From: "Johannes Freyberger" <jfreyberger@xxxxxxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 22 Aug 2018 08:05:24 +0200

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
An: wdmaudiodev@xxxxxxxxxxxxx
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> > 
wrote:

 

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. 

 

Other related posts: