On 01-Oct-18 13:52, Frank Sheeran wrote:
Indeed, that's a simple parametric, but for generating envelopes we have the freedom to depend on the previous sample's output.  So, while an exponential curve parametric-style requires a pow(), the iterative solution is simply current = previous * multiplier.

Adding a range of curves can be done by adding a delta, as Andre/Werner and I have independently discovered (along with probably many others).

And "current = previous * multiplier + delta" is going to be fewer calculations than a parametric formula such as yours.  So I suggest the Andre/Werner/my method seems faster for the specific application of envelopes, as well as offering true exponential curves.

With multiplier values >> 1 there can be noticeable incremental precision losses. They can be reduced by offsetting the whole curve so that its starting position is zero (which means that that the "output" value is current + offset). In principle IIRC the same rule applies for multiplier < 1, but there the losses are not too large. This also manifests at multiplier = 1 by having the "best offset" so that the curve's middle is at zero.

Regards,
Vadim

--
Vadim Zavalishin
Reaktor Application Architect
Native Instruments GmbH
+49-30-611035-0

www.native-instruments.com

_______________________________________________
dupswapdrop: music-dsp mailing list
[email protected]
https://lists.columbia.edu/mailman/listinfo/music-dsp

Reply via email to