I’m currently developping a program with duplex for the Keylab MKII.
I think it’s finished so i give it here… please let me know if you find some bugs.
Download link at the end of the message.
I had not really be carreful about the gui as i though there’s enough light on keylab to see what you are doing and nearly every parameters send it’s name to the screen.
There’s a temp function to allow permanent message like the name of the track and temp message for the parameters that return to the last permanent 2sec. after the end of the use.
I’ll try to explain what this do…
It’s essentially for DAW mode but there’s some function triggered by USER mode so i use 2 programs run at the same time, one receive informations on standard keylab port and the other on the MIDIIN2.
In MCC, DAW commands need to be in USER mode (otherwise there’s problems with lights in USER mode, notified Arturia about this, maybe in future firmaware but i don’t think so)
Pads backlights is “always on” (firmware 1.2.4)
The 8 first PADs trigger Renoise config view, these are configured in midi default file (in the archive).
The 8 last trigger USER config 1 to 8, all mapped to specific VSTi but it’s up to you to do what you want with these, it’s done with the MCC.
Note that all react to Renoise with an idle function so every lights are trigged if you make change to track/device/automation/solo/mute/instrument GUI open/close in Renoise.
DAW Command functions:
Solo - solo selected track (light up when solo is on)
Mute - mute selected track (light up when mute is on) - can be semi lighted (unmute, mute, off)
Record - delete selected automation (pattern only).
If you start to automate a parameter, renoise will show the automation windows on the correct parameter and this button will light up. Then you have to press it to delete automation and restart to record if necessary.
If you go on a track pattern with automation on the track but not on this pattern, button will be semi lighted.
Find this super useful because i often have a record more than once to the result i want.
Read/Write - select previous / next device FX (if it’s a VST, GUI open and close with the selection)
Save : save current song
In / Out : Open Instrument GUI from pattern (not the selected instrument) and close it (button IN light up when GUI is open even when it’s open from Renoise or with the central button, see later in the desciption)
Metro : metronome
Undo : undo
Then there’s all the transport buttons (pattern previous/next for the arrow)
At the center:
Arrow : Track previous and next
Central knob : select Instrument, press on it to open GUI. When you change Instrument, if a previous one was opened (gui visible), it close (not sure it’s better like this or not, will see with more working with it).
Then we have the right controls:
There’s 2 buttons available to trigger different functions (Part1 / Part2), ‘Live’ send nothing.
Part 1 not pressed is the mixer mode:
Faders controls volume post of each track per bank of 8.
Encoders controls the mixer subset parameters (the first 8 of the track, don’t have bank here but it can be implemented)
Switches controls mute/unmute of each tracks.
Colors change when it’s mute or not, when the track is master, send or sequencer (haven’t make a specific color for group but i’ll probably add it). If you trigger solo for example, all colors adapt on the switches to fast see what’s going on.
Part1 pressed is the track mode.
Faders & Encoders controls the first 8 parameters of the selected FX.
It’s easy to make the faders control the 9-16 parameters but i find this great to automate with encoders or faders depending on the conrol.
No bank here, don’t have anymore buttons on the controller to do that but i search for a solution. If you want to automate or just control FX parameter 10 for example, yoçu have to use mixer subset.
Switches control FX selection 1 to 8. Press on already selected FX open the GUI and repress close it.
When you change the device selection, previous GUI opened close like for the instrument.
Now if you press Part2, there’s only the switches that change, you can select track directly with the switches, encoders and faders stay as they were (Part 1 define what they control).
The user mode can not be used with the same control, if i write on screen, default Arturia parameters name will ovewrite it. Not a big deal, it’s just to control VSTi and you can define every parameters name in MCC.
Now the problem is that part1/part2/live don’t send any message in USER mode and they reset all the light at every trigger so i have desactivated the light for the user mode (specially in DAW commands section). The buttons have the same functions but with no light otherwise it’s really confusing.
I search for the sysex message to ask the keylab the state of a control but i can’t resolve this for the moment. Arturia don’t want to share those informations and told me it’s private.
Same for the DAW/USER mode buttons, they send the same sysex message so in some situations, the light will not light up according to the mode selected (like if you do DAW->ANALOG LAB->USER), you just have to touch a control/butons/encoders to send a midi and the light will be correctly displayed.
So i think it’s finish, please let me know if you encounters some bugs.
There’s the whole Duplex directory just in case i’ve modified something. I try to avoid but who knows ^^
You can try the program with your Duplex directory, it should work.
Last note: you have to select manually the automation mode in the duplex interface in Effect_Track, Effect_Track2 and Effect_Mixer section otherwise it won’t record automations. Don’t know if i can select those by default. Same in the Mixer section if you want the soft takeover on faders.
Note that i use a Keylab 61 (firmware 1.2.4), not sure about the 49 and 88 but it should work.
Link to download:
To finish i’m far from an expert programmer and i’m sure the program can be optimized plus i’m not really organized in my head so there’s some redundancy but i’ll try to reduce it later.
If someone has the code to send a request for a value on a specific parameter to the keylab, please let me know, i could really improve the USER MODE with that.
Second note: thanks to the original creator of a keylab duplex tool, it’s based on his program
EDIT: forgot to ask, is there a way to capture the instrument parameters name? Without the Instr Automation device…
Is there a way to have the value of the value (don’t know how to spell that) like hrtz for freq, sec for delay etc?