Pure Go implementation of the ATEM switcher protocol by Blackmagic Design.
See the example
for how to use it.
This project is in its early stages. Below is a list of commands that are currently supported.
- ✅: Implemented
- 🤨: Behaves unexpectedly, use with caution
- 🤔: Not implemented, might be obsolete
- ⭕️: Not (yet) implemented, byte layout known
- ❓: No idea what it does or what the byte layout is like
Slug | Long name | Status | Notes |
---|---|---|---|
InCm |
Init complete | ✅ | for internal use |
_ver |
Version | ✅ | state.Version |
_pin |
Product Ident Name | ✅ | state.Config.ProductName |
Warn |
Warning | ✅ | state.Warning |
_top |
Topology | 🤨 | state.Config.Topology - caution: contains many unknowns / wrong values |
_MeC |
Mix Effect Config | ✅ | state.Config.MixEffect |
_mpl |
Media Player Config | ✅ | state.Config.MediaPlayer |
_MvC |
MultiView Config | ✅ | state.Config.MultiViews |
_SSC |
SuperSource Config | ✅ | state.Config.SuperSources |
_TlC |
TallyChannel Config | ✅ | state.Config.TallyChannels |
_AMC |
Audio Mixer Config | 🤔 | seems unused? |
_VMC |
Video Mode Config | 🤔 | seems to not contain data? |
_MAC |
Macro Config | ✅ | state.Config.MacroBanks |
Powr |
Power | ✅ | state.Power |
DcOt |
DownConverter | ⭕️ | |
VidM |
Video Mode | ✅ | state.VideoMode |
InPr |
Input Properties | ✅ | state.Inputs - Missing some bits |
MvPr |
MultiViewer Properties | ⭕️ | |
MvIn |
MultiViewer Input | ⭕️ | |
PrgI |
Program Input | ✅ | state.Program |
PrvI |
Preview Input | ✅ | state.Preview |
TrSS |
Transition Settings | ⭕️ | |
TrPr |
Transition Preview | ⭕️ | |
TrPs |
Transition Position | ⭕️ | |
TMxP |
Transition Mix | ⭕️ | |
TDpP |
Transition Dip | ⭕️ | |
TWpP |
Transition Wipe | ⭕️ | |
TDvP |
Transition DVE | ⭕️ | |
TStP |
Transition Stinger | ⭕️ | |
KeOn |
Keyer On Air | ⭕️ | |
KeBP |
Keyer Base Properties | ⭕️ | |
KeLm |
Keyer Luma | ⭕️ | |
KeCk |
Keyer Chroma | ⭕️ | |
KePt |
Keyer Pattern | ⭕️ | |
KeDV |
Keyer DVE | ⭕️ | |
KeFS |
Keyer Fly | ⭕️ | |
KKFP |
Keyer Fly Keyframe | ⭕️ | |
DskB |
Downstream Keyer Base | ⭕️ | |
DskP |
Downstream Keyer Properties | ⭕️ | |
DskS |
Downstream Keyer State | ⭕️ | |
FtbP |
Fade-to-Black Properties | ⭕️ | |
FtbS |
Fade-to-Black State | ⭕️ | |
ColV |
Color Generator | ⭕️ | |
AuxS |
Aux Source | ✅ | state.Aux |
CCdo |
Camera Control Options | ⭕️ | |
CCdP |
Camera Control Properties | ⭕️ | |
CCst |
Camera Control ??? | ❓ | |
RCPS |
Clip Player State | ⭕️ | |
MPCE |
Media Player Source | ✅ | state.MediaPlayer |
MPSp |
Media Pool Storage | ⭕️ | |
MPCS |
Media Player Clip Sources | ⭕️ | |
MPAS |
Media Player Audio Sources | ⭕️ | |
MPfe |
Media Player Files | ✅ | state.MediaFiles |
MRPr |
Macro Run Status | ⭕️ | |
MPrp |
Macro Properties | ⭕️ | |
MRcS |
Macro Recording Status | ⭕️ | |
SSrc |
Super Source | ⭕️ | |
SSBd |
Super Source Border | ❓ | |
SSBP |
Super Source Box Properties | ⭕️ | |
AMIP |
Audio Mixer Input | ⭕️ | |
AMMO |
Audio Mixer Master | ⭕️ | |
AMmO |
Audio Mixer Monitor | ⭕️ | |
AMLv |
Audio Mixer Levels | ⭕️ | Subscribed using SALN |
AMTl |
Audio Mixer Tally | ⭕️ | |
AMBP |
Audio Mixer ????? | ❓ | |
AMLP |
Audio Mixer ????? | ❓ | |
AEBP |
Audio Effect ??? | ❓ | |
AIXP |
Audio Input ??? | ❓ | |
AICP |
Audio Input ??? | ❓ | |
AILP |
Audio Input ??? | ❓ | |
TlIn |
Tally By Index | ✅ | state.TallyByIndex |
TlSr |
Tally By Source | ✅ | state.TallyBySource |
TlFc |
Tally ????? | ❓ | |
Time |
TimeCode Last State Change | ✅ | state.TimeCodeLastChange |
LKST |
Lock State Changed | ⭕️ | |
RXMS |
RX Media Source??? | ❓ | |
RXCP |
RX ????? | ❓ | |
RXSS |
RX Super Source??? | ❓ | |
RXCC |
RX Camera Control??? | ❓ | |
FMTl |
? Tally??? | ❓ | |
FAIP |
Fairlight Audio Input Properties??? | ❓ | |
FASP |
Fairlight Audio ??? | ❓ | |
FAMP |
Fairlight Audio ??? | ❓ | |
FMLv |
? Levels? Audio? | ❓ | |
FDLv |
? Levels? Audio? | ❓ | |
_FAC |
❓ | ||
_FEC |
❓ | ||
_DVE |
❓ | ||
AiVM |
❓ | ||
TcLk |
❓ | ||
TCCc |
❓ | ||
KACk |
❓ | ||
KACC |
❓ | ||
CapA |
❓ | ||
FMPP |
❓ | ||
MOCP |
❓ |
Slug | Long name | Status | Notes |
---|---|---|---|
TiRq |
Request Timecode | ✅ | client.Timecode(...) |