Prevent application from getting MIDI messages

Ali

2011-08-04 22:26:56

I've got a midi-controller which controls a software via MIDI. Both are hard-wired so I can't set incoming and outgoing MIDI-ports.

Now I'd like to filter out certain of these messages so they aren't send to the software anymore.

Is that possible with Bome's Midi Translator?

I tried everything but the program still received the MIDI messages.

florian

2011-08-05 10:58:08

Hi Ali,

the simplest way to do that with Midi Translator Pro (MT) is this:

1) Virtual MIDI setup
MT cannot filter directly, rather all MIDI data must take a detour through MT:
MIDI Controller -> MT -> Software

Assuming you only want to filter MIDI from controller to software, do the following:
MT:
- MIDI IN: MIDI Controller
- MIDI OUT: Midi Translator Virtual Out 1

Software:
- MIDI IN: Midi Translator Virtual 1
- MIDI OUT: MIDI Controller [if needed]

2) MT MIDI Router
Now the next step is to tell MT to route all MIDI data from MIDI Controller to software by default.
For that, open the MIDI router and draw a line from the left MIDI Controller icon to the right "MT Virtual Out 1" icon.

Now your MIDI Controller should work correctly again in the software.

3) Filter/Modify/Remove/Add MIDI messages
Now comes the fun part! Create a new Translator Entry. In the Incoming Action field, select MIDI.
- Enter/capture the MIDI message you want to modify or remove.
- check "swallow incoming MIDI message" <-- this is the crucial part!
- go to the "Outgoing" part
- in order to remove this message entirely, select "None" as Outgoing Action
- in order to send a different or modified message, select MIDI as Outgoing Action and enter the message you want to send to the software instead.

Hope that helps!
Florian

PS: you can the same with the MIDI messages from software to MIDI controller. Just add another route (it'll be most likely a cross) and use a different Preset in MT for the Translator Entries for that direction. Then set the default MIDI ports of the Presets accordingly.

Ali

2011-08-05 11:03:07

Thanks for the write-up Florian.

You forgot one thing though:
Software:
- MIDI IN: Midi Translator Virtual 1
- MIDI OUT: MIDI Controller [if needed]
Software and hardware are hard-wired (Serato Itch). I can't set other MIDI INs and OUTs in it.
If there was a way to fake that I'd do it but I haven't found any.

Do you have an idea what to do in this case?

florian

2011-08-05 15:22:55

oh, good point. I'll contact Serato about this.
Florian

Ali

2011-08-05 15:43:40

Being a beta-tester at Serato I also got some contacts there if necessary.

I think they won't have much interest in helping us out because Itch-controllers are supposed to pair with Itch perfectly.
Mappings are not supposed to be altered in any way.

What I am trying to do is:

I've got a MIDI controller with a motorized platter. Only Itch can use this data in an appropriate way. That's why I use Itch as a source for Timecode-data for Traktor Pro.

This works pretty good, but now I want to map all the other controls of the MIDI-controller to Traktor. This works as well but all MIDI-data is transmitted to both Traktor and Itch.

Now I'd like to block Itch from receiving most of these messages so I can handle them properly in Traktor.

I also considered turning the platter data into useable data for Traktor but this is very complicated and Traktor doesn't seem to handle rotating platter well.

Another idea would be altering the MIDI-messages the MIDI controller sends by modifying its driver but I don't understand much about reverse engineering.

Do you have any ideas?

florian

2011-08-07 18:38:25

Hi Ali,

thanks for the details.

I don't know either how to intercept the MIDI stream (I once started off writing such a MIDI driver that sits in between controller MIDI driver and MIDI software, but it was only possible by using techniques also used by viruses, so I did not work on it any further).

It's probably easiest to convert the time code on your own to Traktor platter data, but, as you say, probably not so easy unless there is documentation available.

Thanks,
Florian