Hi Will,
Hi Kristian,

last week I was rather busy, and moreover, the AnalogFilter turns out
to be challenging with respect to getting reproducible numbers on different
compilers. For Investigation, I've added several more test cases to cover
the various filter types and frequency responses. Running on the same
plattform/compiler, the waveform is 100% reproducible. But GCC-7 or
GCC-6 on older Ubuntu versions produce non-trivial differences, often
even just -50dB RMS (which means, the residual is even faintly audible).

My tests and investigations with the debugger indicate that the discrepancies
happen already when computing the /filter coefficients/. And, as we all know,
filters can be quite sensible to minute changes on those coefficients.

The assembly does the computations in different ways, and esp. allocates
things to registers and SSE registers differently, which is fair enough.

The only solution I could find is to switch this computation of filter coefficients over to using doubles. This works, because then the discrepancies
happen in a range that does not matter, since I won't change the type of the
coefficients as such, i.e. the coefficients themselves are still floats and
thus all the actual filter computations also stay on floats. Which also
means, there is no tangible impact on performance, as the coefficients are
only recomputed on parameter change, which means at most once per puffer.

I have added this change on top of my "power" branch
https://github.com/Ichthyostega/yoshimi/compare/power

Moreover, the testsuite has a total of 53 tests now and I have
(re)computed the stored baseline waveforms with a Yoshimi from that
"power" branch. With that change, the only differences I get on the
different plattforms/compiles are some occasional flips at the last bit,
especially with the SUBSynth and PADSynth. These discrepancies are below the
tolerance for rounding errors built into the testsuite (-120dB), i.e. they
will not be reported (unless you use the commandline argument --strict)

-- Hermann




_______________________________________________
Yoshimi-devel mailing list
Yoshimi-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/yoshimi-devel

Reply via email to