How does MIDI Translator Pro communicate with Bomebox?

What protocol does MIDI Translator Pro use to communicate with a Bomebox?

For example, when I use Auracle to program a mioXL, the Auracle software is simply sending MIDI messages to the mioXL. I similarly hope that MIDI Translator Pro is also using MIDI, but I can’t seem to find a specification.

The reason I’m asking is that I’m looking for good ways to have a Raspberry Pi send commands to a Bomebox, for instance to enable and disable certain MIDI routes. I could make the Raspberry Pi send MIDI, and then have a MIDI Translator Pro program interpret that MIDI into commands—but it would be more direct if the Bomebox configuration protocol itself was a MIDI implementation, so I could just send those messages directly.

For some functions, I could also use the Web API (POST /b/b/admin/bomebox/router).

But is there a generic protocol that MIDI Translator Pro and Bomebox use, which I could tap into?

Hi,
Bome MIDI Translator Pro just communicates with standard MIDI messages. With that said, MIDI messages can be passed between a computer and BomeBox via Bome Network which is free if you are just passing messages between computer and BomeBox. You can either run a project file on a computer (Mac or PC) or upload the project to BomeBox for execution there. You can program Bome MIDI Translator Pro to use MIDI messages to adjust routing if that is what you want or any other support MIDI supported MIDI translation functions.

You can download Bome Network on your RPI and then use send MIDI to the BomeBox from there using Bome Network. You can then load an Bome MIDI Translator Pro project file on your BomeBox to support the translations or other functions you want.

Steve Caldwell
Bome Customer Care


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

Thanks, Steve! Is there an overview of the MIDI protocol of the BomeBox? For instance, where can I find the MIDI command to create a certain route?

Bome MIDI Translator Pro has outgoing actions for adding, removing, enabling and disabling MIDI routes. The main thing you would need to do is give all of your devices an alias so that you use the alias names instead of the hardware port names. That way when you move your project file from your computer to BomeBox, you would just re-assign the aliases and the routing actions would use the aliases instead of the physical ports.

You can learn more about aliases from this tutorial.

Instructions for all outgoing actions are shown in the Bome MIDI Translator Pro user manual.

Steve Caldwell
Bome Customer Care


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

Hi Steve,

Thanks for all the detail—it’s probably easiest if I explain a bit of my use case. In summary, I’m trying to find a way around using 1,104 translator entries.

Use case

I’m creating a software MIDI router for 24 x 24 devices. Basically, there is a list of MIDI devices connected to the Bomebox:

  • Device_01
  • Device_02
  • Device_24

And I have an external software interface running on a Raspberry Pi through which the user can dynamically select how those devices should connect. For example:

  • Device_01 sends to Device_03
  • Device_21 sends to Device_14

These can be changed on the fly.

Prototype implementation

I created a working prototype with MIDI Translator Pro for 5 devices. This worked through 40 Translator Entries, as follows:

  • 1: Add Route from Device_01 to Device_02
  • 2: Add Route from Device_01 to Device_03
  • 21: Remove Route from Device_01 to Device_02
  • 22: Remove Route from Device_01 to Device_03

These rules were triggered via specific MIDI SysEx messages for which the MIDI Translator Pro was listening. Note that I had to create 40 separate rules (I autogenerated them and then signed them with MIDI Translator Pro), because the outgoing MIDI Router action does not take parameters.

Final implementation

For all 24 devices, the final implementation would need two times 24 times 23 rules, so 1,104 rules. I could autogenerate those—that’s fine.

However, I wonder: can I do better?

I noticed that MIDI Translator Pro can directly send route add/remove actions to the Bomebox, as can its Web interface. So that’s what prompted the question at the top of this thread: What protocol does MIDI Translator Pro use to communicate with a Bomebox?

I see that MIDI Translator Pro is sending TCP messages to the Bomebox when I add/delete a route. These might be MIDI messages encoded over TCP, or something else. So that’s why I like to know whether that protocol is also available for me to use, such that I can avoid having to generate 1,104 rules for a 24-device configuration, or 8,064 rules for a future 64-device extension.

Or, alternatively, a parametrized MIDI Router action could also reduce the number of rules needed.

The short answer is that there is no API for BomeBox, only the web interface where you can use translators to add/remove routes and the Bome MIDI Translator Pro project file.

I will notify that this has been requested.

Steve Caldwell
Bome Customer Care


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

Thanks Steve, that’s clear!

I mainly wanted to ensure I hadn’t overlooked an existing API that I could hack into.

The actual feature I’d suggest then would be to parametrize the MIDI Router action. (Which is what I would’ve hacked out of the API.)

Thanks for the clarification! Your request is being passed along.

Steve Caldwell
Bome Customer Care


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