On Wednesday 18 December 2002 11.51, Steve Harris wrote:
On Wed, Dec 18, 2002 at 11:22:44 +0100, David Olofson
wrote:
It's not very hard to do for basic stuff, and
it means many
plugins won't need any internal filtering at all.
Unlikly. Most plugins will only render the control values ever 32
samples (say) and then will just use linear sections between those.
I think providing all that specification is a mistake, its quite
complex and will not be usefull most of the time.
Many effects will make this audible, and thus,
will need to
implement filtering internally anyway. Splines can probably
eliminate this in most cases.
We should probably try it though. Anyone around here has real
experience with this?
Splines have some unfortunate side effects, like excursions, which
make them only suitable for a small number of cases. Also the
calcuation cost means they have to be used sparingly.
The place the're most useful is where you have high bandwidth, low
rate of change values, eg. in internal ringbuffer pointers. You
wouldn't want to use them on external controls very often.
Right. I've mentioned that you're really meant to deal only with the
current block, and thus, we're *not* talking about low rates of
changes. (BTW, AudioUnits also does it this way, if I understand it
correctly. You have to keep telling the receiving control about the
ramp for each block.)
Also, remember that most of the time the controls are
going to come
(ultimatly) from the user moving a slider around (etiher real or
GUI) its not easy to generate good splines from that data. Ramps
are much more practical, and more convienient for the DSP
programmer.
All good points.
It seems to me that we should do like everyone else: Linear ramps
only. Dead simple (well, almost), well defined and *very* much better
than no ramps at all.
//David Olofson - Programmer, Composer, Open Source Advocate
.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`--------------------------->
http://olofson.net/audiality -'
---
http://olofson.net ---
http://www.reologica.se ---