Developer finds all five modulation paths in his synth were broken after first measurement

A developer auditing SYNTH/1, their self-built JUCE wavetable synthesiser, discovered that five modulation paths — including the LFO, portamento, and unison summing — had never been measured and were all producing incorrect output. The core problem stems from control-rate code running once per audio buffer block, meaning the effective update rate varies with host buffer size, which can range from 32 to 4096 samples. At a 20 Hz LFO setting and large buffer sizes, the phase increment per block exceeds 1.0, causing the accumulator to grow without bound rather than wrap correctly, quietly degrading output over long sessions. One of the five errors was off by a factor of thirteen, yet none were audible during normal listening, highlighting how measurement catches what ears miss. All five issues have since been fixed by advancing the LFO on a fixed sub-block interval, decoupling its rate from the unpredictable host buffer size.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in