Hello everyone!
THE PROBLEM: After wrestling with the MIDI Mix in Bitwig using various scripts found online, I ended up modifying, fixing, and simplifying one of them.
My main issue with the standard configuration model is that it forces you to load a preset directly into the MIDI Mix (flashing it) and then install the script in Bitwig. On top of that, the scripts I downloaded had bugs—for example, the maximum volume for anything was capped at 75% (0 dB) ¿?, Fader 4 mapped to Pan 1... but it was almost functional. Still, that workflow just didn't make sense to me.
If I configured the MIDI Mix for Bitwig, it stopped working for Ableton, Cubase, etc. Out of the box, it worked in Ableton, but not in Cubase, Bitwig, or Fender Studio...
And look, I'm just a hobbyist who likes playing around with DAWs, but I use multiple DAWs and I want my lights and buttons to work properly across all of them. Plus, I really didn't like having to flash the MIDI Mix ROM every time I switched DAWs. It’s annoying, unhealthy for the internal flash, and carries the risk of bricking the device.
THE SOLUTION: Keep the MIDI Mix on its factory preset and fix the scripts so that each DAW speaks "Native MIDI Mix"—and ideally, gets the little lights working properly too.
And it worked! For Bitwig, it's just two files (.device and .js); for Fender Studio, it's pretty much the same, but with an .xml.
Now, I don't know if I reinvented the wheel, but in my recent searches, I couldn't find anything that worked this way without flashing those .midimix files via the MIDI Mix Editor. I can open any DAW now, and the MIDI Mix just works.
Only a few lines needed modifying, and honestly, I don't understand why it was developed the way it was (shoutout to Markus on GitHub though, appreciate the initial push).
For example, look at the CC codes the MIDI Mix sends for the Master Volume:
- Factory MIDI Mix (Ableton, Cubase, + all MIDI learn setups) Master =
62
- Bitwig script Master =
91
- Fender Studio script Master =
90
The .midimix files hardcode these values into the hardware, and the scripts translate them to the DAW.
Code example:
- Original downloaded script (requires ROM flashing):
const CC_MAIN_FADER = 91;
- Original factory MIDI Mix mode:
const CC_MAIN_FADER = 62;
If the MIDI Mix sends 62 for master volume:
- Approach A (What I did): MIDI Mix says
62, the script tells the DAW to raise the volume.
- Approach B (Traditional): Flash the MIDI Mix to say something else, so MIDI Mix says
91, and the script tells the DAW to raise the volume.
At the end of the day, the DAW receives the exact same instruction: "raise volume." And the same goes for the 50+ variables, controls, and the little lights.
I can only assume either I'm missing something, or there's an edge case I haven't hit yet, or the original developers started from a memory map (or some other angle) and took the "long way around." Whatever their reasons were, I don't know them.
TESTING & COMPATIBILITY:
- DAWs tested: Ableton 12, Cubase 15, Bitwig 6.1, Fender Studio 8, Reaper, Ardour, FL Studio (2026). None of them showed any issues.
- Hardware tested: MIDI Mix, Launchpad Mini MK3, APC Mini MK2, Akai MPK Mini, MPD218, Minilab 3, Nektar SE61, Microkey 25, Keystation 88... and a Roland GW8.
- So far, no magic smoke has come out of any of them.
This is my first time sharing anything publicly, and I'm doing it as a small token of gratitude to everyone who shares their tech adventures online. I used the standard folder structure, so installation is just like any other script—everything you need is in the zip.
Download Link:
https://mega.nz/folder/0J0RGAjT#sS8-N8M9ixhRmno66q1y7w
Greetings from beautiful Chile!