Atem ip control linux
- Website
- Posts: 2
- Joined: Tue Oct 20, 2015 7:30 pm
ATEM Software on Linux
Thu Dec 03, 2015 12:35 am
- Posts: 4
- Joined: Mon Mar 30, 2015 12:46 pm
Re: ATEM Software on Linux
Thu Dec 03, 2015 6:33 pm
I don’t think it would make a difference or improvement as the software is used mainly for control, where the ultimate setup would be with the hardware switcher control
Sent from my iPad using Tapatalk
- Posts: 570
- Joined: Sun Sep 30, 2012 1:52 pm
Re: ATEM Software on Linux
Thu Dec 03, 2015 9:16 pm
- Posts: 1
- Joined: Mon Dec 07, 2015 7:20 am
Re: ATEM Software on Linux
Mon Dec 07, 2015 7:50 am
- Website
- Posts: 19
- Joined: Tue Sep 09, 2014 4:08 pm
- Location: Manchester, UK
Re: ATEM Software on Linux
Tue Dec 08, 2015 2:14 pm
I’ve built an IP based one we use in conjunction with a server with some decklink cards — the multiview out from the Atem goes into the server which then transmits the feed to any html5 client. It’s a bit specific to our hardware setup but I was planning on opening it up soon.
In my spare time I was wanting to make a Qt based clone of Atem software control — that would be a bit more ideal and I’ll bump that up the priority list if anyone’s interested. That one could integrate with a decklink’ed multiview quite nicely.
- Website
- Posts: 2
- Joined: Tue Oct 20, 2015 7:30 pm
Re: ATEM Software on Linux
Wed Dec 30, 2015 6:26 pm
Well. I started this topic and abandoned it. BUT here is the current ATEM software running on Debian Linux:
I would really like to see BMD release a Linux version along with a matching API. I think all of the embedded developers would appreciate that.
I posted a guide on my website if anyone is interested: austinleeginn.com/blog/2015/12/28/atem-software-and-linux
- Posts: 347
- Joined: Wed Aug 22, 2012 2:50 pm
Re: ATEM Software on Linux
Sun Jan 03, 2016 12:52 am
While BMD has great support for Decklink, this has been a void.
I use Peter’s Qt libs with great success.
You will note that most of BMD’s own software is written using Qt.
http://www.qt.io/
- Posts: 4
- Joined: Mon Nov 28, 2016 4:55 pm
Re: ATEM Software on Linux
Tue Nov 29, 2016 4:51 pm
Personally, I would be very interested in having ATEM control for some kind of RHEL compatible linux.
- Posts: 6
- Joined: Thu Feb 14, 2013 9:47 am
- Real Name: Odin H.Omdal
Re: ATEM Software on Linux
Tue Mar 10, 2020 10:26 pm
Sooo. Now with the ATEM Mini. What do people on Linux do?
I don’t need to do much, basically just want to set image/media. And maybe some audio would be ace. But just setting image is enough.
Has anyone gotten these softwares to work?
- Posts: 1
- Joined: Mon Apr 06, 2020 10:37 am
- Real Name: Eric Trancart
Re: ATEM Software on Linux
Mon Apr 06, 2020 5:07 pm
Hi guys
Hope everyone is going well !
I post because we actually use only linux and we would love to see ATEM software there. Cannot essentially buy it without such a support. :/
By the way, I read earlier in the forum that you can «virtualize» it ? How do you do this, and more , how do you get the virtual environment to connect to, let’s say for example, Resolve or media express turning under linux?
Do you mean virtualbox and the likes ?
Also a technical question, do the bmpcc (first one) could be synchronized for the timecode through the ATEM Mini ?
Atem ip control linux
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Atem network protocol implementation
Implementation of BlackMagicDesign’s ATEM communication protocol in Swift. It is written on top of Apple’s networking library NIO and implements both sides of the protocol: the control panel and the switcher side. This means that you can not only use it to control atem switchers but also to connect to your control panels without the need for a switcher. Opening a whole new world of applications for the Atem control panels. An example can be found at Atem-Simulator
Starting from version 1.0.0 this package uses Swift 5 and NIO2.
- macOS 10.14.6 on a MacBook Pro retina 15″ late 2013
- macOS 10.15.3 on a MacBook Pro retina 15″ late 2013
- Raspbian GNU/Linux 9 stretch on a Raspberry Pi model 3 B
- Raspbian GNU/Linux 10 Buster on a Raspberry Pi 4 model B Rev 1.2
When starting a new project: create a Swift package via SPM
Then add this library to the package description’s dependencies
And resolve this new dependency
Finally import the Atem module in your code
You are now ready to create atem controllers and switchers 😎 !
After looking at the following examples, study the API reference for more details.
This example shows how to create a controller that connects to a swicther at ip address 10.1.0.67 and print a message whenever the preview bus changes.
Sending messages
To send a message to the switcher use the send(. ) method like this:
The following example shows how to emulate the basic functionality of an atem switcher. It will forward incoming messages containing transition and preview & program bus changes to all connected controllers.
This snippet is also included in a seperate SPM target «Simulator» (./Sources/Simulator) and can be run by simply executing swift run Simulator in the terminal.
About
Blackmagic Design Atem network protocol implementation in swift 5.1 using NIO 2
atemOSC
OSC-bridge for controlling ATEM switchers
atemOSC is an open source project which acts as a bridge between OSC and Blackmagic Design ATEM switchers.
Getting started
Downloading
In order to get started with atemOSC, download the latest build from our GitHub repo. The current software is built for ATEM v7.2.
Once downloaded, unzip the folder and copy the atemOSC .app file over to your applications folder.
Next, open the app, enter your ATEM switchers IP address and atemOSC will connect automatically.
OSC API
To see the full list of OSC addresses, use the Help menu within atemOSC and choose OSC addresses .
Program selection
- Black /atem/program/0
- Input 1 /atem/program/1
- Input 2 /atem/program/2
- Input 3 /atem/program/3
- Input 4 /atem/program/4
- and so on.
- Bars /atem/program/7
- Color 1 /atem/program/8
- Color 2 /atem/program/9
- Media Player 1 /atem/program/10
- Media Player 2 /atem/program/12
Feedback: Enabled for all values.
Preview selection
- Black /atem/preview/0
- Input 1 /atem/preview/1
- Input 2 /atem/preview/2
- Input 3 /atem/preview/3
- Input 4 /atem/preview/4
- and so on.
- Bars /atem/preview/7
- Color 1 /atem/preview/8
- Color 2 /atem/preview/9
- Media Player 1 /atem/preview/10
- Media Player 2 /atem/preview/12
Feedback: Enabled for all values.
Transitions
- T-bar /atem/transition/bar
- Cut /atem/transition/cut
- Auto /atem/transition/auto
- Fade-to-black /atem/transition/ftb
Setting transition type
- Mix /atem/transition/set-type/mix
- Dip /atem/transition/set-type/dip
- Wipe /atem/transition/set-type/wipe
- Stinger /atem/transition/set-type/sting
- DVE /atem/transition/set-type/dve
Auxiliary source selection
- Aux /atem/aux/$i $x
- Where $x is an integer value that is a valid Aux source, and can be 1-6 depending on the capability of your ATEM switcher. Check the Help Menu for the correct values.
- e.g. /atem/aux/1 1 to set Aux 1 output to source 1 (Camera 1).
Upstream keyers
- Toggle On-Air Upstream Keyer $i /atem/usk/$i
- Prepare Upstream Keyer $i /atem/nextusk/$i
- Set Upstream Keyer $i for Next Scene /atem/set-nextusk/$i
- Send a value of 1 to show the USK after next transition, and 0 if you don’t want to show the USK after next transition.
- e.g. If USK 1 is on air, /atem/set-nextusk/1 1 will untie USK 1 so that it remains on, while /atem/set-nextusk/1 0 will tie USK 1 so that it will go off air after the next transition.
Feedback: Enabled for /atem/nextusk only.
Downstream keyers
- Auto Toggle On-Air Downstreamkeyer $i /atem/dsk/$i
- Cut Toggle On-Air Downstreamkeyer $i /atem/dsk/toggle/$i
- Force On-Air Downstreamkeyer $i /atem/dsk/on-air/$i
- Send a value of 1 to cut the DSK on-air, and a value of 0 to cut it off-air.
- Toggle Tie Downstreamkeyer $i /atem/dsk/tie/$i
- Force Tie Downstreamkeyer $i /atem/dsk/set-tie/$i
- Send a value of 1 to enable tie, and 0 to disable.
- Set Downstreamkeyer $i for Next Scene /atem/dsk/set-next/$i
- Send a value of 1 to show the DSK after next transition, and 0 if you don’t want to show the DSK after next transition.
- e.g. If DSK1 is on air, /atem/dsk/set-next/1 1 will untie DSK1 so that it remains on, while /atem/dsk/set-next/1 0 will tie DSK1 so that it will go off air after the next transition.
Feedback: Enabled for /atem/dsk/on-air and /atem/dsk/tie only.
Media players
- Set Media Player $i source to Clip $x /atem/mplayer/$i/clip/$x
- Where $i can be 1 or 2, and $x can be 1 or 2 depending on the capability of your ATEM switcher.
- e.g. /atem/mplayer/2/clip/1
- Set Media Player $i source to Still $x /atem/mplayer/$i/still/$x
- Where $i can be 1 or 2, and $x can be 1-20 depending on the capability of your ATEM switcher.
- e.g. /atem/mplayer/1/still/5
SuperSource (when available)
- Toggle SuperSource Box $i enabled /atem/supersource/$i/enabled
- Send a value of 1 to enable, and 0 to disable.
- Set SuperSource Box $i source to input $x /atem/supersource/$i/source $x
- Where $x is a valid program source. Check the Help Menu for the correct values.
Other options are available. Check the Help Menu in the app for the full list.
Macros
Macros should be recorded within the ATEM Control Panel software.
Macros are stored within the ATEM in a 0-index array. This means that to access the first recorded Macro, you should use an index $i of 0, to access the second recorded Macro, you should use an index of 1 etc.
- Get the Maximum Number of Macros /atem/macros/max-number
- Returns an int of the maximum number of Macros supported by your ATEM.
- Access to these Macros should be used via an index of n-1.
- Stop the currently active Macro (if any) /atem/macros/stop
- Get the Name of a Macro /atem/macros/$i/name
- Returns a string with the name, or «» if the Macro is invalid.
- Get the Description of a Macro /atem/macros/$i/description
- Returns a string with the description, or «» if the Macro is invalid.
- Get whether the Macro at index $i is valid /atem/macros/$i/is-valid
- Returns an int of 0|1 to indicate whether the requested Macro is valid.
- Run the Macro at index $i /atem/macros/$i/run
- Returns an int of 0|1 to indicate whether the requested Macro was executed. A 0 will be returned if the Macro is invalid, or does not exist.
Feedback: Enabled for /atem/macros/max-number , /atem/macros/$i/name , /atem/macros/$i/description , and /atem/macros/$i/is-valid . Also available On-Request (you can send the command to get the value in a return message).
Other
- Request all feedback available /atem/send-status
- This will query the switcher and send back the status for the program/preview, transition control, keyers, and macros.
- e.g. This can be used when a new OSC client device is brought online, so that it gets the current status of the system.
Use cases
Here’s a peek at some of the ways to control your ATEM with atemOSC.
In combination with TouchOSC, you can create, configure and control a custom layout for operating your ATEM. The beauty of this system is that you have complete control over what your control panel looks like.
MIDI panel
If you prefer a more tactile approach to your control panel, you can pick up just about any MIDI panel — and in combination with OSCulator — you can control your ATEM.
«It’s not working for me»
First things first, make sure your IP address has been entered correctly. If you’re still experienceing issues, create an issue on our GitHub repo. It’s okay if you’re not a familar with GitHub, just follow the link, click on the green «New issue» option, create an account, and fill in as much information as you can!
«I have a feature request»
Excellent! Feel free to open an issue on our GitHub repo. Just be sure to check someone hasn’t already requested the feature.