IOhannes, you are right only in these
cases:
0 127 0 500
0 300 0 1
...
But, if I need:
50 10 0 500
3000 -3000 0.5 0.6
...
I will need a "linear equation conversion". As I wrote in last
mail, I was needing something like this, first in ActionScript...
then in Python... but I never could did it. Now, I needed again in
Pd... so, I made lin-eq-conv.pd with extrapolation and
lin-eq-conv-clip.pd for clipped values. I made it as neat as I
could, to see how it works. Using x0-x1 and y0-y1, it uses expr to
get "a" and "b" at load. Then, it only computes "aX + b = Y".
I attach the lin-eq-conv.pd, lin-eq-conv-clip.pd and
lin-eq-conv-help.pd.
Also, I have some issues using [autoscale]. I start giving values
and it outputs only 1. Then, I start to down the input and, then,
it shows the real output. Maybe it's about this version (0.43.4
Pd-Extended 64bits).
PD: translated to Python:
def lin_eq_conv(x, x0, x1, y0, y1):
a = (y0 - y1) / (x0 - x1)
b = (a * x0) + y0
return a * x + b
El 03/09/13 03:32, IOhannes zmölnig escribió:
On 09/02/2013 06:17 PM, hghoyer wrote:
Hi,
in Max/MSP there is an object for simple scaling.
If you create in MAX these object with this arguments:
[scale 0 127 0 500] incomming messages from 0 to 127 are automatically
scaled from 0 to 500...
honestly i'm of the firm conviction that you should learn how scaling
works: it really is only a matter of adding, multiplying, dividing,
subtracting - stuff you should heave learned in primary school.
as frank pointed out, this should do for you:
|
[/ 127]
|
[* 500]
|
if you find it too tedious to do the maths over and over again, you
might want to create an abstraction.
being able to solve trivial problems like this will surely empower you
to solve more complex problems :-)
gamsdr
IOhannes
_______________________________________________
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list