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