[PD] Scaling values in pd

Mario Mey mariomey at gmail.com
Tue Sep 3 14:06:51 CEST 2013

```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

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 at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20130903/5eb38bd9/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lin-eq-conv.pd
Type: text/x-puredata
Size: 3927 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20130903/5eb38bd9/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lin-eq-conv-clip.pd
Type: text/x-puredata
Size: 4018 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20130903/5eb38bd9/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lin-eq-conv-help.pd
Type: text/x-puredata
Size: 1900 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20130903/5eb38bd9/attachment-0002.bin>
```