# ATEM MIDI control

**URL:** https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959
**Category:** MIDI Programming
**Created:** [March 18, 2024, 7:44am UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959 "2024-03-18T07:44:46Z")
**Posts on this page:** 19
**Page:** 1

<div class="post-metadata">

### Author: ![Nahon](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/n/779978/32.png) [@Nahon](https://discourse.checkcheckonetwo.com/u/Nahon)
#### Post date: [March 18, 2024, 7:44am UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/1 "2024-03-18T07:44:46Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![Andy](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.checkcheckonetwo.com/u/Andy)
#### Post date: [March 18, 2024, 2:43pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/2 "2024-03-18T14:43:01Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![Nahon](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/n/779978/32.png) [@Nahon](https://discourse.checkcheckonetwo.com/u/Nahon)
#### Post date: [March 21, 2024, 1:23pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/3 "2024-03-21T13:23:41Z")

</div>

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)

---

<div class="post-metadata">

### Author: ![Andy](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.checkcheckonetwo.com/u/Andy)
#### Post date: [March 21, 2024, 1:51pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/4 "2024-03-21T13:51:55Z")

</div>

> [@Nahon](#):
>
> I use ATEM mini PRO

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.

---

<div class="post-metadata">

### Author: ![Nahon](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/n/779978/32.png) [@Nahon](https://discourse.checkcheckonetwo.com/u/Nahon)
#### Post date: [March 21, 2024, 2:53pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/5 "2024-03-21T14:53:55Z")

</div>

Sorry, I misunderstood…  
My controller is - DONNER starrypad

---

<div class="post-metadata">

### Author: ![Andy](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.checkcheckonetwo.com/u/Andy)
#### Post date: [March 21, 2024, 6:10pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/6 "2024-03-21T18:10:29Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Andy](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.checkcheckonetwo.com/u/Andy)
#### Post date: [March 21, 2024, 6:52pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/7 "2024-03-21T18:52:40Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![Nahon](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/n/779978/32.png) [@Nahon](https://discourse.checkcheckonetwo.com/u/Nahon)
#### Post date: [March 21, 2024, 8:17pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/8 "2024-03-21T20:17:25Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Nahon](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/n/779978/32.png) [@Nahon](https://discourse.checkcheckonetwo.com/u/Nahon)
#### Post date: [March 21, 2024, 8:27pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/9 "2024-03-21T20:27:33Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Andy](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.checkcheckonetwo.com/u/Andy)
#### Post date: [March 21, 2024, 8:35pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/10 "2024-03-21T20:35:12Z")

</div>

> [@Nahon](#):
>
> ATEM does not support MIDI control.  
> All control is carried out through the module for Companion.

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.

---

<div class="post-metadata">

### Author: ![Nahon](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/n/779978/32.png) [@Nahon](https://discourse.checkcheckonetwo.com/u/Nahon)
#### Post date: [March 31, 2024, 2:11pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/11 "2024-03-31T14:11:29Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Andy](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.checkcheckonetwo.com/u/Andy)
#### Post date: [March 31, 2024, 4:06pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/12 "2024-03-31T16:06:40Z")

</div>

See if this helps:

> [@Companion Generic MIDI module](https://discourse.checkcheckonetwo.com/t/companion-generic-midi-module/3890/25):
>
> How to trigger something every time a certain MIDI message arrives. [[MIDI Trigger Demo] ](https://www.youtube.com/watch?v=Wgjdy9xk7AY)

---

<div class="post-metadata">

### Author: ![Nahon](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/n/779978/32.png) [@Nahon](https://discourse.checkcheckonetwo.com/u/Nahon)
#### Post date: [March 31, 2024, 4:32pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/13 "2024-03-31T16:32:15Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Nahon](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/n/779978/32.png) [@Nahon](https://discourse.checkcheckonetwo.com/u/Nahon)
#### Post date: [March 31, 2024, 4:39pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/14 "2024-03-31T16:39:09Z")

</div>

> [@Nahon](#):
>
> cc\_1\_8\_

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

---

<div class="post-metadata">

### Author: ![Andy](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.checkcheckonetwo.com/u/Andy)
#### Post date: [March 31, 2024, 4:43pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/15 "2024-03-31T16:43:11Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Nahon](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/n/779978/32.png) [@Nahon](https://discourse.checkcheckonetwo.com/u/Nahon)
#### Post date: [March 31, 2024, 4:55pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/16 "2024-03-31T16:55:34Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Andy](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.checkcheckonetwo.com/u/Andy)
#### Post date: [March 31, 2024, 5:05pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/18 "2024-03-31T17:05:49Z")

</div>

[![](https://img.youtube.com/vi/q3X4VFyhvxw/maxresdefault.jpg "Auto-Create Variable in Generic MIDI module for Companion") ](https://www.youtube.com/watch?v=q3X4VFyhvxw)

---

<div class="post-metadata">

### Author: ![Nahon](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/n/779978/32.png) [@Nahon](https://discourse.checkcheckonetwo.com/u/Nahon)
#### Post date: [March 31, 2024, 5:48pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/19 "2024-03-31T17:48:52Z")

</div>

Great!  
It worked! Thanks a lot!

Now there’s another problem 🙂 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!

---

<div class="post-metadata">

### Author: ![Andy](https://discourse.checkcheckonetwo.com/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.checkcheckonetwo.com/u/Andy)
#### Post date: [March 31, 2024, 5:52pm UTC](https://discourse.checkcheckonetwo.com/t/atem-midi-control/3959/20 "2024-03-31T17:52:55Z")

</div>

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)
