Very nice. Cheers Andy,
Jbz On Sat, Aug 1, 2009 at 5:43 PM, Andy Farnell <[email protected]>wrote: > > Hi JBeez, > > We could interpret this in two ways. A hard constraint is applied by > using [moses] [max], [min] or [clip] so that numbers outside the > desired bounds are simply discarded, or clamped to the boundry. > Look that one up in the help files if it's what you want. > > On the other hand, I think you really mean to rescale the numbers > so that all of them fit between your new bounds. > > Changing a range requires a linear scale function. There > is one called [scale]. > > But, instead of just using a ready made abstraction maybe it's > a good idea to understand the simple principle of changing the > slope and origin of a line. > > If your original bounds are 800 and 19000 then the magnitude > of the range, the interval, is 19000 - 800 = 18200 > > The origin of the interval is 800, which is the lowest > number you can have. > > The first thing to do is 'reset the origin' so that all > your numbers have a lowest value starting at zero, so > to do that subtract 800. > > Then scale the line to cover the magnitude of your new interval, > which is 800 - 400 = 400 > > To map 18200 to 400 divide them to get 400/18200 = 0.021987 > > Now scale the numbers by that factor > > Finally add the bottom offset, your new origin, by adding > the lowest value of the new range which is 400 > > So the complete scale function is now > > ((x - 800) * 0.021987) + 400 > > (see attached patch) > > > a. > > > On Sat, 1 Aug 2009 15:32:06 +0100 > J bz <[email protected]> wrote: > > > Dear all a y'all, > > > > I have a list of 25 numbers between 800-19000 that I'm calling > randomly'ish. > > > > I want to add some constraints to those numbers: > > so for example, I have the number 6569 and by the use of either simple x2 > > multiplication or dividing I want to shoehorn it into the ranges of > > 11000-18000 but also 400-800 at the same time. > > > > THe ranges are set but the numbers aren't. So say sometimes the range > > 2400-4700 may get a number that is less than the range like 912 and > > sometimes it will get a number over the range like 13264, so I need a way > of > > Pd recognising whether the number requires multiplication or dividing. > > > > How can I do this? > > > > Bests, > > > > Jbz > > > > > -- > Use the source > > _______________________________________________ > [email protected] mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list > >
_______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
