2.0.3 Released, with an Accidental Feature
• Chris Liscio
• Chris Liscio
Last night I got 2.0.3 out with some very critical math fixes. It took me a while to get these fixes in, mostly due to the time required to verify that the fixes worked.</p> <p>The most irritating of the fixes was related to the reverberation time calculation. In the bands from 1000Hz downward, the reported RT values were off by a factor of 2, 4, 8, 16, … Pretty nasty stuff!</p> <p>My bug was caused by some silliness in my filter-decimate-filter approach to filtering the octave bands, and hence the values were not effectively being scaled by their new sampling rates after the decimation. Luckily, this is now fixed.</p> <p>One generous user gave me a great Matlab script which generates a reverberant impulse response with specified parameters. FuzzMeasure Pro is now calculating to within 3% (or better) of the expected values in the generated impulse response.</p> <p>In addition to the reverberation time calculation errors, there was some concern about wild values that would end up in the reverberation time plot. For example, 50s (or more) would show up in the graph, and make the true values look miniscule.</p> <p>These wild values were caused by inadequate SNR (Signal-Noise Ratio) in the measured impulse response at certain bands, and the linear regression calculation to report a low correlation coefficient. Now, the correlation coefficient is used to throw away these bad values, and FuzzMeasure Pro reports 0 for these bands.</p> <p>Finally, the multiple selection calculation was improved as well. Mostly, this affected the difference display. However, while fixing the problem, I found that my math issues also affected the sum and average modes. This was just a result of some silly math on my part.</p> <p>So, FuzzMeasure Pro is now even better than before, and will continue to improve with time. I have a handful of new issues to tackle for 2.0.4, and some new features to add.</p> <p>Speaking of features, I managed to accidentally slip a new feature into 2.0.3 which wasn't supposed to be unleashed until 2.1 (and you'll notice some odd side-effects of the debugging code that I left in while using it).</p> <p>You can now create an octave band decomposition of a selected impulse, which will let you view the energy decay curves for each octave band. The extra debugging code was in the extra records (interp, decimate, decimate/interp) which you can safely ignore/delete. Obviously, I added this in to help debug the reverberation time calculations, and now you can see the same results for yourself!</p> <p>I guess this is a side-effect of keeping your users closer to the development process! The good news is that I can easily fix and re-spin new releases, which means bugs like these don't last very long. I certainly don't mind being a little more transparent in my development activities, as long as the users don't mind some little bumps in the road along the way. :)</p>