Docs - Data - Switcher State
The ATEMMax object provides information about both the connection status and the switcher state.
Switcher connection
started(bool):Trueifconnect()has been called.switcherAlive(bool): Set toTrueon first UDP packet reception from the switcher.handshakeStarted(bool): Set toTruewhenATEMMaxcloses theHELLOinteraction and starts waiting for the initial data snapshot.connected(bool): Set toTruewhen the initial data snapshot is finished and normal operation starts.ip(str): IP address of the switcher.
Switcher state
Data structure
Settings are organized in a tree-like structure, for easier access. Examples:
switcher.videoMode.formatswitcher.audioMixer.master.volumeswitcher.audioMixer.input[audioSource].volumeswitcher.cameraControl[camera].lift.rswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].border.outer.softness
Value lists
When a node in the value tree is a list, it can be indexed using an ATEMConstant.
These 3 statements are equivalent:
switcher.audioMixer.input[switcher.atem.audioSources.mic1].volume
switcher.audioMixer.input[1301].volume
switcher.audioMixer.input["mic1"].volumeSee the Data - Protocol - ATEMConstant section for more info.
Mapped values
In most cases the raw values received from the switcher are converted to real world values. Examples:
Audio volumes are expressed in dB, no conversions required:
switcher.setAudioMixerMasterVolume(1.8)
decibels = switcher.audioMixer.master.volumeGamma values in cameraControl are interpreted as float values ranging from -1.0 to 1.0, instead of the original -8192 to 8192 raw range:
switcher.setCameraControlGammaR("camera1", 0.7)
gamma = self.data.cameraControl["camera1"].gamma.rHue value in cameraControl is interpreted as a float value ranging from 0.0 to 359.9 degrees, instead of the original -2048 to 2048 raw range:
switcher.setCameraControlHue("camera1", 90.5)
hue = self.data.cameraControl["camera1"].hueEnumerated values
When a setting corresponds to an enumerated value, the option name can be extracted by converting it to a string or getting its name member:
formatname = f"Current video format: {switcher.videoMode.format}"
formatname = "Current video format: " + str(switcher.videoMode.format)
formatname = "Current video format: " + switcher.videoMode.format.nameState tree
This is the complete list of settings stored in the ATEMMax object:
general
switcher.atemModelswitcher.warningText
audioMixer
switcher.audioMixer.config.audioChannelsswitcher.audioMixer.config.hasMonitorswitcher.audioMixer.input[audioSource].balanceswitcher.audioMixer.input[audioSource].fromMediaPlayerswitcher.audioMixer.input[audioSource].mixOptionswitcher.audioMixer.input[audioSource].plugtypeswitcher.audioMixer.input[audioSource].typeswitcher.audioMixer.input[audioSource].volumeswitcher.audioMixer.levels.master.leftswitcher.audioMixer.levels.master.peak.leftswitcher.audioMixer.levels.master.peak.rightswitcher.audioMixer.levels.master.rightswitcher.audioMixer.levels.monitorswitcher.audioMixer.levels.numSourcesswitcher.audioMixer.levels.sources[audioSources[a]].leftswitcher.audioMixer.levels.sources[audioSources[a]].peak.leftswitcher.audioMixer.levels.sources[audioSources[a]].peak.rightswitcher.audioMixer.levels.sources[audioSources[a]].rightswitcher.audioMixer.master.volumeswitcher.audioMixer.monitor.dimswitcher.audioMixer.monitor.monitorAudioswitcher.audioMixer.monitor.muteswitcher.audioMixer.monitor.soloswitcher.audioMixer.monitor.soloInputswitcher.audioMixer.monitor.volumeswitcher.audioMixer.tally.numSourcesswitcher.audioMixer.tally.sources[audioSource].isMixedIn
auxSource
switcher.auxSource[aUXChannel].input
cameraControl
switcher.cameraControl[camera].colorbarsswitcher.cameraControl[camera].contrastswitcher.cameraControl[camera].focusswitcher.cameraControl[camera].gain.bswitcher.cameraControl[camera].gain.gswitcher.cameraControl[camera].gain.rswitcher.cameraControl[camera].gain.valueswitcher.cameraControl[camera].gain.yswitcher.cameraControl[camera].gamma.bswitcher.cameraControl[camera].gamma.gswitcher.cameraControl[camera].gamma.rswitcher.cameraControl[camera].gamma.yswitcher.cameraControl[camera].hueswitcher.cameraControl[camera].irisswitcher.cameraControl[camera].lift.bswitcher.cameraControl[camera].lift.gswitcher.cameraControl[camera].lift.rswitcher.cameraControl[camera].lift.yswitcher.cameraControl[camera].lumMixswitcher.cameraControl[camera].saturationswitcher.cameraControl[camera].sharpeningLevelswitcher.cameraControl[camera].shutterswitcher.cameraControl[camera].whiteBalanceswitcher.cameraControl[camera].zoom.normalizedswitcher.cameraControl[camera].zoom.speed
clipPlayer
switcher.clipPlayer[mediaPlayer].atBeginningswitcher.clipPlayer[mediaPlayer].clipFrameswitcher.clipPlayer[mediaPlayer].loopswitcher.clipPlayer[mediaPlayer].playing
colorGenerator
switcher.colorGenerator[colorGenerator].hueswitcher.colorGenerator[colorGenerator].lumaswitcher.colorGenerator[colorGenerator].saturation
downConverter
switcher.downConverter.mode
downstreamKeyer
switcher.downstreamKeyer[dsk].bottomswitcher.downstreamKeyer[dsk].clipswitcher.downstreamKeyer[dsk].fillSourceswitcher.downstreamKeyer[dsk].framesRemainingswitcher.downstreamKeyer[dsk].gainswitcher.downstreamKeyer[dsk].inTransitionswitcher.downstreamKeyer[dsk].invertKeyswitcher.downstreamKeyer[dsk].isAutoTransitioningswitcher.downstreamKeyer[dsk].keySourceswitcher.downstreamKeyer[dsk].leftswitcher.downstreamKeyer[dsk].maskedswitcher.downstreamKeyer[dsk].onAirswitcher.downstreamKeyer[dsk].preMultipliedswitcher.downstreamKeyer[dsk].rateswitcher.downstreamKeyer[dsk].rightswitcher.downstreamKeyer[dsk].tieswitcher.downstreamKeyer[dsk].top
fadeToBlack
switcher.fadeToBlack[mE].rateswitcher.fadeToBlack[mE].state.framesRemainingswitcher.fadeToBlack[mE].state.fullyBlackswitcher.fadeToBlack[mE].state.inTransition
inputProperties
switcher.inputProperties[videoSource].availability.auxiliaryswitcher.inputProperties[videoSource].availability.keySourcesEverywhereswitcher.inputProperties[videoSource].availability.multiviewerswitcher.inputProperties[videoSource].availability.superSourceArtswitcher.inputProperties[videoSource].availability.superSourceBoxswitcher.inputProperties[videoSource].availableExternalPortTypes.componentswitcher.inputProperties[videoSource].availableExternalPortTypes.compositeswitcher.inputProperties[videoSource].availableExternalPortTypes.hdmiswitcher.inputProperties[videoSource].availableExternalPortTypes.sdiswitcher.inputProperties[videoSource].availableExternalPortTypes.sVideoswitcher.inputProperties[videoSource].externalPortTypeswitcher.inputProperties[videoSource].longNameswitcher.inputProperties[videoSource].mEAvailability.mE1FillSourcesswitcher.inputProperties[videoSource].mEAvailability.mE2FillSourcesswitcher.inputProperties[videoSource].portTypeswitcher.inputProperties[videoSource].shortName
key
switcher.key[mE][keyer].chroma.gainswitcher.key[mE][keyer].chroma.hueswitcher.key[mE][keyer].chroma.liftswitcher.key[mE][keyer].chroma.narrowswitcher.key[mE][keyer].chroma.ySuppressswitcher.key[mE][keyer].dVE.border.bevel.positionswitcher.key[mE][keyer].dVE.border.bevel.softnessswitcher.key[mE][keyer].dVE.border.bevel.typeswitcher.key[mE][keyer].dVE.border.enabledswitcher.key[mE][keyer].dVE.border.hueswitcher.key[mE][keyer].dVE.border.inner.softnessswitcher.key[mE][keyer].dVE.border.inner.widthswitcher.key[mE][keyer].dVE.border.lumaswitcher.key[mE][keyer].dVE.border.opacityswitcher.key[mE][keyer].dVE.border.outer.softnessswitcher.key[mE][keyer].dVE.border.outer.widthswitcher.key[mE][keyer].dVE.border.saturationswitcher.key[mE][keyer].dVE.bottomswitcher.key[mE][keyer].dVE.leftswitcher.key[mE][keyer].dVE.lightSource.altitudeswitcher.key[mE][keyer].dVE.lightSource.directionswitcher.key[mE][keyer].dVE.maskedswitcher.key[mE][keyer].dVE.position.xswitcher.key[mE][keyer].dVE.position.yswitcher.key[mE][keyer].dVE.rateswitcher.key[mE][keyer].dVE.rightswitcher.key[mE][keyer].dVE.rotationswitcher.key[mE][keyer].dVE.shadowswitcher.key[mE][keyer].dVE.size.xswitcher.key[mE][keyer].dVE.size.yswitcher.key[mE][keyer].dVE.topswitcher.key[mE][keyer].luma.clipswitcher.key[mE][keyer].luma.gainswitcher.key[mE][keyer].luma.invertKeyswitcher.key[mE][keyer].luma.preMultipliedswitcher.key[mE][keyer].pattern.invertPatternswitcher.key[mE][keyer].pattern.patternswitcher.key[mE][keyer].pattern.position.xswitcher.key[mE][keyer].pattern.position.yswitcher.key[mE][keyer].pattern.sizeswitcher.key[mE][keyer].pattern.softnessswitcher.key[mE][keyer].pattern.symmetry
keyer
switcher.keyer[mE][keyer].bottomswitcher.keyer[mE][keyer].fillSourceswitcher.keyer[mE][keyer].fly.enabledswitcher.keyer[mE][keyer].fly.isASetswitcher.keyer[mE][keyer].fly.isAtKeyFrame.aswitcher.keyer[mE][keyer].fly.isAtKeyFrame.bswitcher.keyer[mE][keyer].fly.isAtKeyFrame.fullswitcher.keyer[mE][keyer].fly.isAtKeyFrame.runToInfiniteswitcher.keyer[mE][keyer].fly.isBSetswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].border.bevel.positionswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].border.bevel.softnessswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].border.hueswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].border.inner.softnessswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].border.inner.widthswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].border.lumaswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].border.opacityswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].border.outer.softnessswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].border.outer.widthswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].border.saturationswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].bottomswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].leftswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].lightSource.altitudeswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].lightSource.directionswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].position.xswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].position.yswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].rightswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].rotationswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].size.xswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].size.yswitcher.keyer[mE][keyer].fly.keyFrame[keyFrame].topswitcher.keyer[mE][keyer].fly.runtoInfiniteindexswitcher.keyer[mE][keyer].keySourceswitcher.keyer[mE][keyer].leftswitcher.keyer[mE][keyer].maskedswitcher.keyer[mE][keyer].onAir.enabledswitcher.keyer[mE][keyer].rightswitcher.keyer[mE][keyer].topswitcher.keyer[mE][keyer].type
lastStateChange
switcher.lastStateChange.timeCode.frameswitcher.lastStateChange.timeCode.hourswitcher.lastStateChange.timeCode.minuteswitcher.lastStateChange.timeCode.second
macro
switcher.macro.pool.banksswitcher.macro.properties[macroIndex].isUsedswitcher.macro.properties[macroIndex].nameswitcher.macro.recordingStatus.indexswitcher.macro.recordingStatus.isRecordingswitcher.macro.runStatus.indexswitcher.macro.runStatus.isLoopingswitcher.macro.runStatus.state.runningswitcher.macro.runStatus.state.waiting
mediaPlayer
switcher.mediaPlayer.audioSource[clipBank].fileNameswitcher.mediaPlayer.audioSource[clipBank].isUsedswitcher.mediaPlayer.clipBanksswitcher.mediaPlayer.clipSource[clipBank].fileNameswitcher.mediaPlayer.clipSource[clipBank].framesswitcher.mediaPlayer.clipSource[clipBank].isUsedswitcher.mediaPlayer.source[mediaPlayer].clipIndexswitcher.mediaPlayer.source[mediaPlayer].stillIndexswitcher.mediaPlayer.source[mediaPlayer].typeswitcher.mediaPlayer.stillBanksswitcher.mediaPlayer.stillFile[stillBank].fileNameswitcher.mediaPlayer.stillFile[stillBank].isUsed
mediaPoolStorage
switcher.mediaPoolStorage.clip1MaxLengthswitcher.mediaPoolStorage.clip2MaxLength
mixEffect
switcher.mixEffect.config[mE].keyers
multiViewer
switcher.multiViewer.config.multiViewersswitcher.multiViewer.input[multiViewer][windowIndex].videoSourceswitcher.multiViewer.properties[multiViewer].layout
power
switcher.power.status.backupswitcher.power.status.main
previewInput
switcher.previewInput[mE].videoSource
programInput
switcher.programInput[mE].videoSource
protocolVersion
switcher.protocolVersion.majorswitcher.protocolVersion.minor
superSource
switcher.superSource.border.bevel.positionswitcher.superSource.border.bevel.softnessswitcher.superSource.border.bevel.valueswitcher.superSource.border.enabledswitcher.superSource.border.hueswitcher.superSource.border.inner.softnessswitcher.superSource.border.inner.widthswitcher.superSource.border.lumaswitcher.superSource.border.outer.softnessswitcher.superSource.border.outer.widthswitcher.superSource.border.saturationswitcher.superSource.boxParameters[box].crop.bottomswitcher.superSource.boxParameters[box].crop.leftswitcher.superSource.boxParameters[box].crop.rightswitcher.superSource.boxParameters[box].crop.topswitcher.superSource.boxParameters[box].croppedswitcher.superSource.boxParameters[box].enabledswitcher.superSource.boxParameters[box].inputSourceswitcher.superSource.boxParameters[box].position.xswitcher.superSource.boxParameters[box].position.yswitcher.superSource.boxParameters[box].sizeswitcher.superSource.clipswitcher.superSource.config.boxesswitcher.superSource.fillSourceswitcher.superSource.foregroundswitcher.superSource.gainswitcher.superSource.invertKeyswitcher.superSource.keySourceswitcher.superSource.lightSource.altitudeswitcher.superSource.lightSource.directionswitcher.superSource.preMultiplied
tally
switcher.tally.byIndex.flags[a].previewswitcher.tally.byIndex.flags[a].programswitcher.tally.byIndex.sourcesswitcher.tally.bySource.flags[videoSource].previewswitcher.tally.bySource.flags[videoSource].programswitcher.tally.bySource.sourcesswitcher.tally.channelConfig.tallyChannels
topology
switcher.topology.auxBussesswitcher.topology.colorGeneratorsswitcher.topology.downstreamKeyersswitcher.topology.dVEsswitcher.topology.hasSDOutputswitcher.topology.mEsswitcher.topology.sourcesswitcher.topology.stingersswitcher.topology.superSources
transition
switcher.transition[mE].dip.inputswitcher.transition[mE].dip.rateswitcher.transition[mE].dVE.clipswitcher.transition[mE].dVE.enableKeyswitcher.transition[mE].dVE.fillSourceswitcher.transition[mE].dVE.flipFlopswitcher.transition[mE].dVE.gainswitcher.transition[mE].dVE.invertKeyswitcher.transition[mE].dVE.keySourceswitcher.transition[mE].dVE.preMultipliedswitcher.transition[mE].dVE.rateswitcher.transition[mE].dVE.reverseswitcher.transition[mE].dVE.styleswitcher.transition[mE].framesRemainingswitcher.transition[mE].inTransitionswitcher.transition[mE].mix.rateswitcher.transition[mE].nextTransition.backgroundswitcher.transition[mE].nextTransition.key1switcher.transition[mE].nextTransition.key2switcher.transition[mE].nextTransition.key3switcher.transition[mE].nextTransition.key4switcher.transition[mE].nextTransitionNext.backgroundswitcher.transition[mE].nextTransitionNext.key1switcher.transition[mE].nextTransitionNext.key2switcher.transition[mE].nextTransitionNext.key3switcher.transition[mE].nextTransitionNext.key4switcher.transition[mE].positionswitcher.transition[mE].preview.enabledswitcher.transition[mE].stinger.clipswitcher.transition[mE].stinger.clipDurationswitcher.transition[mE].stinger.gainswitcher.transition[mE].stinger.invertKeyswitcher.transition[mE].stinger.mixRateswitcher.transition[mE].stinger.preMultipliedswitcher.transition[mE].stinger.preRollswitcher.transition[mE].stinger.sourceswitcher.transition[mE].stinger.triggerPointswitcher.transition[mE].styleswitcher.transition[mE].styleNextswitcher.transition[mE].wipe.fillSourceswitcher.transition[mE].wipe.flipFlopswitcher.transition[mE].wipe.patternswitcher.transition[mE].wipe.position.xswitcher.transition[mE].wipe.position.yswitcher.transition[mE].wipe.rateswitcher.transition[mE].wipe.reverseswitcher.transition[mE].wipe.softnessswitcher.transition[mE].wipe.symmetryswitcher.transition[mE].wipe.width
videoMixer
switcher.videoMixer.config.modes.f1080i50switcher.videoMixer.config.modes.f1080i59_94switcher.videoMixer.config.modes.f1080p23_98switcher.videoMixer.config.modes.f1080p24switcher.videoMixer.config.modes.f1080p25switcher.videoMixer.config.modes.f1080p29_97switcher.videoMixer.config.modes.f1080p50switcher.videoMixer.config.modes.f1080p59_94switcher.videoMixer.config.modes.f2160p23_98switcher.videoMixer.config.modes.f2160p24switcher.videoMixer.config.modes.f2160p25switcher.videoMixer.config.modes.f2160p29_97switcher.videoMixer.config.modes.f525i59_94_NTSCswitcher.videoMixer.config.modes.f525i59_94_NTSC_16_9switcher.videoMixer.config.modes.f625i_50_PALswitcher.videoMixer.config.modes.f625i_50_PAL_16_9switcher.videoMixer.config.modes.f720p50switcher.videoMixer.config.modes.f720p59_94
videoMode
switcher.videoMode.format
