The MIDI Forum

  Tuesday, 06 November 2018
  2 Replies
  18.2K Visits
I have an AKAI APCMini controller connected to a laptop that I would like to use with a MIDI device on the network. I have found multiple pages like this one on how to set this up:


I have been half successful with this. The device I'm controlling (a RaspberryPi running some custom software), successfully receives the messages and responds appropriately. However, I'm having trouble sending data back to the APCMini. The buttons on the APCMini can be lit with specific MIDI messages, but when I attempt to send these messages back, nothing happens.

Given this RaspberryPi is a custom MIDI setup, I accept that I may have screwed something up in the code. However, a simple test shows the Mac OS MIDI Setup configuration may be to blame.

The first part of the test was to open Ableton Live and connect to the APCMini controller directly. In this setup, I am able to control Ableton (send), and Ableton lights up the buttons I push on the APCMini (receive).

My second part was to configure Ableton Live to connect to the Network Session I configured in the MIDI Setup tool, the same one I used with my project. In this configuration, the APCMini can still successfully control Ableton, however, none of the lights light up on the controller. This indicates that the connection is one way, APCMini -> OUT but messages sent back are not received by the APCMini.

FWIW, I suspect that there is something to do with the "Live Routings" but I have not found an adequate explanation of what this actually does or get it to do what I want. I have tried leaving it empty (no selections), selecting the APCMIni for IN but not OUT, then for OUT but not IN, then APCMini for both OUT and IN. None of these combinations results in Ableton being able to light the buttons on the APC mini via the MIDI Session configuration.

Any suggestions on how I might set this up or troubleshoot the problem are welcome.
The article from the Ableton site is about the macOS implementation of RTP MIDI. This is the usual way for Apple devices to use a network for MIDI transport. Then, you are probably using Linux in the Raspberry Pi, Right? Then you are trying an implementation of RTP MIDI for Linux, and you find it partially working and partially not. It would be useful if you tell which implementation is that. Maybe this one? https://github.com/ravelox/pimidi

I don't like RTP MIDI. It is absurdly complex, and didn't try that project, but I wish you luck. Please tell us if / when it finally works.

As an alternative, if you decide to throw the towel, there is another protocol to transport MIDI on a local network: https://www.nerds.de/en/ipmidi.html
There are ipMIDI drivers for macOS and Windows, and many working solutions for Linux. Among others:
QmidiNet: https://qmidinet.sourceforge.io/
multimidicast: http://llg.cubic.org/tools/

5 years ago
Hi, thanks for your response.

I'd like to focus on Mac OS's MIDI Network Setup, rather than the Raspberry Pi setup. The RaspPi is running custom software I wrote (I'll give more info below if anyone is curious), so misconfiguration is not the issue. Bad code maybe, but that's for me to figure out.

The simplified question that eliminates the RaspPi from the equation is; how to get Ableton Live and the APCmini to talk in both directions through a MIDI Network Setup session. This works:

{pad press} [ APCmini ] == USB ==> [ Ableton Live ] {sample plays}
[ Ableton Live ] == USB ==> [ APCmini ] {pad lights up}

This works:

{pad press} [ APCmini ] == USB ==> [ MIDI Network Session ] ==> loopback ==> [ Ableton Live ] {sample plays}

This does not work:

[ Ableton Live ] ==> loopback ==> [ MIDI Network Session ] == USB ==> {pad should light up}

I've tried playing with the live routings settings, but those don't seem to change anything. Any clue how to get bi-directional communication?


The RaspPi setup. The Raspberry Pi is running a custom server I wrote that controls a light up dancefloor I built. I included the pymidi Python library (https://pypi.org/project/pymidi/) to listen on a specific port for MIDI data, and then use this data to change things on the dance floor. This works:

{pad press} [ APCmini ] == USB ==> [ MIDI Network Session ] ==> WiFi ==> [ RaspPi ] ==> Custom Stuff {lights blink}

The pymidi library however has not yet implemented sending MIDI data, so I'm writing it myself. Via wireshark, I can see my test data coming back over the network. However nothing happens on the APCmini. To eliminate my code and my (mis)understanding of the MIDI data to send, I've replaced the RaspPi with Ableton Live, something that I know works. If I can get Ableton Live to work through the MIDI Network session, I can be sure any problems I find are with my code, not Mac MIDI configuration.
  • Page :
  • 1
There are no replies made for this post yet.