n00b Preset Question: No MIDI Output

I haven't found the topic after searching, so I must suck at searching.

And, I may not understand completely what BOME's purpose is in this instance.

I have a single preset. The MIDI Input port is my Piano (Korg) which is sending on Channel 1.

The MIDI Output is set to Bome MIDI Translator 1 Virtual Out.

As I understand, I need at least a translator -or- routing defined.

The goal here is to have two presets that accept and pass on all keys from the keyboard. One preset when active will send to Ableton Live, and the other will send to Mainstage.

It seems that the output on the translator allows listening to ALL notes as input, but the output only allows a single value. Am I going about this the wrong way?

Hi, and welcome to the wonderful world of Bome MIDI Translator!

I can be your guide as you get started. Also keep in mind the documentation (press F1 within or go to the help menu within MT Pro to get the PDF documentation) and wealth of tutorials, we have here. I would recommend you look at at least the first two if you haven’t already.

— Now to your question

At the project level, define all the ports you want to use by checking them. However before you do, I recommend you set up Alias names for all of your used ports. It just makes things easier in the long run. Instead of checking the actual ports, check the aliases you set up for them.

Then at the preset level define the ports you want to for input and output within that preset. (again using the aliases). Set up a preset for Korg to Ableton and another for Korg to Mainstage. Any translators you define under a given preset will only use the ports defined within that preset.

You CAN define default routes if you want, however keep in mind default routes is a MIDI thru setup so if you don’t have any translators preventing it, all messages will get through that route. My preference is not to use them except in extreme cases where I want “almost everything” to get through and am too lazy to create translators for everything. In my experience having MIDI Thru routes defined often results in “surprises” later on (unwanted MIDI messages sneaking through).

If you get stuck, post your project file here (in an answer as comments do not allow for attachments) along with your issue and I can assist further.

 

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

 

Hmm…so if I have one keyboard, I can route the messages from that keyboard to the Aliased port. But what if I want to switch between the two destinations. Isn’t the routing feature global and not “per preset?”

Hi,

 

Indeed the routing feature is global. Again, if you use it, I would route between aliases.

But if you want to switch between routing (ie during a performance), then you can enable and disable the presets you want to use at the time and then the translators under only an enabled preset would be active at a given point in time. Typically this is a more advanced topic but apparently you are lucky enough to trip over it right away.

Also, you would use translators if certain messages always go to one device and other messages to the other. You can also set up multiple translators with the same incoming trigger, each having a different outgoing message to separate devices.

 

The following tutorial should help.

https://youtu.be/KunN2A1rKMY

 

 

 

No worries about my experience with MIDI…been at it since 1987…have only just touched the translator app though. So, you say that I can pass through all messages from the inbound to the outbound port using a translator on the preset, but I’m not seeing how. In my preset, I have selected the ADVANCE61 USB Port 1 as the input (no sense in making an alias if the name is going to basically be the same). Channel 1, any note, any velocity. In the output, I’m stuck as to what to select. I can select MIDI Message on Channel 1, but then I’m limited to a single note value. So either I play and the same note plays for every key, or I play and nothing comes through unless I hit exactly the single note.

So weird. I even used the variables pp and qq for note and velocity values on the input under Control Change for both input and output. The output capture in the translator setup shows activity, but the Event Monitor doesn’t show any output, only input.

The below illustration should help.

I’ve defined 3 ports

KB – This is an alias to my incoming keyboard

App1 -> Aliased to BMT1

App2 -> Aliased to BMT2

I have 3 presets

  1. Switch Preset. This is always active and has one translator to toggle between the 2 presets selection. The outgoing action sets the variable on which preset number to activate. I have it set to deactivate all other presets (except for Always active). In this example I used the computer ESC key to toggle the presets but you could use any supported incoming trigger.
  2. Input is KB. Output is to App1. 3 translators. Any 3 note MIDI message (raw), any 2 note MIDI Message and any 1 note MIDI message. This will cover everything except Sys EX messages)
  3. Input is KB. Output is App2. Same 3 translators.

There are only two rules in the switch preset translator

ga=ga^1 – This toggles the value of ga between 0 and 1. It is the same as the following 3 rules below (just a lot shorter)

if ga==1 then pp=0

if ga==0 then pp=1

ga=pp

Then I add 1 to the result

pp=ga+1 – Since the presets to be toggle is 1 and 2 (not 0 and 1) I add one to select the target preset.

Attached is the project file.

 


Attachments:
1555783365797_Routing-Example-2019-04-20.bmtp

Yeah that’s too much information in one shot. Let’s simplify things.

All I’m trying to do right now is open an incoming port and an outgoing port. BMT should listen to my keyboard on Channel 1, all notes and should make that information available on the BMT Virtual Port 1 for any app that chooses to listen.

So, I create a new project.
I set the project default MIDI ports. MIDI INPUT = Advance61 USB PORT 1. MIDI Output = BMT 1 Virtual Out. Both ports open, both selected.

I would expect at this point I should see not only MIDI IN response in the Log and Event, but also MIDI Out. I see no MIDI Out activity.

Am I expecting it to do something it isn’t designed to do?

I add a translator:

Incoming MIDI Message, Channel 1, Any Note, Any Velocity from ADVANCE61 USB Port 1. Capture on shows positive result.

Outgoing MIDI Message…

This is where I get stuck. No matter what port I select as the output, the Captured MIDI in the Outgoing isn’t sent out.

OK, each application will need it’s own MIDI port, especially on Windows machine but sometimes on Mac as well. So if you want the MIDI message to go multiple applications simultaneously, simply draw lines between you incoming keyboard and outgoing MIDI ports that you would like.

Note that you should see MIDI IN and MIDI OUT if checked on your log viewer but you will not see Incoming or Outgoing since these are only used if a translator is handling something.

 

 


Attachments:
![](upload://v1wwxMf7yEDjsQI3SL8ePvQjBVO.png)
![](upload://7af1BXg6Cd0VE3PhfnDkCfLUiPn.png)

What I’m trying to do is be able to switch between Ableton Live and Mainstage with a single Piano. Sometimes I want Mainstage to be the soft synth and other times I want Ableton to be the soft synth. So, Ableton Listens to BMT Virtual Port 1 and Mainstage listens to BMT Virtual Port 2. By creating a trigger, I can activate/deactivate presets to switch between the two destinations.

I just don’t understand how to push everything the keyboard sends through BMT to the destination port without creating a separate ON / OFF translator, and a translator to handle all CC data inside of one preset.

It looks like I need to use variables with Raw MIDI / System Exclusive in order to get everything to pass through in a single translator…

Anything that you want conditional, you will need to set up translators. Anything that you want unconditional, you can use MIDI routing feature. My example using raw MIDI, is probably the most simple example of conditional routing since it handles everything except SysEX with just 3 translators per preset.

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

Ahh…so it is exceptionally granular. I explicitly need to create a translator for each type of message to ensure any and all data that I want to reach the application port does so, otherwise I may end up with the ability to play notes, but not adjust pitch bend or a knob value..etc.

I know there is a bit of investment to understanding how MT Pro works but hopefully with my help (if I don’t overwhelm you with too much information), it will accelerate your learning. For those that would rather not learn but instead want me to create a complete solution, I offer paid services. I’ve found that in most cases, people opt to spend a little investment in learning.

Yes, it can get as granular as you like. My example is probably the least amount of granularity. You can define by MIDI channel Message type, value, etc. You can assign all of these to variables and use rules to adjust whatever you need before sending output.

With power comes additional learning to take advantage of the features available. I’m here to help if needed.

Cool. Are the variables global for the project, usable only once in each project?

And, since I’m 100% Apple based, is the Bome network Pro app an enhancement to MacOS or unnecessary?

No, now you have me diving into the hexadecimal values of MIDI, which is something until now I’ve basically avoided. 🙂 But, clearly, if I knew them better, I could basically make MIDI do whatever the heck I want whenever I want without being limited by the application I’m using, which seems to be the entire purpose of BMT.

Variable names starting with oo-xx are local to a given incoming trigger.
Variable names starting with g-m are global and available across the whole project.
All variable names are two letters.

Bome Network Pro for me is easier to administer than Apple but is really up to you. If st some point in time, you want want to connect to BomeBox then it will be necessary to use the free or Pro version of Bome Network to connect to it. If then you want to use Bome Network across BomeBox, Mac and Windows, then you will need Bome Network Pro or to other MIDI network applications to bridge them to work with BomeBox.

If only the rest of the world had knowledgable and responsive people on the other end of the line! You’ve been very helpful, and I will soon be an owner of a license.

How advanced can the conditions for MIDI messages get? As a ridiculous example, would it be possible to filter out a Cmaj7 chord on the 5th measure of a specific song but only on a Thursday when the temperature is above 100 degrees Fahrenheit outside, and the time is before 7PM?

They can get pretty advanced but probably not to the degree you speak. Bome would have to have something to convert to MIDI to tell it what temperature it is outside or what day of the week it is, etc.

With that said, MT Pro does have capability to recognize serial input so converting these messages from other sources from serial to variable would certainly make this possible. If you have the time to spend setting it up.

As a few examples, we now have, someone sending IR messages using a serial port to their sound system based on incoming MIDI messages. We have people controlling lighting systems. I have a Serial LCD display I use to display MIDI status of my FCB1010 foot controller (which only has 2 digit 7 segment display). The list goes on.

Steve

Steve, the license doesn’t seem to want to take when I try to register.