review and possibly correct bit-transparancy of int<->float<->int converters
Currently, PortAudio's int<->float<->int sample conversion functions maximize dynamic range before clipping. This has the result that they are not bit-perfect when passing input to output. This is the result of a necessary trade off between clipping full range values, and transparancy. We last discussed it here:
http://music.columbia.edu/pipermail/portaudio/2009-December/009683.html
Bjorn wrote two blog posts about it:
http://blog.bjornroche.com/2009/12/int-float-int-its-jungle-out-there.html
http://blog.bjornroche.com/2009/12/linearity-and-dynamic-range-in-int.html
Basically: different software does it differently, and we are not alone in our approach.
That said, for audio i/o, the bit-transparent approach taken by CoreAudio may make more sense. We could also consider providing a flag to select the preferred scaling factor (although I'm not sure it's worth it).
We need to decide on this.
http://music.columbia.edu/pipermail/portaudio/2009-December/009683.html
Bjorn wrote two blog posts about it:
http://blog.bjornroche.com/2009/12/int-float-int-its-jungle-out-there.html
http://blog.bjornroche.com/2009/12/linearity-and-dynamic-range-in-int.html
Basically: different software does it differently, and we are not alone in our approach.
That said, for audio i/o, the bit-transparent approach taken by CoreAudio may make more sense. We could also consider providing a flag to select the preferred scaling factor (although I'm not sure it's worth it).
We need to decide on this.
Leave a comment