Schemas / I/O

rig.io.sacn

v0.31.0 · draft 8 fields 1 required

Fields

FieldTypeMeaning
universe integer1 – 63999 required 1-63999. First (or only) universe
direction enumin · out optional Optional. out (transmit) or in (receive); absent = out
universeCount integer1 – 63999 optional Optional. Contiguous universes starting at universe; absent = 1
startChannel integer1 – 512 optional Optional. 1-512; first DMX slot used in the universe; absent = 1
host string optional Optional. Unicast peer; absent means multicast for that universe
fps float optional Optional. Send rate when direction is out; absent means the host's frame rate
enabled bool optional Optional. Whether the endpoint is running; absent = true
uvMap entity optional Optional. Entity carrying rig.led.uv_map - pixel output path; unused for plain DMX receive

E1.31 (sACN) over the network. Format when present.

When direction is out with a UV map, this completes the LED path already covered by rig.led.uv_map and rig.io.serial: the UV map says where each pixel samples the canvas, this says where the bytes go. Channel count then follows from the pixel count of the referenced UV map.

When direction is in, the host writes received slots into its DMX buffer (see also rig.io.dmx). universeCount names how many consecutive universes to listen to from universe.

A fixture spanning more than one universe uses one entity per universe when mapping fixtures; a receive listener may instead set universeCount.

Colour order (RGB versus GRB and friends) is a property of the fixture, not of the document, and is not carried here.

JSON Schema

Resolves at https://rig.works/schemas/rig.io.sacn.schema.jsonraw file.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rig.works/schemas/rig.io.sacn.schema.json",
  "title": "rig.io.sacn",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "universe": {
      "type": "integer",
      "minimum": 1,
      "maximum": 63999
    },
    "direction": {
      "type": "string",
      "enum": [
        "in",
        "out"
      ]
    },
    "universeCount": {
      "type": "integer",
      "minimum": 1,
      "maximum": 63999
    },
    "startChannel": {
      "type": "integer",
      "minimum": 1,
      "maximum": 512
    },
    "host": {
      "$ref": "./_defs.schema.json#/$defs/string"
    },
    "fps": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "enabled": {
      "$ref": "./_defs.schema.json#/$defs/bool"
    },
    "uvMap": {
      "$ref": "./_defs.schema.json#/$defs/entity"
    }
  },
  "required": [
    "universe"
  ]
}