Duplex: Korg Microkontrol

Here is the basic Duplex support for the Korg microKONTROL, currently it supports the Mixer and Effect applications.

To make this working with your microKONTROL, follow these steps:

Add the supplied scene data file “microKONTROL.mkd” into a free slot of your own scene set or load the complete scene set “microKONTROL.mks” using the “Korg microKONTROL Editor Librarian” software and transmit it to your microKONTROL. Then select the scene by holding the “SCENE” button and press the slot number on the pads to load it. In case you have used the supplied scene set “microKONTROL.mks” use “SCENE” and “PAD 1” to select it.

It is recommended to set the pad illumination mode to “Blink: Off”. To do this hold the “SETTING” button and press “PAD 12”, then use the main dial to switch the mode to “Blink: Off” in the main LCD display, then hit the red blinking “ENTER” button to save this setting. The pads light on/off states can not be directly controlled in the mixer application and it would simply look weird.

You can use Joystick left and right to switch the pages.

The only issues are currently, that the Duplex GUI isn’t looking exactly like the microKONTROL. The pad groups should have the attribute columns=“4”, but this is currently bugged. I have prepared fixed files already, in case this bug get’s fixed.

Also it would be nice to have support for specifiying MIDI messages in the XML control map. Below is an example for the microKORG transport messages.

| Status[H] | Description |
| FA | Start |
| FB | Continue |
| FC | Stop |


This is pretty strange. Those are real time messages: MIDI clock start/stop continue. But maybe we can deal with them in Duplex the same way than with Sysex.

Else thumbs up and thanks for sharing your controlmap!

Yes, but the microKONTROL has no dedicated transport section so one could sort of misuse these for use in Renoise instead. :)

Another small request, support the Progam Change Message in the XML definition similar to Pitchbend. Since the last firmware update the main dial on the microKONTROL allows to send those, so one would have an extra dial to use for navigating tracks, devices or to surf the instrument list.

Interesting would be also to limit applications to a certain focus area. This would make it possible to reuse the same CCs for different things without conflicting.

I have also done some experiments using the Korg Native Mode and can set and leave that mode successfully, set display texts, control the LEDs and a few more fun things. One problem i can foresee already would be the handling of regular MIDI mappings. In the Native Mode the application is responsible for everything, so the controller is sort of dead without the help of an application doing the fancy stuff. Midi mappings don’t work at all in this mode within Renoise.

Now i could program an own tool, or somehow try to integrate it into Duplex for certain tasks. I’ll write a small library first, which handles all the low level stuff in a more friendly way with some small testing code and then present what i have to plan the next step. This library would work for the microKONTROL and with a bit of help also for the KONTROL 49. In this Native Mode the dials also support relative messages, which would eleminate that jumpy effect when moving them. One could update the PAD and display lighting properly, when moving around the pages in the mixer and other nifty stuff. For this one wouldn’t need any mappings at all, more some sort of abstract map maybe, which references simply by names like PAD1, DIAL 4 or whatever and let the handling be sorted by callbacks instead of directly intercepting messages. Just some wild thoughts thrown out. I do currently have no idea how to best integrate it into the existing Duplex stuff. But i have plans to add some support for this stuff in the future somehow. :)

So, the device simply transmit MIDI messages while in native mode, but without any sort of visual feedback? If so, this is actually a good thing! Controllers that accept incoming MIDI to control lights, but also insist on having their own logic for toggling those lights are a pain to deal with.

P.S: I’m not sure I understand what you mean by “limit applications to a certain focus area”?

Well, by default Renoise doesn’t get any MIDI at all anymore in this mode. You can’t even assign a knob to something, the script has to handle everything. Interesting would be to forward these to Renoise then somehow since the script should know what happened on the controller. I will have to dig deeper into this first, but i’m currently busy with other projects too, so the Native Mode is currently planned and not directly worked on atm besides some small feasability tests i’ve done.

Something like:

if renoise mixer is visible then
unmap effect application
map mixer application
else if device selected then
unmap mixer application
map effect application

So switching to a certain area in Renoise frees up all the mapped CCs, so that they can be reused again for the current focussed area. First i’ve tried to integrate the Mixer and Effects applications running at the same time, but since i have assigned the same knobs to mixer functionality but also to control the devices, they would conflict. Moving the first knob changed the panning of track one but also the first fx parameter. Depending on the focus in Renoise Duplex could switch the running app for me automatically.

Updated microKONTROL template with new scene sets, changed XML naming scheme to match the Korg software. This is probably a final version for now, but requires a Duplex update. This one should go to the Google code SVN for inclusion.

thank you very much, beatslaughter.


Hi Guys.

How do I get the x-y joystick/modwheel to assign to the parameters like filter cutoff in Kontakt.

Y+ and Y- say it’s assigned to CC1-CC2 respectively in the editor software. But when I assigned something in Kontakt to CC1/CC2 it does nothing. It does nothing in other VSTS. Everything else has a parameter in duplex which is great.

Kind Regards.

First step would be to tell Kontakt which parameter you would like to control, using the “Instr. Midi Control” device (this is how you establish the connection between your hardware controller and the plugin). Configure the device to transmit CC1/CC2, then try moving the slider to confirm that it’s working.

Next you would want to map your controller to those sliders. This can be done in the traditional way (CTRL+M), or by using Duplex. Assuming we are talking Duplex here, a nice thing here would be to stick an XYPad into the DSP chain (next to the Instr MIDI Control device) and add a Duplex XYPad application to the mix. This will make any/all XYPad automatically become the target of your joystick as you are playing.

I just created a layout that contains these modifications. Not sure about the joystick being CC1/CC2, because the existing controlmap clearly specifies that the joystick is using CC60/CC61 - and I don’t have the Korg editor software installed. I just went ahead and used your values anyway, but if we are ever going to publish this as an official Duplex template, the controlmap should of course reflect the values being used in the .mkd file.


Add the XY Pad device, and map each axis to the CC sliders in the Instr. MIDI device