shorepine / amy

AMY - A high-performance fixed-point Music synthesizer librarY for microcontrollers
https://shorepine.github.io/amy/
MIT License
184 stars 11 forks source link

Odd waveform discrepancy in TestJunoPatch.wav #116

Open dpwe opened 4 months ago

dpwe commented 4 months ago

test.py:TestJunoPatch plays a 4-note chord using the Juno patch 20, loaded with voices='0,1,2,3', load_patch=20. We've recently made some changes in how a complex patch like that is set up and rendered. Today, I used my compare_test_wavs.ipynb to examine why the test was giving such a relatively large error relative to the reference wav (-36.7 dB error for a -20 dB signal).

Here are the plots of the reference (from April 14) and current waveform outputs, and the difference between them: download-2 download-1

To listen to them, they are hard to distinguish. However, there's clearly a systematic difference in the waveform that seems to be following some kind of 3 Hz triangle shape with an amplitude tending to a multiple of ~600 units.

I'm thinking it's either the LFO being added to the output (unlikely), or something with the chorus.