A macro can contain one or more triggers. A Trigger is something that would cause the macro to run. Examples of triggers are voice command, iOS or Android App, 3Dconnexion controller keydown/keyup/keycombo or externally generated app triggers. You can manage your triggers by either right-clicking in the trigger list, or by clicking on the Trigger menu.
A macro will usually only have one trigger, but you could have more. Here is an example of give triggers configured to run a the Ship Lights macro. If either one of those triggers occur, the macro will run. So, if a voice command of ‘lights’ is detected, or a 3Dconnexion controller V3DK_FIT button is pressed, or if a byte of data with a value of hex $FF is received via network UDP from an external app, the macro will run.
It is possible to have the same trigger data for different macros. In that event, when the trigger is detected, the first macro (listed alphabetically) will fire and the rest of the macros with the same trigger data will not.
Here’s a macro with a list of a the trigger types listed, for illustrative purposes only. You could trigger this macro with any of those triggers.
- Voice – Creates a new voice trigger for the entered word or phrase. Case does not matter, so uppercase or lowercase or any combination is fine. If you have set the voice configuration to include a Prefix, you do not need to include the prefix in the voice command. So in the voice command shown above, and the voice prefix configuration shown below, you would need to speak ‘computer chaff’ for the macro to run. Using a prefix helps reduce false voice triggers, such as may occur when you say ‘Oh honey, could you turn off the lights please?’. If you aren’t using a prefix, you can still mute the voice input by pressing a key on the controller. It’s up to you whether a prefix is better in your setup. Before you can use the voice triggers, you need to configure the Voice Configuration screen which is available from the Input menu. See the ‘Voice Commands’ article for more information on how to set this up.
When you add a voice trigger, you will need to enter the voice command, but without the prefix. After you have added the trigger and voice is enabled, speak the command ‘Test’ into the microphone. In the Voice, Log and Activity sidebar items you will see the results of your voice command.
- 3DxWare Single-Button Down – This creates a trigger for a 3Dxconnexion controller button press. So, in the example above, pressing the ‘Fit’ button on a SpaceMouse Pro will cause the Ship Lights macro to run. Be sure to enable the controller in the Input menu, 3DxWare menu item.
- 3DxWare Single-Button Up – This creates a trigger for a 3Dxconnexion controller button release. So, in the example above, releasing the ‘Right’ button on a SpaceMouse Pro will cause the Ship Lights macro to run. Be sure to enable the controller in the Input menu, 3DxWare menu item.
- 3DxWare Key Combo – This creates a trigger for a 3Dxconnexion controller multiple keys pressed simultaneously. So, in the example above, pressing the Alt and Shift buttons simultaneously will cause the Ship Lights macro to run. Be sure to enable the controller in the Input menu, 3DxWare menu item.
- UDP – This creates a trigger that will fire when ControlMyJoystick receives the byte $FF via network UDP on a port and bound host address that you define with the Configure UDP Trigger Server menu item. This allows you to create another app on your phone or on your PC that sends $FF to the trigger server. So if you wanted to, you could trigger this macro from your smartphone. Or, you could put a big red button on your desk that is connected to a microcontroller, which is in turn connected to an app you have created, which will send $FF to the trigger server when the button is pressed. There is a test app in the Tools menu called ‘UDP Trigger Sender’ which will send test data to the trigger server so that you can experiment to see how it works. Follow the instructions on the UDP Trigger Sender app for more information on how to set it up.
- Configure UDP Trigger Server – Here is where you set which network address and port on which the trigger server will wait for data sent to it by external apps and if the data matches the data specified in a UDP trigger, then the macro will be run. Set the Bind Address ex. address 127.0.0.1 or fe80::51f5:abd6:e19f:26cf. You may have more than one network card in your computer that you can bind to, so ensure you are using the correct one. Set the Bind Port as well. Be sure that no other apps running on your PC are listening on the same address and port. Click on Enabled when you want to start the server. Watch the Log in the sidebar to get status info and received data.
- TCP/IP – This creates a trigger that will display a trigger button on an iOS or Android device. You just touch need to touch the button on the device to cause the trigger to fire, and the corresponding macro to run. See the article ‘Using your iOS or Android Device as a Remote Trigger’ for more information on how to set this up.
- Configure TCP/IP Trigger Server – Here is where you set which network address and port on which the trigger server will wait for data sent to it by the iOS and Android remote control app. See the article ‘Using your iOS or Android Device as a Remote Trigger’ for more information on how to set this up.
- Delete – This removes the currently selected trigger from the selected macro. Deletes cannot be undone.
- Edit – This brings up the editor so that you may modify the selected trigger.