I don’t think he’s using a KORG device
You’re right @dhj … it’s a “KORK” device
I have the same device and using the kontrol editor solved the issue for me.
You’re looking at the original post — the user who posted recently (klangschmied) is using a Faderfox UC44, not a Korg
There is perhaps a solution using this GIG script I made just for the fun :
var
AxEdge : MidiInDeviceAlias // Define AxEdge as a RigManager alias to the real controller
state : Integer=0;
CC0_mem, CC32_mem : ControlChangeMessage;
PC_mem : ProgramChangeMessage;
time : Double = TimeSinceStartup();
stateDelay : Double = 10.0; //in ms
//
CC0_remap : Integer = 1; // CC0 will be remapped to this value
CC32_remap : Integer = 33; // CC32 will be remapped to this value
Initialization
SetTimersRunning(true); // We could also stop the timers when not necessary at State 0
End
On ControlChangeEvent(m : ControlChangeMessage) Matching 0 from AxEdge
Select
state == 0 Do state = 1;
CC0_mem = m;
time = TimeSinceStartup();
state == 1 Do InjectMidiEventViaRigManager(AxEdge, WithCCNumber(CC0_mem, CC0_remap));
CC0_mem = m;
time = time - stateDelay;
true Do InjectMidiEventViaRigManager(AxEdge, WithCCNumber(m, CC0_remap));
End
End
On ControlChangeEvent(m : ControlChangeMessage) Matching 32 from AxEdge
Select
state == 1 && (TimeSinceStartup() < (time + 2*stateDelay))
Do state = 2;
CC32_mem = m;
state == 2 Do state = 0;
InjectMidiEventViaRigManager(AxEdge, WithCCNumber(CC0_mem, CC0_remap));
InjectMidiEventViaRigManager(AxEdge, WithCCNumber(CC32_mem, CC32_remap));
InjectMidiEventViaRigManager(AxEdge, WithCCNumber(m, CC32_remap));
true Do InjectMidiEventViaRigManager(AxEdge, WithCCNumber(m, CC32_remap))
End
End
On ProgramChangeEvent(m : ProgramChangeMessage) from AxEdge
If state == 2
Then
state = 0;
InjectMidiEventViaRigManager(AxEdge, CC0_mem);
InjectMidiEventViaRigManager(AxEdge, CC32_mem);
InjectMidiEventViaRigManager(AxEdge, PC_mem);
End
PC_mem = m;
End
// Called by timer ticking
On TimerTick(ms : double)
Select
state == 1 && (TimeSinceStartup() > (time + 2*stateDelay))
Do state = 0;
InjectMidiEventViaRigManager(AxEdge, WithCCNumber(CC0_mem, CC0_remap));
state == 2 && (TimeSinceStartup() > (time + 3*stateDelay))
Do state = 0;
InjectMidiEventViaRigManager(AxEdge, WithCCNumber(CC0_mem, CC0_remap));
InjectMidiEventViaRigManager(AxEdge, WithCCNumber(CC32_mem, CC32_remap));
End
End
It is supposed to convert all CCO and CC32 but not those part of a MSB+LSB+PC sequence. I couldn’t really test it because none of my controllers accept to send a CC0 or CC32. But, I have great hope that it should work.
@dhj
Compiling the script results in an error:
"Rackspace (Rackspace) - Semantic error in “Main”: Line 18, Col 4: Not valid in this script entity. "
Well, we said to do this in the gigscript, not in a rackspace script.
Thanks, got it. To test I have to dig out my old MIDItemp MP88…But the script did not solve my problem with the uc44, because the CC0 and CC32 remap to 1 and 33 colidate with already assigned ccs (and there are in a consecute order).
Well, then you have to pick different CC values for your mappings —
Replace 1 and 33 by what works for you.
Yes, I know, I can do, but the uc44 has 8 encoders and 16 switchable banks, starting with cc00 to cc127…so no cc is free in the original setting of the uc44.
Why do you need switchable banks?
And you can use other MIDI channels for the converted CC0 and CC32.
the default layout of the uc44 is programmed with 8 encoders and 16 banks, banks are easliy switchalble with 16 buttons …each bank with 8 encoders for each vst-plugIn.
Yes but in the GP world, you should use widgets to control plugin parameters, not direct MIDI messages
yes, I already started to use widgets.
Well, now I am a bit lost. If you, or if I modify the script for you the CC0 ch 1 and CC32 ch 1 will be converted as CC1 ch 2 and CC33 ch2 (or to any other channel of your choice. Thus you will be able to MIDI learn… widgets!… with your controller.
Is this what you want?