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


    Dec 03 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.

    • Dec 03 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
      }
      }
    • Dec 03 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
    • Dec 03 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 ?
    • Dec 03 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.
    • Dec 04 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
    • Dec 05 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~.