I've created a pull-request for an improvement to tonesweep synthesis: https://github.com/PaulStoffregen/Audio/pull/359
In short the frequency adjustment wasn't being applied per sample, but per-block, leading to spectral artifacts at
multiples of 344.5Hz from the carrier. Noticed when testing FFT visualization code.
Here's the FFT (1024 points) before and after the fix:
The thin peak is a constant sine tone, the broader one is a tone sweep caught mid-sweep.
In short the frequency adjustment wasn't being applied per sample, but per-block, leading to spectral artifacts at
multiples of 344.5Hz from the carrier. Noticed when testing FFT visualization code.
Here's the FFT (1024 points) before and after the fix:
The thin peak is a constant sine tone, the broader one is a tone sweep caught mid-sweep.