From the original SynthMaker forum (2004–2014), with its members’ names and dates.
lesobrod ·
Here it is Sin Osc with non-linear, naturall Attack and Decay without any sin or exp functions.
I'm going to use it in some bell-like VST and I hope it will be greate! 😀
But there is a big problem.
The core of Osc has an iteration process - smth like
x[n] = a * x[n-1] + b * y[n-1] etc.
The algorithm is stable; all variables finally tend to zero.
But when they become a little enough (about 1e-10 in abs), CPU usage start increasing!!
I think it's because such numbers need a lot of operations.
But in fact, when amplitude becomes so low, all process must be simply stoped!
It seems something like this:
x = (abs(x) < 0.000001)&0 + (abs(x) >= 0.000001)&x
maybe helpful, but looks so ugly 😠
How totally stop a stream code process when some condition becomes TRUE?
It helps to avoid very small numbers and set CPU = 0, when no note event comes and all real sound fade.
lesobrod ·
Maybe nobody understand me? 😊
When all links from Code module destroyed (by Ctrl + LeftMouse e.g.),
Code process stops and reset. Is it possible to do it internally?
Selector don't help ( link to selector works even another input choosen).
stw ·
lesobrod wrote: Maybe nobody understand me? 😊
When all links from Code module destroyed (by Ctrl + LeftMouse e.g.),
Code process stops and reset. Is it possible to do it internally?
Selector don't help ( link to selector works even another input choosen).
search for "clear" in the toolbox and you'll find a prim "ClearAudio".
lesobrod ·
Ok. But this reset all audio. In my project some Osc should stop in different time (as overtones of bell).
By the other side, surprisingly, the Code continue working after ClearAudio.
In overload case, 15-20 % CPU use. After ClearAudio: 3-4%. And after Remove Links and repair - 0%.
trogluddite ·
The problem you are having is called 'denormal numbers. If you search for 'denormal', there a quite a few posts with tips for eliminatng them.
Wrote something here? To have a post removed or your name hidden, write to [email protected].