MIXXX – MIDI Mapping without Hardware – Part 2

Mapping MIXXX controls to your hardware using the MIDI protocol, can be a challenging job !

Download here : https://mixxx.org/

Especially if you don’t have your hardware around, but only your PC.

(Windows OS only in this case)

image

As mentioned in my previous post, is to download the available MIDI debugging tools.

MIXXX – MIDI debugging Tools

Let’s make this simple example to explain the concept.

If you are not familiar with the MIDI protocol (bits and bytes)

This is a MUST SEE series that explains it all to the bone.

Especially Part 1 / 2 / 4 / 5 / 7 are most valuable, to get a good understanding.

MIDI Part 1 – MIDI Signal Path – YouTube

MIDI Part 2 – MIDI Message Types – YouTube

MIDI Part 3 – DIN MIDI – YouTube

MIDI Part 4 – MIDI Protocol Details – YouTube

MIDI Part 5 – Channel Messages – YouTube

MIDI Part 6 – MIDI Clock – YouTube

MIDI Part 7 – SYSEX, etc. – YouTube

Prerequisites :

MIDI-OX is installed

loopMIDI is installed

– MIXXX Controller setting config

-.

1. loopMIDI

Once installed and started it does not need any configuration.

Runs out of the box

image

2. MIXXX

Open Mixxx Preferences and select the loopMIDI controller

image

Also load your Mapping file that you have on your PC when the hardware was attached.

3. MIDI-OX

Install it and select PERSONAL USE only license.

image

Once you have MIDI-OX installed, this is how to configure it it for debugging inbound or outbound MIDI messages

.

1. MIDI-OX Configure the MIDI device

In the OPTIONS menu you can set which MDI device to monitor

image

IMPORTANT :

Never configure loopMIDI as INPUT and OUTPUT device together !!

Because this will create an endless loop on your PC.

Either first select loopMIDI as INPUT (blue selected) to monitor the INBOUND messages.

Or select it as OUTPUT device, see picture above.

.

Open the output and the input monitor window in MIDI-OX,

Via VIEW menu INPUT MONITOR

image

Also make sure ALL FILTERS are OFF (unchecked)

image

Now you are ready to monitor OUTBOUND messages from MIXXX and see them in the INPUT MONITOR.

Example let’s take the press CUE button in Deck 1, as an example.

For INBOUND messages to MIXXX we are going to use the PLAY button as an emample

.

SOLUTION :

First check the XML Mapping you created earlier using the MIXXX learning wizard.

image


OUTBOUND example :

In the XML, we have defined the output messages for that MIXXX will sent when the is pressed or pauzed (blinking).

image

When I pauze the track using the CUE button, I can see the ON / OFF MIDI values being send in the input monitor windows.

image

In this case it was as defined in the XML Mapping:

Status 92 / midi note 09 / value On = 7f / value Off 00

<group>[Channel1]</group>
<key>cue_indicator</key>
<description>CUE LED1</description>
<status>0x92</status>
<midino>0x09</midino>
<on>0x7f</on>
<off>0x00</off>

Nothing exciting about this for now Winking smile

INBOUND example :

But let’s say we want to send data to MIXXX to activate a control.

First select the loopMIDI as OUTPUT device.

image

Next send the MIDI message to activate the PLAY button.

In the XML it was mapped to 0x92 / 0x0A for Deck 1

image

Open the SysEx window in MIDI-OX using the VIEW menu

image

Bytes explaned

00 no Status byte needed when sending MIDI messages

92 see XML mapping print screen

0A see XML mapping print screen

7F is note ON message, to activate the PLAY buton control in MIXXX

Open the Command Window and select Send SysEx

Send this MIDI Short Message, possible even in a SysEx window.

image

Once this was send the PLAY button was activated and the track started to play !

Of couse you still can and still need, to use the MIXXX Debug output as well.

Using this commandline to start MIXXX in debug mode :

cd C:\Program Files\Mixxx

mixxx --controllerDebug

This is how they relate :

image

.

So now that you have all the basics seen in action, you can use this approach, without having drag your hardware around all the time. Smile

And you don’t need to know any JavaScripting for now at least, as well …

.

Scripting :

But if you are into scripting, you can use this approach as well :

As mentions in my other post you can make our own MIDI-OX debugging scripts.

Using any COM / ActiveX compatible scripting language like :

JavaScript / VBScript / Powershell / Python / VB for applications / etc …

But nothing beats my all time favourite AutoIT of course Winking smile

Here are some examples :

https://www.autoitscript.com/forum/topic/209562-com-midi-ox-scripting/

Keep in mind to send MIDI short messages using this method it uses Decimals instead of HEX :

$mox.OutputMidiMsg (00,146,10,127)
ConsoleWrite("Send 0x00, 0x92, 0x0A, 0x7f "  & @CRLF)

Enjoy !

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.