interpolating between multiple patterns?

Apr 11, 2008 at 3:26am

interpolating between multiple patterns?

is it possible to interpolate between more than 2 patterns using pattrstorage? If not is there another object that does this? I didn’t see this in the documentation. thank you.

#36855
Apr 11, 2008 at 2:13pm

This just a hint but if you understand the recall message for pattrstorage
it should be clear. The left example assumes you want to specify pairs, the
right shows a ramping kind of sequence.

#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P comment 506 105 100 196617 bang to start seq ->;
#P message 14 143 29 196617 stop;
#P message 521 135 29 196617 stop;
#P newex 645 194 49 196617 zl rot -1;
#P newex 139 190 49 196617 zl rot -2;
#P newex 284 346 128 196617 unpack 0. 0 0;
#P newex 343 373 69 196617 !- 0.;
#P newex 282 428 27 196617 + 0.;
#P flonum 313 429 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 282 400 71 196617 * 0.;
#P user multiSlider 282 457 93 74 0. 16. 1 3705 15 0 0 2 0 0 0;
#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 newex 794 328 128 196617 unpack 0. 0 0;
#P newex 853 355 69 196617 !- 0.;
#P newex 792 410 27 196617 + 0.;
#P message 561 135 59 196617 0. , 1 4000;
#P newex 561 158 44 196617 line 50.;
#P message 60 142 59 196617 0. , 1 4000;
#P newex 60 165 44 196617 line 50.;
#P flonum 823 411 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 792 382 71 196617 * 0.;
#P user multiSlider 792 439 93 74 0. 16. 1 3705 15 0 0 2 0 0 0;
#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 window setfont “Sans Serif” 18.;
#P window linecount 2;
#P comment 598 429 182 196626 1 3 , 3 4 , 4 5 , 5 2 , 2 6 , 6 7 , 7 8;
#P window setfont “Sans Serif” 12.;
#P window linecount 1;
#P comment 598 408 100 196620 sequence;
#P window setfont “Sans Serif” 9.;
#P newex 665 259 51 196617 zl slice 1;
#P newex 599 371 84 196617 s topattrstorage;
#P message 694 395 89 196617 recall 1 3 0.315;
#P newex 694 370 62 196617 prepend set;
#P newex 599 340 74 196617 prepend recall;
#P message 599 317 52 196617 $2 $3 $1;
#P newex 624 230 51 196617 zl slice 1;
#P newex 599 292 61 196617 pack 0. 0 0;
#P flonum 561 229 35 9 0. 1. 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P button 624 103 15 0;
#P message 665 122 70 196617 1 3 4 5 2 6 7;
#P newex 624 167 51 196617 zl reg;
#P window linecount 2;
#P comment 665 89 88 196617 click to initialize preset list;
#P window linecount 1;
#P newex 98 348 84 196617 s topattrstorage;
#P message 193 372 88 196617 recall 7 8 0.06;
#P newex 193 347 62 196617 prepend set;
#P newex 98 317 74 196617 prepend recall;
#P message 98 294 52 196617 $2 $3 $1;
#P newex 123 239 51 196617 zl slice 2;
#P newex 99 268 60 196617 pack 0. 0 0;
#P flonum 60 238 35 9 0. 1. 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P button 123 123 15 0;
#P message 165 101 79 196617 1 3 4 5 2 6 7 8;
#P newex 123 162 51 196617 zl reg;
#P comment 7 118 100 196617 bang to start seq ->;
#P window linecount 2;
#P comment 165 70 88 196617 click to initialize preset list;
#P window setfont “Sans Serif” 36.;
#P window linecount 1;
#P comment 466 270 59 196644 OR;
#P window setfont “Sans Serif” 18.;
#P comment 96 406 182 196626 1 3 , 4 5 , 2 6 , 7 8;
#P window setfont “Sans Serif” 12.;
#P comment 96 385 100 196620 sequence;
#P fasten 7 0 35 0 128 137 65 137;
#P connect 50 0 34 0;
#P connect 35 0 34 0;
#P connect 34 0 8 0;
#P connect 9 0 11 0;
#P connect 11 0 12 0;
#P connect 12 0 15 0;
#P fasten 8 0 9 0 65 261 104 261;
#P connect 34 1 7 0;
#P connect 7 0 5 0;
#P connect 5 0 10 0;
#P connect 10 0 9 1;
#P connect 5 0 47 0;
#P fasten 47 0 5 1 144 220 200 220 200 149 169 149;
#P connect 6 0 5 1;
#P connect 12 0 13 0;
#P connect 13 0 14 0;
#P connect 46 0 42 0;
#P connect 42 0 44 0;
#P connect 44 0 41 0;
#P connect 9 0 46 0;
#P connect 46 1 44 1;
#P connect 44 0 43 0;
#P connect 46 1 45 0;
#P connect 45 0 42 1;
#P connect 46 2 45 1;
#P connect 19 0 37 0;
#P connect 49 0 36 0;
#P connect 37 0 36 0;
#P connect 36 0 20 0;
#P fasten 20 0 21 0 566 252 604 252;
#P connect 21 0 23 0;
#P connect 23 0 24 0;
#P connect 24 0 27 0;
#P connect 36 1 19 0;
#P connect 19 0 17 0;
#P connect 17 0 22 0;
#P connect 22 0 21 1;
#P connect 17 0 48 0;
#P fasten 28 0 21 2 670 284 654 284;
#P fasten 48 0 17 1 650 218 710 218 710 150 670 150;
#P connect 18 0 17 1;
#P connect 22 1 28 0;
#P connect 24 0 25 0;
#P connect 25 0 26 0;
#P connect 40 0 32 0;
#P connect 32 0 38 0;
#P connect 38 0 31 0;
#P connect 21 0 40 0;
#P connect 40 1 38 1;
#P connect 38 0 33 0;
#P connect 40 1 39 0;
#P connect 39 0 32 1;
#P connect 40 2 39 1;
#P window clipboard copycount 52;

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

> From: eli

> Organization: Cycling ’74
> Reply-To:
> Date: Thu, 10 Apr 2008 21:26:50 -0600
> To:

> Subject: [maxmsp] interpolating between multiple patterns?
>
>
> is it possible to interpolate between more than 2 patterns using pattrstorage?
> If not is there another object that does this? I didn’t see this in the
> documentation. thank you.
> –
> http://www.myspace.com/theblackpeacock NOISE BIATCH!

#126654
Apr 11, 2008 at 2:43pm

Clarification…

Using the multislider in my example may be misleading. In a message like
recall 2 7 $1 the interpolation is between data stored in preset 2 and
preset 7. Interpolation DOES NOT pass through presets 3-6.

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

> From: Gary Lee Nelson
> Reply-To:
> Date: Fri, 11 Apr 2008 10:13:13 -0400
> To: Max

> Conversation: [maxmsp] interpolating between multiple patterns?
> Subject: Re: [maxmsp] interpolating between multiple patterns?
>
> This just a hint but if you understand the recall message for pattrstorage
> it should be clear. The left example assumes you want to specify pairs, the
> right shows a ramping kind of sequence.
>
> #P window setfont “Sans Serif” 9.;
> #P window linecount 1;
> #P comment 506 105 100 196617 bang to start seq ->;
> #P message 14 143 29 196617 stop;
> #P message 521 135 29 196617 stop;
> #P newex 645 194 49 196617 zl rot -1;
> #P newex 139 190 49 196617 zl rot -2;
> #P newex 284 346 128 196617 unpack 0. 0 0;
> #P newex 343 373 69 196617 !- 0.;
> #P newex 282 428 27 196617 + 0.;
> #P flonum 313 429 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 282 400 71 196617 * 0.;
> #P user multiSlider 282 457 93 74 0. 16. 1 3705 15 0 0 2 0 0 0;
> #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 newex 794 328 128 196617 unpack 0. 0 0;
> #P newex 853 355 69 196617 !- 0.;
> #P newex 792 410 27 196617 + 0.;
> #P message 561 135 59 196617 0. , 1 4000;
> #P newex 561 158 44 196617 line 50.;
> #P message 60 142 59 196617 0. , 1 4000;
> #P newex 60 165 44 196617 line 50.;
> #P flonum 823 411 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 792 382 71 196617 * 0.;
> #P user multiSlider 792 439 93 74 0. 16. 1 3705 15 0 0 2 0 0 0;
> #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 window setfont “Sans Serif” 18.;
> #P window linecount 2;
> #P comment 598 429 182 196626 1 3 , 3 4 , 4 5 , 5 2 , 2 6 , 6 7 , 7 8;
> #P window setfont “Sans Serif” 12.;
> #P window linecount 1;
> #P comment 598 408 100 196620 sequence;
> #P window setfont “Sans Serif” 9.;
> #P newex 665 259 51 196617 zl slice 1;
> #P newex 599 371 84 196617 s topattrstorage;
> #P message 694 395 89 196617 recall 1 3 0.315;
> #P newex 694 370 62 196617 prepend set;
> #P newex 599 340 74 196617 prepend recall;
> #P message 599 317 52 196617 $2 $3 $1;
> #P newex 624 230 51 196617 zl slice 1;
> #P newex 599 292 61 196617 pack 0. 0 0;
> #P flonum 561 229 35 9 0. 1. 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P button 624 103 15 0;
> #P message 665 122 70 196617 1 3 4 5 2 6 7;
> #P newex 624 167 51 196617 zl reg;
> #P window linecount 2;
> #P comment 665 89 88 196617 click to initialize preset list;
> #P window linecount 1;
> #P newex 98 348 84 196617 s topattrstorage;
> #P message 193 372 88 196617 recall 7 8 0.06;
> #P newex 193 347 62 196617 prepend set;
> #P newex 98 317 74 196617 prepend recall;
> #P message 98 294 52 196617 $2 $3 $1;
> #P newex 123 239 51 196617 zl slice 2;
> #P newex 99 268 60 196617 pack 0. 0 0;
> #P flonum 60 238 35 9 0. 1. 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P button 123 123 15 0;
> #P message 165 101 79 196617 1 3 4 5 2 6 7 8;
> #P newex 123 162 51 196617 zl reg;
> #P comment 7 118 100 196617 bang to start seq ->;
> #P window linecount 2;
> #P comment 165 70 88 196617 click to initialize preset list;
> #P window setfont “Sans Serif” 36.;
> #P window linecount 1;
> #P comment 466 270 59 196644 OR;
> #P window setfont “Sans Serif” 18.;
> #P comment 96 406 182 196626 1 3 , 4 5 , 2 6 , 7 8;
> #P window setfont “Sans Serif” 12.;
> #P comment 96 385 100 196620 sequence;
> #P fasten 7 0 35 0 128 137 65 137;
> #P connect 50 0 34 0;
> #P connect 35 0 34 0;
> #P connect 34 0 8 0;
> #P connect 9 0 11 0;
> #P connect 11 0 12 0;
> #P connect 12 0 15 0;
> #P fasten 8 0 9 0 65 261 104 261;
> #P connect 34 1 7 0;
> #P connect 7 0 5 0;
> #P connect 5 0 10 0;
> #P connect 10 0 9 1;
> #P connect 5 0 47 0;
> #P fasten 47 0 5 1 144 220 200 220 200 149 169 149;
> #P connect 6 0 5 1;
> #P connect 12 0 13 0;
> #P connect 13 0 14 0;
> #P connect 46 0 42 0;
> #P connect 42 0 44 0;
> #P connect 44 0 41 0;
> #P connect 9 0 46 0;
> #P connect 46 1 44 1;
> #P connect 44 0 43 0;
> #P connect 46 1 45 0;
> #P connect 45 0 42 1;
> #P connect 46 2 45 1;
> #P connect 19 0 37 0;
> #P connect 49 0 36 0;
> #P connect 37 0 36 0;
> #P connect 36 0 20 0;
> #P fasten 20 0 21 0 566 252 604 252;
> #P connect 21 0 23 0;
> #P connect 23 0 24 0;
> #P connect 24 0 27 0;
> #P connect 36 1 19 0;
> #P connect 19 0 17 0;
> #P connect 17 0 22 0;
> #P connect 22 0 21 1;
> #P connect 17 0 48 0;
> #P fasten 28 0 21 2 670 284 654 284;
> #P fasten 48 0 17 1 650 218 710 218 710 150 670 150;
> #P connect 18 0 17 1;
> #P connect 22 1 28 0;
> #P connect 24 0 25 0;
> #P connect 25 0 26 0;
> #P connect 40 0 32 0;
> #P connect 32 0 38 0;
> #P connect 38 0 31 0;
> #P connect 21 0 40 0;
> #P connect 40 1 38 1;
> #P connect 38 0 33 0;
> #P connect 40 1 39 0;
> #P connect 39 0 32 1;
> #P connect 40 2 39 1;
> #P window clipboard copycount 52;
>
>
> Cheers
> Gary Lee Nelson
> Oberlin College
> http://www.timara.oberlin.edu/GaryLeeNelson
>
>
>> From: eli

>> Organization: Cycling ’74
>> Reply-To:
>> Date: Thu, 10 Apr 2008 21:26:50 -0600
>> To:

>> Subject: [maxmsp] interpolating between multiple patterns?
>>
>>
>> is it possible to interpolate between more than 2 patterns using
>> pattrstorage?
>> If not is there another object that does this? I didn’t see this in the
>> documentation. thank you.
>> –
>> http://www.myspace.com/theblackpeacock NOISE BIATCH!
>
>

#126655
Apr 11, 2008 at 2:52pm

im sorry i dont think this is what i’m looking for. I need more like interpolating between 3 preset multislider positions at once. I’ll play with reset though.

#126656
Apr 11, 2008 at 3:01pm

you can use the recallmulti message. also you might like to check out my int.lib libary which has a step sequencer pattern morphing example.

http://www.olilarkin.co.uk

oli

#126657
Apr 11, 2008 at 3:17pm

Jermey can correct me but I don’t think you can interpolate three presets in
pattr. I think there may be other possibilities in Max. In one model of
quad mixing the position of joystick can determine how much of each signal
is used. I have such a thing on my old SY35 synth. Perhaps something like
this already exists for data in general.

The inputs would be
Where am I in the lists (0..1)
How much should each list contribute to the output (a multidimensional
“panner”)

Am I getting warm?

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

> From: eli

> Organization: Cycling ’74
> Reply-To:
> Date: Fri, 11 Apr 2008 08:52:43 -0600
> To:

> Subject: [maxmsp] Re: interpolating between multiple patterns?
>
>
> im sorry i dont think this is what i’m looking for. I need more like
> interpolating between 3 preset multislider positions at once. I’ll play with
> reset though.
> –
> http://www.myspace.com/theblackpeacock NOISE BIATCH!

#126658
Apr 11, 2008 at 3:33pm

For this type of multidimensional morphing, one option is the
tap.jit.ali object in Tap.Tools. This is what was used to create
Hipno’s preset morphing interface.

best,
Tim
____________________________________
Tap.Tools – Objects for Max, MSP, and Jitter

http://electrotap.com/taptoolsmax/

On 2008 Apr 11, at 10:17 AM, Gary Lee Nelson wrote:
> Jermey can correct me but I don’t think you can interpolate three
> presets in
> pattr. I think there may be other possibilities in Max. In one
> model of
> quad mixing the position of joystick can determine how much of each
> signal
> is used. I have such a thing on my old SY35 synth. Perhaps
> something like
> this already exists for data in general.
>
> The inputs would be
> Where am I in the lists (0..1)
> How much should each list contribute to the output (a
> multidimensional
> “panner”)
>
> Am I getting warm?
>
> Cheers
> Gary Lee Nelson
> Oberlin College
> http://www.timara.oberlin.edu/GaryLeeNelson
>
>
>> From: eli

>> Organization: Cycling ’74
>> Reply-To:
>> Date: Fri, 11 Apr 2008 08:52:43 -0600
>> To:

>> Subject: [maxmsp] Re: interpolating between multiple patterns?
>>
>>
>> im sorry i dont think this is what i’m looking for. I need more like
>> interpolating between 3 preset multislider positions at once. I’ll
>> play with
>> reset though.
>> –
>> http://www.myspace.com/theblackpeacock NOISE BIATCH!
>
>

#126659
Apr 11, 2008 at 3:38pm

On 11 avr. 08, at 17:17, Gary Lee Nelson wrote:

> Jermey can correct me but I don’t think you can interpolate three
> presets in
> pattr.

You can with the recallmulti message.

You may also have a look to my [mxj ej.linterp].

ej

#126660
Apr 11, 2008 at 3:58pm

I second “intlib” as well, it is great for doing that kind of
stuff.

#126661
Apr 11, 2008 at 5:41pm

mxj ej.linterp is the one!

> From: Emmanuel Jourdan
> Reply-To:
> Date: Fri, 11 Apr 2008 17:38:37 +0200
> To:

> Subject: Re: [maxmsp] Re: interpolating between multiple patterns?
>
> On 11 avr. 08, at 17:17, Gary Lee Nelson wrote:
>
>> Jermey can correct me but I don’t think you can interpolate three
>> presets in
>> pattr.
>
> You can with the recallmulti message.
>
> You may also have a look to my [mxj ej.linterp].
>
> ej
>

#126662
Apr 11, 2008 at 7:15pm

#126663
Apr 27, 2008 at 6:58pm

hey sorry to resurect this but could anyone just tell me how to format a recallmulti message?

thanks

#126664
Apr 27, 2008 at 7:08pm

On 27 avr. 08, at 20:58, eli wrote:

> hey sorry to resurect this but could anyone just tell me how to
> format a recallmulti message?

“The word recallmulti, followed by at least 2 numeric arguments,
permits weighted recall of multiple presets. Each argument determines
the (normalized) weight of a particular preset in the final output. If
the argument is an integer, the weight is 100%. If the argument is a
floating point number, the integer part of the number determines the
preset number, and the floating point part of the number determines
the weight. For instance, recallmulti 1.3 2.3 5.4 would weight preset
1 at 30%, preset 2 at 30% and preset 5 at 40%. Since weights are
normalized, the total weight can be higher than 100%; for instance,
recallmulti 1.5 3.5 6.8 would calculate correct weights (27.77%,
27.77% and 44.44% respectively), andrecallmulti 1 2 3, recallmulti 1.5
2.5 3.5 and recallmulti 1.99 2.99 3.99 all result in the same output
(33.33% for each member).”

ej

#126665
Apr 28, 2008 at 4:05pm

>
>> hey sorry to resurect this but could anyone just tell me how to
>> format a recallmulti message?
>
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P message 143 81 14 196617 3;
#P message 128 81 14 196617 2;
#P message 113 81 14 196617 1;
#P message 113 105 51 196617 recall $1;
#P message 92 81 14 196617 3;
#P message 77 81 14 196617 2;
#P message 62 81 14 196617 1;
#P message 62 105 49 196617 store $1;
#P newex 53 229 53 196617 autopattr;
#X prestore multi 4 0 0.066817 -0.103754 0.02731 -0.066717;
#P objectname u216000001;
#P user multiSlider 53 144 152 83 -1. 1. 4 2681 15 0 0 2 0 0 0;
#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 multi;
#P newex 29 61 97 196617 prepend recallmulti;
#P message 29 44 61 196617 1.2 2.3 3.5;
#P newex 62 123 144 196617 pattrstorage za @savemode 0;
#X client_rect 0 0 640 240;
#X storage_rect 0 0 640 240;
#P objectname za;
#P connect 12 0 9 0;
#P connect 11 0 9 0;
#P connect 10 0 9 0;
#P connect 5 0 0 0;
#P fasten 9 0 0 0 118 121 67 121;
#P connect 2 0 0 0;
#P connect 6 0 5 0;
#P connect 7 0 5 0;
#P connect 8 0 5 0;
#P connect 1 0 2 0;
#P window clipboard copycount 13;

#126666
Apr 2, 2013 at 1:44am

Hey dudes i have built my own max based multilist interpolator.
might help
check it
TG

– Pasted Max Patch, click to expand. –
#126667
Apr 2, 2013 at 10:33pm

Teb, your link doesn’t include your object, just what seems like its helpfile?

Also, it doesn’t look like it needs the add_2_lists object at all?

#126668
Apr 3, 2013 at 7:40am

Hey w-berg,
oops my object is called interpolate_lists, and i forgot i was using it as an abstraction not a patcher.
the first argument is how many lists.
interpolate_lists uses thispatcher script args to create multiple versions of add_2_lists so its needs to be in there.. attached is a version with interpolate_lists as a patcher to copy to your patches folder as well.
thanks
T

– Pasted Max Patch, click to expand. –
#126669
Apr 3, 2013 at 12:18pm

last try….

save the two sub patches in a max search folder…
let the good times roll!

T

#126670
Apr 3, 2013 at 12:19pm

doh

Attachments:
  1. interpolate.maxpat
#126671

You must be logged in to reply to this topic.