aboutsummaryrefslogtreecommitdiffhomepage
path: root/README.md
diff options
context:
space:
mode:
authorcbdev <cb@cbcdn.com>2018-03-01 17:47:28 +0100
committercbdev <cb@cbcdn.com>2018-03-01 17:47:28 +0100
commit453adecd04dea09f4ec1c3c26cb86c3593077085 (patch)
treea92fa3cd7a3489690ee5ae03ffc54dfcfd28cf14 /README.md
parentb266b47ec7da4a1d307c6389d43034e75a71d0be (diff)
downloadmidimonster-453adecd04dea09f4ec1c3c26cb86c3593077085.tar.gz
midimonster-453adecd04dea09f4ec1c3c26cb86c3593077085.tar.bz2
midimonster-453adecd04dea09f4ec1c3c26cb86c3593077085.zip
sACN documentation, Update OSC config syntax
Diffstat (limited to 'README.md')
-rw-r--r--README.md64
1 files changed, 62 insertions, 2 deletions
diff --git a/README.md b/README.md
index f323968..d986de6 100644
--- a/README.md
+++ b/README.md
@@ -67,7 +67,7 @@ fixture control.
| Option | Example value | Default value | Description |
|---------------|-----------------------|-----------------------|-----------------------|
-| `bind` | `127.0.0.1 6454` | none | Binds a network address to listen for data. This option may be set multiple times, with each descriptor being assigned an index starting from 0 to be used with the `iface` instance configuration option |
+| `bind` | `127.0.0.1 6454` | none | Binds a network address to listen for data. This option may be set multiple times, with each interface being assigned an index starting from 0 to be used with the `interface` instance configuration option. At least one interface is required for transmission. |
| `net` | `0` | `0` | The default net to use |
#### Instance configuration
@@ -99,6 +99,66 @@ A normal channel that is part of a wide channel can not be mapped individually.
Currently, no keep-alive frames are sent and the minimum inter-frame-time is disregarded.
+### The `sacn` backend
+
+The sACN backend provides read-write access to the Multicast-UDP based streaming ACN protocol (ANSI E1.31-2016),
+used for lighting fixture control. The backend sends universe discovery frames approximately every 10 seconds,
+containing all write-enabled universes.
+
+#### Global configuration
+
+| Option | Example value | Default value | Description |
+|---------------|-----------------------|-----------------------|-----------------------|
+| `name` | `sACN source` | `MIDIMonster` | sACN source name |
+| `cid` | `0xAA 0xBB 0xCC` ... | `MIDIMonster` | Source CID (16 bytes) |
+| `bind` | `0.0.0.0 5568` | none | Binds a network address to listen for data. This option may be set multiple times, with each descriptor being assigned an index starting from 0 to be used with the `interface` instance configuration option. At least one descriptor is required for transmission. |
+
+#### Instance configuration
+
+| Option | Example value | Default value | Description |
+|---------------|-----------------------|-----------------------|-----------------------|
+| `universe` | `0` | none | Universe identifier |
+| `interface` | `1` | `0` | The bound address to use for data input/output |
+| `priority` | `100` | none | The data priority to transmit for this instance. Setting this option enables the instance for output and includes it in the universe discovery report. |
+| `destination` | `10.2.2.2` | Universe multicast | Destination address for unicast output. If unset, the multicast destination for the specified universe is used. |
+| `from` | `0xAA 0xBB` ... | none | 16-byte input source CID filter. Setting this option filters the input stream for this universe. |
+| `unicast` | `1` | `0` | Prevent this instance from joining its universe multicast group |
+
+Note that instances accepting multicast input also process unicast frames directed at them, while
+instances in `unicast` mode will not receive multicast frames.
+
+#### Channel specification
+
+A channel is specified by it's universe index. Channel indices start at 1 and end at 512.
+
+Example mapping:
+```
+sacn1.231 < sacn2.123
+```
+
+A 16-bit channel (spanning any two normal channels in the same universe) may be mapped with the syntax
+```
+sacn.1+2 > sacn2.5+123
+```
+
+A normal channel that is part of a wide channel can not be mapped individually.
+
+#### Known bugs / problems
+
+No keepalive frames are sent at this time. This will be implemented in the near future.
+
+The DMX start code of transmitted and received universes is fixed as `0`.
+
+The limit on packet transmission rate mandated by section 6.6.1 of the sACN specification is disregarded.
+
+Universe synchronization is currently not supported, though this feature may be implemented in the future.
+
+To use multicast input, all networking hardware in the path must support the IGMPv2 protocol.
+
+The Linux kernel limits the number of multicast groups an interface may join to 20. An instance configured
+for input automatically joins the multicast group for its universe, unless configured in `unicast` mode.
+This limit can be raised by changing the kernel option in `/proc/sys/net/ipv4/igmp_max_memberships`.
+
### The `midi` backend
The MIDI backend provides read-write access to the MIDI protocol via virtual ports.
@@ -264,7 +324,7 @@ This backend does not take any global configuration.
|---------------|-----------------------|-----------------------|-----------------------|
| `root` | `/my/osc/path` | none | An OSC path prefix to be prepended to all channels |
| `bind` | `:: 8000` | none | The host and port to listen on |
-| `dest` | `10.11.12.13 8001` | none | Remote address to send OSC data to. Setting this enables the instance for output. The special value `learn` causes the MIDImonster to always reply to the address the last incoming packet came from. A different remote port for responses can be forced with the syntax `learn@<port>` |
+| `destination` | `10.11.12.13 8001` | none | Remote address to send OSC data to. Setting this enables the instance for output. The special value `learn` causes the MIDImonster to always reply to the address the last incoming packet came from. A different remote port for responses can be forced with the syntax `learn@<port>` |
Note that specifying an instance root speeds up matching, as packets not matching
it are ignored early in processing.