Sorry, found this in my inbox, forgot to reply to it at the time. On Thu, Mar 21, 2002 at 10:20:52 +0100, Tim Goetze wrote: > Steve Harris wrote: > > >On Sat, Mar 16, 2002 at 04:54:03 -0500, Paul Davis wrote: > >> >my proposal for a remedy is rather simple: let control port value > >> >pointers not point to one LADSPA_Data but to an array of two. > >> > > >> >the first represents the start, and the second the end value for the > >> >next run*() call. > > [...] > > >Erm, not too fast, that doesn't help. > > > >I've always regarded the value as the value at the end of the buffer, and > >all this does is make it easier to lerp the control values, which will > >encourage people, so you will get zipper noise: one reason early vst > >plugins sucked so much. > > wait -- if hosts are doing the right thing, they'll shift the two > values so that at t(n+1) the first of the two values will be the > second from t(n). so i can't see why zipper noise should increase.
lerping causes zipper noise, my point was that prividing a t=0 and t=n value only emakes it easier to lerp, not filters or cubic etc. and so it could encourage use of linear. The filtering techniques and interpolators with order > 1 require more points to work with, so it doesn't help them as you have to accumulate or cache results anyway. > unfortunately i neither understand precisely what action 'lerping' > describes (i think it must be tossing around the controls madly), nor > do i recall the first vst API's handling of control ports, possibly > because i never did vst. lerp = linear linterpolation, the cheapest interpolator. vst itsself doesn't enfore any particualr scheme (AFAIK), but to save cycles a lot of primitive vst plugins used lerp. > basically i understand the values passed to and from the plugin as > sample points of a curve (and probably we all do since we agree there > need be some kind of interpolation?) Typically you would use a low order filter, cubic interpolation suffers from excusions (values exceeding the range you are trying to describe) which makes it unsiutable for parameter smoothing. Quartic interpolators are a bit too expensive for parameter smoothing. > the next best i think is to have a fixed array size (2, or possibly > more values) and keep the impact on the API smallest. If we're going to change ladspa to add better parameter control, then timestamped events seems like a better approach. How you represent this is probably not important. - Steve