MIDI Thru Routing Issue on PC with Behringer CMD Controllers and Resolume

Hi Bome community,

I’m currently working on a setup with five Behringer CMD 1-series controllers, using Bome MIDI Translator Pro to modify certain MIDI messages, primarily for controller feedback (LED feedback, button status, etc.).

My Setup:

  • Controllers: 5 Behringer CMD 1-series controllers
  • Software: Bome MIDI Translator Pro and Resolume Arena
  • Platform:
    • Mac: Everything works perfectly.
    • PC: I’m encountering an issue.

What works on Mac:

On my Mac, I’ve configured Bome MIDI Translator Pro to handle custom MIDI mappings, and also allow other messages to pass through directly from the controllers to Resolume. The controllers send MIDI messages to both Bome and Resolume, and the appropriate feedback messages are sent back to the controllers. The custom routing for modified messages works great.

The issue on PC:

When I copy my setup to a PC, I can only get the controllers to send MIDI data to either Bome or Resolume, but not both at the same time. To solve this, I attempted to use the MIDI Thru Router in Bome to pass unmodified messages directly from the controllers to Resolume.

However, the moment I enable the MIDI Thru route, I start receiving immediate feedback from the controllers, which shouldn’t happen. It seems like some kind of feedback loop is occurring, but I’m not sure what’s causing it or how to fix it.

What I’ve tried:

  1. I’ve checked my routing in the MIDI Router to ensure that the controllers are correctly connected to both Resolume and Bome.
  2. All custom MIDI translations work correctly, both sending and receiving the expected messages.
  3. On the Mac, all messages (both translated and passed-through) behave as expected, without any unwanted feedback loops.

Additional Context:

I would also like to set up my Mac to behave the same as the PC, so that I can create my entire show on the Mac and seamlessly copy it over to the PC. Since the Mac allows for more flexible MIDI handling, I’m trying to ensure that the Mac version doesn’t rely on any system-specific features that won’t work on the PC.

What I need help with:

  • How can I configure the MIDI Thru Router on my PC to pass unmodified MIDI messages directly to Resolume, without causing feedback issues?
  • Is there a specific setting I need to change in the PC version of Bome to prevent feedback loops?
  • How can I adjust my Mac setup to mirror the behavior on PC so that I can create my show on the Mac and easily copy everything over to the PC?

Thanks in advance for any help or advice!

Tijn
Behringer CMD 1.bmtp (57.3 KB)

Hi,

I see two major issues with your project.

  1. You should really use aliases. What happens if you want to use a different virtual port for Resolume? You would have to change a bunch of translators in your project. Right now you have it hardcoded to BMT 1. I added an alias ‘Resolume’ and pointed it the the port that I’m using (for testing). It is much easier to maintain your project file this way and also the routing makes more sense. It looks like you did aliases for your controllers, so I didn’t touch them.

You can learn more about aliases from this tutorial.

  1. For most translators and presets you do not specified the desired input device and output device. This means a given message be processed from every opened device to every opened device by default. Although it looks like you have your controllers and different MIDI ports, the messages still go through and can cause a lot of unnecessary additional MIDI traffic. In general, I usually do device selection for my translators by preset (for ease of project maintenance). On exception, I put the device routing for translators at the translator level. I’ve done this for many translators, but I don’t know if I caught them all.

For more information about device selection, see this tutorial.

Hopefully I caught most everything but please review the two tutorials I posted carefully as I believe together, they are the crux of most of the issues you are having.

Behringer CMD 1-sjc.bmtp (57.2 KB)

Steve Caldwell
Bome Customer Care


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

Thx you so much… works like a charm now… great…

Steve can i ask you something else; I have three controller knobs CH 5, CC 2, 4 & 5 and i want a note (C4) to turn on (sent 127) if all 3 knobs are on 127 else sent 0. To save data going back and forth, and not having it send zero all the time I turn one of the knobs it would be nice if it would be some sort of toggle. is this possible?

Sure, see the attached.
I use ga to bitmap the states of the 3 CC’s. I set a bit if the value is 127 otherwise I clear it.

Then I compare the current state from the last known state and send the proper value, but only if the state has changed.

Here are the rules:

// last value of ga to deterine last state
tt=ga

// Set or clear bit 0 for CC2
if pp!=2 then skip next 2 rules
if qq==127 then ga=ga|1
else ga=ga&6
// Set or clear bit 1 for CC4
if pp!=4 then skip next 2 rules
if qq==127 then ga=ga|2
else ga=ga&5
// Set or clear bit 2 for CC5
if pp!=5 then skip next 2 rules
if qq==127 then ga=ga|4
else ga=ga&3

// Determine value to send
if ga!=7 then qq=0
else qq=127

// determine state of current value
if tt==7 then rr=1
else rr=0
// determine state of last known value
if ga==7 then ss=1
else ss=0

// Log "Log ga=%ga%"
// Only send value if current state is different than last known state
if rr==ss then exit rules, skip outgoing action


And the project file.

3CC-to-Note-Toggle.bmtp (2.3 KB)

Steve Caldwell
Bome Customer Care


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

Super cool thx… this is gone be the best mapping i’ve ever build… :pray: