Ok guys, here is a short demo video on Vimeo. In a couple of days (after fixing some glaring mistakes in my programming) I will provide you the download links for all associated files (actually just a background image, a iannix script and the MaxForLive device) 😉
From the designer perspective, it was fairly easy to group the cursors and the curves (circles) into groups inside my script. Afterwards, it is easy to ‘associate” triggers with the circles-cursors due to the cursor_id being sent by each trigger. In other words, as far as triggering goes, Im using each trigger’s cursor_id value to trigger corresponding notes, in a the fashion of “cursor_id (sent by trigger) -> bang -> specific midi note (the user can also define this through the “Notes settings” in my patch.
So, targetting from MaxForLive the circles and the cursors (which remember have been script-created) is easy because they are grouped as soon as they are created (upon running the script). So its easy to affect their opacity or other properties by sending OSC messages to their groups from my M4L.
Now, from the user’s perspective it would be cool if velocity and mute-unmute buttons could “affect” the triggers opacity associated with each circle and not just the circles and the cursors. For this to happen however, the designer must find a way to group the “user created triggers”. Since we dont know the id of a trigger untill it is created, how can we target it in a message created in M4L beforehand? Do I make any sense? lol
FWIW, i tried a cunning way to solve this…..
Lets say the user creates a trigger (remember, by user I mean that the trigge ris created by mouse, not script)…this trigger by default sends out its id and its cursor_id (amongst the rest of the values). I used the triggering itself to cause a message to be sent from M4L to Iannix which uses the transmitted trigger_id and groups it to the group “circleX” (where X= cursor_id)
In other words, if we create a trigger by mouse, and it automatically gets the id 1009 and is triggered by cursor 4 then a message triggered IN M4L by the trigger does the job
iannix/setGroup 1009 circle4
My problem however was that each time the specific trigger is triggered, the message is being re-sent to Iannix causing havock.
trigger_id = 1009 -> send the message: iannix/setGroup 1009 circle4 (or whatever the cursor_id is)
if trigger_id = 1009 for a second time -> do nothing, wait for 1010 (in essence it will wait for the second trigger to be created from the user, so that it can be grouped)
So what do you say? is it possible?