Multislider Morphing

simonhold's icon
FP's icon

maybe with the interpolation mode of pattrstorage.
no ?

i do it with it...

simonhold's icon

I am sweating on pattrstorage as we speak.

maby you have a small example to share with me?

I am a little confused about the bindings, as I have two multisliders.

simon

Jeremy's icon

Something like this?

Max Patch
Copy patch and select New From Clipboard in Max.

Am 14.12.2006 um 16:55 schrieb Simon Halsberghe:

>
> I am sweating on pattrstorage as we speak.
>
> maby you have a small example to share with me?
>
> I am a little confused about the bindings, as I have two multisliders.
>
>
> simon

volker böhm's icon

On 14 Dec 2006, at 16:35, Simon Halsberghe wrote:

> Hi List,
>
> I've got a question which might have an obvious answer (I hope so).
>
> I have two multisliders, each with a very large number of sliders,
> 200. The first one is used to set the desired destination for the
> second. When you bang the second multislider takes whatever time
> you choose to get from it's current settings to the desired one the
> user set in the first mslider.
>
> I could do this very easily by unpacking the list, where it not
> that the list is so big. The amount of space and time needed to
> connect every unpack output to a line and back to a pack ...

instead of interpolating every slider value individually, i would
suggest crossfading the actual multislider state as a list with the
desired state, something like this:

Max Patch
Copy patch and select New From Clipboard in Max.

simonhold's icon

Thank you very much for this!

But there is still the problem of 'forwarding' the stored values.
One mslider should set the destination and the second should go to it, over time, using interpolation.

Is there a way to 'unbind' or 'rebind' the stored values? So one mslider is used to store a value. And when requested, those values are sent to the second mslider.

thank you for the replies so far.

simon

simonhold's icon

I was fast to reply on Bernstein.

But vb made exactly what I was looking for!

And no pattr. Seems I will learn about it more some other time.

thank all of you very much.

simon

Gary Lee Nelson's icon

You may also like this...
(note that vline uses Peter Elsea's Lbuf)

Max Patch
Copy patch and select New From Clipboard in Max.

vline abstraction

Max Patch
Copy patch and select New From Clipboard in Max.

vline.help

On 12/14/06 11:24 AM, "vb" wrote:

>
> On 14 Dec 2006, at 16:35, Simon Halsberghe wrote:
>
>> Hi List,
>>
>> I've got a question which might have an obvious answer (I hope so).
>>
>> I have two multisliders, each with a very large number of sliders,
>> 200. The first one is used to set the desired destination for the
>> second. When you bang the second multislider takes whatever time
>> you choose to get from it's current settings to the desired one the
>> user set in the first mslider.
>>
>> I could do this very easily by unpacking the list, where it not
>> that the list is so big. The amount of space and time needed to
>> connect every unpack output to a line and back to a pack ...
>
> instead of interpolating every slider value individually, i would
> suggest crossfading the actual multislider state as a list with the
> desired state, something like this:
>
> #P window setfont "Sans Serif" 9.;
> #P window linecount 1;
> #P hidden newex 358 64 66 196617 loadmess 20;
> #N vpatcher 10 59 610 459;
> #P window setfont "Sans Serif" 9.;
> #P newex 60 129 21 196617 t 0;
> #P newex 60 151 67 196617 zl group 255;
> #P newex 60 106 76 196617 uzi 20;
> #P inlet 60 86 15 0;
> #P outlet 60 190 15 0;
> #P connect 1 0 2 0;
> #P connect 2 0 4 0;
> #P connect 2 1 3 0;
> #P connect 4 0 3 0;
> #P connect 3 0 0 0;
> #P pop;
> #P newobj 536 137 33 196617 p init;
> #P number 359 116 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P message 269 168 43 196617 size $1;
> #P newex 98 244 48 196617 loadbang;
> #P button 185 54 27 0;
> #P number 230 63 51 9 0 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 200 88 40 196617 i 1000;
> #P newex 536 166 36 196617 zl reg;
> #P message 200 112 47 196617 0 , 1. $1;
> #P newex 200 135 40 196617 line 0.;
> #P user multiSlider 316 417 266 68 0. 127. 20 2665 47 0 0 2 0 0 1;
> #M frgb 0 0 0;
> #M brgb 255 255 255;
> #M rgb2 127 127 127;
> #M rgb3 0 0 0;
> #M rgb4 37 52 91;
> #M rgb5 74 105 182;
> #M rgb6 112 158 18;
> #M rgb7 149 211 110;
> #M rgb8 187 9 201;
> #M rgb9 224 62 37;
> #M rgb10 7 114 128;
> #P objectname mslid[3];
> #P newex 467 297 79 196617 vexpr $f1*$f2;
> #P flonum 200 170 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 316 349 78 196617 vexpr $f1+$f2;
> #P message 98 267 70 196617 scalarmode 1;
> #P newex 200 297 79 196617 vexpr $f1*$f2;
> #P user multiSlider 269 187 266 68 0. 127. 20 2665 47 0 0 2 0 0 1;
> #M frgb 0 0 0;
> #M brgb 255 255 255;
> #M rgb2 127 127 127;
> #M rgb3 0 0 0;
> #M rgb4 37 52 91;
> #M rgb5 74 105 182;
> #M rgb6 112 158 18;
> #M rgb7 149 211 110;
> #M rgb8 187 9 201;
> #M rgb9 224 62 37;
> #M rgb10 7 114 128;
> #P objectname mslid[1];
> #P newex 467 266 30 196617 !- 1.;
> #P comment 334 101 100 196617 number of sliders;
> #P comment 231 47 100 196617 interp time;
> #P connect 16 0 5 0;
> #P connect 15 0 13 0;
> #P connect 13 0 11 0;
> #P connect 11 0 10 0;
> #P fasten 10 0 7 0 205 167 205 167;
> #P fasten 5 0 4 0 103 292 205 292;
> #P connect 7 0 4 0;
> #P connect 14 0 13 1;
> #P connect 18 0 17 0;
> #P connect 17 0 3 0;
> #P connect 3 0 4 1;
> #P fasten 4 0 6 0 205 331 321 331;
> #P connect 6 0 9 0;
> #P hidden connect 20 0 18 0;
> #P fasten 8 0 6 1 472 331 389 331;
> #P fasten 7 0 2 0 205 261 472 261;
> #P fasten 5 0 8 0 103 292 472 292;
> #P connect 2 0 8 0;
> #P connect 18 0 19 0;
> #P fasten 10 1 12 0 235 159 541 159;
> #P connect 19 0 12 0;
> #P connect 12 0 8 1;
> #P fasten 6 0 12 1 321 380 567 380;
> #P window clipboard copycount 21;
>

Cheers
Gary Lee Nelson
Oberlin College
www.timara.oberlin.edu/GaryLeeNelson

FP's icon

maybe i'm late and wrong...

Max Patch
Copy patch and select New From Clipboard in Max.

FP's icon

funny no ?
in fact you don't need the second multislider.

:)

Max Patch
Copy patch and select New From Clipboard in Max.

seejayjames's icon

Sounds like you got some good responses so far. Also check out the multislider objects by Peter Eijes, he uses javascript to do just about anything to two lists (interp, operations, etc.), without the 256-limit of vexpr. His objects are fantastic! (Can't find the link right now again though... anyone know??)

It's a little bit of work to install his objects but well worth it! His multi-function breakpoint editor (with zoom) is also great.

--CJ

Michele Verità's icon

..i think you are talking about Emmanuel Jourdan objcts...
http://www.e--j.com/sphpblog/

redhexagonal's icon

those are very nice objects....the breakpoint editor is essential

Emmanuel Jourdan's icon

> those are very nice objects....the breakpoint editor is essential

Thanks Guys,

Peter Eijes

Stefan Tiedje's icon

Simon Halsberghe wrote:
> I have two multisliders, each with a very large number of sliders,
> 200. The first one is used to set the desired destination for the
> second. When you bang the second multislider takes whatever time you
> choose to get from it's current settings to the desired one the user
> set in the first mslider.

you can use vexpr to do that, limited to 256 elements:

Max Patch
Copy patch and select New From Clipboard in Max.

--
Stefan Tiedje------------x-------
--_____-----------|--------------
--(_|_ ----|-----|-----()-------
-- _|_)----|-----()--------------
----------()--------www.ccmix.com