Newbie MT wiring advice request

bitSync

2013-03-29 18:05:22

Background

Greetings! I'm a Bome MIDI Translator (MT) newbie.

I am trying to troubleshoot an internal MIDI interface between two software applications residing on the same computer and connected to one another using 6 LoopBE30 internal MIDI ports. The 2 applications are Cakewalk's Sonar Producer X2a and BluAudio's D8Bridge v1.1. The D8Bridge application is a software translator that translates between the Mackie Control protocol understood by the Sonar X2a DAW application and the native serial communications language understood by the Mackie d8b console, thus coverting the d8b console into a 24 fader control surface intended to operate like 1 Mackie Control Universal (MCU) and 2 Mackie Control Extenders (XTs) in Mackie Control protocol mode by way of a USB/serial interface between the host computer and the d8b console (D8Bridge's external serial physical interface to the Mackie d8b).

Image

I am using MIDI-OX to monitor and collect MIDI traffic over the 3 pairs of MIDI interfaces (6 ports), 1 I/O interface pair for each of the 3 MCU/XT software devices. The port numbers in the illustration above are the LoopBE30 internal MIDI port numbers and the monitoring points for MIDI-OX. I have collected sufficient MIDI traffic from the intialization of Sonar/D8Bridge to discover 2 SysEx messages from D8Bridge I suspect may be in error. When Sonar first boots it sends a series of 3 SysEx messages (queries, I believe) to what it thinks is an MCU unit and 2 XT units (control surface definitions manually configured inside Sonar by the user). Sonar correctly installs the proper MCU machine ID 0x14 in the SysEx message to the MCU and the proper XT machine ID 0x15 in the SysEx messages to the 2 XT units. Those messages are as follows.

F0 00 00 66 14 1A 00 F7 ; on the D8Bridge input port (2) to the MCU (machine ID 0x14, MCU)
F0 00 00 66 15 1A 00 F7 ; on the D8Bridge input port (4) to the first XT (machine ID 0x15, XT)
F0 00 00 66 15 1A 00 F7 ; on the D8Bridge input port (6) to the second XT (machine ID 0x15, XT)

In reply, D8Bridge sends the following acknowledgement SysEx messages.

F0 00 00 66 14 1B 00 F7 ; on the Sonar input port (1) for the MCU (machine ID 0x14, MCU)
F0 00 00 66 14 1B 00 F7 ; on the Sonar input port (3) for the first XT (machine ID 0x14, MCU)
F0 00 00 66 14 1B 00 F7 ; on the Sonar input port (5) for the second XT (machine ID 0x14, MCU)

I am trying to correct what I believe may be an error in the second and third SysEx messages from D8Bridge, identifying the wrong machine ID for the XTs (0x14 instead of 0x15) to see if that remedies some issues I've observed in the Sonar/D8Bridge integration. I would like to install a translator only on the 2 XT ports from D8Bridge to Sonar to translate just the 0x14 machine ID to 0x15 in the one SysEx message type.

My Question, Finally

I purchased my MT license last night and after spending some time with the MIDI-OX test rig and the MT and its manual, I'm a bit confused as to how to wire all this up properly. I setup 2 translator project files, 'xt-not-mcu-3' and 'xt-not-mcu-5', both setup to translate input F0 00 00 66 14 1B 00 F7 to F0 00 00 66 15 1B 00 F7 and to swallow the inbound MIDI message. I used no rules for the 2 translators. For each translator I tried specifying just the Internal MIDI ports 3 and 5 respectively, as well as selecting Default Ports instead. I invoked both translator projects, as well as MIDI-OX, and activated the translators in advance of starting up D8Bridge and Sonar. As reported by MIDI-OX, I never succeeded in translating the intended messages; they came through as before.

Among the many things I don't yet understand about MT is whether I have to explicitly install a translator inline, interrupting an internal MIDI path between D8Bridge and Sonar or does MT insert itself when specifying a particular internal port to translate? How do I know where the MIDI-OX monitoring is taking place with respect to MT in the MIDI signal chain (before of after MT)? Do I need to do MT routing to accomplish this translation or not? Should I open up a few more LoopBE30 ports and route explicitly through MT? This is probably an easy question for most of you but I'm a bit lost at the moment. Any assistance from the MT community for how to wire this translation up would be a huge help. Thank you!

bitSync

2013-03-30 03:42:25

A Little More Progress and a Lot More Info

I was able to get MT to execute the translations I was wanting, but not without also passing the original messages, which I had hoped to replace/block with the translations. Below are the new startup messages. The original messges that got through anyway but shouldn't have are in red.

00347EFA 2 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 14 1A 00 F7 ; Sonar query to MCU on port 2

00347EFA 4 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 15 1A 00 F7 ; Sonar query to first XT on port 4

00347EFA 6 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 15 1A 00 F7 ; Sonar quesry to second XT on port 6



00347EFB 1 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 14 1B 00 F7 ; D8Bridge response to MCU on port 1- no translation required

00347EFC 3 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 14 1B 00 F7
; Should have been blocked

00347EFC 3 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 15 1B 00 F7 ; Correct translation to machine ID 0x15 - D8Bridge response to first XT on port 3

00347EFD 5 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 14 1B 00 F7
; Should have been blocked

00347EFD 5 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 15 1B 00 F7 ; Correct translation to machine ID 0x15 - D8BRidge response to second XT on port 5

Here's my configuration. I condensed the two projects into one project file with two translations.

Translator entries, now in a single MT project - 'xt-not-mcu.bmtp' -

Image

Log file of the desired translations taking place -

Image

Translator entry for xt-not-mcu-3 Options -

Image

Translator entry for xt-not-mcu-3 Incoming -

Image

Translator entry for xt-not-mcu-3 Rules -

Image

Translator entry for xt-not-mcu-3 Outgoing -

Image

Translator entry for xt-not-mcu-5 Options -

Image

Translator entry for xt-not-mcu-5 Incoming -

Image

Translator entry for xt-not-mcu-5 Rules -

Image

Translator entry xt-not-mcu-5 Outgoing -

Image

MIDI Devices -

Image

The D8Bridge v1.1 MIDI port mapping -

Image

The Sonar Producer X2a MIDI port mapping -

Image

If you can spot anything in here that is permitting the original messages that are supposed to be blocked to still pass through in addition to the translations, please let me know. Thanks!

bitSync

2013-03-31 15:54:00

No further progress since yesterday. Anybody have any ideas for how to prohibit passage of the two original messages I'm translating?

I'm fairly confident that the two pairs of messages from D8Bridge to Sonar are all getting passed and it's not a peculiarity of the MIDI-OX monitoring. This is because subsequent messages from Sonar on the two XT ports, ports 4 and 6, all specify the 0x14 machine ID, the first meassage type of the two pairs passed without translation. I believe that Sonar is ignoring the second message of each pair with the correct machine ID since it is a redundant message type (apart from the corrected machine ID).

From Sonar to D8Bridge -

00347EFA 2 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 14 1A 00 F7 ; Sonar query to MCU on port 2

00347EFA 4 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 15 1A 00 F7 ; Sonar query to first XT on port 4

00347EFA 6 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 15 1A 00 F7 ; Sonar query to second XT on port 6

From D8Bridge to Sonar -

00347EFB 1 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 14 1B 00 F7 ; D8Bridge response to MCU on port 1- no translation required

00347EFC 3 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 14 1B 00 F7
; Should have been blocked

00347EFC 3 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 15 1B 00 F7 ; Correct translation to machine ID 0x15 - D8Bridge response to first XT on port 3

00347EFD 5 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 14 1B 00 F7
; Should have been blocked

00347EFD 5 -- F0 Buffer: 8 Bytes System Exclusive
SYSX: F0 00 00 66 15 1B 00 F7 ; Correct translation to machine ID 0x15 - D8BRidge response to second XT on port 5


If anybody has any brilliant ideas for how to guarantee that the original messages being translated can be prevented from passing on to the interface I'm all ears. Thanks!

DvlsAdvct

2013-03-31 19:35:16

Hi bitSync.

I think your MIDI routing is the issue here. Your MCU is sending to MT AND Sonar on the same MIDI port, which is where the issue is arising. What I think you should do is take advantage of MT's virtual MIDI ports to send from the MCU to MT, and then use your 03. Internal MIDI to send to Sonar. So your routing would look something like (in order of signals being sent)

Sonar MCU 2 Out -> LoopBE30 Port 4 -> D8Bridge MCU In
D8Bridge MCU 2 Out -> Bome's MIDI Translator Virtual In Port 1 -> LoopBE30 Port 3 -> Sonar MCU 2 In

So D8Bridge MCU 2 will send to Bome's MIDI Translator on Port 1, and you'd have your translator receive its incoming message on that port, but send to Sonar using LoopBE Port 3 as you already have it. Granted, you can do this whole process with only MT's Virtual Ports (which will be more efficient) but you want to make sure that the D8Bridge is not sending to the same port in MT as in Sonar, so nothing gets duplicated across the applications.

Does that make sense?

bitSync

2013-03-31 21:13:25

@DvlsAdvct

Thank you! Yes, this makes sense and it's kinda where my brain was headed. Today I've been thinking I have to physically interrupt the MIDI path to Sonar In 3 and In 5 and make sure that MT was inserted inline. Once I figure out the details I'm going to try rewiring as below.

Image

Looking at your note I may not have to open additional LoopBE30 ports, just wire my D8Bridge outputs 3 and 5 up to BMT's virtual MIDI ports, so you can ignore the additional LoopBE30 ports 7 and 8 in the illustration above; I'll just flow into BMT's virtual MIDI in.

Thank you very much for the feedback! I'll let you know how I make out.

bitSync

2013-04-03 06:00:13

I'm about ready to scream. I'm three quarters the way through a Perl script to parse out and interpret the entirety of messages traversing this interface, no problem, but I still can't seem to wire up D8Bridge, LoopBE30, Sonar X2a, Bome MIDI Translator, and MIDI-OX to accomplish what I want to, which is to monitor and capture all traffic between Sonar X2a and D8Bridge on 3 pairs of internal MIDI ports using MIDI-OX while translating 2 messages on 2 of the ports using Bome MIDI Translator. How hard could it be?

I've tried DvlsAdvct's wiring recommendation but unfortuantely, D8Bridge cannot see MT's virtual ports, it can only see MT's MIDI Translator ports. Is there a difference between MT's virtual MIDI ports and its translator ports?

Here's where I'm at -

Here are the current MIDI port assignment in D8Bridge. LoopBE30 ports 2, 4, and 6 are the outputs from Sonar X2a interfaces for the D8Bridge MCU, XT 1 and XT 2 interfaces respectively. The D8Bridge MCU (Mackie Control Unit 1) output is wired to Sonar's MCU input through LoopBE30 port 1. D8Bridge XT 1 and XT 2 (Mackie Control Units 2 and 3) outputs are wired to MT's translator inputs 1 and 2 respectively.

Image

Here are all the MIDI ports that D8Bridge can see.

Image

Here is the input to MT's translator from the D8Bridge XT 1 output.

Image

Here is the output from MT's D8Bridge XT 1 's translation to Sonar.

Image

Here is the input to MT's translator from the D8Bridge XT 2 output.

Image

Here is the output from MT's D8Bridge XT 2 translation to Sonar.

Image

Here are the control surface port mappings in Sonar X2a.

Image

Going out of my mind at this point... Help!!!

DvlsAdvct

2013-04-03 14:08:44

Yeah, this stuff is frustrating.

Take a deep breath, though, I think you're almost there. The Bome's MIDI Translator ports are the Virtual ports. So do those not work?

bitSync

2013-04-04 01:32:12

Got it. The only thing new that I tried was in the MT translators Incoming section I selected both "Bome's MIDI Translator 1 Vi..." and "Bome Virtual Port 1" for one translator and Bome's MIDI Translator 2 Vi..." and "Bome Virtual Port 2" for the other translator. Before I had been trying to work with either "Bome's MIDI Translator N Vi..." or "Bome Virtual Port N", never both at the same time. I still don't understand the distinction between the two port types in MT, but this seems to have worked.

Image

Another thing I have been wrestling with, unwittingly, is the D8Bridge software appears to be hyper-tweakish about new or removed MIDI ports between invocations; those actions seem to really screw up its internal MIDI port indexing and mapping.

So, I don't know if I can successfully repeat this fortunate bit of MIDI routing, but I succeeded in what I was trying to do, to translate two messages going from the D8Bridge software to Sonar to correct two machine ID fields in two SysEx messages and to capture the traffic acrosss the 3 MIDI interfaces using MIDI-OX during that exchange. Unfortunately, the MT corrected messages seem to have had no substantial positive effect on the integrated operations of Sonar X2a and D8Bridge v1.1. I think I've got a lot more troubleshooting ahead...

DvlsAdvct

2013-04-04 02:09:14

Yeah I've seen that too. Let me do some digging and see why it's coming up.

Regardless of that, good luck. Don't hesitate to bring questions here.

bitSync

2013-04-04 02:50:48

@DvlsAdvct,

Thanks very much for your interest and assistance. Best regards.