Lately I have spend quite some time doing MIDI Scripting using the fabulous open source cross platform MIXXX Dj software
MIXXX has a built in MIDI engine that can handle MIDI inbound and outbound messages.
Download here : https://mixxx.org/
This way you can script events that can control you MIXXX software or the Controller Hardware.
In practive this means that if you press a button in the software, it can send MIDI messages to your hardware or visa versa.
For the inbound MIDI messages that is quite easy this is handled using the Learning Wizard in MIXXX.
I will write an other post on this topic later on.
For outbound MIDI messages that are linked to the UI Controls (buttons, sliders etc.) that is straight forward as well.
the MIDI engine in MIXXX is based on a JavaScript.
Now the challenge is when mapping and scripting, how to do proper debugging.
Especially for controls that you can’t manipulate like VU Meters output levels.
Let’s take for example that you want the MIXXX Software sent MIDI messages to the controller
But you don’t have a clue which are the values (MIDI Bytes) you need to take in account.
To make you life easier you need some advanced tools that can help out a lot in debugging !
SOLUTION :
1. Scripting IDE
Since you need to dive into JavaScript it is best that you start downloading a good editor that helps in debugging.
My choise in Windows OS is Visual Studio Code, runs also on Linux
In JavaScript it is easy to make typing mistakes ….
Anything that can help speeds up your development and debugging process.
In Visual Studio I installed the add-in module called Code Runner.
Next you start your scripting adventure 🙂
2. MIDI Loopback Driver
In order to do debugging anytime and anywhere, without having to carry around you hardware controller
You need to install the loopMIDI driver, so you can use this as a virtual Controller hardware
Download here : https://www.tobias-erichsen.de/software/loopmidi.html
3. MIDI Debugging
MIXXX has a built in debugger to console whichj is good and stil needed.
But for more advanced MIDI debugging it is recommended to install MIDI-OX
Download here : http://www.midiox.com/?http://www.midiox.com/moxdown.htm
Once installed you can connect to the Virtual Controller – loopMIDI
MIDI-OX has an OUT and INPUT monitor window to capture all MIDI Messages send or received.
I have put the FILTER settings like this :
You can also use the MIDITrace tool but that is very basic compared to the MIDI_OX
Download here : https://www.virtualdj.com/wiki/Controller%20Identification.html
So now you are all set to start developing and debugging.
Alternative :
Another alternative is MIDIView for Windows and Mac
Download here : https://hautetechnique.com/midi/midiview/
I have not tested this one but it might not need you to install the loopMIDI because it has already a loopback driver included.
Open MIXXX in Debugging Mode
cd C:\Program Files\Mixxx mixxx --controllerDebug
Start your scripting and debugging process using the available tools !
Tip :
The beauty about the MIDI-OX is that it is a COM Compatibel Application,
that allows us scripters to created automation scripts
I have posted some examples using my favorite AutoIT Scripting Language.
https://www.autoitscript.com/forum/topic/209562-com-midi-ox-scripting/
Enjoy !!