OSC Listener & Send Note
I have a simple patch I am having some trouble problem solving. I am using a wii mote as my input device for a OSC listener through Osculator. The values is sent through a smoother and in the end to a Send Note actor that sends the note to another software. The issue with my patch is that the values coming from my OSC listener and smoother aralways sending a trigger to the send note actor. I only want it to send a note when in motion.
My question is if there is a way so that when my wii mote is not being moved, it does not send a trigger to my send note actor?
I appreciate your help and have attached an image
The tricky part in your premise is " I only want it to send a note when in motion." I'm guessing that you are using the rotation sensors on the Wii. There is enough noise in those signals that there will always be new numbers coming from the OSC Listener – no matter how still you are. Strictly speaking, if the number at the OSC Listener is changing, then the Wii is "in motion."
To have this work, you need to define a +/- range around the current value, and only respond to a change when that value is exceeded. Then you update the +/- value and repeat the process.
I've created a User Actor that does exactly that, and named it "Ignore Stillness and Smooth." It accepts an input value, and a 'still range' input. If your input is varying between 0.0 and 1.0, then I would try a 'still range' input of 0.05. Larger values mean the value must change by a greater amount to trigger a new output. Of course, the higher the value, the coarser the response.
Give this the User Actor in this patch a try and see if it solves your problem.
(P.S. To be very sure about the Smoother actor is behaving as expected, I just tested it in v2.5.2, which is the current release version. I used a mouse watcher as the source, and set the smoothing value to 0.7 as you have. If I move the mouse, the Smoother generates values for about 3 or 4 seconds. But then it stops when it has finally settled on the input value.)
This is exactly what I was looking to do. Thank you so much for this, your kindness and generosity of knowledge is greatly appreciated!
Do you have a recommendation as to how I could gain similar results with a video effect ? I would like it so that when the wii control is not in motion, the video plays as normal and when in motion a video effect is triggered on. Basically a "on/off" switch for a video effect ON = in motion OFF = still (not in motion)
Thanks for your help!
You could do this with a toggle actors linked to 'visible' on the movie player. Also have a look at the inside range actors; this could be a good way of triggering an ON (enter trigger) if the movement is higher than N (number).
Hi Sculpture, thanks for your response. I am still having trouble, I would like to have the trigger turn an effect on without using the movie player - I think...
If you see the image attached what I would like is for the Router Actor that is linked to the Kaleidoscope Actor to switch its out put from 2 to 1. 2= not in motion 1= triggered in motion. I tried using the internet counter actor but it did not work as I wanted.
Here is the image:
Also, the reason I would like to not have just the movie player be visible on/off is because I still want the video to play, I just do not want the effect to be active when the OSC actor is not being triggered.
and use the Bypass input of your effect
Thank you for your response! I don't understand how to use the Comparator to do this. I am able to trigger the effect "on" when triggered but when the osc listener is not active the effect by pass does not trigger off, the effect is still present.
Thank you for your help, this forum is great!
connect the out called output in comparator to bypass on your effect. it vary between 0 an 1, 0 is seen as off 1 as on
For some reason I can't figure this out. I feel like I am missing something very simple. I am working towards becoming more familiar with Isadora and finding my way around, thanks for your patience and input.
I have the comparator set up to the bypass input of my effect. When I change the "compare" of my comparator from lt (less then) to gt (greater then) The value in the comparator output is able to change from 0 to 1 and vis versa. But, I can't get the output value to change back from a 1 to a 0 and vis versa without modifying the compare input manually.
I used the Mouse Watcher in this example in replacement of the OSC Listener.
@jessemelansonart attach here the patch, I take a look after
@jessemelansonart - you need to change the notify box of the Comparator to Change, instead of Always. then the value will trigger the output to 1 or 0 only when it goes over the threshold that you set.
it makes more sense to connect your input to value1, and set value2 to 50 (or whatever works for you) then set the compare to ge (greater than or equal to) - if the bypass works the wrong way round, change the compare to le (less than or equal to)
Okay, great I I see how the comparator is operating. However the comparator only changes the output value when value 1 is above or below the value 2 threshold. I don't think that the comparator can complete the task I am looking to have done as the effect can get stuck "on" or "off" depending if it is above or below the threshold.
I would like for when my mouse is "active" and its output values are changing for the bypass of the Kaleidoscope to be "off" and when my mouse stops moving for the Kaleidoscope bypass to be "on".
Is there an actor in Isadora that sends a trigger when a actor is receiving signal and then sends a "off" trigger when it is no longer receiving a signal? The issue with the comparator is if the values stops above 50, the by pass stays the same. I wan t the effect to only be on when the mouse is in motion, and off when it stops being moved.
It may not be possible to achieve what I am trying to do, but it seems simple.
Thanks for your help!
OK. now i understand a little more.
you could add a 2D Velocity actor to your patch.
or you can compare the value of the mouse position to the value of the mouse position a split second ago (using a Value Delay Line) - if it is different then the mouse is in motion. if it is equal, then the mouse is stationary.
Can you explain the value deny line a little more? Where is this?
Hi there and welcome to the Isadora forums :smile:
I included a patch that allows you to detect or a mouse is stationary or not.
Fig #1 : Checking or the mouse is stationary or not.
So let's dig in and pull this little piece apart !
Step 1) A Mouse watcher with a X and a Y position
Step 2) The value of the Mouse Y goes into a Trigger delay and a Trigger value. Basically what we do here is say 'Hey, save this value for 'X' period of time and then give it to our Output'. The X is defined by our Trigger delay 'delay' argument that gives a trigger to our Trigger value 'trigger' input. If the Trigger Value actor receives a Trigger it will give his current value to the 'output' of the actor.
Step 3) Our comparator gets two values. The current position of the Mouse Y and the value that has been delayed by 0.1 seconds. If both values are the same then that means that the mouse has not moved, if not then the mouse has moved !
If you have any questions, please feel free to ask.
Wow, there it is! This is exactly what I was looking to do. Your explanation is crystal clear. Jeez, I was going nuts trying to solve this problem. Thank you, thank you, thank you!
@Juriaan - that's a neat solution.