G'day folks,
I don't have any source code yet, all I have is a vague idea
I'd appreciate some advice here. I've read today a good many posts and articles that seem to get close but not exactly to what I'm looking for so if you have time to read the full problem I'd be grateful.
TLDR; I want to 'sniff' some MIDI message passing between a PC application and piece of hardware, let's call it the controller for now.
The application (written by the manufacturer of the controller) recognises it as a special MIDI device presumably using the pid/vid. This is significant because it then enables new features in the software to support that specific controller. It seems that only the presence of the controller's pid/vid (possibly name as well) enable the features. There is no way to manually enable these enhanced features on a different MIDI port.
I want to intercept some of the controller's inbound MIDI messages in order to drive some additional hardware of my own while it is connected to the software.
I'm hoping to use a Teensy 3.2 (USB MID device) together with a host controller board (USB MIDI host) to act as the middleman in this scenario.
The challenge I see here is that the pid/vid of the middleman has to be that of the controller otherwise the PC won't recognise it as the special MIDI device.
I'm aware that I can change the pid/vid of the Teensy however that seems a rather brute-force way of doing things, it leaves a slightly sour taste like re-using a GUID when you know you shouldn't really be doing so
Is there a better way of doing this or am I on the right track here?
If I did go this way then the controller would identify itself to the Teensy (host board) with the same pid/vid as the Teensy is identifying itself to the PC.
There are no problems with slowing down the messages passing between the PC and the controller, they are short and not particularly time critical.
Any help would be gratefully appreciated and apologies if this has been asked before, I couldn't find this exact scenario but my mind is now so full of partial solutions that perhaps I've missed it somewhere in my reading.
Cheers,
Jason.
I don't have any source code yet, all I have is a vague idea
I'd appreciate some advice here. I've read today a good many posts and articles that seem to get close but not exactly to what I'm looking for so if you have time to read the full problem I'd be grateful.
TLDR; I want to 'sniff' some MIDI message passing between a PC application and piece of hardware, let's call it the controller for now.
The application (written by the manufacturer of the controller) recognises it as a special MIDI device presumably using the pid/vid. This is significant because it then enables new features in the software to support that specific controller. It seems that only the presence of the controller's pid/vid (possibly name as well) enable the features. There is no way to manually enable these enhanced features on a different MIDI port.
I want to intercept some of the controller's inbound MIDI messages in order to drive some additional hardware of my own while it is connected to the software.
I'm hoping to use a Teensy 3.2 (USB MID device) together with a host controller board (USB MIDI host) to act as the middleman in this scenario.
The challenge I see here is that the pid/vid of the middleman has to be that of the controller otherwise the PC won't recognise it as the special MIDI device.
I'm aware that I can change the pid/vid of the Teensy however that seems a rather brute-force way of doing things, it leaves a slightly sour taste like re-using a GUID when you know you shouldn't really be doing so
Is there a better way of doing this or am I on the right track here?
If I did go this way then the controller would identify itself to the Teensy (host board) with the same pid/vid as the Teensy is identifying itself to the PC.
There are no problems with slowing down the messages passing between the PC and the controller, they are short and not particularly time critical.
Any help would be gratefully appreciated and apologies if this has been asked before, I couldn't find this exact scenario but my mind is now so full of partial solutions that perhaps I've missed it somewhere in my reading.
Cheers,
Jason.