multislider logarithmic?

k9's icon

How do I best scale a multislider so that it responds logarithmically?

I am controlling partial volumes with TouchOSC and the lower range is too loud, or should I say the steps are too wide, the higher range too low, the steps don't matter.

How can I scale this range for my 48-slider multislider most efficiently? (I'm German, we like efficient...;-)

K9

Luke Hall's icon
Max Patch
Copy patch and select New From Clipboard in Max.

The [vexpr] object will do what you want, use it in scalarmode and change the argument value to find a balance that suits your application.

mr_mapes's icon

In most gain or frequency control cases I get myself a 0-1 float from knob or slider and cube the result for nice 0-1 curve.

k9's icon

Thanks a lot, I will look into that.

seejayjames's icon

cube the result, that's perfect! nice curved spread of numbers...

einbahnstrasse's icon

Please forgive my mathematical ignorance;

If I'm using Luke's vexpr example in scalarmode 1:

pow($f1,$f2)

where my list values go into $f1, how can I write another vexpr object that will do the reverse operation of this function? I'd like to be able to scale my list values for representation in a multislider only, and to receive non-log-scaled lists from its outlet after I move the bars. Thanks for your help.

einbahnstrasse's icon

Oh, I think I found it. Sorry this must be obvious to you all. Something like pow($f1,(1/$f2))

Peter McCulloch's icon
Max Patch
Copy patch and select New From Clipboard in Max.

I'd also point you towards scale for this, albeit with the caveat that its list implementation uses the reciprocal of the exponent rather than the exponent. (bug, has been reported, will probably change in future, but this may be easier than vexpr, though I'm generally a big proponent of vexpr)