-
Notifications
You must be signed in to change notification settings - Fork 12
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).
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.
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.
Command byte: 0x20
Data length: 1
Data byte: Set to 0x01 to enable blackout, 0x00 to disable.
Command byte: 0x21
Data length: 3
Data bytes: R, G, B
Command byte: 0x22
Data length: 4
Data bytes: Strand, R, G, B
Command byte: 0x23
Data length: 5
Data bytes: Strand, Fixture, R, G, B
Command byte: 0x24
Data length: 6
Data bytes: Strand, Fixture, Pixel, R, G, B
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.
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.
Command byte: 0x27
Data length: 6 * num_pixels
Data bytes: [Strand, Fixture, Pixel, R, G, B] for each pixel