Forums > MaxMSP

Something like [match], but for lists, checking for conditions.

December 3, 2012 | 1:29 am

I know match takes lists, but it takes "consecutive lists", that means if you feed it a "list" it takes it in as a series of numbers.

I have 8 sliders, when all are at 0 i’d like the patch to send a "poly mute" message.
The problem is that when I move the first slider, the sequence is 1 0 0 0 0 0 0 0, and if/when I move the next one, it goes like 0 2 0 0 0 0 0 0. So you already have 8 zeros and Match outputs it…

So i need something that checks and outputs only if ALL conditions are met.

thanks.


December 3, 2012 | 2:00 am

You could do something like this:

{
"boxes" : [ {
"box" : {
"maxclass" : "button",
"numinlets" : 1,
"numoutlets" : 1,
"patching_rect" : [ 21.0, 311.0, 20.0, 20.0 ],
"id" : "obj-37",
"outlettype" : [ "bang" ]
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "t b i",
"fontsize" : 12.0,
"numinlets" : 1,
"numoutlets" : 2,
"patching_rect" : [ 156.0, 218.0, 32.5, 20.0 ],
"id" : "obj-33",
"fontname" : "Arial",
"outlettype" : [ "bang", "int" ]
}

}
, {
"box" : {
"maxclass" : "slider",
"numinlets" : 1,
"numoutlets" : 1,
"patching_rect" : [ 156.0, 22.0, 20.0, 140.0 ],
"id" : "obj-34",
"outlettype" : [ "" ],
"parameter_enable" : 0
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "== 0",
"fontsize" : 12.0,
"numinlets" : 2,
"numoutlets" : 1,
"patching_rect" : [ 156.0, 186.0, 35.0, 20.0 ],
"id" : "obj-35",
"fontname" : "Arial",
"outlettype" : [ "int" ]
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "t b i",
"fontsize" : 12.0,
"numinlets" : 1,
"numoutlets" : 2,
"patching_rect" : [ 111.0, 218.0, 32.5, 20.0 ],
"id" : "obj-30",
"fontname" : "Arial",
"outlettype" : [ "bang", "int" ]
}

}
, {
"box" : {
"maxclass" : "slider",
"numinlets" : 1,
"numoutlets" : 1,
"patching_rect" : [ 111.0, 22.0, 20.0, 140.0 ],
"id" : "obj-31",
"outlettype" : [ "" ],
"parameter_enable" : 0
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "== 0",
"fontsize" : 12.0,
"numinlets" : 2,
"numoutlets" : 1,
"patching_rect" : [ 111.0, 186.0, 35.0, 20.0 ],
"id" : "obj-32",
"fontname" : "Arial",
"outlettype" : [ "int" ]
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "t b i",
"fontsize" : 12.0,
"presentation_rect" : [ 173.0, 255.0, 0.0, 0.0 ],
"numinlets" : 1,
"numoutlets" : 2,
"patching_rect" : [ 66.0, 218.0, 32.5, 20.0 ],
"id" : "obj-27",
"fontname" : "Arial",
"outlettype" : [ "bang", "int" ]
}

}
, {
"box" : {
"maxclass" : "slider",
"presentation_rect" : [ 173.0, 59.0, 0.0, 0.0 ],
"numinlets" : 1,
"numoutlets" : 1,
"patching_rect" : [ 66.0, 22.0, 20.0, 140.0 ],
"id" : "obj-28",
"outlettype" : [ "" ],
"parameter_enable" : 0
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "== 0",
"fontsize" : 12.0,
"presentation_rect" : [ 173.0, 223.0, 0.0, 0.0 ],
"numinlets" : 2,
"numoutlets" : 1,
"patching_rect" : [ 66.0, 186.0, 35.0, 20.0 ],
"id" : "obj-29",
"fontname" : "Arial",
"outlettype" : [ "int" ]
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "if $i1 && $i2 && $i3 && $i4 then 1",
"fontsize" : 12.0,
"numinlets" : 4,
"numoutlets" : 1,
"patching_rect" : [ 21.0, 271.0, 189.0, 20.0 ],
"id" : "obj-14",
"fontname" : "Arial",
"outlettype" : [ "" ]
}

}
, {
"box" : {
"maxclass" : "slider",
"numinlets" : 1,
"numoutlets" : 1,
"patching_rect" : [ 21.0, 22.0, 20.0, 140.0 ],
"id" : "obj-3",
"outlettype" : [ "" ],
"parameter_enable" : 0
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "== 0",
"fontsize" : 12.0,
"numinlets" : 2,
"numoutlets" : 1,
"patching_rect" : [ 21.0, 186.0, 35.0, 20.0 ],
"id" : "obj-2",
"fontname" : "Arial",
"outlettype" : [ "int" ]
}

}
],
"lines" : [ {
"patchline" : {
"source" : [ "obj-14", 0 ],
"destination" : [ "obj-37", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-33", 1 ],
"destination" : [ "obj-14", 3 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-30", 1 ],
"destination" : [ "obj-14", 2 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-27", 1 ],
"destination" : [ "obj-14", 1 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-2", 0 ],
"destination" : [ "obj-14", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-33", 0 ],
"destination" : [ "obj-14", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-30", 0 ],
"destination" : [ "obj-14", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-27", 0 ],
"destination" : [ "obj-14", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-34", 0 ],
"destination" : [ "obj-35", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-35", 0 ],
"destination" : [ "obj-33", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-32", 0 ],
"destination" : [ "obj-30", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-31", 0 ],
"destination" : [ "obj-32", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-28", 0 ],
"destination" : [ "obj-29", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-29", 0 ],
"destination" : [ "obj-27", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-3", 0 ],
"destination" : [ "obj-2", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
],
"appversion" : {
"major" : 6,
"minor" : 0,
"revision" : 8
}

}


December 3, 2012 | 1:44 pm

Hi,

If you just want to test for "all sliders are zero", you could just use [zl sum] and test the output.

It’s inelegant but quick.

Best

Richard


December 3, 2012 | 3:57 pm

@ Richard : is that what you mean ? How is it that the button doesn’t light on when the condition is not true in gwsounddsg’s solution and does in mine ?

– Pasted Max Patch, click to expand. –

December 3, 2012 | 7:21 pm

@nicolas Thanks man. Sorry about not compressing my patch. It was late and I hit submit before I looked at it.


December 4, 2012 | 10:46 am

@Stephane Morisse : Yes, that’s what I had in mind, although I don’t think the argument (value 4) in [zl sum] does anything.

Richard


December 5, 2012 | 10:17 am

@Richard Garret: That’s perfect!
I really only need to know if the sum is zero or bigger, in order to send mute/unmute to poly~.


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