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

Reply via email to