Stringing Multislider->pattr lists together?

Mar 17, 2007 at 9:33pm

Stringing Multislider->pattr lists together?

Hi all,

I am redesigning the core of my sequencing patch, and I feel like I’ve
run out of options in my Max vocabulary.

Here’s the deal:
128-member list of floats arrives via ethernet, is split and sent to:
|
8 16-member multisliders, each with their own section of the 128-member
list, *strung together* and sent to:
|
128-member list, going out via OSC over udpsend.

*How do I string these lists together in the best way? *
I noticed that if I get the data using [pattr @bindto MyMultisliders] I
get nicely formatted lists – but how to best stick all these lists
together to one? (in the right order, mind you ;) )

Thank you so much for your time,
Cheers,
Andreas

#30882
Mar 17, 2007 at 10:05pm

You could use 2 zl slices to get the section of the list that you want,
then send that to the multislider for that range, then send all of the
multisliders to

bondo 8 n
->
pack f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f
f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f

If you want less clobbering, I highly recommend using bondo 8 20 n,
where 20 is a 20 ms delay so that receiving the input list doesn’t
trigger 8 copies. (or you could use lchange in the lobjects)

Peter McCulloch

On Mar 17, 2007, at 5:33 PM, Andreas Wetterberg wrote:

> Hi all,
>
> I am redesigning the core of my sequencing patch, and I feel like I’ve
> run out of options in my Max vocabulary.
>
> Here’s the deal:
> 128-member list of floats arrives via ethernet, is split and sent to:
> |
> 8 16-member multisliders, each with their own section of the
> 128-member list, *strung together* and sent to:
> |
> 128-member list, going out via OSC over udpsend.
>
> *How do I string these lists together in the best way? *
> I noticed that if I get the data using [pattr @bindto MyMultisliders]
> I get nicely formatted lists – but how to best stick all these lists
> together to one? (in the right order, mind you ;) )
>
> Thank you so much for your time,
> Cheers,
> Andreas
>
>
http://www.petermcculloch.com

#99365
Mar 17, 2007 at 10:40pm

Peter McCulloch skrev:
> You could use 2 zl slices to get the section of the list that you
> want, then send that to the multislider for that range, then send all
> of the multisliders to
>
> bondo 8 n
> -> [...]
Thanks!
I decided to do some testing with this, and I found that for my needs
[bondo 8 n]-> [zl group 128] worked fine – really simple solution,
actually – the good ones are, arent’ they?

I had the [zl slice 16] down already, so the results look something like
this, (except that this is a 64-member version, but you get the idea) –
patch below.
Cheers

Andreas

#P window setfont “Sans Serif” 9.;
#P window linecount 2;
#P comment 740 514 100 9109513 ….And the re-packed list.;
#P comment 740 447 100 9109513 splits arrive here ( and you can draw
here too);
#P comment 738 376 100 9109513 splits arrive here ( and you can draw
here too);
#P comment 737 310 100 9109513 splits arrive here ( and you can draw
here too);
#P comment 737 253 100 9109513 splits arrive here ( and you can draw
here too);
#P user multiSlider 279 502 454 56 0. 1. 64 2937 15 0 0 2 8 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 tset_sliders[5];
#P window linecount 1;
#P newex 218 582 76 9109513 prepend /tset2/x;
#P newex 218 607 128 9109513 udpsend 192.168.1.101 8000;
#P newex 218 525 53 9109513 zl group 64;
#P newex 218 496 55 9109513 bondo 4 n;
#P user multiSlider 279 434 456 59 0. 1. 16 2681 47 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 tset_sliders[4];
#P user multiSlider 279 366 456 59 0. 1. 16 2681 47 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 tset_sliders[3];
#P user multiSlider 279 298 456 59 0. 1. 16 2681 47 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 tset_sliders[2];
#P user multiSlider 279 230 456 59 0. 1. 16 2681 47 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 tset_sliders[1];
#P newex 172 405 49 9109513 zl slice 16;
#P newex 172 336 49 9109513 zl slice 16;
#P newex 172 267 49 9109513 zl slice 16;
#P newex 172 198 49 9109513 zl slice 16;
#P newex 140 167 115 9109513 pattr @bindto tset_sliders;
#X prestore 64 0 0.070175 0.122807 0.175439 0.22807 0.333333 0.368421
0.403509 0.45614 0.508772 0.549708 0.590643 0.631579 0.662281 0.692982
0.723684 0.754386 0.777778 0.80117 0.824561 0.833333 0.842105 0.850877
0.859649 0.868421 0.877193 0.885965 0.894737 0.912281 0.929825 0.947368
0.947368 0.947368 0.947368 0.947368 0.947368 0.947368 0.947368 0.894737
0.666667 0.491228 0.333333;
#X prestore 64 41 0.157895 0. 0. 0. 0.877193 0.824561 0.798246 0.77193
0.710526 0.649123 0.596491 0.54386 0.508772 0.473684 0.438596 0.397661
0.356725 0.315789 0.292398 0.269006 0.245614 0.210526 0.175439;
#P objectname u032000008;
#P user multiSlider 279 162 457 59 0. 1. 64 2937 15 0 0 2 8 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 tset_sliders;
#P window setfont “Sans Serif” 9.;
#P newex 140 145 30 196617 r tset;
#P window setfont “Sans Serif” 9.;
#P window linecount 2;
#P comment 739 177 100 9109513 draw with mouse here….;
#P connect 13 0 15 0;
#P fasten 13 0 16 0 223 560 277 560 277 498 284 498;
#P fasten 8 0 12 3 284 297 268 297;
#P fasten 9 0 12 2 284 359 253 359;
#P fasten 10 0 12 1 284 421 238 421;
#P fasten 11 0 12 0 284 491 223 491;
#P fasten 7 0 11 0 177 427 284 427;
#P connect 6 1 7 0;
#P fasten 6 0 10 0 177 365 284 365;
#P connect 5 1 6 0;
#P fasten 5 0 9 0 177 292 284 292;
#P connect 4 1 5 0;
#P fasten 3 0 4 0 145 192 177 192;
#P fasten 4 0 8 0 177 223 284 223;
#P fasten 12 0 13 0 223 520 223 520;
#P fasten 12 1 13 0 238 520 223 520;
#P fasten 12 2 13 0 253 520 223 520;
#P fasten 12 3 13 0 268 520 223 520;
#P connect 15 0 14 0;
#P connect 1 0 3 0;
#P window clipboard copycount 22;

#99366
Mar 19, 2007 at 6:37pm

That’s cool, I did a similar thing a bit ago but used some javascript to extend the lists past 256 (just to see if I could do some code more than anything). 256 is a lot of points though, especially when it’s changing via pattr.

Changing the zl group number to something other than 64 gives some pretty dynamic and interesting results too, as the groupings don’t line up with the multislider exactly and the list shuffles around. A zl rot on the last list, maybe with a couter for auto-rotate, is neat… and if you don’t want it, you can still have it available, just with a rotation of 0.

–CJ

#99367
Mar 20, 2007 at 11:17am

andreas,

ur patch seems to glu the lists back in the wrong order on my machine… (unless that’s what you wanted)

i was getting the first 16 block shifted + 48 steps. it should be put back in the first 16 steps when reassembled in the last multislider?

i swapped bondo with trigger and zl join to glu the 4×16 patterns back in the proper order… ; )

j

#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P newex 244 514 27 196617 t b l;
#P newex 216 514 27 196617 t b l;
#P newex 188 514 27 196617 t b l;
#P newex 155 623 116 196617 zl join;
#P newex 155 574 88 196617 zl join;
#P newex 155 545 60 196617 zl join;
#P window linecount 2;
#P comment 740 514 100 196617 ….And the re-packed list.;
#P comment 740 447 119 196617 splits arrive here ( and you can draw here too);
#P comment 738 376 119 196617 splits arrive here ( and you can draw here too);
#P comment 737 310 119 196617 splits arrive here ( and you can draw here too);
#P comment 737 253 119 196617 splits arrive here ( and you can draw here too);
#P user multiSlider 279 502 454 56 0. 1. 64 2937 15 0 0 2 8 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 tset_sliders[5];
#P window linecount 1;
#P newex 126 711 95 196617 prepend /tset2/x;
#P newex 126 736 152 196617 udpsend 192.168.1.101 8000;
#P user multiSlider 279 434 456 59 0. 1. 16 2681 47 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 tset_sliders[4];
#P user multiSlider 279 366 456 59 0. 1. 16 2681 47 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 tset_sliders[3];
#P user multiSlider 279 298 456 59 0. 1. 16 2681 47 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 tset_sliders[2];
#P user multiSlider 279 230 456 59 0. 1. 16 2681 47 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 tset_sliders[1];
#P newex 172 405 63 196617 zl slice 16;
#P newex 171 333 63 196617 zl slice 16;
#P newex 177 258 63 196617 zl slice 16;
#P newex 172 198 63 196617 zl slice 16;
#P newex 140 167 134 196617 pattr @bindto tset_sliders;
#X prestore 64 0 1. 0.824561 0.719298 0.684211 0.666667 0.561404 0.508772 0.473684 0.45614 0.421053 0.368421 0.315789 0.263158 0.245614 0.22807 0.210526 0.192982 0.157895 0.140351 0.140351 0.140351 0.122807 0.087719 0.070175 0.070175 0.070175 0.070175 0.070175 0.052632 0.052632 0.052632 0.035088 0.035088 0.035088 0. 0. 0. 0. 0. 0. 0.;
#X prestore 64 41 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.;
#P objectname u613000002;
#P user multiSlider 279 162 457 59 0. 1. 64 2937 15 0 0 2 8 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 tset_sliders;
#P newex 140 145 44 196617 r tset;
#P window linecount 2;
#P comment 739 177 100 196617 draw with mouse here….;
#P connect 22 0 13 0;
#P connect 25 0 22 0;
#P connect 25 1 22 1;
#P connect 11 0 25 0;
#P connect 24 1 21 1;
#P connect 24 0 21 0;
#P connect 10 0 24 0;
#P connect 23 0 20 0;
#P connect 23 1 20 1;
#P connect 9 0 23 0;
#P connect 8 0 20 0;
#P connect 21 0 22 0;
#P connect 20 0 21 0;
#P connect 1 0 3 0;
#P connect 13 0 12 0;
#P fasten 4 0 8 0 177 223 284 223;
#P fasten 3 0 4 0 145 192 177 192;
#P connect 4 1 5 0;
#P fasten 5 0 9 0 182 292 284 292;
#P connect 5 1 6 0;
#P fasten 6 0 10 0 176 365 284 365;
#P connect 6 1 7 0;
#P fasten 7 0 11 0 177 427 284 427;
#P window clipboard copycount 26;

#99368
Mar 20, 2007 at 12:06pm

Andreas Wetterberg schrieb:
> I decided to do some testing with this, and I found that for my needs
> [bondo 8 n]-> [zl group 128] worked fine – really simple solution,
> actually – the good ones are, arent’ they?

You could also have a look at my paker abhaXion, it’s based on zl join,
and thus would work with lists as well…

Stefan


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

#99369
Mar 20, 2007 at 8:56pm

Quote: justin wrote on Tue, 20 March 2007 12:17
—————————————————-
> andreas,
>
> ur patch seems to glu the lists back in the wrong order on my machine… (unless that’s what you wanted)
>
> i was getting the first 16 block shifted + 48 steps. it should be put back in the first 16 steps when reassembled in the last multislider?
>
> i swapped bondo with trigger and zl join to glu the 4×16 patterns back in the proper order… ; )
>
> j
>
Thanks – oddly it seems to work here. YMMV, inded :)
Andreas

#99370
Mar 20, 2007 at 8:58pm

Quote: Stefan Tiedje wrote on Tue, 20 March 2007 13:06
—————————————————-
> Andreas Wetterberg schrieb:
> > I decided to do some testing with this, and I found that for my needs
> > [bondo 8 n]-> [zl group 128] worked fine – really simple solution,
> > actually – the good ones are, arent’ they?
>
> You could also have a look at my paker abhaXion, it’s based on zl join,
> and thus would work with lists as well…
Thanks! These kinds of abstractions are really cool, and I honestly haven’t even taken more than a little peek inside S.Tools. I definitely will now!

Andreas.

#99371

You must be logged in to reply to this topic.