*First problem is the MIDI ‘FAIL’ and ‘Not enough memory’ popup I get when using a virtual out port in Bome’s MTP. The controller is being detected and is working fine in FLS. I know that I can get it working with both programs without these warnings, but forgot how.
SJC> Well you should NOT select your original controller in FL studio. In Windows only ONE application can open a specific MIDI device. Since you are running through MIDI Translator with output to Bome MIDI Translator Virtual One (BMT 1) port, you should use that port instead. If you need multiple applicatinos to have access to your controller, then you go through MT Pro giving each application, its own unique port.
Here is my virtual routing. I created the ‘Traktor Kontrol S3 for FLS’ alias. Don’t know why, was just trying stuff to see what works.
SJC> If you are using Aliases, please set up routing and translators to work with thier “Alias” names only and not the physical ports (virtual or physical devices). For Example, if you have an input alias called “My Controller” and it is assigned to “Bome Mome MIDI Translator 1 Virtual In” and you check both input boxes in your incoming ports table, you will see double MIDI messages, one from the original device and one from it’s alias. The same is true for outgoing messages. This holds true whether you select the devices in your static MIDI router, project level, presets or translators.
See this tutorial.
Second problem is it only has the one user bank.
Can I use ‘preset change’ output to make multiple user banks on the same device? Push the button and the rest of the parameters will send out something else to FLS?
SJC> See this tutorial for how to use presets to switch to different virtual banks.
Third problem is the lights. None of the buttons are lit up in MIDI mode. Can I configure the lighting in MTP?
SJC> Typically to light an LED it is a note message and you send a Note-On with velocity of the color of the LED (start with 127). You might need to experiment with colors. In your case you mentioned 91 0A 7F which is note-on message, so send 91 0A 7F back to your controller to turn the LED on and 91 0A 00 to turn the note off. This is not always the case but most controllers work that way.
Fourth problem is it’s sending a different ‘channel’ for each and every single knob.
Is this normal?
SJC> Yes, this is normal. However you may want to re-write your incoming triggers to the target channel instead of any channel, or put in rules to restrict which channels you want to listen to.
For instance in your example, translator 4.0 is lookin for Control change on any channel so unless there is a rule to look at the incoming channel and “skip rules exit outgoing action” if it is not the right channel, the outgoing action will occur on all channels. I cannot see the rules of your translator 4.0 so I’m not sure what the translator does and whether it filters out given channels within the rules.
One of the faders are even conflicting with other MTP presets, because it’s sending from channel 2. ? It’s not even the same port but moving the fader, I get a mouse macro response, whether MIDI Buddy is running or not.
SJC> Maybe you are looking for input from more than one port in your translator (see discussion on aliases and port selection earlier.
Fifth problem is dead buttons. The four ‘channel select’ buttons that actually light up, don’t send and MIDI signal at all. Can we get these working?
I’ve asked NI about the lights and dead buttons; awaiting a response.
SJC> My guess is that these buttons just internally set a different state within the controller. If it doesn’t send MIDI, there is not much we can do. With that said, pressing one of these buttons may make other buttons send different messages depending on which of the 4 buttons you press as it may be be putting your controller into a differeent mode.
Sixth problem is the platters. They send these messages:
<> Example above
SJC> The messages are relative encoder messages. For right turn you get 65,66,67 for movements of +1, +2, +3 etc and 63,62,61 for movements of -1, -2 -3 etc. In your case clockwise sends positive movement and counter-clockwise send negative movement.
You will need to use 2 translators to produce different keystrokes for positive and negative movement. Only one keystroke fires in each translator
First translator (right movement), we look at qq
if qq<=64 then exit rules, skip outgoing action
Then outgoing keystroke “*”
Second translator (left movement would have rule:
if qq>=64 then exit rules, skip outgoing action
Outgoing keystroke would be “/”
See this tutorial for relative to keystroke.
If you want to convert relative to absolute encoder, see this tutorial.
Bome Customer Care
Also available for paid consulting services: email@example.com