Forums > MaxMSP

reverse [scale] with exponential argument

September 10, 2013 | 3:32 am

I’m scaling an input stream of numbers with an exponential argument. Say the scale object looks like this:
[scale 0 100 0 200 1.05]
Later, I want to take an output number and find the original input number that created it.
So if there was no exponential argument, I would just switch the input and output low/high pairs so
50 -> [scale 0 100 0 200] -> 100 and
100 -> [scale 0 200 0 100] -> 50
With an exponential argument, for instance, I have:
50 -> [scale 0 100 0 200 1.05] -> 17 so how do I get from
17-> [scale 0 200 0 100 ????] -> 50
In patcher form:

<code>

– Pasted Max Patch, click to expand. –

</code>


September 10, 2013 | 6:05 am

Have you looked at the reference for [scale]? The formula used in "exponential" scaling is documented, you just need to solve for the inverse. It’s just a bit of high school math.

If you can’t get your head around the math, there are people here who can help you out, but you should at least look at it first. (And I would need to be in less of a hurry than I am right now to work it out for you.)


September 10, 2013 | 7:01 am

Hi Peter,
Yes I read the reference, saw the formula and some older posts with similar requests. I was hoping for something as simple as an easy way to determine the inverse value for the exponential argument for [scale] that could be used to reverse an original value. I admit that I am a bit Math-challenged but I can slog my way through it or ask a friend. None of the posts I read provided a clear answer, most pointed to another way to solve the poster’s dilemma.
I think the answer is that you can’t do this with [scale] using an "inverse" scale obj parameter but need to re-architect with [expr] rather than [scale], using the reference formula and do something like??? like swap the low and high inputs and substitute log for exp I think. I’ll see if I can channel some long-forgotten high-school math…


Viewing 3 posts - 1 through 3 (of 3 total)