Can [itable] report values changed with the mouse?

Jonas Magnussen's icon

Hi all!

I'm retouching an arpeggiator/sequencer I made with max4live, where I use [itable] as the main interface, as it has very good functions for what I wanna do. I need to add some additional functionality to it to make the app even better.

To do that, I need to get some sophisticated response from itable whenever I change its values with the mouse. Right now, the only thing I can get back from it by using the mouse on the interface is a bang from the right outlet, and the visual feedback on the interface telling me where my mouse is hovering, in XY-format. The bang is not enough, I need to know where the mouse was pressed or released. If I could snatch this XY-data whenever I pressed my mouse, I would be all set! Anyone know if there's something I can do with the itable object to get the values I need?

Specifically, what I want to happen is that whenever I change a value on the grid, it will work like normal, but whenever I press a coordinate that's in the same spot as before, it's gonna become "nothing", or a hole in the sequencer. The point is having the possibility of creating "pauses" in the sequencer, so that I can make an arpeggiator with custom rhythms.

Thanks in advance for answers!

Best,
Jonas

Jonas Magnussen's icon

Is it ok if I bump this? Not really progressing on my project. I can give you a patch if that helps, but my old patch, even though it works well, looks quite messy, and can be annoying to dive into.

Zebark's icon

Bump

yaniki's icon

Guys, try [jsui].

Zebark's icon
yaniki's icon

"NO!" ?

... btw. also [jweb] can be used in to provide this kind of flexibility.

Zebark's icon

haha sorry Yaniki I guess I'm just feeling a little cantankerous. Your point is well taken. For my purposes though going down that road seems like overkill. There's so much to love about itable: it's integration with table, incorporation with pattr and it's random and weighted output. To recreate all that in jsui seems like a hassle. Unless your suggesting throw a transparent jusi on top of it that just reports mouse position? I suppose you could also use jit.lcd for something like that.

yaniki's icon

Hmmm... [mousestate] + some constrains (to detect if the mouse is over [itable])?

Rick's icon

How about paring itable with a matrixsctrl strip

Max Patch
Copy patch and select New From Clipboard in Max.

Jonas Magnussen's icon

Glad to see some life here! Just replying to Yaniki that I did try the mousestate method, but it was for some reason very hard to get precise results from the technique, even with (hopefully) tight math. I sadly just scrapped the project for now.

Rick, that kinda works, thanks for the idea! It isn't as intuitive or pretty, though.

CNMAT has a 2D grid UI object that responds to mouse clicks, maybe it can be put underneath the itable object, like the solution zebark proposed. If I get on this again I'll try it out, tell me if you find it helpful.

slo ~|•'s icon

Perhaps multislider is of use to you?

Zebark's icon

Yea SLO that could work. Here's a patch that sort of does that with zl.filter. It outputs specifically edited values but not hover data.

Max Patch
Copy patch and select New From Clipboard in Max.