As far as time permits, I am working on a project for a free and free library of rendering 3D sound, which I wrote about in my last post. Work is progressing more slowly than we would like, mainly because you have to sacrifice precious sleep time. :)
What has been done to the next public release:
Added and tested MDC transform (instead of Fourier transform). If you do a Fourier transform, let it overlap, even in a half-window (the results are mixed with cross-fade on the borders of the windows), then after the Fourier transform there is a so-called blocking-effect (a similar effect can be observed on poor quality jpegs or video - multi-colored squares), clearly distinguishable by ear. These are beats at the frequency <sampling rate> / <window size FFT>. MDCT is specifically designed to get rid of such effects. You can read about it here . Now, no artifacts can be heard to the ears, except for a small clipping (associated with an increase in the signal energy), but with this we will still overcome :-D
Along the way, it turned out that so far, even on the new core2duo, it is quite expensive to consider sin / cos. The test of 51.200.000 calculations of sines works 4 seconds against 0.7 seconds for the cached table.
Met with the need to cut off the same sounds. A limit on the number of simultaneously playing the same sounds.
I threw out kiss as unnecessary, in favor of cleaner c ++ code. Missing SSE support, will return a little bit later :-D
Started demo "scissors" (virtual hairdresser) to check the correctness of the entire enterprise.