Request: MIDI Relative mode for mapping

Archive of the non-categorized posts related to the QLC+ technical support.
Please do not create new threads here, instead, use the categories above !
Post Reply
qualleyiv

I hope I'm not going to sound stupid in making this request (as in, find out that this is already supported), but I don't seem to be able to use MIDI controls that send relative control change messages. I had thought that by making an input mapping for my controller and setting the type to "knob" this might be addressed, but that does not seem to be the case. Seeing as how this is a very standard setup these days, it would be great if relative encoders were supported (with the appropriate MIDI feedback, if possible).
qualleyiv

Massimo, you are the man.
qualleyiv

Oops! Well, Massimo, you are still the man, but it turns out that I misinterpreted the meaning of relative mode as it pertains to the input plugins. As such, my request for relative mode support for MIDI endless encoders still stands. I suppose it's good that QLC+ can support joysticks in the way that has been implemented, but I have to think that controllers with endless encoders would be a more widely used feature than joysticks. Just my $0.02...
Jano Svitok

George,

do you have a specific controller in mind? I was looking at Elation MIDIcon, and the wheels send one note for increment and another for decrement.
If you do own a controller with encoder wheels, it would help if you can check what messages the encoders send (wheter the velocity of the notes changes with speed, etc.). It will help with the design of the feature.
qualleyiv

Jano,

Yes, I personally have two Behringer CMD DC-1 units (generally I stay away from Behringer, but I've gotta tell you, I've had EXCELLENT luck with their MIDI controllers). Here is a link to info regarding the MIDI setup of that unit:

http://www.behringer.com/assets/CMD_DC-1_MAP.pdf

and as I made a little Applescript in MIDI Pipe to convert relative values into absolute values, I can certainly give you plenty of insight into what it's doing (the script I have sort of works, but given there are a bunch of knobs, it has a tendency to get overloaded, plus I don't like the idea of running two external programs just to process MIDI commands). That aside, this unit uses CC for its encoders and it sends 65 on increment and 63 on decrement which, I believe, is pretty standard.

I don't know if it will help at all, but here's a snippet of what I did in Applescript:

if item 2 of message = 16 then
if item 3 of message = 63 and c1K1AbsoluteValue > -1 then
set c1K1AbsoluteValue to c1K1AbsoluteValue - 5
else if item 3 of message = 65 then
set c1K1AbsoluteValue to c1K1AbsoluteValue + 5
end if
if c1K1AbsoluteValue 127 then
set c1K1AbsoluteValue to 127
end if


You'll see that I put a scaling factor in (in this case *5) because otherwise it takes way too many turns of the knob to get a significant change in the value. Obviously, this decreases the resolution somewhat, but it's definitely something that is necessary to make the controller usable.

If there's anything further I can do to be of assistance, please feel free to let me know here or email me directly!
qualleyiv

Hi Jano,

Is there any more information I can give you to assist on this feature?
Jano Svitok

I do understand now how the controller works. I also more or less understand how relative mode works in QLC+. I just have to find out a way how to join them together.

Just for curiosity: can you edit your profile so that the knobs are marked as "Slider"s in the input channels, and set them to relative movement, with sensitivity 1. Does it help?

I will try to change a knob on my BCF2000 to relative mode, and will do the same test.
Jano Svitok

I did the above test: I changed my BCF2000 knob to Relative 2 mode. In that mode, it behaves exactly as the encoders on CMD DC1.

It kind of worked, but there is a difference that must be handled separately:
Joysticks send position of the stick, and QLC+ generates events from that *repeatedly*, while MIDI encoders send one event per change, so there is no need to repeat them. MIDI encoders also do not send 0 to stop the movement.
qualleyiv

Jano,

I gotcha. At least that would seem to suggest that the framework is in place for handling relative encoders.
Post Reply