Am 01.11.21 um 10:41 schrieb Will Godfrey:
This is clearly one of those "nature of the beast" situations, so thanks for such a deep investigation. I think it's something we just have to accept.
...so basically this changeset is more or less complete now. One thing I'll do now is to extend the Test-Suite with some SUBSynth and PADSynth notes, and then re-do that comparison before/after (just to be sure). Another topic, while looking through the changes, I noticed that ADDSynt and PADSynth apply a +12dB boot (Factor 4.0) to the global volume, while SUBSynth doesn't I guess, this is a "known inconsistency" and was there since the beginning? Actually, when looking through the SUBSynth code, there is an additional factor 2.0 (a +3dB boost), hidden in SUBnote::computecurrentparameters() (SUBnote.cpp, line 675). I've just looked up all usages of SUBnote::volume, and this seems to be the only code path leading to an actual change of the output samples in SUBnote::noteout() (line 794). The only thing that is slightly weird is the fact that SUBnote::newamplitude is applied/interpolated to the current buffer samples /before/ the invocation of computecurrentparameters(), which means, a changed volume will take effect only on the next buffer, i.e. the following SynthEngnie::MasterAudio() call. According to the Git history, this arrangement was this way already with the first commit from Cal
commit 45f9406c6b66b5f89cf2fb28b8c9badc59e9563b Author: Cal <c...@graggrag.com> 2010-10-16 16:04:39 "start with 0.062-pre0"
I have no inclination to touch that; however what we could do is to move that volume factor 2.0 up from computecurrentparameters() into SUBnote::computeNoteParameters() in order to make it more symmetric to ADDnote and PADnote. Moreover, I'd also propose to get rid of the constants LOG_0_0*1, since what happens here is *exactly* the same than the new function powFrac<##> does now, so there should be no nurmeric change whatever. -- Hermann _______________________________________________ Yoshimi-devel mailing list Yoshimi-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/yoshimi-devel