LLA is a utility that allows applications to send and receive DMX using various hardware devices and DMX over IP protocols. Hardware devices and protocols can also be connected together and LLA will route the DMX between the two.
LLA consists of 4 parts:
- the lla daemon (llad) - the lla client library (liblla) - various lla plugins (libllaX) - example programs (lla_dev_info, lla_patch etc.)
- Port (noun)
- A port represents up to 512 DMX channels that sends data (OUT port) or receives data (IN port). It can be either a physical port on a device or a virtual port created by a DMX over IP protocol.
- Device (noun)
- A device is a group of ports, for example some devices might have an input and output port.
- Plugin (noun)
- A LLA plugin supports a group of physical devices or a DMX over IP protocol. Example plugins include ArtNet, ShowNet, EspNet, DmxUsbPro, OpenDmx, StageProfi, Dmx4Linux etc. On startup plugins look for the devices they are responsible for and set them up.
- Universe (noun)
- A universe is a set of 512 DMX channels. Ports can be patched to universes in which case they'll either send the data for the universe (in the case of output ports) or set the values for the universe (for input ports)
- Client (noun)
- A client is another application that connects to LLA using liblla.
- Patch (verb)
- The act of assigning a port to a universe.
In the general case you want to:
- start the lla daemon - patch some output ports to universes - patch an input port or run a client application
How to start llad
For testing run llad in non-forking, log to stdout, debug level 3:
llad -d 3 -f -s
Do not run this as root. If LLA doesn't work as your user it's due to incorrect permissions on files within /dev - fix them and try again. I repeat do not run this as root.
How to setup an interface
Before an interface (e.g. a USB dongle) can be used, a port on the device must be patched to a universe.
First run lla_dev_info and find out what device / port the desired interface has:
$ lla_dev_info Device 0: Art-Net Device port 0, cap IN port 1, cap IN port 2, cap IN port 3, cap IN port 4, cap OUT port 5, cap OUT port 6, cap OUT port 7, cap OUT Device 1: Stage Profi Device port 0, cap OUT
In this case we want to use the StageProfi device so we patch device 1, port 0 to a new universe (1)
Then the command lla_patch can be given the numbers just found and the desired universe, so they get connected.
lla_patch -d 1 -p 0 -u 1
Running lla_dev_info again shows us the patch has been made:
$ lla_dev_info Device 0: Art-Net Device port 0, cap IN port 1, cap IN port 2, cap IN port 3, cap IN port 4, cap OUT port 5, cap OUT port 6, cap OUT port 7, cap OUT Device 1: Stage Profi Device port 0, cap OUT, universe 1
Finally the setup can be tested with lla_dmxconsole or lla_dmxmonitor to set or receive DMX values.
Command line options can be seen here.