i was referring to the current parameter smoothing which is used inside oscillator class, which i think is not right for frequencies (the same goes also for linear gain-values too, because the loudness perception is also logarithmic )
If you here the sweep, it goes to fast to the higher values.
But it also should have a defined target value, which you don’t get with filters.
Linear Fade:
You calculate the single step with step = (target - currentValue) / (FloatType) countdown;
and for every step currentValue += step;
10, 20, 30, 40, 50, 60
-> But for frequencies we need to use a logarithmic fade
You calculate the single step with step = std::exp(( std::log(target) - std::log(currentValue) ) / (float) countdown )
and for every step currentValue *= step;
10, 14, 20, 29, 42, 60
I’ve done it for my self, but i want to share it with you, because i think the current implementation is not right.
Yes I guessed so already, but anyway a few classes in the current dsp module were created by Fabian as simple examples of the new Processor classes or the waveshaper stuff. For a proper Oscillator class, we would need to provide a lot of additional features such as anti-aliasing.
However, I guess a LogSmoothedValue class with a proper target value might be a nice addition as well