Imimot

Mitti Help - External Controls

This section described how you can control Mitti with various protocols like NMC, MIDI, OSC or DMX.

Transport sync with NMC

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.

OSC/UDP Controls

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.

OSC Input

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.

OSC 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:

  1. Master-level
  2. Cue-level
  3. Cue FX-level

OSC commands always starts with /mitti/.

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.

Master-level Commands

The syntax of master-lever commands are the following: /mitti/{command}.

For example /mitti/play will start playback of the Playlist.

Cue-level Commands

The syntax of cue-lever commands are the following: /mitti/{cuenumber}/{command}.

For example, /mitti/1/opacity will change the opacity of the 1st Cue.

Cue-relative addressing:

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:

  • current
  • previous
  • next

This means /mitti/current/opacity will controlling the opacity of the current Cue, while /mitti/next/opacity will controlling the opacity of the next Cue.

Cue FX-level commands

Video FX parameters of individual Cues are also remote controllable by the following syntax: /mitti/{cuenumber}/fx/{command}.

For example, /mitti/1/fx/blurAmount will control the blurAmount parameter of the Video FX on the first Cue, if there is a corresponding parameter.

OSC Feedback

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 /mitti/current/opacity.

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/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.

MIDI Controls

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.

MMC - MIDI Machine Control

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:

  • PLAY: starts playback from the current position.
  • STOP: stops playback.
  • REWIND: will rewind the Playlist to the beginning.
  • LOCATE: set Mitti to the incoming SMPTE time.

Important: All MMC commands are ignored when Mitti is running as a timecode slave, the only exception is LOCATE which will be still processing.

Handle MMC Device IDs

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:

MMC Play:

  • DeviceID 0: reserved, does nothing yet
  • DeviceID 1-126: triggers Cue 1-126
  • DeviceID 127: plays to current Cue

MMC Stop:

  • Stops the current Cue, DeviceID does not handled

MMC Rewind:

  • Rewinds the whole playlist, DeviceID does not handled

MMC Locate:

  • DeviceID 0-126: does not handled
  • DeviceID 127: locates to the corresponding SMPTE time on the playlist

MSC - MIDI Show Control

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:

  • GO: starts playback from the current position if no Q_NUMBER has been specified with the command, otherwise if a Q_NUMBER is specified Mitti will jump to the specified Cue Number - if one is exists, otherwise the last Cue - and starts playback from that Cue.
  • RESUME: will continue playback if Mitti is stopped or paused.
  • STOP: stops playback.
  • RESET: will rewind the Playlist to the beginning.

Important: All MSC commands are ignored when Mitti is running as a timecode slave.

MIDI - "musical" Controls

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,

  1. Click on LEARN next to the function you want to control
  2. Send the corresponding MIDI Note or MIDI CC (Control Change) command from your software or hardware MIDI Controller
  3. You can clear the current assignment by clicking on the X icon
  4. When you finished, click again on LEARN to disable assign mode.

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.

DMX 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,

  1. Click on LEARN next to the function you want to control
  2. Send the corresponding DMX channel from your software or hardware DMX Controller
  3. You can clear the current assignment by clicking on the X icon
  4. When you finished, click again on LEARN to disable assign mode.

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.

Still stuck? How can we help?