Supported MIDI-over-IP protocols

Hello Bome-Developers,
I could not find any information about the protocols which are used to tunnel the MIDI messages.

  • Is rtpMIDI supprted?
  • Is a raw MIDI data encapsulation (with UDP or TCP) supported? If so, can I choose freely the ports?

I wonder if I can support the BomeBox in an own Java program.

Thank you for further information.
michaeL

Hi, and welcome to the forum!

I assume you are discussing BomeBox as MT Pro supports any protocol that the host exposed MIDI ports.

rtpMIDI or raw MIDI encapsulation is not currently supported. I believe that rtpMIDI is on the roadmap @florianbome , could you please confirm? There is no definitive target release date, however. Right now there are two options.

  1. send via BomeNetwork to an existing BomeNetwork supported device. If that device also supports rtpMIDI, you should be able to bridge the connections on that device. BomeNetwork ->PC or Mac -> rtpMIDI -> rtpMIDI destination

  2. I’ve heard some users may be using the serial capabilities to convert from serial to rtpMIDI using Arduino. You would set up your MT Pro project to use a serial port as a MIDI device and then the Arduino sketch to convert to rtpMIDI and send it out over the network that way. I haven’t personally tried this yet as I think the code is currently only supported on certain Arduino network adapters which I don’t have. I tried it with an ESP8266 card that I got on eBay but alas it not one of the supported devices and I only got one MIDI message successfully sent using this method. I’m sure it can be done but have not pursued further. If you find a working combination, let us know as I’m sure other users may be interested. You are not the first person with this question.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

indeed, but we do have a few other features in the queue for the BomeBox firmware before RTP-MIDI…

Hello SteveC and FlorianBome,

Thank you very much for your prompt response.

@SteveC: These are intersting suggestions. But I was looking for an easy setup / configuration / out-of-the-box solution. Yes, I can use a second PC with a driver like rtpMIDI | Tobias Erichsen to convert between the IP protocol and MIDI. With some effort, also an Arduino or better a RaspberryPI could do the job. But then I do not need the BomeBox anymore. :wink:
On the other hand the BomeBox looks very nice to me because it can be supplied by Power-over-Ethernet which avoids the need of another power supply (on the stage). And also the enclosure looks suitable for professional purposes.

@FlorianBome: I assume that the BomeNetwork protocol is proprietary. Or can I get somewhere a specification (like RFC 6295 - RTP Payload Format for MIDI for RTP Payload format for MIDI)?

Stay healthy and all the best
michaeL

I’ll address the first issue.

The BomeBox is more than just a simple MIDI Router. With the addition of Bome MIDI Translator Pro, you can load a project file into BomeBox and do complex translations and routings. This is much more advanced than an Arduino or RPI unless you have the time to do a lot of work on an Arduino sketch (or RPI program) to do what BomeBox does. BomeBox is optimized for MIDI where RPI and Arduino are general purpose computers/appliances only and might require a lot of programming time to create a robust MIDI translation/routing application.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Thank you for the clarifictaion, Steve.
I do understand that the BomeBox is optimized for MIDI processing. (I once used the PC application MIDI OX for some mapping and translations.)
The price of around 200€ for the BomeBox is probably justified for its functionality.
But like I said: for an existig Java application (which can address local MIDInterfaces right now) I am looking for a way to send out MIDI messages to a distant interface with UDP/IP or TCP/IP. (There are a lot of examples Java UDP Client Server Program Example). I do not want to depent on further OS drivers and MIDI-loop back adapters since this increases complexity. So, I would appreciate a specification of the current protocol or the support of RTP MIDI. :wink:

There is no published specification for Bome Network and rtpMIDI is on the todo list. I just don’t know when they will be available which I offered a few alternative choices.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Hi, sorry I missed the question in your OP about direct UDP/TCP functionality! It is also on the road map to connect directly to the BomeBox using raw UDP and raw TCP sockets.

The Bome Network MIDI protocol is somewhat complex, so we haven’t disclosed how it works. We also think that it’s better to go with standards…

At this time, there is raw TCP functionality, but somewhat hidden: the Allen & Heath mixer support is in fact just that. Normally, the A&H devices are automatically detected by A&H’s proprietary UDP broadcast protocol. But you can also directly connect from the BomeBox to an A&H device by specifying its IP address and port number:

  1. In the BomeBox web config, go to the Allen & Heath page
  2. If not enabled yet, check “Use Allen & Heath Network MIDI”
  3. Click on Add manual device by IP
  4. enter ipaddress:port (hostname:port works, too)
  5. the BomeBox will connect to a TCP remote server at that IP and port
  6. an internal MIDI port for that TCP connection will be created in the BomeBox
  7. you can now use this internal MIDI port in the BomeBox MIDI router and MIDI processing
  8. if auto-routes is enabled, the TCP connection will be routed to all other MIDI ports automatically

Notes:

  • you can create as many TCP connections as you like
  • all TCP connections created like this are persistent across BomeBox power cycles
  • if a remote TCP server cannot be reached, the BomeBox will continuously retry
  • ditto for a dropped connection

It is easy to create a TCP server in Java that will work well with this. I’ll be happy to assist (sounds like fun!).

Wow, I didn’t know this. I will play around with it. Thanks Florian!

Thank you, @FlorianBome, for this information. This solution sounds interesting. So, the A&H protocol seems to be raw MIDI data which is encapsulated in a TCP/IP stream. (I found further information at MIDI Control | Allen & Heath).
So, my PC with the Java program could act as an A&H desk. Probably, I have to configure the PC’s firewall, so that it will accept incoming TCP/IP connections.

The Bome Network MIDI protocol is somewhat complex, so we haven’t disclosed how it works. We also think that it’s better to go with standards…

Yes, I think standards are really helpful. If you use standard specifications (like RFC or MIDI), you do not have to write them. :wink: You “only” have to comply with them. The MIDI 1.0 protocol is one of my favorite: easy design, but also open to extensions. - There are so many vendors and devices which support it.

I think, first I have to collect some experience with Java and IP support. Right now, this is only a spare time project, so I am not in a hurry.

Possible. Nowadays, the OS may just ask the user if she wants to allow incoming connections on that port when you start a server socket. And if you’re using an installer, it can dig a hole into the firewall, too.

…unless you’re one of the most active members in the MIDI Association in the development of MIDI 1.0 and particularly MIDI 2.0 specifications… like me :slight_smile: