Sign In:     


Forum: VirtualDJ Technical Support

Topic: Copying built-in MIDI Controller Definitions to another controller
G'day gang,

Long story short:
It is possible to get built-in MIDI controller definitions (eg Numark Mixtrack Pro FX) as an XML file, so that I could apply that controller definition to a custom controller?

Long story long:
My use case is a bit strange, I want to use my MIDI controller to control multiple Windows programs at once. Unfortunately because of the way Windows handles MIDI devices, only one program is granted access to MIDI devices at one time. To workaround this, I grant this access to MidiOX and use it to route the actual MIDI devices into virtual MIDI devices (made with loopMIDI) which can be used by multiple programs simultaneously. These virtual MIDI devices are what I use for Ableton and TouchDesigner, and I was expecting them to be fine in VirtualDJ, but...

The issue now is that VirtualDJ cannot automatically detect and apply the built-in MIDI Controller Definition to my virtual midi device (presumably as the device does not contain whatever metadata the actual MIDI device does), and thus it seems to me my only option is to build a MIDI controller definition XML file from scratch (which I am trying to avoid), unless I can retrieve the built-in XML file for the Numark Mixtrack Pro FX. Are these "built-in" XML files available somewhere, or are they hidden deeper in the program for the sake of obfuscation?


Hopefully that makes sense and isn't unclear. Any help on this would be super appreciated. I really wish it was as simple as a copy+paste. Cheers in advance.
 

Posted Wed 09 Oct 24 @ 2:58 am
Do it the other way, let vdj take ownership of the device and as part of your device mapping control variables that loopMidi if mapped to understand as inputs.
 

Do it the other way, let vdj take ownership of the device and as part of your device mapping control variables that loopMidi if mapped to understand as inputs.

Sorry what do you mean in this part: "as part of your device mapping control variables that loopMidi if mapped to understand as inputs." ?

My initial thoughts are that granting vdj the actual MIDI devices would be problematic for all my other MIDI devices eg midi keyboards etc
 

imagine using loopMidi as a output device from vdj

so in app you toggle a variable
toggle $myVar

the loopmidi mapping would have an entry like this
KEYNAME - get_var $myVar

the loopmidi definition would have something like this
<led note="0x00" name="KEYNAME" channel="00"/>


so when the variable toggles in app, then loopMidi will toggle note 00 on channel 00
you can also do CC out but you'd define a <bar> element to pass a float variable

If that works for your scheme is your decision.