Hello.
Please help me configure the module.
I’m trying to make triggers to control my Blackmagic ATEM mini using a MIDI controller.
I create a trigger like this
Events - On condition becoming true
Condition - generic-midi: Receive MIDI Message - Note On (tried Note Off)
I’ve tried different midi channels, tried different notes, tried Use Variables - it doesn’t work.
The indicator button shows that a MIDI signal is coming, the log shows that the MIDI signal is received (there is a note) - but nothing happens.
If I change Condition to Message Type = CC - everything works! But my controller has only 4 buttons that allow you to send commands like CC.
Please help me set this up.
Note on the log
In my controller, the buttons were set to channel 1. When I first connected it, when I pressed the button, the log displayed a message
The channel was defined as = 0.
When I changed the controller settings and set the channel to 2, it started showing up in the log as = 1.
Although, when setting up a trigger with the CC command and viewing the variable, it displays the correct channel, number 2, in messages.
Yeah, there’s no “standard” for channel numbers, but in reality they’re numbered from 0 - 15, but most people familiar with MIDI expect to see them as 1-16. The log is showing the raw value, while the action is showing the “converted” (1-16) value. I probably should make them the same to avoid confusion!
This method works.
Just one note.
It only works if I turn on the “FULL LEVEL” mode on the controller and it sends commands with Velocity = 127. Otherwise, I don’t know how to make it react to Velocity having a different value each time I press it.
Go into the trigger and remove or disable the Condition internal: Variable: Check value.
Add a new condition internal: Variable: Check boolean expression
Set the expression to look for just the first part of the incoming message. For example, to trigger on any noteon message on channel 1, note 0, use this expression: includes($(generic-midi:lastMessage), 'noteon_1_0')
This will trigger the action on any velocity above 0 for note 0 on channel 1.
My instance of the generic-midi module is called generic-midi. If yours is named something else, then substitute that name for the part before the :lastMessage in the expression. e.g. if you have named the instance you’re using of the generic-midi module my-midi then the expression would be: includes($(my-midi:lastMessage), 'noteon_1_0')