Before posting, please read: When to use this forum, when to submit a help ticket

Tricks of the trade: Wireless MIDI

Started by Christoph, January 03, 2015, 10:42:39 AM

Previous topic - Next topic


One of the best features of Set List Maker for me is to use the app as command centre on stage to remote control other devices via MIDI, e.g. synthesizers, guitar amps, fx processors, stage lights, video shows etc. More and more often, these "devices" are software applications on other mobile devices. In this case you can use RTP-MIDI, a protocol available in iOS, Android and most PC operating systems to send MIDI messages over Ethernet and WiFi connections. This will save you from the hassle and costs of hardware MIDI interfaces and cables on the stage. But it can be difficult to get stable and reliable connections with RTP-MIDI - so here are a few things to know from my experience:

1. Virtual MIDI ports: To make the handling of MIDI between apps on one device or between devices easier, apps can advertise virtual MIDI ports. These ports either can be input or output ports. E.g. Set List Maker advertises both a MIDI input and output port. Even if an app does not advertises virtual MIDI ports it can use RTP-MIDI: Most apps in this case listen to all incoming MIDI traffic from all connected hardware interfaces and RTP-MIDI sessions.

2. RTP-MIDI sessions: To communicate via RTP-MIDI between several devices, you have to initiate a connection, called session. There is always one device that establishes this connection, the session initiator. And this is the tricky part because iOS devices are designed as session destinations and do not automatically initiate RTP-MIDI sessions. You can easily initiate sessions from a PC or Mac to an iOS device, but if you have only iOS devices you need either one of two things: a) Very few apps have a built-in feature to initiate sessions to other devices (SLM unfortunately does not fall into this category). b) You can use an additional app that can initiate sessions and that runs in the background. I have experience with two: One is the free NetMIDI by iConnectivity. It was made to establish RTP-MIDI sessions to the iConnectMidi4+ interface, but also works between RTP-MIDI devices in general. The other is MidiBridge by Audeonic - this one is not free but you get a bunch of routing and filtering features that might be helpful.

So here is an example on how you can use this whole stuff with SLM and another device:

1. Both devices have to be connected to the same WiFi network. The router does not necessarily need to be connected to the Internet.

2. On the device running Set List Maker make sure that SLM is configured to send MIDI and has the appropriate commands programmed in its MIDI presets.

3. On the iOS device running the app that will receive MIDI, initiate the session to the SLM device, e.g. with NetMIDI. Make sure that you have background activity switched ON - from my experience this is necessary to establish a reliable RTP connection. After that you can switch to the app that will receive MIDI and all should work. Initiating the session also works from the device running Set List Maker, both ways work as long as the destination device has some MIDI app running.

More info about router configuration etc. for RTP-MIDI can be found in chapters 1-6 in this guide by KissBox. The company from the Netherlands makes MIDI-Ethernet-Interfaces that run with RTP.

Any questions or experience reports? Post it here!  :)


This is an amazingly helpful post, Christoph. Thank you for going to the effort. I will give this a try over the next week or so and will let you know how I fare. Once again, thank you for taking the time and going to the effort of testing out these midi options.



Hello Christoph. I am testing SLM with Touchviz and wonder if you can give me an example of the midi data you have added to SLM to play a preset video in Touchviz. I have checked the Hexler website to get a list of the midi commands but I am still not sure what to do.


MIDI control in TouchViz works with control change messages. Here is the complete list. Set List Maker has no dedicated fields for control cange messages (besides bank select messages) so you use the raw MIDI data field and a little hex code. E.g. to select the video number nn played in TouchViz channel A you put the following code in Set List Maker:

B0 05 nn

nn can be any number between 0 (live camera view in the first slot on media page 1) and 124 (last video on media page 5). nn has to be two digit hex format, so 0 would be 00 and 124 would be 7C. E.g. to switch channel A to the camera view you send B0 05 00, to switch channel B to the last video 124 you send B0 09 7C and to mix the video output halfway between channels A and B you would send B0 28 40. Likewise you can control all other functions described in the TouchViz MIDI reference.

General MIDI hex code for control change messages is the following three bytes: Bc nn vv where c is the MIDI channel number (0-F, TouchViz always sends and receives on the first channel 0), nn the controller number (00-7F) and vv the value (00-7F).

Does this help?


Hello Christoph. That is awesome. Thank you so much. I will give that a try today and see how it goes. You have been unbelievably helpful for which I offer my deepest gratitude.