I just found out that setting the mixer to the fpu mixer instead of the mmx mixer results in much higher sound quality when changing the frequency of a song.
The only problem is that I don’t know how to handle floating point data in dsp effects.
I thought it would just return floating point numbers within the range of -1.0 to 1.0 but it seems to use the whole floating point scale.
For testing purposes, I just wanted to convert the floating point number to short ints at the beginning of the callback, then perform the effects I already wrote and then store the values again in floating point format, but I don’t know how I should convert the numbers.
As far as I can tell the values aren’t linear spread, so it doesn’t work to just divide the numbers by some number 1.5E34 or something, which is the maximum value for a floating point value I found in the msdn library.
I hope someone can help or has an example program that can help, because I haven’t found any documentation in the help about this mixer type.
- Adion asked 16 years ago
Aren’t they simply 32 bit IEEE floating values?
As far as I know, also VB uses this type of values, so every sample can be converted easily in both verses.
I made a module for my dsp that has two function:
the first converts 32bits floating samples to 16bits integer samples and the second 16bits integer samples to 32bits floating samples. It works very nice! If you need id, give me your e-mail and then I’ll send you my module (made with Microsoft Visual C++ 6.0, but written in inline assembly).
Please login first to submit.