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? ------------------------------------------------- diff --git a/src/Misc/RandomGen.h b/src/Misc/RandomGen.h index e5675d9c..e67d347b 100644 --- a/src/Misc/RandomGen.h +++ b/src/Misc/RandomGen.h @@ -198,7 +198,7 @@ class JenkinsPRNG /* ===== Configure the actual PRNG to use ===== */ -#ifdef NORANDOM +#if 1 typedef NorandomPRNG RandomGen; #else ------------------------------------------------- It switches to the "dumb" random generator, where the same number is returned every time. With this, it should not matter what the seed is. Obviously the tests will not pass, but the magnitude of failure should be deterministic. With this, I'm getting these values: - "features/BasicADD.test": Performed; detect Δ -65.8404dB(RMS) - "features/BasicPAD.test": Performed; detect Δ 11.6778dB(RMS) - "features/BasicSUB.test": Performed; detect Δ 28.2185dB(RMS) - "features/filter/AnalogFilter_BandFreqDown.test": Performed; detect Δ -78.5293dB(RMS) - "features/filter/AnalogFilter_BandFreqMid.test": Performed; detect Δ -95.624dB(RMS) timing OK - "features/filter/AnalogFilter_BandFreqUp.test": Performed; detect Δ -113.878dB(RMS) - "features/filter/AnalogFilter_BandTrack1.test": Performed; detect Δ -76.6888dB(RMS) timing OK - "features/filter/AnalogFilter_BandTrack2.test": Performed; detect Δ -78.6063dB(RMS) - "features/filter/AnalogFilter_BandTrack3.test": Performed; detect Δ -86.1875dB(RMS) - "features/filter/AnalogFilter_BandTrack4.test": Performed; detect Δ -83.3112dB(RMS) - "features/filter/AnalogFilter_BandTrack5.test": Performed; detect Δ -84.4421dB(RMS) - "features/filter/AnalogFilter_BandTrack6.test": Performed; detect Δ -82.5431dB(RMS) - "features/filter/AnalogFilter_BandTrackZero.test": Performed; detect Δ -77.8639dB(RMS) - "features/filter/AnalogFilter_HShelfFreqDown.test": Performed; detect Δ -86.0103dB(RMS) - "features/filter/AnalogFilter_HShelfFreqMid.test": Performed; detect Δ -103.986dB(RMS) - "features/filter/AnalogFilter_HShelfFreqUp.test": Performed; detect Δ -118.698dB(RMS) - "features/filter/AnalogFilter_HShelfQwide.test": Performed; detect Δ -106.486dB(RMS) - "features/filter/AnalogFilter_High2FreqDown.test": Performed; detect Δ -74.8503dB(RMS) - "features/filter/AnalogFilter_High2FreqMid.test": Performed; detect Δ -94.2682dB(RMS) - "features/filter/AnalogFilter_High2FreqUp.test": Performed; detect Δ -110.924dB(RMS) - "features/filter/AnalogFilter_High2Qwide.test": Performed; detect Δ -101.202dB(RMS) - "features/filter/AnalogFilter_LShelfFreqDown.test": Performed; detect Δ -67.146dB(RMS) - "features/filter/AnalogFilter_LShelfFreqMid.test": Performed; detect Δ -87.6528dB(RMS) timing OK - "features/filter/AnalogFilter_LShelfFreqUp.test": Performed; detect Δ -108.446dB(RMS) - "features/filter/AnalogFilter_LShelfQwide.test": Performed; detect Δ -92.3018dB(RMS) - "features/filter/AnalogFilter_Low2FreqDown.test": Performed; detect Δ -75.8465dB(RMS) - "features/filter/AnalogFilter_Low2FreqMid.test": Performed; detect Δ -97.8917dB(RMS) timing OK - "features/filter/AnalogFilter_Low2FreqUp.test": Performed; detect Δ -117.402dB(RMS) - "features/filter/AnalogFilter_Low2Qwide.test": Performed; detect Δ -104.802dB(RMS) - "features/filter/AnalogFilter_PeakQmid.test": Performed; detect Δ -79.4768dB(RMS) - "features/filter/AnalogFilter_PeakQnarrow.test": Performed; detect Δ -80.6634dB(RMS) timing OK - "features/filter/AnalogFilter_PeakQwide.test": Performed; detect Δ -83.8173dB(RMS) timing OK - "features/filter/AnalogFilter_StopQmid.test": Performed; detect Δ -97.477dB(RMS) timing OK - "features/filter/AnalogFilter_StopQnarrow.test": Performed; detect Δ -90.2266dB(RMS) - "features/filter/AnalogFilter_StopQwide.test": Performed; detect Δ -99.6952dB(RMS) - "features/filter/SVFilter_BandFreqDown.test": Performed; detect Δ -119.521dB(RMS) - "features/filter/SVFilter_BandFreqMid.test": Performed; detect Δ -118.602dB(RMS) timing OK - "features/filter/SVFilter_BandTrack.test": Performed; detect Δ -103.152dB(RMS) - "features/filter/SVFilter_LowQnarrow.test": Performed; detect Δ -106.813dB(RMS) - "features/oscil/Wavetable_Chirp3.test": Performed; detect Δ -101.42dB(RMS) timing OK - "features/oscil/Wavetable_Circle3.test": Performed; detect Δ -nandB(RMS) - "features/oscil/Wavetable_NoisePink.test": Performed; detect Δ 386.222dB(RMS) timing OK - "features/oscil/Wavetable_NoiseSpot.test": Performed; detect Δ 386.592dB(RMS) timing OK - "features/oscil/Wavetable_NoiseWhite.test": Performed; detect Δ 392.602dB(RMS) timing OK Do you get the same values? -- Kristian _______________________________________________ Yoshimi-devel mailing list Yoshimi-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/yoshimi-devel