On 13/12/2021 23:18, Will Godfrey wrote: > On Mon, 13 Dec 2021 22:35:37 +0100 > Kristian Amlie <krist...@amlie.name> wrote: > >> On 13.12.2021 14:27, Will Godfrey wrote: >>> On Fri, 10 Dec 2021 05:31:23 +0100 >>> Ichthyostega <p...@ichthyostega.de> wrote: >>> >>>> Am 09.12.21 um 10:56 schrieb Kristian Amlie: >>>>> At some point, I'm not exactly sure when, I think the reseeding of the RNG >>>>> must have stopped working. I'm getting some significant differences in >>>>> PADsynth: >>>> >>>>> - "features/BasicPAD.test": Performed; detect Δ 7.16249dB(RMS) >>>> >>>> >>>> Hi Kristian, >>>> >>>> indeed, such a result is an obvious indication that the test didn't >>>> start with the same / pristine state. Due to phase randomisation you >>>> then get a completely different waveform, which sounds similar, but >>>> has sonic fluctuations slightly shifted. >>>> >>>> There is a not yet resolved problem lurking somewhere in the code base, >>>> causing some state to leak through PADSynth (re)initialisation. During >>>> the last development cycle, as a follow-up of the MIDI learn revamp, >>>> Will improved the handling of the PADSynth apply() message. This >>>> introduced a bug (apply() didn't happen under some circumstances), >>>> which Will quickly resolved thereafter. >>>> >>>>> I'm running with with the Yoshimi power branch, and latest yoshimi-test >>>>> master branch. >>>> >>>> Thus the first thing we need to ensure is that we all run from the >>>> same code base. I generated the reference waveform with a Yoshimi >>>> built from the latest release (2.1.2.2). Can you please repeat your >>>> test with a build from that release (and if any differences remain, >>>> then please post the SHA1 of the exact commit your build is based on)? >>>> >>>>> Could it be reseeding not working? I haven't found where this actually >>>>> happens from yoshimi-test, so maybe you could point me to it? >>>> >>>> Reseeding is initiated from the "TestInvoker" within yoshimi itself. >>>> Look at Misc/TestInvoker.h, line 315 >>>> SynthEngine::setReproducibleState(seed) not only reseeds the PRNG, >>>> but also explicitly forces rebuilding of PADSynth wavetables. >>>> >>>> -- Hermann >>> >>> Just want to add I'm getting no such problem here with the current master, >>> nor >>> the new padthread branch - both come out at -119.11dB >> >> That's so odd, I still haven't figured out why this happens. By checking >> out 2.1.2.2 I got slightly better results, but the BasicPAD still sits >> at -13dB difference. >> >> Just to rule out that this has anything to do with the randomness, can >> one of you guys try to apply this patch, and then rerun the tests? > > Just tried that here, I get very similar but not identical results. > file attached. > > Incidentally, you could have just enabled NORANDOM :) > > Line 34 in globals.h
Hehe, yes I could have. It was a pretty quick hack on my part. But that is interesting. Probably it is *not* related to randomness then, and it indeed could be because of float precision building up. PADsynth is heavily reliant on the FFT, I wonder if different versions of fftw3 could produce the differences. -- Kristian _______________________________________________ Yoshimi-devel mailing list Yoshimi-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/yoshimi-devel