Contents

About OLA

OLA is a framework 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 OLA will route the DMX data between the two.

OLA consists of 4 parts:

the ola daemon (olad)

the ola client library (libola for C++, OlaClient.py for Python)

various ola plugins (libolaX)

example/client programs (ola_dev_info, ola_patch etc.)

Most of the time you'll only need to deal with the daemon and the client programs.

OLA Terminology

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 OLA 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 start up the 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 OLA using libola.

Patch (verb)

The act of assigning a port to a universe.

Using OLA

In the general case you want to:

start the ola daemon

patch some output ports to universes

patch an input port or run a client application

How to start olad

For testing run olad in non-forking, log to stdout, debug level 3:

olad -l 3

olad refused to run as root. If OLA doesn't work as a normal user it's due to incorrect permissions on files within /dev - look at the logs, fix the permission and try again.

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. This example uses the command line tools in the ola-examples package. If you built OLA with http support you can just use the web interface on http://localhost:9090

First run ola_dev_info and find out what device / port the desired interface has: