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(...) |