Matrix Solo Mute

May 3, 2006 at 11:36am

Matrix Solo Mute

I have made a matrix~ which is controlling the output of my signals. I have a mute system working in which I have toggles connected to (== 0) and message “0 0 $1″ “1 0 $1″ etc. The “== 0″ is in order to get the channel closed when the toggle is on. The problem I am having is with my solo system. I have solo messages hooked up to the matrix~ which sends the values for just one channel to be open, for instance “0 0 1 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 0 0″ for just channel 1. This works but I want to be able to restore channels which were muted before the solo.

I tried storing the matrix~ values before the solo and then have them retriggered/sent to the matrix when the solo toggle is released but that proved non succesful.

I have read a number of threads regarding similar topics, and alot seem to be having the same problem but none relating to restoring previous matrix~ info.

Is there a way to do achieve what I am trying in restoring this info to the matrix~ ?

#25756
May 3, 2006 at 11:58am

Here is a section of the patch. I have got it to store the values from the matrix~, using “getrow 0″, in a coll under store location 2. This is in order to recall it to the matrix~. I cant think of a way to exclude the solo values from the coll though unless I were to put a bunch of if statements basically saying if input = 0 0 0 0 1 0 0 then 1, and have it store to coll location 1.

max v2;
#N vpatcher 5 40 467 395;
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P message 146 178 14 9109513 2;
#P newex 193 240 26 9109513 print;
#P button 297 219 15 0;
#P newex 319 245 49 9109513 prepend 2;
#P message 319 219 78 9109513 0 0 1 0 0 0 0 0;
#P message 196 126 43 9109513 getrow 0;
#N coll ;
#P newobj 193 207 53 9109513 coll;
#P newex 29 40 45 9109513 loadbang;
#P newex 319 191 57 9109513 prepend set;
#P message 121 81 197 9109513 0 0 1 1 0 1 2 0 1 3 0 1 4 0 1 5 0 1 6 0 1 7 0 1;
#N vpatcher 64 93 673 556;
#P origin 0 73;
#P window setfont “Sans Serif” 9.;
#P newex 406 99 27 9109513 == 0;
#P newex 406 74 39 9109513 r Mute8;
#P newex 353 99 27 9109513 == 0;
#P newex 353 74 39 9109513 r Mute7;
#P newex 298 99 27 9109513 == 0;
#P newex 298 74 39 9109513 r Mute6;
#P newex 245 99 27 9109513 == 0;
#P newex 245 74 39 9109513 r Mute5;
#P newex 196 99 27 9109513 == 0;
#P newex 196 74 39 9109513 r Mute4;
#P newex 143 99 27 9109513 == 0;
#P newex 143 74 39 9109513 r Mute3;
#P newex 89 99 27 9109513 == 0;
#P newex 89 74 39 9109513 r Mute2;
#P newex 36 99 27 9109513 == 0;
#P newex 36 74 39 9109513 r Mute1;
#P message 104 344 197 9109513 0 0 0 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 0 1;
#P message 104 320 197 9109513 0 0 0 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 1 7 0 0;
#P message 104 296 197 9109513 0 0 0 1 0 0 2 0 0 3 0 0 4 0 0 5 0 1 6 0 0 7 0 0;
#P message 104 272 197 9109513 0 0 0 1 0 0 2 0 0 3 0 0 4 0 1 5 0 0 6 0 0 7 0 0;
#P message 104 248 197 9109513 0 0 0 1 0 0 2 0 0 3 0 1 4 0 0 5 0 0 6 0 0 7 0 0;
#P message 104 224 197 9109513 0 0 0 1 0 0 2 0 1 3 0 0 4 0 0 5 0 0 6 0 0 7 0 0;
#P message 104 200 197 9109513 0 0 0 1 0 1 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 0 0;
#P message 104 176 197 9109513 0 0 1 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 0 0;
#P outlet 36 413 15 0;
#P message 406 130 34 9109513 7 0 $1;
#P message 353 130 34 9109513 6 0 $1;
#P message 298 130 34 9109513 5 0 $1;
#P message 245 130 34 9109513 4 0 $1;
#P message 196 130 34 9109513 3 0 $1;
#P message 143 130 34 9109513 2 0 $1;
#P message 89 130 34 9109513 1 0 $1;
#P message 36 130 34 9109513 0 0 $1;
#P connect 17 0 18 0;
#P connect 18 0 0 0;
#P fasten 7 0 8 0 411 160 41 160;
#P fasten 6 0 8 0 358 160 41 160;
#P fasten 5 0 8 0 303 160 41 160;
#P fasten 4 0 8 0 250 160 41 160;
#P fasten 3 0 8 0 201 160 41 160;
#P fasten 2 0 8 0 148 160 41 160;
#P fasten 1 0 8 0 94 160 41 160;
#P fasten 0 0 8 0 41 226 41 226;
#P fasten 11 0 8 0 109 244 41 244;
#P fasten 16 0 8 0 109 365 41 365;
#P fasten 15 0 8 0 109 340 41 340;
#P fasten 14 0 8 0 109 316 41 316;
#P fasten 13 0 8 0 109 292 41 292;
#P fasten 12 0 8 0 109 268 41 268;
#P fasten 10 0 8 0 109 220 41 220;
#P fasten 9 0 8 0 109 195 41 195;
#P connect 19 0 20 0;
#P connect 20 0 1 0;
#P connect 21 0 22 0;
#P connect 22 0 2 0;
#P connect 23 0 24 0;
#P connect 24 0 3 0;
#P connect 25 0 26 0;
#P connect 26 0 4 0;
#P connect 27 0 28 0;
#P connect 28 0 5 0;
#P connect 29 0 30 0;
#P connect 30 0 6 0;
#P connect 31 0 32 0;
#P connect 32 0 7 0;
#P pop;
#P newobj 31 78 75 9109513 p drummutesolo;
#P user matrixctrl 196 158 133 20 MatrixDefaultCell.pct MatrixDefaultBkgnd.pct 133 20 16 16 8 1 16 16 2 2 48 2 0 0;
#P fasten 4 0 2 0 34 69 126 69;
#P fasten 8 0 5 0 324 269 254 269 254 200 198 200;
#P fasten 11 0 5 0 151 200 198 200;
#P connect 5 0 10 0;
#P fasten 0 0 6 0 201 187 184 187 184 118 201 118;
#P fasten 1 0 0 0 36 154 201 154;
#P fasten 2 0 0 0 126 154 201 154;
#P connect 6 0 0 0;
#P fasten 3 0 9 0 324 216 302 216;
#P fasten 0 1 3 0 324 189 324 189;
#P fasten 9 0 7 0 302 241 314 241 314 216 324 216;
#P connect 3 0 7 0;
#P connect 7 0 8 0;
#P pop;

#76203
May 3, 2006 at 5:04pm

I posted a solution for this a couple of months ago, using vexpr and
one of my matrix~ helper objects. (IIRC it was PM.MatrixSetOutlet) If
you remove the inlet/outlet info and treat it as a list of gain
coefficients, the math is easy, and then it’s just a matter of
reintroducing the coordinates. (I use multisliders both for the faders
and for the solo and/or mute buttons (int 0-1))

Peter McCulloch

#76204
May 4, 2006 at 10:17am

The canada ad looks like a bit of spamming.

I managed to fix something up using a gate and the matrix, basically changing the gate when I want it to hold the solo info and the other gate for mute to restore to.

It may not be the most efficient method but it works for me. Only thing is I am having trouble with the asthetics of the solo and mute buttons, as I want them to correspond to whats going on in the matrix as in all mutes off when a solo is on and then mutes restored when the solo is off.

I am sure you can all see the problem of Max creating loops if I just tell the buttons to related to the matrix info. I have made the toggles for both buttons but am thinking maybe I would be able to get round this problem quicker using invisible buttons on top…?

Will

max v2;
#N vpatcher 203 116 727 480;
#P window setfont “Sans Serif” 9.;
#P comment 240 222 39 9109513 2 Mutes;
#P outlet 375 139 15 0;
#N vpatcher 151 111 351 421;
#P window setfont “Sans Serif” 9.;
#P newex 50 201 57 9109513 prepend set;
#P newex 50 115 56 9109513 t b i;
#N counter 0 0 9;
#X flags 0 0;
#P newobj 50 148 66 9109513 counter 0 0 9;
#P newex 50 175 56 9109513 pack 0 0 0;
#P newex 50 57 66 9109513 t l 0;
#P newex 50 88 38 9109513 zl iter 1;
#P inlet 50 30 15 0;
#P outlet 50 235 15 0;
#P connect 1 0 3 0;
#P connect 3 0 2 0;
#P connect 2 0 6 0;
#P connect 6 0 5 0;
#P connect 5 0 4 0;
#P connect 4 0 7 0;
#P connect 7 0 0 0;
#P fasten 3 1 5 2 111 143 83 143;
#P fasten 6 1 4 2 101 137 119 137 119 171 101 171;
#P pop;
#P newobj 66 274 80 9109513 p list-to-matrixctrl;
#P button 217 201 15 0;
#P button 125 201 15 0;
#P message 66 222 78 9109513 0 0 0 0 1 0 0 0;
#P message 155 222 78 9109513 1 1 1 1 1 1 1 1;
#P newex 87 173 36 9109513 gate 2;
#P message 158 139 43 9109513 getrow 0;
#P newex 129 41 45 9109513 loadbang;
#P newex 281 137 57 9109513 prepend set;
#P message 129 70 197 9109513 0 0 1 1 0 1 2 0 1 3 0 1 4 0 1 5 0 1 6 0 1 7 0 1;
#N vpatcher 127 328 894 866;
#P origin 36 73;
#P outlet 303 391 15 0;
#P window setfont “Sans Serif” 9.;
#P newex 667 239 28 9109513 sel 0;
#P button 667 287 15 0;
#P newex 667 264 49 9109513 delay 200;
#P newex 609 239 28 9109513 sel 0;
#P button 609 287 15 0;
#P newex 609 264 49 9109513 delay 200;
#P newex 554 239 28 9109513 sel 0;
#P button 554 287 15 0;
#P newex 554 264 49 9109513 delay 200;
#P newex 499 239 28 9109513 sel 0;
#P button 499 287 15 0;
#P newex 499 264 49 9109513 delay 200;
#P newex 445 239 28 9109513 sel 0;
#P button 445 287 15 0;
#P newex 445 264 49 9109513 delay 200;
#P newex 391 239 28 9109513 sel 0;
#P button 391 287 15 0;
#P newex 391 264 49 9109513 delay 200;
#P newex 335 239 28 9109513 sel 0;
#P button 335 287 15 0;
#P newex 335 264 49 9109513 delay 200;
#P newex 280 239 28 9109513 sel 0;
#P button 280 287 15 0;
#P newex 280 264 49 9109513 delay 200;
#P outlet 272 390 15 0;
#P message 303 362 14 9109513 1;
#P message 272 361 14 9109513 2;
#P button 303 343 15 0;
#P button 272 340 15 0;
#P newex 272 316 41 9109513 togedge;
#P newex 667 198 27 9109513 == 0;
#P newex 667 173 37 9109513 r Solo8;
#P newex 609 198 27 9109513 == 0;
#P newex 609 173 37 9109513 r Solo7;
#P newex 554 198 27 9109513 == 0;
#P newex 554 173 37 9109513 r Solo6;
#P newex 499 198 27 9109513 == 0;
#P newex 499 173 37 9109513 r Solo5;
#P newex 445 198 27 9109513 == 0;
#P newex 445 173 37 9109513 r Solo4;
#P newex 391 198 27 9109513 == 0;
#P newex 391 173 37 9109513 r Solo3;
#P newex 335 198 27 9109513 == 0;
#P newex 335 173 37 9109513 r Solo2;
#P newex 280 198 27 9109513 == 0;
#P newex 280 173 37 9109513 r Solo1;
#P newex 370 99 27 9109513 == 0;
#P newex 370 74 39 9109513 r Mute8;
#P newex 317 99 27 9109513 == 0;
#P newex 317 74 39 9109513 r Mute7;
#P newex 262 99 27 9109513 == 0;
#P newex 262 74 39 9109513 r Mute6;
#P newex 209 99 27 9109513 == 0;
#P newex 209 74 39 9109513 r Mute5;
#P newex 160 99 27 9109513 == 0;
#P newex 160 74 39 9109513 r Mute4;
#P newex 107 99 27 9109513 == 0;
#P newex 107 74 39 9109513 r Mute3;
#P newex 53 99 27 9109513 == 0;
#P newex 53 74 39 9109513 r Mute2;
#P newex 0 99 27 9109513 == 0;
#P newex 0 74 39 9109513 r Mute1;
#P message 68 366 197 9109513 0 0 0 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 0 1;
#P message 68 340 197 9109513 0 0 0 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 1 7 0 0;
#P message 68 311 197 9109513 0 0 0 1 0 0 2 0 0 3 0 0 4 0 0 5 0 1 6 0 0 7 0 0;
#P message 68 284 197 9109513 0 0 0 1 0 0 2 0 0 3 0 0 4 0 1 5 0 0 6 0 0 7 0 0;
#P message 68 256 197 9109513 0 0 0 1 0 0 2 0 0 3 0 1 4 0 0 5 0 0 6 0 0 7 0 0;
#P message 68 229 197 9109513 0 0 0 1 0 0 2 0 1 3 0 0 4 0 0 5 0 0 6 0 0 7 0 0;
#P message 68 202 197 9109513 0 0 0 1 0 1 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 0 0;
#P message 68 176 197 9109513 0 0 1 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 0 0;
#P outlet 0 413 15 0;
#P message 370 130 34 9109513 7 0 $1;
#P message 317 130 34 9109513 6 0 $1;
#P message 262 130 34 9109513 5 0 $1;
#P message 209 130 34 9109513 4 0 $1;
#P message 160 130 34 9109513 3 0 $1;
#P message 107 130 34 9109513 2 0 $1;
#P message 53 130 34 9109513 1 0 $1;
#P message 0 130 34 9109513 0 0 $1;
#P connect 17 0 18 0;
#P connect 18 0 0 0;
#P fasten 15 0 8 0 71 359 5 359;
#P fasten 14 0 8 0 71 331 5 331;
#P fasten 13 0 8 0 73 304 5 304;
#P fasten 12 0 8 0 73 277 5 277 5 412;
#P fasten 11 0 8 0 73 248 5 248;
#P fasten 10 0 8 0 73 221 5 221;
#P fasten 9 0 8 0 73 195 5 195;
#P fasten 0 0 8 0 5 226 5 226;
#P fasten 1 0 8 0 58 160 5 160;
#P fasten 2 0 8 0 112 160 5 160;
#P fasten 3 0 8 0 165 160 5 160;
#P fasten 4 0 8 0 214 160 5 160;
#P fasten 5 0 8 0 267 160 5 160;
#P fasten 6 0 8 0 322 160 5 160;
#P fasten 7 0 8 0 375 160 5 160;
#P connect 19 0 20 0;
#P connect 20 0 1 0;
#P fasten 56 0 9 0 285 309 268 309 268 167 73 167;
#P fasten 59 0 10 0 340 309 268 309 268 198 73 198;
#P fasten 62 0 11 0 396 309 268 309 268 225 73 225;
#P fasten 65 0 12 0 450 309 268 309 268 252 73 252;
#P fasten 68 0 13 0 504 309 268 309 268 280 73 280;
#P fasten 71 0 14 0 559 309 73 309;
#P fasten 74 0 15 0 614 309 268 309 268 335 73 335;
#P fasten 77 0 16 0 672 309 268 309 268 362 73 362;
#P connect 21 0 22 0;
#P connect 22 0 2 0;
#P connect 23 0 24 0;
#P connect 24 0 3 0;
#P connect 25 0 26 0;
#P connect 26 0 4 0;
#P connect 27 0 28 0;
#P connect 28 0 5 0;
#P fasten 48 0 49 0 672 229 277 229;
#P fasten 46 0 49 0 614 229 277 229;
#P fasten 44 0 49 0 559 229 277 229;
#P fasten 42 0 49 0 504 229 277 229;
#P fasten 40 0 49 0 450 229 277 229;
#P fasten 38 0 49 0 396 229 277 229;
#P fasten 36 0 49 0 340 229 277 229;
#P fasten 34 0 49 0 285 229 277 229;
#P connect 49 0 50 0;
#P connect 50 0 52 0;
#P fasten 53 0 54 0 308 384 277 384;
#P connect 52 0 54 0;
#P connect 33 0 34 0;
#P fasten 34 0 57 0 285 229 285 229;
#P connect 57 0 55 0;
#P connect 55 0 56 0;
#P connect 49 1 51 0;
#P connect 51 0 53 0;
#P connect 53 0 79 0;
#P connect 29 0 30 0;
#P connect 30 0 6 0;
#P connect 35 0 36 0;
#P fasten 36 0 60 0 340 229 340 229;
#P connect 60 0 58 0;
#P connect 58 0 59 0;
#P connect 31 0 32 0;
#P connect 32 0 7 0;
#P connect 37 0 38 0;
#P connect 38 0 63 0;
#P connect 63 0 61 0;
#P connect 61 0 62 0;
#P connect 39 0 40 0;
#P fasten 40 0 66 0 450 224 450 224;
#P connect 66 0 64 0;
#P connect 64 0 65 0;
#P connect 41 0 42 0;
#P connect 42 0 69 0;
#P connect 69 0 67 0;
#P connect 67 0 68 0;
#P connect 43 0 44 0;
#P connect 44 0 72 0;
#P connect 72 0 70 0;
#P connect 70 0 71 0;
#P connect 45 0 46 0;
#P connect 46 0 75 0;
#P connect 75 0 73 0;
#P connect 73 0 74 0;
#P connect 47 0 48 0;
#P connect 48 0 78 0;
#P connect 78 0 76 0;
#P connect 76 0 77 0;
#P pop;
#P newobj 49 139 87 9109513 p drummutesolo;
#P user matrixctrl 158 109 133 20 MatrixDefaultCell.pct MatrixDefaultBkgnd.pct 133 20 16 16 8 1 16 16 2 2 48 2 0 0;
#P comment 20 222 39 9109513 1 Solos;
#P fasten 10 0 9 0 130 219 71 219;
#P fasten 7 0 9 0 92 201 71 201;
#P fasten 9 0 12 0 71 262 71 262;
#P fasten 8 0 12 0 160 261 71 261;
#P connect 2 1 7 0;
#P fasten 4 0 7 1 286 164 118 164;
#P connect 2 2 10 0;
#P fasten 5 0 3 0 134 65 134 65;
#P fasten 11 0 8 0 222 218 160 218;
#P fasten 7 1 8 0 118 196 160 196;
#P fasten 2 0 1 0 54 165 38 165 38 98 163 98;
#P fasten 3 0 1 0 134 98 163 98;
#P fasten 6 0 1 0 163 159 146 159 146 105 163 105;
#P fasten 12 0 1 0 71 304 355 304 355 103 163 103;
#P fasten 1 0 6 0 163 134 163 134;
#P fasten 2 1 11 0 92 164 222 164;
#P fasten 1 1 4 0 286 135 286 135;
#P fasten 1 0 13 0 163 133 380 133;
#P pop;

#76205

You must be logged in to reply to this topic.