This section described how you can control Mitti with various protocols like NMC, MIDI, OSC or DMX.
NMC is an in-house protocol of Imimot Softwares to broadcast transport and locate commands over the network. It can be used to syncing multiple Vezér or Mitti instances on the local network.
You can find the NMC In & Out options on the Project Preferences window.
If you specify a source, Mitti will listen to incoming NMC commands from that broadcaster, including transport and locate commands. This feature is the easiest way to sync Mitti to Vezér, and can be also used to synchronise multiple computers running Mitti instances, for example for backup purposes.
If you Enable Output Mitti will broadcast NMC commands like transport and locate and will act as a Master NMC connection - this way you can specify a master machine for example if you want to sync with other computers on the local network running the same Mitti project.
Mitti cannot output and listen NMC commands at the same time.
Important: All NMC commands are ignored when Mitti is running as a timecode slave. Mitti cannot output and listen NMC commands at the same time.
A dedicated network is suggested to use this feature, preferably with wired connection.
Mitti has extensive support for the OSC protocol. If you are not already familiar with OSC, it is a standard network protocol for communication between computers and multimedia devices. It does not require specialised hardware, just uses networking infrastructure that is often already in place.
The make Mitti listen to OSC commands first you need to enable OSC Controls in the Preferences. Once you enabled, Mitti will listen to incoming OSC commands on UDP port 51000.
When OSC control is enabled, Mitti will also start an OSC Query Server on the same port, so the current address space will be browsable in your web browser by opening the address of the server: http://localhost:51000, and applications like Vezér which also supports the OSC Query protocol will be able to discover Mitti's current OSC address space.
OSC Commands that not require any value like
mitti/play also available as UDP String commands.
The full list of available commands available thru Mitti's OSC Query server, so you can check out the available commands in your web browser by visiting the address: [http://localhost:51000]()
There are 3 levels of commands:
OSC commands always starts with
For toggle-style controls Mitti usually provide multiple commands which allows finer settings. An example is starting playback of Mitti, which is available by
/mitti/play without sending any values with the OSC command, but also available by
/mitti/togglePlay with an int 1 value. The first command is great if you are sending commands from a host that supports OSC Flags like Vezér, while the second version is great for controlling Mitti with controllers like TouchOSC.
The syntax of master-lever commands are the following:
/mitti/play will start playback of the Playlist.
The syntax of cue-lever commands are the following:
/mitti/1/opacity will change the opacity of the 1st Cue.
Address all Cues:
You can use the
/all/ keyword to send an OSC message to all Cues.
/mitti/all/opacity will change the opacity of all Cues.
Mitti provides 3 special keywords that could be used for Cue-relative addressing - so instead of referring to an exact ` you can use one of the following keywords:
/mitti/current/opacity will controlling the opacity of the current Cue, while
/mitti/next/opacity will controlling the opacity of the next Cue.
Video FX parameters of individual Cues are also remote controllable by the following syntax:
/mitti/1/fx/blurAmount will control the blurAmount parameter of the Video FX on the first Cue, if there is a corresponding parameter.
When you enable OSC feedback, Mitti will send out OSC commands corresponding to Mitti's input commands to the selected target. If multiple commands are available for controlling the same thing, Mitti will only send that version which supports values, for example
/mitti/play won't be ever sent, but
/mitti/togglePlay with the corresponding value will.
Cue-relative addresses will be always sent too, for example
/mitti/1/opacity will be followed by a
There are a couple of informative OSC feedback messages which will be sent, but these commands are read-only, so available only to the OSC Feedback target, and cannot be used for controlling Mitti:
/mitti/time: the current time of the Playlist in hh:mm:ss:ff format
/mitti/cueTimeLeft: the time left of the Current Cue of the Playlist in hh:mm:ss:ff format
/mitti/cueTimeElapsed: the time elapsed on the Current Cue of the Playlist in hh:mm:ss:ff format
/mitti/previousCueName: the name of the previous Cue
/mitti/nextCueName: the name of the next Cue
/mitti/currentCueName: the name of the current Cue
An example TouchOSC Layout can be found here.
Mitti can be controller using MIDI from a MIDI device or even from softwares provide MIDI commands and controls. The MIDI specification itself multiple sub-protocols, and as an addition to ("musical") MIDI commands - MIDI Notes and Control Change messages - Mitti also can be controlled by MIDI Machine Control and MIDI Show Control messages at the same time.
MIDI Controls Preferences are available from the Project Preferences window, and this is the place where you can select the sources for different incoming MIDI protocols.
MIDI Machine Control aka MMC is a subset of the MIDI protocol and while it originally designed to control recording environment, various DAWs and MIDI Controls are supporting them for both receiving and sending, mostly for transport controls and scrubbing on the timeline.
You can set a MIDI port for incoming MMC messages in MIDI Controls Preferences, and Mitti supports the following MMC commands:
Important: All MMC commands are ignored when Mitti is running as a timecode slave, the only exception is LOCATE which will be still processing.
Mitti 1.1.4 extended the MMC protocol supports in Mitti to handle DeviceIDs, making it possible to trigger specific Cues by sending a MMC Play message with the corresponding DeviceID. The following MMC commands and DeviceIDs are supported:
MIDI Show Control aka MSC is a subset of the MIDI protocol, which enables entertainment equipment to communicate with each other. For example, high-end lighting desk are supports both sending and receiving MSC commands.
You can set a MIDI port for incoming MSC messages in MIDI Controls Preferences, and Mitti supports the following MSC commands:
Important: All MSC commands are ignored when Mitti is running as a timecode slave.
On the last section of the MIDI controls you can specify a source MIDI port for controlling specific functions of MIDI with MIDI Notes and Control Changes messages.
To assign one of the available functions to an incoming MIDI message,
MIDI actions considered to be triggered if the value associated with the MIDI command is higher than 0, so Start/Stop for example considered to be Start if the associated MIDI value is higher than 0.
MIDI Controls are counting from 0, so for example the first Control Change (CC) is 0.
Important: All MIDI commands are ignored when Mitti is running as a timecode slave, except the Main Fader controls.
Mitti can be controlled by DMX, more specifically by Art-Net - which is basically DMX on a computer network, allows you to remote control the app by softwares supports sending Art-Net packets or hardware controllers, like lighting desks.
You can set the network interface by the Art-Net popup Mitti should listening for incoming Art-DMX packets, and you can also limit with SubNet and Universe should Mitti use - both counts from 0 (zero).
To assign one of the available functions to an incoming DMX channel,
DMX actions considered to be triggered if the channel value is higher than 0, so Start/Stop for example considered to be Start if the associated channel value is higher than 0.
DMX Controls are counting from 1, so for example the first channel is 1.
Important: All DMX commands are ignored when Mitti is running as a timecode slave, except the Main Fader controls. Mitti requiring ArtNet message to be sent in Broadcast mode.
Still stuck? How can we help?