Object to delace lists with patterns different from odd/even ?


    Mar 17 2010 | 8:12 pm
    Hello,
    I want to delace some lists, however I don't want to do it the same way as zl delace.
    Example :
    With an input list like this one : 1 2 3 4 5 6 7 8 9, I would like to get 1 4 7 on one side and 2 3 5 6 8 9 on the other side.
    Of course I could try a combination of counter, zl nth, pack etc but anything simpler would be welcome!
    Any idea, Max gurus ?
    Thanxinadvance.

    • Mar 17 2010 | 9:39 pm
      I would use listfunnel.
    • Mar 17 2010 | 9:42 pm
      btw, this is typical case where textual language might make things easier. Something like that should work in js (forum coding)
      outlets = 2;
      function list()
      {
      var a = new Array();
      var b = new Array();
      for (var i = 0; i < arguments.length; i++) {
      if ((i % 3) == 0)
      a[a.length] = arguments[i];
      else
      b[b.length] = arguments[i];
      }
      if (b.length)
      outlet(1, b);
      if (a.length)
      outlet(0, a);
      }
    • Mar 17 2010 | 9:53 pm
      Thanks, Emmanuel.
      No magical plain-vanilla Max object to achieve this?
    • Mar 17 2010 | 9:58 pm
      how about [zl iter] --> [zl slice]? tell zl iter the chunk size (like 3), then slice off the first element of each group, the others go out the right outlet.
      Or maybe you could generate a list of which elements you want, exactly, and send it to [zl nth]. But that's probably the same as filtering out from the other side.
    • Mar 18 2010 | 8:16 am
      Thanks James but I meant *one* plain-vanilla object, you know that kind of magical object you have never used and have suddently discovered and you wonder how you could have done without until now...
    • Mar 18 2010 | 8:33 am
      You can use [zl list.Demultiplex 3] as well
      Ch
    • Mar 18 2010 | 9:36 am
      You meant "mxj list.Demultiplex 3" I suppose. Thanks, I didn't know this one.