Skip to content
cdawzrd edited this page Feb 21, 2013 · 3 revisions

FireMix Network Protocol

Mixer sources and sinks can be piped over a network (for example, to decouple the mixer from an output device, or to have a permanent mixer and transient sources such as guest laptops).

Transport

Communications is via UDP. At the moment, sink traffic is broadcast from the mixer on port 3020. When source listening is implemented, the mixer will listen on port 3010. External sources should address the mixer directly and not use broadcast.

Protocol

The messages are a byte array following a simple format:

<command> <data-length> <data>

command is 1 byte, data-length is 2 bytes (unsigned network-order), and there are data-length bytes of data.

Commands

Blackout

Command byte: 0x20
Data length: 1
Data byte: Set to 0x01 to enable blackout, 0x00 to disable.

Set All

Command byte: 0x21
Data length: 3
Data bytes: R, G, B

Set Strand

Command byte: 0x22
Data length: 4
Data bytes: Strand, R, G, B

Set Fixture

Command byte: 0x23
Data length: 5
Data bytes: Strand, Fixture, R, G, B

Set Pixel

Command byte: 0x24
Data length: 6
Data bytes: Strand, Fixture, Pixel, R, G, B

Set Strand Pixels

Command byte: 0x25
Data length: 1 + (3 * num_pixels)
Data bytes: Strand, [R, G, B] for each pixel
Note: Pixel data extending beyond the end of the strand will be discarded.

Set Fixture Pixels

Command byte: 0x26
Data length: 2 + (3 * num_pixels)
Data bytes: Strand, Fixture, [R, G, B] for each pixel
Note: Pixel data extending beyond the configured num_pixels of the fixture will be discarded.

Bulk Set

Command byte: 0x27
Data length: 6 * num_pixels
Data bytes: [Strand, Fixture, Pixel, R, G, B] for each pixel

Clone this wiki locally