ATEM MIDI control

Perhaps you can tell me one more thing…
I want to control a fader in the ATEM Control app that controls the audio volume.
My controller has a fader that is configured like this -
it transmits commands like - CC, on channel 2, controller number 9, values from 0 to 127.
Could you tell me how to connect this to a fader in ATEM Control?

I’ve never used an ATEM Control, but it should be pretty easy to figure this out.

  1. What brand/model of controller are you using?
  2. What is the MIDI command on the ATEM Control for the fader you want to control?
  1. I use ATEM mini PRO
    (thanks to your help, I configured all the necessary buttons on the MIDI controller so that they control various buttons in the ATEM Control application)

  2. here are the messages from the log of my MIDI controller

debug : Received: cc Message, channel: 0 (0x00), controller: 8 (0x08), value: 0 (0x00) from “STARRYPAD”

debug : Received: cc Message, channel: 0 (0x00), controller: 8 (0x08), value: 127 (0x7f) from “STARRYPAD”

this is the first and last message when the feder is running.
(I can change the channel number and controller number if necessary)

I looked in Variables for atem
when in the ATEM control application I move the fader I need,
the next variable changes

  • $(atem:audio_input_1302_faderGain) - Fader gain for input 1302

variable values from -100 (lower fader position) to 10 (upper fader position)


Also, my MIDI controller has (sorry, I don’t know what to call it correctly) a rotary knob that can rotate to the right or left without limitation.

If possible, it would be great to configure this knob to control the panning of the audio channel in ATEM control.

Rotation to the right produces these variables (from 1 to 127)

debug : Received: cc Message, channel: 0 (0x00), controller: 5 (0x05), value: 1 (0x01) from “STARRYPAD”

debug : Received: cc Message, channel: 0 (0x00), controller: 5 (0x05), value: 127 (0x7f) from “STARRYPAD”

rotation to the left produces variables (from 127 to 0)

debug : Received: cc Message, channel: 0 (0x00), controller: 5 (0x05), value: 0 (0x00) from “STARRYPAD”

In the ATEM control application, the regulator I need changes the variable

  • $(atem:audio_input_1302_balance) Pan for input 1302

variable values from -100 (extreme left position) to 100 (extreme right position)

I know. I want to know the make and model of the MIDI controller you’re trying to connect to the ATEM to control the ATEM.

Sorry, I misunderstood…
My controller is - DONNER starrypad

Ok. Understood.

Does the ATEM send MIDI messages back? The log you showed shows the messages coming from your StarryPad, but do you also get messages from the ATEM?
If not, can you configure your ATEM to send messages back?
If you can do that, then you will be able to use the encoders (the knobs)

Regarding the faders, it sounds like your StarryPad is sending normal MIDI 0-127 numbers but your ATEM is looking to see numbers -100 to 100? There’s ways to resolve this, but the easiest way would be to have your ATEM send MIDI back as I was saying.

Are you looking to have companion translate the messages or do you want to control the ATEM directly via MIDI?
I’m asking because I don’t know if the ATEM supports MIDI control?

ATEM does not support MIDI control.
All control is carried out through the module for Companion.

Please forgive me if this sounds stupid, as I said, I don’t understand anything about programming.

Is it possible to connect 2 variables with each other using Companion?

For example, a variable received from a MIDI controller (changed to 1, plus or minus) influenced the variable in ATEM (also 1).

It’s not ideal for a fader, but it would work for me. And it should work well with the balance control if possible.

Copy that.

So, you need to basically convert the MIDI controller’s 0-127 to the ATEM’s -100 to 100?
To do that within Companion, you’d use the “internal: Custom Variable: Set with expression” action within a trigger.

Create a feedback for the MIDI fader, and select “Auto-Create Variable”. Using the example you gave of CC message 5 on channel 0, then the expression would be something like:
($(generic-midi:_cc_1_5) / 0.635) - 100

You should make the trigger’s even be “when a variable changes” and the variable is the same one used above.

The trigger’s action should be to set the ATEM fader to the value of the custom variable.

I’m still having trouble setting up the volume fader control on my ATEM using my MIDI controller.

How do I get a variable to control my fader as numbers?
I create a custom variable (or specify it somewhere as a condition)
of such a type
$(universal-midi:_cc_1_8)
Should I get from this formula the digital value that my MIDI controller transmits on a specified channel and a specified note?
So channel 1, note 8, am I right?
The result I will get will just be numbers from 0 to 127?

I have the impression that something in this formula is not working, or I am doing something wrong.
I created a button and specified this expression in the title, hoping to get a display of the numbers on the button that my controller is passing. But it didn’t work.
As in all my attempts to control my ATEM mini.
Could there be some problem with this formula?

If I have misunderstood something, can you tell me how I can get the simple digital value that comes in the last part of the command from the MIDI controller.
The value specified in the module description has the form - cc_1_8_xxx.
How can I get only those numbers that come at the end, I designated them xxx.

See if this helps:

this is a little not what is needed
In this video, we are talking about one command, where the full meaning of the command is used.
Which looks like this - “noteon_1_12_xxx
where “xxx” are numbers from 0 to 127, which indicate the duration of pressing the note.

To control the ATEM fader, I need to receive a variable not as a value - “cc_1_8_xxx
(where “xxx” are numbers from 0 to 127)
But I only need to get the numbers at the end of the formula. How can I get a variable that will only consist of numbers? That is, cut off the part of the variable message that looks like “cc_1_8_
and get only the numbers that are at the end of this variable.

that is, I will receive a variable in the form
cc_1_8_0
cc_1_8_1
cc_1_8_2
cc_1_8_3
cc_1_8_4
cc_1_8_5
and so on until 127 (when the fader is moved up)

cc_1_8_127
cc_1_8_126
cc_1_8_125
cc_1_8_124
cc_1_8_123
and in reverse order (when moving the fader down)

How do I get a variable that will only contain the last numbers in your variable?
I only need numbers
0
1
2
3
4
5
and so on
Without the “cc_1_8_” part

Have you tried the “auto-create” variable feature in a feedback?

It creates the variable and then puts the value into it every time it receives a message that matches the feedback.

where can I do this? I didn’t see this feature in the companion

Great!
It worked! Thanks a lot!

Now there’s another problem :slight_smile: I don’t know how to pass these values to the desired ATEM variable…
But this is a question for another topic.
Thank you for your help!

You’re welcome.

I’ve never used the ATEM module, but if it supports variables, just put the auto-created variable as the value of the action (with the appropriate conversion formula)