live.grid in Matrix mode - working with the Steps Values outlet

discopatrick's icon

When live.grid is in Matrix mode, it means that each step (column) can have multiple 'on' points.

The second outlet sends a message with details of all the 'on' points, as described in the live.grid reference:

Out second outlet: The steps values are sent out this outlet whenever they are changed via the mouse or a message. If the live.grid object is in Matrix Mode, the step value/y value coordinates of all "on" points are sent out the outlet.

So, for a 4x4 grid with all points set to 'on', the output message would be:

1 1 1 2 1 3 1 4
2 1 2 2 2 3 2 4
3 1 3 2 3 3 3 4
4 1 4 2 4 3 4 4

(I've added line breaks to make it a bit easier to follow).

Or the same grid with just the bottom-left and top-right points set to 'on' would be:

1 1 4 4

(also see screenshots)

What's the best way of taking a list like this (that can vary in length) and doing something useful with it? I think I first need to split the list into co-ordinate pairs. I don't think I can use unpack, because the length is variable. I searched for a 'for' or 'foreach' type loop object, but I didn't find one.

3253.CMCapture4.png
png
discopatrick's icon

hmm, looks like the object 'zl delace' could be a good start...

christripledot's icon
[route 0]
       |
      [zl iter 2]
       |
      [unpack i i]

Been away from Max for a while, and I don't have it with me ATM, but I *think* this is how I do it. IIRC, You need the [route 0] to catch whenever you clear the last step.

LiamCormacGould's icon

disco can you be more specific about what your using it for? I've been using live.grid in my current project and I have been equal parts pleased and frustrated by it. Matrixctl is rapidly gaining favour for me.

discopatrick's icon

hey christripledot, thanks for the suggestion of [zl iter 2] - it was just what I needed to divide up the large list into individual x,y coordinates and then forward them onwards individually. Good call on the [route 0] too - although I used a [zl filter 0] instead.

LiamCormacGould - I'm basically taking the output of one grid and then feeding it to a different grid. For a little more info, see my other thread: https://cycling74.com/forums/multicoloured-step-sequencer

What in particular do you find frustrating about live.grid? Maybe I can help.

LiamCormacGould's icon

don't get me wrong live grid is useful and i like it for what it does. Not having any real problems with it now. I think what I was referring to was the fact that there are only two clickable states on/off. Also that the live grid doesn't report off squares just on squares. which for what I was doing at the time was annoying.

discopatrick's icon

Yes, the non-reporting of off squares is something I will also have to deal with soon.

zaza von schplurk's icon

If you need to save somewhere and then recall the grid's state, you need to send it a "clear" message before recalling to put every cell to "off" state.
It took me some time to figure this out...