after finally having succeeded in getting my Adafruit Unztrument to work with node-serialoscd I can now dive into programming for the grid. (I plan to buy a original Monome soon but need to lay aside some more money). I am working with Sonic Pi so my programming language will Ruby for the moment. Being a less experienced programmer I did some exercises with Open Stage Control as controller (e. g. lmq where not only the name is somehow inspired by mlr and a Live Looper application). My plan is to develop my own set of grid applications and use these in combination with live coding - even if they are not as sophisticated as already existing applications (like those running on norns e. g.) because I know that it is a rewarding process not only to make the music but also (at least partly) build your own instrument.
As I would like to primarily use the Monome as controller/squencer I am looking for general concepts, ressources and examples for (more or less advanced) grid programming (which I will have to translate to Ruby as far as possible). This posting kind of provides a starter for what I am interested in.
As I am a beginner, it is not that easy to be specific (as the specific problems come with more knowledge and experience) but I will give an example of what I am currently coping with:
From what I have already done and tested I conclude that using the bitmask operations (map/row/col) is neccessary to achieve a decent performance; is that correct? Are there any systematic approaches to that?
To make it more tangible: I e. g. want to implement a volume control for my Live Looper application using 7 leds to mimic a (low resolution) volume switch with 7 steps (let’s say x = 1 and y = 1 to 7); if I press 1/4 I want 1/1, 1/1, 1/2, 1/3 and 1/4 to light up as well as translate the pressed led coordinates/number to a certain volumee and send the appropriate osc message. I will have to group these leds, make them into toggles and implement that while toggling one led the group members will be light up in the correct way. From what I have seen there are already solutions to do such things. Are these documented somewhere? Are there ressources (apart from the grid studies I have already studied as far as they apply to what I want to do) I should have a look at?
There are of course quite a few other things where I have a rough idea how to do that, but I am guessing others have already done this and I could learn from it amongst these e. g. paging (ctrl and alt buttons to switch the whole grid to functionally separated layers).
Thanks a lot if you have any hints or ideas for me how to go on (in a more systematic and not so much only try-and-error-way).