# [PD] log function in slider

Alexandre Torres Porres porres at gmail.com
Tue Mar 18 21:05:49 CET 2014

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

2014-03-18 16:48 GMT-03:00 Alexandre Torres Porres <porres at 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 <jancsika at 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 <
>> porres at 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 <reduzent at 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 at iem.at mailing list
>> UNSUBSCRIBE and account-management ->
>> http://lists.puredata.info/listinfo/pd-list
>>
>>
>>
>> _______________________________________________
>> 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/20140318/a7328575/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: log.jpg
Type: image/jpeg
Size: 170866 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20140318/a7328575/attachment-0001.jpg>
```