The RingArea object has x and y variables - they both have a range of 0 to 1.
The "negative x" you describe is actually the range 0<x<0.5 while the "positive x" you describe is 0.5<x<1. The same is true for y while obviously when the RingArea ball is at center position x=y=0.5
Taking under consideration the above you need to script different note outs on the following scenarios
if ((x<0.5) && (y<0.5)) (bottom left quadrant) ...
if ((x<0.5) && (y>0.5)) (top left quadrant) ...
if ((x>0.5) && (y<0.5)) (bottom right quadrant) ...
if ((x>0.5) && (y>0.5)) (top left quadrant) ...
if you are planning to send note outs I believe the most practical way to go about this is to set the script so that it is triggered by z value (whenever you "touch" the RingArea).
So you would need to define noteout(target, note, velocity, channel) functions after each "if" statement (where the dots are in the above example code).....Again check the manual for a full list of functions available.
So here is a finished example that sends note outs on Midi Target 0 with pitches 50 to 54 on Midi Ch 1 with fixed velocities according to the quadrant, when you touch the RingArea and then sends the noteoffs when you release your finger from the RingArea
Script on Expression z, any
Code: Select all
if (z==1)
{
if ((x<0.5) && (y<0.5)) noteout(0, 50, 127, 1);
if ((x<0.5) && (y>0.5)) noteout(0, 51, 127, 1);
if ((x>0.5) && (y<0.5)) noteout(0, 52, 127, 1);
if ((x>0.5) && (y>0.5)) noteout(0, 53, 127, 1);
}
else
{
noteout(0, 50, 0, 1);
noteout(0, 51, 0, 1);
noteout(0, 52, 0, 1);
noteout(0, 54, 0, 1);
}
Finally, by your description I believe you also want to incorporate different velocities for the note outs? based on what? x distance from center, y distance from center? You need to be more clear as to what you want your object to do.
