Forums > MaxMSP

multiple instances of COUNTER

October 18, 2006 | 12:26 pm

Hello all,

I have been teaching myself max/msp since jan 2005 (noobie alert). This is my first post to the list so…here goes..

I am creating a GUI to control the panning of multiple channels of audio in an 8 speaker setup. Each channel has a dial which, when triggered by a keystroke, starts/stops rotating through 360 degrees (the speed of this rotation is user defined).

It all works except…

I am using multiple instances of COUNTER to drive the 8 dials. These are located in a subpatch. When just one dial is rotating there are no problems. As soon as I turn on a second dial they both rotate at a slower rate than the speed i have defined. If I then turn on a third dial, all three rotate at an even slower rate. Also, the dials no longer rotate ‘smoothly’.

i have tested the counter objects in a new patch window and it seems that I simply can’t run multiple instances of counter in the same patch without them disrupting each others rate/’smoothness’. Is this the case? If so, what are my alternatives?

I have included a copy of the GUI patch below so you can see the problem for yourselves. If you need further info let me know.

Any help you can give me is greatly appreciated.

bests,

nick

max v2;
#N vpatcher 26 50 978 717;
#P origin 16 -23;
#P user led 44 31 17 17 1 150;
#P user led 147 31 17 17 1 150;
#P user led 246 31 17 17 1 150;
#P user led 345 186 17 17 1 150;
#P user led 44 186 17 17 1 150;
#P user led 147 186 17 17 1 150;
#P user led 246 186 17 17 1 150;
#P user led 345 31 17 17 1 150;
#P window setfont "Sans Serif" 9.;
#P number 336 231 35 9 1 0 33 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 237 231 35 9 1 0 33 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 138 231 35 9 1 0 33 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 35 231 35 9 1 0 33 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 336 76 35 9 1 0 33 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 237 76 35 9 1 0 33 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 138 76 35 9 1 0 33 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 35 76 35 9 1 0 33 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N vpatcher 441 339 1083 629;
#N comlet (int) count speed;
#P inlet 545 113 15 0;
#N comlet (int) current position;
#P outlet 110 157 15 0;
#N comlet (int) current position;
#P outlet 170 157 15 0;
#N comlet (int) current position;
#P outlet 230 157 15 0;
#N comlet (int) current position;
#P outlet 290 157 15 0;
#N comlet (int) current position;
#P outlet 350 157 15 0;
#N comlet (int) current position;
#P outlet 410 157 15 0;
#N comlet (int) current position;
#P outlet 470 157 15 0;
#N comlet (int) count speed;
#P inlet 485 113 15 0;
#N comlet (int) count speed;
#P inlet 425 113 15 0;
#N comlet (int) count speed;
#P inlet 365 113 15 0;
#N comlet (int) count speed;
#P inlet 305 113 15 0;
#N comlet (int) count speed;
#P inlet 245 113 15 0;
#N comlet (int) count speed;
#P inlet 185 113 15 0;
#N comlet (int) count speed;
#P inlet 125 113 15 0;
#P window setfont "Sans Serif" 9.;
#N vpatcher 555 555 955 855;
#N comlet (tog) on/off indicator;
#P outlet 296 86 15 0;
#N comlet (int) count speed;
#P inlet 131 45 15 0;
#N comlet (int) current position;
#P outlet 90 174 15 0;
#N comlet (int 0 , 1 , 2) dir: up/down/updown;
#P inlet 153 44 15 0;
#P window setfont "Sans Serif" 9.;
#P number 90 136 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N counter 0 0 360;
#X flags 0 0;
#P newobj 90 106 263 196617 counter 0 0 360;
#P newex 90 84 51 196617 metro 50;
#P toggle 90 65 15 0;
#N comlet (bang) start counter;
#P inlet 90 45 15 0;
#P connect 0 0 1 0;
#P connect 1 0 2 0;
#P connect 2 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 6 0;
#P connect 7 0 2 1;
#P connect 5 0 3 1;
#P fasten 1 0 8 0 95 81 301 81;
#P pop;
#P newobj 110 134 41 196617 p count;
#P newex 110 79 324 196617 select 49 113 50 119 51 101 52 114 53 116 54 121 55 117 56 105;
#P number 110 54 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 110 20 40 196617 key;
#N comlet (int) current position;
#P outlet 530 157 15 0;
#N vpatcher 555 555 955 855;
#N comlet (tog) on/off indicator;
#P outlet 296 86 15 0;
#N comlet (int) count speed;
#P inlet 131 45 15 0;
#N comlet (int) current position;
#P outlet 90 174 15 0;
#N comlet (int 0 , 1 , 2) dir: up/down/updown;
#P inlet 153 44 15 0;
#P window setfont "Sans Serif" 9.;
#P number 90 136 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N counter 0 0 360;
#X flags 0 0;
#P newobj 90 106 263 196617 counter 0 0 360;
#P newex 90 84 51 196617 metro 50;
#P toggle 90 65 15 0;
#N comlet (bang) start counter;
#P inlet 90 45 15 0;
#P connect 0 0 1 0;
#P connect 1 0 2 0;
#P connect 2 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 6 0;
#P connect 7 0 2 1;
#P connect 5 0 3 1;
#P fasten 1 0 8 0 95 81 301 81;
#P pop;
#P newobj 170 134 41 196617 p count;
#N vpatcher 555 555 955 855;
#N comlet (tog) on/off indicator;
#P outlet 296 86 15 0;
#N comlet (int) count speed;
#P inlet 131 45 15 0;
#N comlet (int) current position;
#P outlet 90 174 15 0;
#N comlet (int 0 , 1 , 2) dir: up/down/updown;
#P inlet 153 44 15 0;
#P window setfont "Sans Serif" 9.;
#P number 90 136 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N counter 0 0 360;
#X flags 0 0;
#P newobj 90 106 263 196617 counter 0 0 360;
#P newex 90 84 51 196617 metro 50;
#P toggle 90 65 15 0;
#N comlet (bang) start counter;
#P inlet 90 45 15 0;
#P connect 0 0 1 0;
#P connect 1 0 2 0;
#P connect 2 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 6 0;
#P connect 7 0 2 1;
#P connect 5 0 3 1;
#P fasten 1 0 8 0 95 81 301 81;
#P pop;
#P newobj 230 134 41 196617 p count;
#N vpatcher 555 555 955 855;
#N comlet (tog) on/off indicator;
#P outlet 296 86 15 0;
#N comlet (int) count speed;
#P inlet 131 45 15 0;
#N comlet (int) current position;
#P outlet 90 174 15 0;
#N comlet (int 0 , 1 , 2) dir: up/down/updown;
#P inlet 153 44 15 0;
#P window setfont "Sans Serif" 9.;
#P number 90 136 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N counter 0 0 360;
#X flags 0 0;
#P newobj 90 106 263 196617 counter 0 0 360;
#P newex 90 84 51 196617 metro 50;
#P toggle 90 65 15 0;
#N comlet (bang) start counter;
#P inlet 90 45 15 0;
#P connect 0 0 1 0;
#P connect 1 0 2 0;
#P connect 2 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 6 0;
#P connect 7 0 2 1;
#P connect 5 0 3 1;
#P fasten 1 0 8 0 95 81 301 81;
#P pop;
#P newobj 290 134 41 196617 p count;
#N vpatcher 555 555 955 855;
#N comlet (tog) on/off indicator;
#P outlet 296 86 15 0;
#N comlet (int) count speed;
#P inlet 131 45 15 0;
#N comlet (int) current position;
#P outlet 90 174 15 0;
#N comlet (int 0 , 1 , 2) dir: up/down/updown;
#P inlet 153 44 15 0;
#P window setfont "Sans Serif" 9.;
#P number 90 136 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N counter 0 0 360;
#X flags 0 0;
#P newobj 90 106 263 196617 counter 0 0 360;
#P newex 90 84 51 196617 metro 50;
#P toggle 90 65 15 0;
#N comlet (bang) start counter;
#P inlet 90 45 15 0;
#P connect 0 0 1 0;
#P connect 1 0 2 0;
#P connect 2 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 6 0;
#P connect 7 0 2 1;
#P connect 5 0 3 1;
#P fasten 1 0 8 0 95 81 301 81;
#P pop;
#P newobj 350 134 41 196617 p count;
#N vpatcher 555 555 955 855;
#N comlet (tog) on/off indicator;
#P outlet 296 86 15 0;
#N comlet (int) count speed;
#P inlet 131 45 15 0;
#N comlet (int) current position;
#P outlet 90 174 15 0;
#N comlet (int 0 , 1 , 2) dir: up/down/updown;
#P inlet 153 44 15 0;
#P window setfont "Sans Serif" 9.;
#P number 90 136 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N counter 0 0 360;
#X flags 0 0;
#P newobj 90 106 263 196617 counter 0 0 360;
#P newex 90 84 51 196617 metro 50;
#P toggle 90 65 15 0;
#N comlet (bang) start counter;
#P inlet 90 45 15 0;
#P connect 0 0 1 0;
#P connect 1 0 2 0;
#P connect 2 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 6 0;
#P connect 7 0 2 1;
#P connect 5 0 3 1;
#P fasten 1 0 8 0 95 81 301 81;
#P pop;
#P newobj 410 134 41 196617 p count;
#N vpatcher 555 555 955 855;
#N comlet (tog) on/off indicator;
#P outlet 296 86 15 0;
#N comlet (int) count speed;
#P inlet 131 45 15 0;
#N comlet (int) current position;
#P outlet 90 174 15 0;
#N comlet (int 0 , 1 , 2) dir: up/down/updown;
#P inlet 153 44 15 0;
#P window setfont "Sans Serif" 9.;
#P number 90 136 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N counter 0 0 360;
#X flags 0 0;
#P newobj 90 106 263 196617 counter 0 0 360;
#P newex 90 84 51 196617 metro 50;
#P toggle 90 65 15 0;
#N comlet (bang) start counter;
#P inlet 90 45 15 0;
#P connect 0 0 1 0;
#P connect 1 0 2 0;
#P connect 2 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 6 0;
#P connect 7 0 2 1;
#P connect 5 0 3 1;
#P fasten 1 0 8 0 95 81 301 81;
#P pop;
#P newobj 470 134 41 196617 p count;
#N vpatcher 555 555 955 855;
#N comlet (tog) on/off indicator;
#P outlet 296 86 15 0;
#N comlet (int) count speed;
#P inlet 131 45 15 0;
#N comlet (int) current position;
#P outlet 90 174 15 0;
#N comlet (int 0 , 1 , 2) dir: up/down/updown;
#P inlet 153 44 15 0;
#P window setfont "Sans Serif" 9.;
#P number 90 136 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N counter 0 0 360;
#X flags 0 0;
#P newobj 90 106 263 196617 counter 0 0 360;
#P newex 90 84 51 196617 metro 50;
#P toggle 90 65 15 0;
#N comlet (bang) start counter;
#P inlet 90 45 15 0;
#P connect 0 0 1 0;
#P connect 1 0 2 0;
#P connect 2 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 6 0;
#P connect 7 0 2 1;
#P connect 5 0 3 1;
#P fasten 1 0 8 0 95 81 301 81;
#P pop;
#P newobj 530 134 41 196617 p count;
#N comlet (tog) on/off indicator;
#P outlet 561 157 15 0;
#N comlet (tog) on/off indicator;
#P outlet 501 157 15 0;
#N comlet (tog) on/off indicator;
#P outlet 441 157 15 0;
#N comlet (tog) on/off indicator;
#P outlet 381 157 15 0;
#N comlet (tog) on/off indicator;
#P outlet 321 157 15 0;
#N comlet (tog) on/off indicator;
#P outlet 261 157 15 0;
#N comlet (tog) on/off indicator;
#P outlet 201 157 15 0;
#N comlet (tog) on/off indicator;
#P outlet 141 157 15 0;
#P connect 16 0 17 0;
#P connect 17 0 18 0;
#P connect 18 0 19 0;
#P connect 19 0 33 0;
#P connect 20 0 19 1;
#P connect 18 1 19 2;
#P connect 19 1 0 0;
#P connect 18 2 14 0;
#P connect 14 0 32 0;
#P connect 21 0 14 1;
#P connect 18 3 14 2;
#P connect 14 1 1 0;
#P connect 18 4 13 0;
#P connect 13 0 31 0;
#P connect 22 0 13 1;
#P connect 18 5 13 2;
#P connect 13 1 2 0;
#P connect 18 6 12 0;
#P connect 12 0 30 0;
#P connect 23 0 12 1;
#P connect 18 7 12 2;
#P connect 12 1 3 0;
#P connect 18 8 11 0;
#P connect 11 0 29 0;
#P connect 24 0 11 1;
#P connect 18 9 11 2;
#P connect 11 1 4 0;
#P connect 18 10 10 0;
#P connect 10 0 28 0;
#P connect 25 0 10 1;
#P connect 18 11 10 2;
#P connect 10 1 5 0;
#P connect 18 12 9 0;
#P connect 9 0 27 0;
#P connect 26 0 9 1;
#P connect 18 13 9 2;
#P connect 9 1 6 0;
#P connect 18 14 8 0;
#P connect 8 0 15 0;
#P connect 34 0 8 1;
#P connect 18 15 8 2;
#P connect 8 1 7 0;
#P pop;
#P hidden newobj 436 131 335 196617 patcher keyGUI;
#P window setfont "Sans Serif" 20.;
#P comment 344 203 21 196628 8;
#P comment 245 203 21 196628 7;
#P comment 145 203 21 196628 6;
#P comment 43 203 21 196628 5;
#P comment 343 48 21 196628 4;
#P comment 244 48 21 196628 3;
#P comment 145 48 21 196628 2;
#N comlet (sig) output 8/1;
#P hidden outlet 564 588 15 0;
#N comlet (sig) output 8/2;
#P hidden outlet 584 588 15 0;
#N comlet (sig) output 8/3;
#P hidden outlet 604 588 15 0;
#N comlet (sig) output 8/4;
#P hidden outlet 624 588 15 0;
#N comlet (sig) output 8/5;
#P hidden outlet 644 588 15 0;
#N comlet (sig) output 8/6;
#P hidden outlet 664 588 15 0;
#N comlet (sig) output 8/7;
#P hidden outlet 684 588 15 0;
#N comlet (sig) output 8/8;
#P hidden outlet 704 588 15 0;
#P user uslider 389 186 18 128 128 1 0 0;
#N comlet (sig) input 8;
#P hidden inlet 540 505 15 0;
#P window setfont "Sans Serif" 9.;
#P hidden newex 564 525 39 196617 / 360.;
#P hidden flonum 635 525 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P hidden newex 635 505 33 196617 / 64.;
#P hidden number 336 311 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user dial 334 270 40 40 361 1 0 0 7 0 0 0 224 232 0 0 0 0 42 42 42 255 255 255 0 0 0 0 0 0;
#P hidden newex 564 545 155 196617 multiouts~ 8;
#N comlet (sig) output 7/1;
#P hidden outlet 389 588 15 0;
#N comlet (sig) output 7/2;
#P hidden outlet 409 588 15 0;
#N comlet (sig) output 7/3;
#P hidden outlet 429 588 15 0;
#N comlet (sig) output 7/4;
#P hidden outlet 449 588 15 0;
#N comlet (sig) output 7/5;
#P hidden outlet 469 588 15 0;
#N comlet (sig) output 7/6;
#P hidden outlet 489 588 15 0;
#N comlet (sig) output 7/7;
#P hidden outlet 509 588 15 0;
#N comlet (sig) output 7/8;
#P hidden outlet 529 588 15 0;
#P user uslider 290 186 18 128 128 1 0 0;
#N comlet (sig) input 7;
#P hidden inlet 365 505 15 0;
#P hidden newex 389 525 39 196617 / 360.;
#P hidden flonum 482 525 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P hidden newex 482 505 33 196617 / 64.;
#P hidden number 237 311 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user dial 235 270 40 40 361 1 0 0 7 0 0 0 224 232 0 0 0 0 42 42 42 255 255 255 0 0 0 0 0 0;
#P hidden newex 389 545 155 196617 multiouts~ 8;
#N comlet (sig) output 6/1;
#P hidden outlet 212 588 15 0;
#N comlet (sig) output 6/2;
#P hidden outlet 232 588 15 0;
#N comlet (sig) output 6/3;
#P hidden outlet 252 588 15 0;
#N comlet (sig) output 6/4;
#P hidden outlet 272 588 15 0;
#N comlet (sig) output 6/5;
#P hidden outlet 292 588 15 0;
#N comlet (sig) output 6/6;
#P hidden outlet 312 588 15 0;
#N comlet (sig) output 6/7;
#P hidden outlet 332 588 15 0;
#N comlet (sig) output 6/8;
#P hidden outlet 352 588 15 0;
#P user uslider 191 186 18 128 128 1 0 0;
#N comlet (sig) input 6;
#P hidden inlet 188 505 15 0;
#P hidden newex 212 525 39 196617 / 360.;
#P hidden flonum 283 525 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P hidden newex 283 505 33 196617 / 64.;
#P hidden number 138 311 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user dial 136 270 40 40 361 1 0 0 7 0 0 0 224 232 0 0 0 0 42 42 42 255 255 255 0 0 0 0 0 0;
#P hidden newex 212 545 155 196617 multiouts~ 8;
#N comlet (sig) output 5/1;
#P hidden outlet 37 588 15 0;
#N comlet (sig) output 5/2;
#P hidden outlet 57 588 15 0;
#N comlet (sig) output 5/3;
#P hidden outlet 77 588 15 0;
#N comlet (sig) output 5/4;
#P hidden outlet 97 588 15 0;
#N comlet (sig) output 5/5;
#P hidden outlet 117 588 15 0;
#N comlet (sig) output 5/6;
#P hidden outlet 137 588 15 0;
#N comlet (sig) output 5/7;
#P hidden outlet 157 588 15 0;
#N comlet (sig) output 5/8;
#P hidden outlet 177 588 15 0;
#P user uslider 88 186 18 128 128 1 0 0;
#N comlet (sig) input 5;
#P hidden inlet 13 505 15 0;
#P hidden newex 37 525 39 196617 / 360.;
#P hidden flonum 108 525 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P hidden newex 108 505 33 196617 / 64.;
#P hidden number 35 311 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user dial 33 270 40 40 361 1 0 0 7 0 0 0 224 232 0 0 0 0 42 42 42 255 255 255 0 0 0 0 0 0;
#P hidden newex 37 545 155 196617 multiouts~ 8;
#N comlet (sig) output 4/1;
#P hidden outlet 564 462 15 0;
#N comlet (sig) output 4/2;
#P hidden outlet 584 462 15 0;
#N comlet (sig) output 4/3;
#P hidden outlet 604 462 15 0;
#N comlet (sig) output 4/4;
#P hidden outlet 624 462 15 0;
#N comlet (sig) output 4/5;
#P hidden outlet 644 462 15 0;
#N comlet (sig) output 4/6;
#P hidden outlet 664 462 15 0;
#N comlet (sig) output 4/7;
#P hidden outlet 684 462 15 0;
#N comlet (sig) output 4/8;
#P hidden outlet 704 462 15 0;
#P user uslider 389 31 18 128 128 1 0 0;
#N comlet (sig) input 4;
#P hidden inlet 540 388 15 0;
#P hidden newex 564 408 39 196617 / 360.;
#P hidden flonum 635 408 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P hidden newex 635 388 33 196617 / 64.;
#P hidden number 336 156 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user dial 334 115 40 40 361 1 0 0 7 0 0 0 224 232 0 0 0 0 42 42 42 255 255 255 0 0 0 0 0 0;
#P hidden newex 564 428 155 196617 multiouts~ 8;
#N comlet (sig) output 3/1;
#P hidden outlet 389 462 15 0;
#N comlet (sig) output 3/2;
#P hidden outlet 409 462 15 0;
#N comlet (sig) output 3/3;
#P hidden outlet 429 462 15 0;
#N comlet (sig) output 3/4;
#P hidden outlet 449 462 15 0;
#N comlet (sig) output 3/5;
#P hidden outlet 469 462 15 0;
#N comlet (sig) output 3/6;
#P hidden outlet 489 462 15 0;
#N comlet (sig) output 3/7;
#P hidden outlet 509 462 15 0;
#N comlet (sig) output 3/8;
#P hidden outlet 529 462 15 0;
#P user uslider 290 31 18 128 128 1 0 0;
#N comlet (sig) input 3;
#P hidden inlet 365 388 15 0;
#P hidden newex 389 408 39 196617 / 360.;
#P hidden flonum 460 408 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P hidden newex 460 388 33 196617 / 64.;
#P hidden number 237 156 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user dial 235 115 40 40 361 1 0 0 7 0 0 0 224 232 0 0 0 0 42 42 42 255 255 255 0 0 0 0 0 0;
#P hidden newex 389 428 155 196617 multiouts~ 8;
#N comlet (sig) output 2/1;
#P hidden outlet 212 462 15 0;
#N comlet (sig) output 2/2;
#P hidden outlet 232 462 15 0;
#N comlet (sig) output 2/3;
#P hidden outlet 252 462 15 0;
#N comlet (sig) output 2/4;
#P hidden outlet 272 462 15 0;
#N comlet (sig) output 2/5;
#P hidden outlet 292 462 15 0;
#N comlet (sig) output 2/6;
#P hidden outlet 312 462 15 0;
#N comlet (sig) output 2/7;
#P hidden outlet 332 462 15 0;
#N comlet (sig) output 2/8;
#P hidden outlet 352 462 15 0;
#P user uslider 191 31 18 128 128 1 0 0;
#N comlet (sig) input 2;
#P hidden inlet 188 388 15 0;
#P hidden newex 212 408 39 196617 / 360.;
#P hidden flonum 283 408 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P hidden newex 283 388 33 196617 / 64.;
#P hidden number 138 156 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user dial 136 115 40 40 361 1 0 0 7 0 0 0 224 232 0 0 0 0 42 42 42 255 255 255 0 0 0 0 0 0;
#P hidden newex 212 428 155 196617 multiouts~ 8;
#N comlet (sig) output 1/1;
#P hidden outlet 37 462 15 0;
#N comlet (sig) output 1/2;
#P hidden outlet 57 462 15 0;
#N comlet (sig) output 1/3;
#P hidden outlet 77 462 15 0;
#N comlet (sig) output 1/4;
#P hidden outlet 97 462 15 0;
#N comlet (sig) output 1/5;
#P hidden outlet 117 462 15 0;
#N comlet (sig) output 1/6;
#P hidden outlet 137 462 15 0;
#N comlet (sig) output 1/7;
#P hidden outlet 157 462 15 0;
#N comlet (sig) output 1/8;
#P hidden outlet 177 462 15 0;
#P user uslider 88 31 18 128 128 1 0 0;
#N comlet (sig) input 1;
#P hidden inlet 13 388 15 0;
#P hidden newex 37 408 39 196617 / 360.;
#P hidden flonum 108 408 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P hidden newex 108 388 33 196617 / 64.;
#P hidden number 35 156 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user dial 33 115 40 40 361 1 0 0 7 0 0 0 224 232 0 0 0 0 42 42 42 255 255 255 0 0 0 0 0 0;
#P hidden newex 37 428 155 196617 multiouts~ 8;
#P window setfont "Sans Serif" 20.;
#P comment 42 48 21 196628 1;
#P user panel 15 26 396 308;
#X brgb 251 102 13;
#X frgb 0 0 0;
#X border 3;
#X rounded 0;
#X shadow 0;
#X done;
#P window setfont "Sans Serif" 9.;
#P comment 599 222 141 196617 use numerical keys 1 – 8 to turn the dials on/off. keys Q , W , E , R , T , Y , U , I to change direction of rotation (eg. Q changes direction of pot1 , W changes pot2 etc.);
#P hidden connect 138 0 4 0;
#P hidden connect 138 8 68 0;
#P hidden connect 4 0 5 0;
#P hidden connect 68 0 69 0;
#P hidden connect 5 0 8 0;
#P hidden connect 9 0 3 0;
#P hidden connect 3 0 18 0;
#P hidden connect 69 0 72 0;
#P hidden connect 73 0 67 0;
#P hidden connect 67 0 82 0;
#P hidden connect 138 1 154 0;
#P hidden connect 138 9 150 0;
#P hidden connect 3 1 17 0;
#P hidden connect 67 1 81 0;
#P hidden connect 3 2 16 0;
#P hidden connect 67 2 80 0;
#P hidden connect 8 0 3 1;
#P hidden connect 72 0 67 1;
#P hidden connect 3 3 15 0;
#P hidden connect 67 3 79 0;
#P hidden connect 10 0 6 0;
#P hidden connect 6 0 7 0;
#P hidden connect 74 0 70 0;
#P hidden connect 70 0 71 0;
#P hidden connect 3 4 14 0;
#P hidden connect 67 4 78 0;
#P hidden connect 7 0 3 2;
#P hidden connect 71 0 67 2;
#P hidden connect 138 2 20 0;
#P hidden connect 138 10 84 0;
#P hidden connect 3 5 13 0;
#P hidden connect 67 5 77 0;
#P hidden connect 20 0 21 0;
#P hidden connect 84 0 85 0;
#P hidden connect 138 3 153 0;
#P hidden connect 138 11 149 0;
#P hidden connect 3 6 12 0;
#P hidden connect 67 6 76 0;
#P hidden connect 3 7 11 0;
#P hidden connect 67 7 75 0;
#P hidden connect 21 0 24 0;
#P hidden connect 25 0 19 0;
#P hidden connect 19 0 34 0;
#P hidden connect 85 0 88 0;
#P hidden connect 89 0 83 0;
#P hidden connect 83 0 98 0;
#P hidden connect 19 1 33 0;
#P hidden connect 83 1 97 0;
#P hidden connect 138 4 36 0;
#P hidden connect 138 12 100 0;
#P hidden connect 36 0 37 0;
#P hidden connect 100 0 101 0;
#P hidden connect 138 5 152 0;
#P hidden connect 138 13 148 0;
#P hidden connect 19 2 32 0;
#P hidden connect 83 2 96 0;
#P hidden connect 24 0 19 1;
#P hidden connect 88 0 83 1;
#P hidden connect 19 3 31 0;
#P hidden connect 83 3 95 0;
#P hidden connect 26 0 22 0;
#P hidden connect 22 0 23 0;
#P hidden connect 90 0 86 0;
#P hidden connect 86 0 87 0;
#P hidden connect 19 4 30 0;
#P hidden connect 83 4 94 0;
#P hidden connect 23 0 19 2;
#P hidden connect 87 0 83 2;
#P hidden connect 19 5 29 0;
#P hidden connect 83 5 93 0;
#P hidden connect 19 6 28 0;
#P hidden connect 83 6 92 0;
#P hidden connect 138 6 52 0;
#P hidden connect 138 14 116 0;
#P hidden connect 52 0 53 0;
#P hidden connect 116 0 117 0;
#P hidden connect 138 7 147 0;
#P hidden connect 138 15 151 0;
#P hidden connect 19 7 27 0;
#P hidden connect 83 7 91 0;
#P hidden connect 37 0 40 0;
#P hidden connect 41 0 35 0;
#P hidden connect 35 0 50 0;
#P hidden connect 101 0 104 0;
#P hidden connect 105 0 99 0;
#P hidden connect 99 0 114 0;
#P hidden connect 35 1 49 0;
#P hidden connect 99 1 113 0;
#P hidden connect 35 2 48 0;
#P hidden connect 99 2 112 0;
#P hidden connect 139 0 138 0;
#P hidden connect 40 0 35 1;
#P hidden connect 104 0 99 1;
#P hidden connect 35 3 47 0;
#P hidden connect 99 3 111 0;
#P hidden connect 42 0 38 0;
#P hidden connect 38 0 39 0;
#P hidden connect 35 4 46 0;
#P hidden connect 99 4 110 0;
#P hidden connect 140 0 138 1;
#P hidden connect 106 0 102 0;
#P hidden connect 102 0 103 0;
#P hidden connect 39 0 35 2;
#P hidden connect 103 0 99 2;
#P hidden connect 35 5 45 0;
#P hidden connect 99 5 109 0;
#P hidden connect 35 6 44 0;
#P hidden connect 99 6 108 0;
#P hidden connect 141 0 138 2;
#P hidden connect 35 7 43 0;
#P hidden connect 99 7 107 0;
#P hidden connect 53 0 56 0;
#P hidden connect 57 0 51 0;
#P hidden connect 51 0 66 0;
#P hidden connect 117 0 120 0;
#P hidden connect 121 0 115 0;
#P hidden connect 115 0 130 0;
#P hidden connect 142 0 138 3;
#P hidden connect 51 1 65 0;
#P hidden connect 115 1 129 0;
#P hidden connect 51 2 64 0;
#P hidden connect 115 2 128 0;
#P hidden connect 56 0 51 1;
#P hidden connect 120 0 115 1;
#P hidden connect 143 0 138 4;
#P hidden connect 51 3 63 0;
#P hidden connect 115 3 127 0;
#P hidden connect 58 0 54 0;
#P hidden connect 54 0 55 0;
#P hidden connect 122 0 118 0;
#P hidden connect 118 0 119 0;
#P hidden connect 51 4 62 0;
#P hidden connect 115 4 126 0;
#P hidden connect 55 0 51 2;
#P hidden connect 119 0 115 2;
#P hidden connect 51 5 61 0;
#P hidden connect 115 5 125 0;
#P hidden connect 144 0 138 5;
#P hidden connect 51 6 60 0;
#P hidden connect 115 6 124 0;
#P hidden connect 51 7 59 0;
#P hidden connect 115 7 123 0;
#P hidden connect 145 0 138 6;
#P hidden connect 146 0 138 7;
#P pop;


October 18, 2006 | 12:40 pm

Try turning Overdrive on, in the options menu. The GUI updates are
likely interfering with the computation of data; enabling Overdrive
should fix this.

jb

Am 18.10.2006 um 14:26 schrieb nick williams:

> I am using multiple instances of COUNTER to drive the 8 dials.
> These are located in a subpatch. When just one dial is rotating
> there are no problems. As soon as I turn on a second dial they both
> rotate at a slower rate than the speed i have defined. If I then
> turn on a third dial, all three rotate at an even slower rate.
> Also, the dials no longer rotate ‘smoothly’.


October 18, 2006 | 1:01 pm

>
>
>i have tested the counter objects in a new patch window and it seems
>that I simply can’t run multiple instances of counter in the same
>patch without them disrupting each others rate/’smoothness’. Is this
>the case? If so, what are my alternatives?
>

hi

after a really short look at it, i don’t seem to have this problem –
which does not mean you don’t have it.

the most obvious answer would be to check it your metro’s are OK
(there was a lot of discusions about it recently) and change it to a
metro driven by audio (I belive i did send such a patch recenlty,
other have done so as well, and i think there is a metro~ object in
ST.objects)

the usual max problem…

to have a smooth visual report of what is going on, i also suggest,
to change, in yoyur dial’s inspectors, the display change to 360 —
oops, it shows only 359!!!! (which is normal!!)

since you use teh GMEM’s miltiouts~ you could as well use their
"panpot" gui object (but now, dial does it all as well)

best

kasper

Kasper T. Toeplitz
noise, composition, bass, computer

http://www.sleazeArt.com


October 18, 2006 | 7:24 pm

Quote: nick williams wrote on Wed, 18 October 2006 06:26

> I am using multiple instances of COUNTER to drive the 8 dials.

why? the actions +1 and -1 driven by the main metro,
should be enough to control dials.


October 18, 2006 | 8:57 pm

Thankyou all for your responses.

When I turn overdrive on, the problem remains eg.the dials rotate slower with every additional dial that is turned on. It also appears that the ‘top speed’ of the dials is less than with overdrive off.

I replaced the METTRO objects with sig driven METRO~ but when I ran eight simultaeously it brought the patch to it’s knees with the leftmost two dials actually stopping.

Romans ‘+1/-1′ method for driving the dials makes much more sense than all the COUNTER objects but it still requires running 8 METRO objects simultaneously..and my patch doesn’t seem to like that.

Could my computer (powerbook G4/1.25 GHz/512 RAM) be too slow to process this amount of data on the fly?

I will keep banging my head against it….any further suggestions?

bests,

nick


October 18, 2006 | 9:20 pm

>
>Could my computer (powerbook G4/1.25 GHz/512 RAM) be too slow to
>process this amount of data on the fly?

NO

not sure where the problem is , but it’ s not there

what does the "activity monitor" say???

best

kasper

Kasper T. Toeplitz
noise, composition, bass, computer

http://www.sleazeArt.com


October 19, 2006 | 9:17 am

Counter is highly unlikely to be the problem, the calculations it’s
performing are light weight.

Conceptually, I would drive the patch with a single metro and gate
the individual dials (or the counters) to turn them on or off.

The only thing that’s at all computationally expensive in your patch
are the dials. Redrawing uses more CPU than most people imagine,
particularly with lots of colors.

> any further suggestions?

You can’t make the dials less expensive, but you can probably tweak
performance parameters (Options -> Performance Options…). Experiment.

————– http://www.bek.no/~pcastine/Litter/ ————-
Peter Castine +–> Litter Power & Litter Bundle for Jitter
Universal Binaries on the way
iCE: Sequencing, Recording &
Interface Building for |home | chez nous|
Max/MSP Extremely cool |bei uns | i nostri|
http://www.dspaudio.com/ http://www.castine.de


October 19, 2006 | 9:50 am


October 19, 2006 | 12:00 pm

Hi,

Yes the dials can all be set rotating at different speeds. This is a function I’d like to keep so I guess the Metro objects have to stay.

The dials only function is to display the pan position so I can easily replace them with number boxes. I will be interested to see if this improves performance as Peter suggests.

I will also experiment with Performance options. I’m at work at the mo’ so I’ll report back later today.

Thanks for all the help guys, I’m learning a lot.

bests,

Nick


October 19, 2006 | 1:01 pm

>> Romans ‘+1/-1′ method for driving the dials makes much more >sense than all the COUNTER objects but it still requires >running 8 METRO objects simultaneously..and my patch doesn’t >seem to like that.

maybe use send/recieve and connect the dial-control
patches to a main metro somewhere outside.
you could even close the connection from the metro to those
dials which a are currently not to be remoted.

> Could my computer (powerbook G4/1.25 GHz/512 RAM) be too slow > to process this amount of data on the fly?

not at all, but a metro with 8 connections (or 8 metros)
means 8 bangs in a row as fast as possible (think uzi)
and that is always a bit problematic with realtime
performance patches. it probably gets worse if sent
to bpatchers.

what about running the metro at only 50 miliseconds
and then interpolating the data for GUI and/or audio?

there is an older version of [110.ATC] at maxobject.com
which deals with a similar problem.


October 19, 2006 | 1:05 pm

ah, the speed.

well same speed at different incremental steps
= different velocity.


October 19, 2006 | 2:24 pm

On 19-Oct-2006, at 14:00, nick williams wrote:
> Yes the dials can all be set rotating at different speeds. This is
> a function I’d like to keep so I guess the Metro objects have to stay.

Sorry, missed that. Then it makes sense to have individual metros.

> The dials only function is to display the pan position so I can
> easily replace them with number boxes. I will be interested to see
> if this improves performance as Peter suggests.

I don’t know that numbox will buy you a whole lot over dial. It’s
still a UI object that draws. But sure, try it.

Basically, you’re making three different kinds of demands on your
computer: you have timed events (bangs, incrementing counters,
whatever) that you presumably want to have as precise as possible; a
user interface (dials, numboxs, whatever) to help you visualize
what’s happening with the timed events; and audio to deal with.

If your audio processing is making sufficient demands on the computer
that Max doesn’t have time to do everything your patch demands, it
first tries to cope by drawing less often. So your dial animation is
less smooth. < >. If Max still can’t keep up, it may start
skipping timer events (ie, metro bangs), which will be a problem with
your patch logic.

Your multiout~s are probably the CPU hog, particularly if you’re
doing something like smooth panning with cosine functions controlling
the crossfade. Who knows, we’ve not seen them, have we? But that’s
probably what you have to look at for optimization.

– P.

————– http://www.bek.no/~pcastine/Litter/ ————-
Peter Castine +–> Litter Power & Litter Bundle for Jitter
Universal Binaries on the way
iCE: Sequencing, Recording &
Interface Building for |home | chez nous|
Max/MSP Extremely cool |bei uns | i nostri|
http://www.dspaudio.com/ http://www.castine.de


October 19, 2006 | 3:56 pm

if the counter is feeding the GUI object, and the GUI object is
feeding some logic, and the GUI object is being updated A LOT, which
slows your patch down, do something like this:

rather than

metro 2 -> counter -> dial/numbox/flonnum etc -> patch logic

do

metro 2 -> counter -> patch logic
– > qlim 100 -> prepend set -> dial/
numbox/flonum -> patch logic

prepend set will update the position, but not send a message out ,
and the qlim will ‘slow down’ the updating, so max can keep up. note
that you stil get your ‘full speed’ messages, and if you use the
dial, it WILL output, just not the counters messages, which the patch
is getting anyway.

hope my lame ascii is still formatted.

v a d e //

http://www.vade.info
abstrakt.vade.info

On Oct 19, 2006, at 10:24 AM, Peter Castine wrote:

> On 19-Oct-2006, at 14:00, nick williams wrote:
>> Yes the dials can all be set rotating at different speeds. This is
>> a function I’d like to keep so I guess the Metro objects have to
>> stay.
>
> Sorry, missed that. Then it makes sense to have individual metros.
>
>> The dials only function is to display the pan position so I can
>> easily replace them with number boxes. I will be interested to see
>> if this improves performance as Peter suggests.
>
> I don’t know that numbox will buy you a whole lot over dial. It’s
> still a UI object that draws. But sure, try it.
>
> Basically, you’re making three different kinds of demands on your
> computer: you have timed events (bangs, incrementing counters,
> whatever) that you presumably want to have as precise as possible;
> a user interface (dials, numboxs, whatever) to help you visualize
> what’s happening with the timed events; and audio to deal with.
>
> If your audio processing is making sufficient demands on the
> computer that Max doesn’t have time to do everything your patch
> demands, it first tries to cope by drawing less often. So your dial
> animation is less smooth. < >. If Max still can’t keep up, it
> may start skipping timer events (ie, metro bangs), which will be a
> problem with your patch logic.
>
> Your multiout~s are probably the CPU hog, particularly if you’re
> doing something like smooth panning with cosine functions
> controlling the crossfade. Who knows, we’ve not seen them, have we?
> But that’s probably what you have to look at for optimization.
>
> — P.
>
> ————– http://www.bek.no/~pcastine/Litter/ ————-
> Peter Castine +–> Litter Power & Litter Bundle for Jitter
> Universal Binaries on the way
> iCE: Sequencing, Recording &
> Interface Building for |home | chez nous|
> Max/MSP Extremely cool |bei uns | i nostri|
> http://www.dspaudio.com/ http://www.castine.de
>
>


October 19, 2006 | 10:31 pm

Patrick Delges wrote:
> If I remember that patch well, it was possible to set a different speed
> for each channel, so you need as many [metro] (or whatever timer used)
> as channels. Btw, [line] could be an option too.

I agree – the amount of bangs out of metro is much much higher than the
pixel resolution. Instead of counting to 360, a count to 72 seems more
than enough, but the idea to do it with line seems the most clear one,
as you can tweak the grain duration just for the performance and the
parameter to control it is the time for one circle. This is also much
more intuitive.
Multiouts has a fade parameter which could be set to exactly the same
time as the line grain. All fits together.

But I must say on my Powerbook 1.5 GHz the patch has no problem at all,
the speed of all pots is the same even if I set the metro to 1 ms…

Stefan


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


October 20, 2006 | 5:08 pm

Quote: Stefan Tiedje wrote on Thu, 19 October 2006 23:31
—————————————————-
> > Btw, [line] could be an option too.

> the idea to do it with line seems the most clear one,
> as you can tweak the grain duration just for the performance and the
> parameter to control it is the time for one circle. This is also much
> more intuitive.
> Multiouts has a fade parameter which could be set to exactly the same
> time as the line grain. All fits together.

I’ll try doing it with Line. Vades idea to re-arrange the patch didn’t solve the initial problem but improves functionality so I’ll use that model.

> But I must say on my Powerbook 1.5 GHz the patch has no problem at all,

The activity monitor shows no indication that my computer is struggling with the exception of the odd CPU peak. Hmm?

nick


Viewing 15 posts - 1 through 15 (of 15 total)