here's what I got as an abstraction
2014-03-18 21:12 GMT-03:00 Alexandre Torres Porres <por...@gmail.com>: > Hey, a few things have made sense to me now. > > The minimum and maximum values in PD are in a 100 / 1 ratio. This ratio is > important and it's a key in the formula. In the sense that if you have 10 > and 1000, the plotting curve looks always the same. So if you forget about > the minimum and maximum values, you can just work with this ratio variable. > > Something like: > > [expr exp($f1 * log(ratio))] > > Now this will give you a value from 1 to the value of "ratio". And I > thought it'd be cool to scale it from 0 to 1. > > One thing that annoys me a lot is that the log function will not allow you > to start at zero. So I wanted to tweak this in order to make it so. > > Not hard, something like this does the trick. > > [expr exp($f1 * log(ratio) - 1) / (ratio -1)] > > You can always rescale this by multiplying to any factor and summing to a > constant. > > cheers > > > 2014-03-18 19:27 GMT-03:00 Alexandre Torres Porres <por...@gmail.com>: > > cool, looks great >> >> by the way, this guy was helping me out with the math, so I don't really >> know what's going on that well. >> >> Apparently he couldn't figure out the slider height variable. And Roman >> didn't use that too. >> >> The formula was behaving the same as Roman's patch, but we simplified the >> formula now so it's more related to Roman's patch. >> >> It's something like this now >> >> [expr~ min_$0 * exp($v1 * log(max_$0 / min_$0))] >> >> then doing the inverse is not too complicated, just use "ln" >> >> I still have not much clue about the original code, the slider height >> variable and other things, but, anyhow, these were the equations I was >> looking for ;) >> >> cheers >> >> >> 2014-03-18 18:32 GMT-03:00 Jonathan Wilkes <jancs...@yahoo.com>: >> >> On 03/18/2014 04:05 PM, Alexandre Torres Porres wrote: >>> >>> and as I was checking before, not too far from raising to the power of >>> 0.25 (thicker line in the graph from the picture attached) >>> >>> >>> Btw-- here's what that patch looks like in Pd-l2ork (attached). >>> >>> The array rectangle is orange because it's selected. I also changed the >>> size of the garray by click-dragging with the mouse. >>> >>> -Jonathan >>> >>> >>> >>> >>> 2014-03-18 16:48 GMT-03:00 Alexandre Torres Porres <por...@gmail.com>: >>> >>>> the solution is as I thought, to just invert the given formula in the >>>> code. Someone helped me with the math, is something like >>>> >>>> expr ln($f1 / 1.27) / (((log(127 / 1.27) / 1.27)) * 0.01) >>>> >>>> here's a patch attached >>>> >>>> I'm finally gonna check what kind of curve this thing gives :) >>>> >>>> Thanks everyone >>>> >>>> Cheers >>>> >>>> >>>> 2014-03-18 5:13 GMT-03:00 Jonathan Wilkes <jancs...@yahoo.com>: >>>> >>>> No, the code I ported is from vslider_set and vslider_draw_update >>>>> (might be different in Vanilla). >>>>> >>>>> In vslider_bang, math is done to output the proper value. Without >>>>> looking at the code I would have guessed vslider_bang simply outputs a >>>>> stored value like [float] does. Then just do math to set the slider >>>>> position or calculate a new stored value from mouse input. >>>>> >>>>> -Jonathan >>>>> >>>>> >>>>> On Monday, March 17, 2014 1:21 AM, Alexandre Torres Porres < >>>>> por...@gmail.com> wrote: >>>>> Hi Roman. This is turning out trickier than I thought. A friend >>>>> explained the code to me and got to the following equation, with min/max >>>>> values as 0.01 and 1 respectively. >>>>> >>>>> [expr 0.01 * exp((log(1 / 0.01) / 0.01) * $f1 * 0.01)] >>>>> >>>>> For what I've checked, it seems to behave like your patch. But it >>>>> doesn't do the trick I'm looking for yet. I sent a patch earlier, and I'm >>>>> sending it back again. >>>>> >>>>> The goal is to connect a linear slider to an [expr] (with this so >>>>> called "log" function) and then to another linear slider. The idea then is >>>>> that this second slider behaves as one that was set as being "log". >>>>> >>>>> In the patch attached I was able to emulate it poorly with [pow >>>>> 0.25], but that was before reaching the list. See that if I use this expr >>>>> function from the code or your patch it presents quite a different >>>>> behavior. >>>>> >>>>> maybe it is some sort of inversion of this equation, not sure. >>>>> Apparently this code converts the "log" function values to linear and I'm >>>>> hoping to get the exact opposite. Got it? >>>>> >>>>> Thanks for looking into this >>>>> >>>>> >>>>> 2014-03-12 4:38 GMT-03:00 Roman Haefeli <reduz...@gmail.com>: >>>>> >>>>> On Don, 2014-03-06 at 21:37 -0300, Alexandre Torres Porres wrote: >>>>> > hi folks, out of curiosity, what's the exact log function used in the >>>>> > slider? I'd like to emulate it. >>>>> >>>>> I am not sure, if this is what you want. It converts the incoming >>>>> linear >>>>> range between 0 and 1 to a logarithmic range specified by $1 and $2, >>>>> respectively by the second and third inlet. They behave like the lower >>>>> and upper bound specified in the [vslider]/[hslider] classes. >>>>> >>>>> >>>>> https://raw.github.com/reduzent/netpd2-patches/master/abs/rh_scalelog.pd >>>>> >>>>> >>>>> Roman >>>>> >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> Pd-list@iem.at mailing list >>>>> UNSUBSCRIBE and account-management -> >>>>> http://lists.puredata.info/listinfo/pd-list >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> Pd-list@iem.at mailing list >>>>> UNSUBSCRIBE and account-management -> >>>>> http://lists.puredata.info/listinfo/pd-list >>>>> >>>>> >>>>> >>>> >>> >>> >> >
log_slide-help.pd
Description: Binary data
log_slide.pd
Description: Binary data
_______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list