shells-dw / loupedeck-totalmix

Loupedeck plugin to control RME TotalMix
MIT License
9 stars 0 forks source link
loupedeck loupedeck-plugin osc rme totalmix totalmixfx

GitHub last commit Tip / ko-fi

Unofficial Loupedeck RME TotalMix FX Plugin

Overview

What Is This (and what does it do?)

It's a plugin for the Loupedeck Live Consoles that triggers actions as well as individual channel actions on the RME TotalMix FX application. Note: a RME audio interface/card is needed for TotalMix FX to work.

It utilizes the OSC protocol support which offers more functionality than MIDI commands, is more solid than MIDI and doesn't interfere with your already existing MIDI setup.

Release / Installation

You can find the precompiled plugin lplug4 file in the Releases. Download and open it, your computer should already recognize this as a Loupedeck plugin file and offer to open it with Loupedeck Configuration Console - which will have the plugin available in the list then.

Setup for OSC

Enable OSC in RME TotalMix FX' settings (let's call it TotalMix from here on for ease of typing) and have it listen to OSC commands. Note that there are 4 OSC Remote Controllers available. If you already use one, set up two for the plugin specifically. This plugin uses 2 of them, 1 and 2. 1 is used for the main actions, 2 is used for the background thread that mirrors TotalMix changes to the Loupedeck.

Note: on MacOS, you'll have to enter "127.0.0.1" in the Remote Controller Address textbox, otherwise it will not work.

If you (have to) change these ports, make sure updating them in the plugin config as well!

Then, make sure to enable "Enable OSC control". Also link both Remote Controllers to the submix.

Setup TotalMix OSC Setup TotalMix OSC 2

No additional software is needed. In theory this should also be able to control a TotalMix instance running on a different computer than the Loupedeck is attached to - as long as you can reach this machine on the given port with UDP packets.

Note: if you're using a (software) firewall on your PC and/or any firewall between the Loupedeck and the target PC - make sure to allow the plugin to communicate with the TotalMix port as well as allow TotalMix to listen to it.

settings.json

Windows: %localappdata%\Loupedeck\PluginData\TotalMix MacOS: /Users/USERNAME/.local/share/Loupedeck/PluginData/TotalMix contains the file settings.json (which is created with default values during the first start of the plugin and read during every start)

{
  "host": "127.0.0.1",
  "port": "7001",
  "sendPort": "9001",
  "backgroundPort": "7002",
  "backgroundSendPort": "9002",
  "mirroringEnabled": "true",
  "skipChecks": "false"
}

where you can configure non-default values or the TotalMix connection.

Note: mirroring of TotalMix is on by default (when you change some values in TotalMix itself or by other means outside the Loupedeck it will be reflected on the Loupedeck plugin), but it has a slight delay as the plugin queries TotalMix. It can have a bit of a performance impact constantly querying the data, which shouldn't be noticeable on most machines, but just in case mirroring isn't needed or wanted, it can be turned off here. Also note, mirroring only works for all the main functions, mute, solo, phantom power, volume, gain and pan.

Connecting to a TotalMix instance on another host

To be able to use the plugin with another PC, three settings are mandatory:

  1. Set the IP of the machine the StreamDeck is connected to in the Setup for OSC part inside TotalMix as described above. Configure as described, but make sure to put the IP address (or FQDN) of the machine the StreamDeck is connected to in the "Remote Controller Address" field. This is needed so TotalMix sends its OSC responses to the computer that runs the plugin.
  2. Set the IP of the machine that runs TotalMix in the config file of this plugin (see above) in the value of interfaceIp, so the plugin knows where to send the commands.
  3. Make sure both machines have their firewall configured in a way that allows UDP communication on the ports that are set in the configuration (by default 7001 and 9001 UDP inbound to the TotalMix PC/outbound of the StreamDeck-PC, 9002 UDP inbound of the StreamDeck PC and outbound the TotalMix PC).

Usage

General

You have the following options:

Available Actions

Actions

General considerations about channels

It's important to understand that whenever you can select a channel in the dropdown selection in this plugin, this affects TotalMix channels as you see them in TotalMix mixer view. TotalMix combines a stereo channel to one channel strip. You will not have control over each individual mono channel that's part of a stereo channel.

What that means is that if you have, for example, a stereo output channel AN1/2, both combined channels will be output channel 1. AN3 will be output channel 2 then. However if you have AN1 and AN2 set to mono, AN3 is output channel 3 then.

Keep that in mind when you configure actions that are targeted to individual channels across multiple snapshots/mixes or when you change your channel layouts in regards to mono/stereo channels in TotalMix as this will likely break those actions on the Loupedeck and trigger actions on the wrong channels.

Sadly I can't do anything about that, it's just how TotalMix works currently.

Limitations

I have an issue or miss a feature?

You can submit an issue or request a feature with GitHub issues. Please describe as good as possible what went wrong or doesn't act like you'd expect it to. As described above I developed this with a Fireface UC which is the only device I have at home and with that constant access to so debugging/developing for any other RME device might not be the the easiest task, but I'll see what I can do.

Contribute

If you're interested in using this plugin but something you really need is missing, let me know. I naturally don't have access to all RME devices, so I can't really try things on the boxes themselves, but eventually we might find a way to work something out.

Support

If you'd like to drop me a coffee for the hours I've spent on this: Tip, sponsor me on GitHub or use Ko-Fi ko-fi

Changelog

[1.8.3] - 2023-03-28

Fixed

[1.8.1] - 2022-12-29

Updated

[1.0.0] - 2022-11-18

Added

Initial release