If no Output Port is selected

I have a Translator just to route FA, FC, & F8 msgs.
The Translator is set to Output to (*) Specific Ports
No Specific Ports are selected.
The Translator is outputting to all open Ports, in this case they are Virtual Ports 1 & 2.

If I select one of the Virtual Ports as an Output Port, then the Events are only output to selected Virtual Port.

If I navigate away from this Translator, upon returning the Output to Specific Ports has been changed to Project/Preset Default Ports

Preset Default Ports are set to Project Default Ports

Project Default Ports has only a single Input Port selected, which is a currently disconnected MIDI Controller. No Default Output Ports are selected.

Note: My practice is to do my routing via individual Translators, so the only Default MIDI Route I have is from aforementioned disconnected MIDI Controller TO another device.

What it seems to me is that if no Output Port is selected or indicated, BMT will Output to all Open Ports - perhaps specifically because this is a System Common Message (?)

Is it possible to prevent this?

Hi Jim,

What MIDI thru paths do you have set up? If a translator is not in play then the message will go through any MIDI thru paths unless you add a blocking translator that has the desired input with an output of None.

Maybe this is what is happening in your case?

Steve Caldwell
Bome Customer Care


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

Hi Steve, thanks for your response.
If by “paths” you mean “MIDI Thru connections” set up in the MIDI Router accessible when I click the DIN icon labelled “Show project MIDI port settings”, then the answer is no: the only route connected here is FROM a disconnected MIDI controller TO a sequencer, and there is no route TO said MIDI controller for any chances for loopbacks.

I specifically avoid using the MIDI Router to avoid confusions like this because i spend WAY too much time in the frustration forests of the land of confusion.

Hi,
I agree. I also try to avoid static MIDI routes with the MIDI router.

There is a priority on how translator routes work.

If no route is defined at the translator level, then it defaults to the preset level routing.
If no route is defined at the preset level then, then it defaults to the project level routing.

Otherwise the translator routing will override the preset routing and the preset routing will override the project routing.

Steve Caldwell
Bome Customer Care


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

Hey Steve
Thanks again for your response.

Per my original post:

So, no route is defined at any level, yet MTP is outputting to (possibly) ‘all open ports’ irrespective of routing, or rather, nullification of routing.

Further Information:
I started paring away Translators & Presets and discovered something interesting.

I deleted all Presets except the one that contained the Translator in question, namely the one that accepts input from a USB connected sequencer for FA, FC, and F8 msgs and is supposed to fwd those to salient ports - for test purposes there are none selected.

I turned off all other Translators and ensured the Translator-In-Question was setup with NO Outgoing Ports.

Upon running the sequencer, the Translator - the only one checked to run - was outputting to all Open ports irrespective of the fact that NO PORTS were selected to be output to.

Again: All other Translators were UNchecked to NOT run.

As I ran through deleting individual Translators OTHER than the one in question, I noted that deleting all Translators that were UNCHECKED that sent to a specfic Output Port (if they were operational) then removed that Output destination from the erroneously running Translator.

That is, I have LC1, Pyramid, Virtual Port 1, and Virtual Port 2 as valid destinations with this hardware setup and different Translators route to these separately.

Again: THERE ARE NO DEFAULT PORTS NOR ROUTES SELECTED IN PRESET OR PROJECT LEVEL

Translator-in-question is set to output to NO PORTS.

Run: Translator outputs to all 4 mentioned Ports.

If I Delete any Translators that would be outputting to LC1 (which I have NONE that output FA, FC, F8 because the device does not recognise these commands), even though the Translator was unchecked in the first place, then the Translator-in-Question will stop outputting to Port LC1.

So, perhaps my initial issue should be modified:
If no Output Port is selected for this Translator, then MIDI Translator Pro seems to be outputting this message to all Output Ports mentioned by a separate Translator (at least within the same Preset), irrespective of whether these separate Translators are supposed to be running or not (checked or unchecked).

Further, by selecting () Specific Ports for Output for a Translator and NOT checking at least one Output Port, then MIDI Translator Pro will, upon navigating away from this Translator, alter the Output to ()Default Ports instead of the selected (*) Specific Ports.

This may be due to the fact I’m processing System Common Messages rather than Channel Messages, or perhaps not. I’d really like to know, because I switch around my hardware often and I fear I may have to write an extra testing layer or two.

Edit to add: Sorry, should have preceded my whole thing with this, but apologies - I ask questions backwards because:brain bad. (Figured you might have guessed that bit already, but just in case it’s not clear)

Do you have a minimal project file that you can post that illustrates the issue.

It appears you indeed may have found a bug. It appears an enable translator in a preset will inherit the output destination on a peer translator, even if the peer translator is not selected. We will look into this.

Steve Caldwell
Bome Customer Care


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

My studio computers aren’t networked.

I just created a brand new Project.
I made one Translator: Incoming oo from my sequencer Port (Specific Port)
No routes, no Outport Ports on defaults at Project, Preset, or Translator level
Fed in FA, F8, FC

I see it coming in, it doesn’t go out.

Create another Translator
Uncheck it’s box
Incoming: MIDI Message: Note On
Set the Outgoing to any port

FA, F8, FC is now being sent to the Port selected in the second Translator despite the facts:

  • Second Translator is looking for Note On Events
  • Second Translator is not selected
  • One Byte Translator is set to not output to a Port

Now create an Alias called _null
Send Translator #1 to _null or at Project Level check _null as an Output Port
Fx msgs now NOT being sent to Output Port set in the second Translator

I could imagine that timing msgs might take some sort of precedence, but it’d be nice to know if that was intended (feature!).

One sentence describes all my blathering.
Oh heck - thank you, Steve! Sorry you had to hack your way through my blathering - I appreciate your help!

It may indeed be planned behavior as it makes no sense to have a translator set up with an outgoing action and no assigned output ports. Usually it will inherit as I described but since there is nothing to inherit, maybe it just has to guess at the next peer translator output.

Steve Caldwell
Bome Customer Care


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

Nice to hear from you, CreepyPants… my apologies for the problem you’ve run into!

A few clarifications:

  • if no project ports, no preset ports, and no translator specific OUTPUT port is set, an outgoing MIDI message will go to all currently open ports (no matter how or why the port is open)
  • a translator entry with a used MIDI port will cause this port to stay open, no matter if the translator entry is enabled or disabled. This is by design and different from Preset Default Ports, which will only force the port to be open when the respective preset is currently enabled.
  • for completeness, MIDI Routes will also force the respective IN/OUT ports to stay open (unless the route is disabled)
  • as Steve said, “no specific port” in a MIDI translator action is equivalent with “preset/project default ports”

This behavior might not always be the behavior you expect. But it’s easy to create expected behavior by using Preset Default Ports and/or direct port settings in translator actions.

I hope this clarifies a bit!

This proves there is no end to learning new things. I’ve been at this for several years and this is the first time, I even explored this possibility.

Thanks for clearing this up, Florian!

Steve

@FlorianBome Hey there! Yeah, it’s been awhile since I’ve had a question, eh?

Okay, that makes more sense.
I hadn’t quite gotten to the point to put that behaviour together with what I was experiencing, because: I ask questions backwards. Thank you for clarifying!

Makes perfect sense - I just wasn’t prepared for it.

@SteveC IKR? Once in awhile my headscratchers are genuine and not always just doing a ‘stupid’. heh heh

1 Like