Max curve~

pechnatunk's icon

Hi,

Is there a max equivalent of the curve~ object?
I'm guessing there is also a mathematical solution but I'm not really very good with that stuff.

cheers,

mr_mapes's icon

You could try (line) to get your 0->1 ramp, and to get a variable exponential curve feed that into the base of (pow) and play around with the index/exponent

pechnatunk's icon

Hi thanks for your reply.
I'm trying to implement a portamento/glide to go from one value to another - thought I'd expand on it a little.
I tried your suggestion but there does not seem to be a curve occurring it seems to only scale the output. Which now that I think about it seems like an expected outcome for pow - do I need a more complex formula?
Here's my very basic testing patch - in case there is anything I've done completely wrong.

Max Patch
Copy patch and select New From Clipboard in Max.

mr_mapes's icon

Ok I see what's happening but can't see an obvious solution... (line) is ramping from one note-on message to the next in its regular linear fashion and (pow) is raising the note message to ^y...

Using (pow) in the fashion I suggested only works for 0->1 control signals since 1^y is always 1 and 0.x^y is always less than 0.x, giving a curve from 0->1.

Have you thought of using function generator?

Roman Thilenius's icon

i have made a bunch of such expressions ... but it is really bit difficult to
have a set of expressions sitting between a multipoint ramp in order
to turn all the linear moves of different ranges into s-curves ... i wouldnt
do that!

what about using curve~ and converting to the signal to messages?

or do you the stuff for something nonrealtime.

(yeah i know, you loose the peak values that way)

-110

gwsounddsg's icon

you can use curve~, connect it to a number~ object and out of the number~ right outlet you will get numerical data. i have used this for fading sound files up and down in a logarithmic and exponential fashion.

-GW

pechnatunk's icon

Thanks,
It's for a Midi Effect in Max4Live so I figured I'd try to keep it non-MSP thinking it would save CPU but it seems to be more trouble than it is worth. Especially since CPU is much less of a problem than Midi clogging is.

I tried curve~ with both number~ and snapshot~ with the later working better because it can get down to a finer resolution. But anything below a 10ms snapshot seems to knock my synth out of tune.

At 10ms the tuning is correct but even with a 1 ms curve~ ramptime there is an audible portamento (which, I'm guessing as you say Roman is the peak values getting lost)

Could a way around this be to use curve~ into a buffer~ use index and some scaling? that way there would not need to be an expr on each value leaving a [line].

Max Patch
Copy patch and select New From Clipboard in Max.
Max Patch
Copy patch and select New From Clipboard in Max.

Anyway - here are my patches.

Roman Thilenius's icon

>>But anything below a 10 ms snapshot seems to knock my synth out of tune.

you might want to put a [change 0.] behind the [snapshot] ... or eventually
even a [limit]

-110
kdx://guest:guest@110-modular.no-ip.org:10700/

seejayjames's icon
Max Patch
Copy patch and select New From Clipboard in Max.

a simple curve-making tool, plus you can just draw in whatever you want into the [itable]: