Cascade translators/presets?

Hey guys :slightly_smiling_face:

Is there a way to have Translator B “catch” MIDI A sent by Translator A and process it into MIDI B?

Ie. treat own-generated midi as if it was incoming.

Specifically, I have a set of translators changing the midi channel of notes, and I would like to add a set of translators to transpose notes, and I would prefer not to consolidate those two sets, because they are already complicated and large in number.

Best,
Mathias

Hmm… Maybe I can use port routing here…
Are there any examples or best practices for this?

Well you could do this but not with Bome Virtual Ports as they require one side of the connection to be Bome MIDI Translator and the other side to be anything but Bome MIDI translator.

You could potentially use Bome Network ‘Unlimited Named MIDI Ports’ which don’t have that restriction or LoopMIDI or LoopBE, however there is some risk here.
The first is that if you are not careful, you can create infinite MIDI loops which eventually would crash Bome MIDI Translator. (Kind of like audio feedback loops but with MIDI instead).

The second issue is that doing this requires more system calls to process. One on the sending side and one on the receiving side. This takes more system overead.

Currently the best practice is to communicate between translators with global variable instead. You set a variable with one translator and have the another translator to read that variable. Most often this is done with timers. The first translators sets a variable and then triggers a timer. The second translator uses the timer input to trigger the action and then it uses the same global variable, do determine what to do. Sometimes I use timers quite extensively when handling complex actions.

There are other solutions coming that may also be helpful, but I’m not at liberty to discuss until such time they are released, so for right now, global variables are the way to go. If you have a simple example of what you are trying to accomplish, perhaps I can help further.

Steve Caldwell
Bome Customer Care


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

Thanks, Steve.

Global variables won’t work here, because there are to many transactions going on in parallel. Third-party software isn’t the solution either, since the project needs to run on a BomeBox.

The main preset is re-routing messages between channels, allowing me to play every synth (9) from every keyboard/source (8). If I multiple the incoming midi with 3 to play some unison lines on different synths and also use the mod wheel a lot - that makes a lot of translations (thousands).

From what you write, I guess a workaround could be to make a midi loop by patching an out to an in on my midi interface, but that would be a last resort.

Actually, I think I’ll leave the amendment alone, until perhaps new features makes it more feasible. No worries :slightly_smiling_face:

PS. I should send you the existing projects, because I can’t get it to run on the BomeBox in its latest iteration. Works fine on the PC. That’s for another thread, though.

Best,
Mathias

Yes, maybe I could figure out a better solution for your situation.

Steve Caldwell
Bome Customer Care


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