well I'm no expert on this, I think vline~ is able to generate ramps who's start and end times can be sub-sample accurate. This I think, is quite similar to the iemlib [t3_line~]...
It also has the added functionality of sending 'delayed' messages, ie. tell it to start ramping a second after it receives the message. Therefore it allows you to queue up lots of ramp commands, so you do not have to use many 'sub-sample accurate' [delay] blocks sending messages to the [vline~] in order to use its accuracy functionality.
BTW: I'd second Tim's suggestion that a table lookup is a much better way of computing the log~/exp~ functions. In fact, I _think_ this is how Miller has chosen to compute the [mtof~] and [ftom~] functions (which are also logarithmic/exponential functions) when dealing with signals, shown in several of his examples... On loadbang, calculate and fill a high precision array with the precomputed [log] and [exp] functions for the range of values required (these can then use the control blocks for calculation, instead of audio!). Then just read and optionally interpolate the values (like feeding the [vline~] into a [tabread4~]).
Hope this is, well, at least semi-accurate and of some help. Regards,
Matt
-=-=-=-=-=-=-=-=-=-=-=- http://www.loopit.org -=-=-=-=-=-=-=-=-=-=-=- ----- Original Message ----- From: "Federico" xaero@inwind.it To: "matthew jones" mj@isvr.soton.ac.uk Sent: Wednesday, January 05, 2005 1:02 PM Subject: Re: [PD] looking for an ADSR external
On Wed, 5 Jan 2005 12:02:47 -0000 "matthew jones" mj@isvr.soton.ac.uk wrote:
But why not make your own abstraction with [vline~]??
i already made one (that outputs messages). and making another (see my post asking for log~ exp~ objects)...
but i used line~.
what's the difference between [line~] and [vline~]?
Hallo, matthew jones hat gesagt: // matthew jones wrote:
well I'm no expert on this, I think vline~ is able to generate ramps who's start and end times can be sub-sample accurate. This I think, is quite similar to the iemlib [t3_line~]...
It also has the added functionality of sending 'delayed' messages, ie. tell it to start ramping a second after it receives the message. Therefore it allows you to queue up lots of ramp commands, so you do not have to use many 'sub-sample accurate' [delay] blocks sending messages to the [vline~] in order to use its accuracy functionality.
Yes, vline~ is *the* internal object fÃŒr ADSR and similar envelopes, IMO. I use it in the rradcal rrad.adsr~.pd and rrad.adsr4~.pd abstractions. The latter uses quadric ramps as suggested in the docs for more natural sounding envelopes, while the former is linear.
Frank Barknecht _ ______footils.org__