shorepine / amy

AMY - the Additive Music synthesizer librarY

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PARTIALS timebase dependent on BLOCK_SIZE

dpwe opened this issue · comments

When I changed the BLOCK_SIZE from 256 to 64 samples everything was more or less the same (excepting the 192 sample advance of the envelope due to the reduced impact of the one-frame envelope delay) except for TestPartials, which was completely different. Inspecting the waveforms and spectrograms, there's something weird going on - the shorter BLOCK leads to faster rendering, but it's not a simple linear speedup.
Reference (BLOCK = 256):
Screenshot 2023-12-21 at 15 12 30
New (BLOCK = 64):
Screenshot 2023-12-21 at 15 13 04

This resulted from partials.c allowing only one new partial to start each frame. By starting as many partials as needed each frame, the gross timebase differences between BLOCK=256 and BLOCK=64 is gone. Fixed in f582fe0.