Video switching fields

class pyatem.field.VideoModeField(raw)

Data from the VidM field. This sets the video standard the mixer operates on internally.

Offset

Size

Type

Description

0

1

u8

Video mode

1

3

?

unknown

The Video mode is an enum of these values:

Key

Video mode

0

NTSC (525i59.94)

1

PAL (625i50)

2

NTSC widescreen (525i59.94)

3

PAL widescreen (625i50)

4

720p50

5

720p59.94

6

1080i50

7

1080i59.94

8

1080p23.98

9

1080p24

10

1080p25

11

1080p29.97

12

1080p50

13

1080p59.94

14

4k23.98

15

4k24

16

4k25

17

4k29.97

26

1080p30

27

1080p60

After parsing:

Variables
  • mode – mode number

  • resolution – vertical resolution of the mode

  • interlaced – the current mode is interlaced

  • rate – refresh rate of the mode

Program / Preview bus

class pyatem.field.ProgramBusInputField(raw)

Data from the PrgI field. This represents the active channel on the program bus of the specific M/E unit.

The mixer will send a field for every M/E unit in the mixer.

Offset

Size

Type

Description

0

1

u8

M/E index

1

1

?

unknown

2

2

u16

Source index

After parsing:

Variables
  • index – M/E index in the mixer

  • source – Input source index, refers to an InputPropertiesField index

class pyatem.field.PreviewBusInputField(raw)

Data from the PrvI field. This represents the active channel on the preview bus of the specific M/E unit.

The mixer will send a field for every M/E unit in the mixer.

Offset

Size

Type

Description

0

1

u8

M/E index

1

1

?

unknown

2

2

u16

Source index

4

1

u8

1 if preview is mixed in program during a transition

5

3

?

unknown

After parsing:

Variables
  • index – M/E index in the mixer

  • source – Input source index, refers to an InputPropertiesField index

  • in_program – Preview source is mixed into progam

Transition settings

class pyatem.field.TransitionSettingsField(raw)

Data from the TrSS field. This stores the config of the “Next transition” and “Transition style” blocks on the control panels.

The mixer will send a field for every M/E unit in the mixer.

Offset

Size

Type

Description

0

1

u8

M/E index

1

1

u8

Transition style

2

1

u8

Next transition layers

3

1

u8

Next transition style

4

1

u8

Next transition next transition layers

There are two sets of style/layer settings. The first set is the active transition settings. The second one will store the transitions settings if you change any of them while a transition is active. These settings will be applied as soon as the transition ends. This is signified by blinking transition settings buttons in the official control panels.

After parsing:

Variables
  • index – M/E index in the mixer

  • style – Active transition style

  • style_next – Transition style for next transition

  • next_transition_bkgd – Next transition will affect the background layer

  • next_transition_key1 – Next transition will affect the upstream key 1 layer

  • next_transition_key2 – Next transition will affect the upstream key 2 layer

  • next_transition_key3 – Next transition will affect the upstream key 3 layer

  • next_transition_key4 – Next transition will affect the upstream key 4 layer

  • next_transition_bkgd_next – Next transition (after current) will affect the background layer

  • next_transition_key1_next – Next transition (after current) will affect the upstream key 1 layer

  • next_transition_key2_next – Next transition (after current) will affect the upstream key 2 layer

  • next_transition_key3_next – Next transition (after current) will affect the upstream key 3 layer

  • next_transition_key4_next – Next transition (after current) will affect the upstream key 4 layer

class pyatem.field.TransitionPreviewField(raw)

Data from the TsPr field. This represents the state of the “PREV TRANS” button on the mixer.

The mixer will send a field for every M/E unit in the mixer.

Offset

Size

Type

Description

0

1

u8

M/E index

1

1

bool

Enabled

2

2

?

unknown

After parsing:

Variables
  • index – M/E index in the mixer

  • enabled – True if the transition preview is enabled

class pyatem.field.TransitionPositionField(raw)

Data from the TrPs field. This represents the state of the transition T-handle position

The mixer will send a field for every M/E unit in the mixer.

Offset

Size

Type

Description

0

1

u8

M/E index

1

1

bool

In transition

2

1

u8

Frames remaining

3

1

?

unknown

4

2

u16

Position

6

1

?

unknown

After parsing:

Variables
  • index – M/E index in the mixer

  • in_transition – True if the transition is active

  • frames_remaining – Number of frames left to complete the transition on auto

  • position – Position of the transition, 0-9999

class pyatem.field.KeyOnAirField(raw)

Data from the KeOn. This is the on-air state of the upstream keyers

Offset

Size

Type

Description

0

1

u8

M/E index

1

1

u8

Keyer index

2

1

bool

On-air

3

1

?

unknown

After parsing:

Variables
  • index – M/E index in the mixer

  • keyer – Upstream keyer number

  • enabled – Wether the keyer is on-air

Downstream

class pyatem.field.FadeToBlackStateField(raw)

Data from the FtbS. This contains the information about the fade-to-black transition.

Offset

Size

Type

Description

0

1

u8

M/E index

1

1

bool

Fade to black done

2

1

bool

Fade to black is in transition

3

1

u8

Frames remaining in transition

After parsing:

Variables
  • index – M/E index in the mixer

  • done – Fade to black is completely done (blinking button state in the control panel)

  • transitioning – Fade to black is fading, (Solid red in control panel)

  • frames_remaining – Frames remaining in the transition

class pyatem.field.DkeyPropertiesField(raw)

Data from the DskP. Downstream keyer info.

Offset

Size

Type

Descriptions

0

1

u8

Downstream keyer index, 0-indexed

1

1

bool

Tie enabled

2

1

u8

Transition rate in frames

3

1

bool

Mask is pre-multiplied alpha

4

2

u16

Clip [0-1000]

6

2

u16

Gain [0-1000]

8

1

bool

Invert key

9

1

bool

Enable mask

10

2

i16

Top [-9000 - 9000]

12

2

i16

Bottom [-9000 - 9000]

14

2

i16

Left [-9000 - 9000]

16

2

i16

Right [-9000 - 9000]

18

2

?

unknown

After parsing:

Variables
  • index – M/E index in the mixer

  • done – Fade to black is completely done (blinking button state in the control panel)

  • transitioning – Fade to black is fading, (Solid red in control panel)

  • frames_remaining – Frames remaining in the transition

class pyatem.field.DkeyStateField(raw)

Data from the DskS. Downstream keyer state.

Offset

Size

Type

Descriptions

0

1

u8

Downstream keyer index, 0-indexed

1

1

bool

On air

2

1

bool

Is transitioning

3

1

bool

Is autotransitioning

4

1

u8

Frames remaining

5

3

?

unknown

After parsing:

Variables
  • index – Downstream keyer index

  • on_air – Keyer is on air

  • is_transitioning – Is transitioning

  • is_autotransitioning – Is transitioning due to auto button

  • frames_remaining – Frames remaining in transition

Palettes

class pyatem.field.ColorGeneratorField(raw)

Data from the ColV. This is color set in the color generators of the mixer

Offset

Size

Type

Description

0

1

u8

Color generator index

1

1

?

unknown

2

2

u16

Hue [0-3599]

4

2

u16

Saturation [0-1000]

6

2

u16

Luma [0-1000]

After parsing:

Variables
  • index – M/E index in the mixer

  • keyer – Upstream keyer number

  • enabled – Wether the keyer is on-air

class pyatem.field.TransitionMixField(raw)

Data from the TMxP. Settings for the mix transition.

Offset

Size

Type

Descriptions

0

1

u8

M/E index

1

1

u8

rate in frames

2

2

?

unknown

After parsing:

Variables
  • index – M/E index in the mixer

  • rate – Number of frames in the transition

class pyatem.field.TransitionDipField(raw)

Data from the TDpP. Settings for the dip transition.

Offset

Size

Type

Descriptions

0

1

u8

M/E index

1

1

u8

rate in frames

2

2

u16

Source index for the DIP source

After parsing:

Variables
  • index – M/E index in the mixer

  • rate – Number of frames in transition

  • source – Source index for the dip

class pyatem.field.TransitionWipeField(raw)

Data from the TWpP. Settings for the wipe transition.

Offset

Size

Type

Descriptions

0

1

u8

M/E index

1

1

u8

Rate in frames

2

1

u8

Pattern id

3

1

?

unknown

4

2

u16

Border width

6

2

u16

Border fill source index

8

2

u16

Symmetry

10

2

u16

Softness

12

2

u16

Origin position X

14

2

u16

Origin position Y

16

1

bool

Reverse

16

1

bool

Flip flop

After parsing:

Variables
  • index – M/E index in the mixer

  • rate – Number of frames in transition

  • source – Source index for the dip

class pyatem.field.TransitionDveField(raw)

Data from the TDvP. Settings for the DVE transition.

Offset

Size

Type

Descriptions

0

1

u8

M/E index

1

1

u8

Rate in frames

2

1

?

unknown

3

1

u8

DVE style

4

2

u16

Fill source index

6

2

u16

Key source index

8

1

bool

Enable key

9

1

bool

Key is premultiplied

10

2

u16

Key clip [0-1000]

12

2

u16

Key gain [0-1000]

14

1

bool

Key invert

15

1

bool

Reverse

16

1

bool

Flip flop

17

3

?

unknown

After parsing:

Variables
  • index – M/E index in the mixer

  • rate – Number of frames in transition

  • style – Style or effect index for the DVE

  • fill_source – Fill source index

  • key_source – Key source index

  • key_premultiplied – Key is premultiplied alpha

  • key_clip – Key clipping point

  • key_gain – Key Gain

  • key_invert – Invert key source

  • reverse – Reverse transition

  • flipflop – Flip flop transition

Upstream keys

These are the fields related to the “Upstream key %n” blocks in the palette sidebar. The information about the upstream keyer is split over multiple fields, one with base information and one with extra information about the specific mode the keyer is in.

class pyatem.field.KeyPropertiesBaseField(raw)

Data from the KeBP. The upstream keyer base properties.

class pyatem.field.KeyPropertiesLumaField(raw)

Data from the KeLm. The upstream keyer luma-specific properties.

class pyatem.field.KeyPropertiesDveField(raw)

Data from the KeDV. The upstream keyer DVE-specific properties.

Video Tally

class pyatem.field.TallyIndexField(raw)

Data from the TlIn. This is the status of the tally light for every input in order of index number.

Offset

Size

Type

Description

0

2

u16

Total of tally lights

n

1

u8

Bitfield, bit0=PROGRAM, bit1=PREVIEW, repeated for every tally light

After parsing:

Variables
  • num – number of tally lights

  • tally – List of tally values, every tally light is represented as a tuple with 2 booleans for PROGRAM and PREVIEW

class pyatem.field.TallySourceField(raw)

Data from the TlSr. This is the status of the tally light for every input, but indexed on source index

Offset

Size

Type

Description

0

2

u16

Total of tally lights

n

2

u16

Source index for this tally light

n+2

1

u8

Bitfield, bit0=PROGRAM, bit1=PREVIEW

After parsing:

Variables
  • num – number of tally lights

  • tally – Dict of tally lights, every tally light is represented as a tuple with 2 booleans for PROGRAM and PREVIEW