Support for Midi relative CC?

Official support for: u-he.com
Post Reply New Topic
RELATED
PRODUCTS

Post

I was wondering if the topic of relative Midi CC's has come up before. I'd love to see Urs' plugins support it. I like it because it helps avoid parameter jumping when switching presets.

In case you don't know, relative cc's send all messages as an offset from the middle value of 64. If the value is 0-63, it means decrement. If the value is 64-127 it means increment. A lot of controllers also specify rotational velocity by how large of an offset from the middle the number is.

For example:

CC message sends 63 = decrement mapped value by one step
CC message sends 50 = decrement mapped value by 3-5 steps
CC message sends 120 = increment mapped value by 10-12 steps

I've had some success using Live in this manner (including Live's sending back the value to contollers like my BCR2000) but this only works for the first 128 mapped variables (vst limitation blah blah).

Urs, I know you've been thinking of revamping the midi engine in your plugins and wasn't sure where you stood on relative ccs. Thoughts?

Post

Have you tried it? It should be working fine i.e. with the Doepfer Pocket Control.

If the relative steps become to big though (CCs of <56 or >72, which is hardly doable with a Pocket Control), the algorithm switches to absolute...

I admittedly havn't touched this code in 3 years though. Maybe newer controlers send higher ranges. In that case auto detection can not work anymore (which would be sad...) and I'll have to add options...

Post

Urs wrote:Have you tried it? It should be working fine i.e. with the Doepfer Pocket Control.

If the relative steps become to big though (CCs of <56 or >72, which is hardly doable with a Pocket Control), the algorithm switches to absolute...

I admittedly havn't touched this code in 3 years though. Maybe newer controlers send higher ranges. In that case auto detection can not work anymore (which would be sad...) and I'll have to add options...
That would explain why it seemed to mostly work with my Axiom-49 and BCR2000. If i turned it slow it would work (and take forever to adjust a value). If it turned it fast it would "jump" to the middle and stay there when I turned it up or down. Maybe in the pulldown you could have "Midi learn relative" and "midi learn absolute". That way accelerator curves can be taken into consideration.

Sucks that your code would have to change for that though :cry:


I just checked the output in Midi Monitor. Turning the knobs fairly normal kept me within the ranges. However, if I wanted to do a dramatic sweep of something, I've seen numbers as high as 75 and as low as 50.

Post

50-75? Might be doable with auto detection still...

I guess the Doepfer control just spits out finer grained values? Thus keeping the max inc/dec lower?

Or maybe the knobs are just harder to turn on the Doepfers...

Post

Urs wrote:50-75? Might be doable with auto detection still...

I guess the Doepfer control just spits out finer grained values? Thus keeping the max inc/dec lower?

Or maybe the knobs are just harder to turn on the Doepfers...
I'll pull out the BCR tonight and set the acc curve to max to see what the max and min are. I'll post em here when I get them.

Post

Urs wrote:50-75? Might be doable with auto detection still...
I ran a quick test on my Axiom 49 controller. The device supports several types of relative encoding, but for this test I only used midi cc type 146 (2's compliment from 64, relative binary offset).

The device supports 4 acceleration curves for the rotary encoders: off, 1, 2, 3. The tests below show the min and max I achieved using mild and hard spinning.

Acc Off
-------
Mild spinning: 60 and 68
Hard spinning: 50 and 79

Acc 1
-----
Mild spinning: 56 and 74
Hard spinning: 28 and 88

Acc 2
-----
Mild spinning: 52 and 84
Hard spinning: 1 and 125


Acc 3
-----
Mild spinning: 24 and 104
Hard spinning: 1 and 127


So it looks like detection might not be so effective if someone is using any acceleration curves. I have to admit the hard spinning is more of a limit test than probably would be used musically but I wanted you to have the data points. I'm guessing I can achieve similar results with the BCR and a decent acceleration curve.

Let me know if you want me to run any other tests.

Post

Hmmm. The only conclusion would be

- extend the auto-detected "relative" range to 48-80
- offer a configuration thing that forces either relative or absolute

Latter can be done easily once the preferences stuff (slowly being developed in the background) is finished... d'oh...

;) Urs

Post

Urs wrote:Hmmm. The only conclusion would be

- extend the auto-detected "relative" range to 48-80
- offer a configuration thing that forces either relative or absolute

Latter can be done easily once the preferences stuff (slowly being developed in the background) is finished... d'oh...

;) Urs
If you asked me my opinion, I'd prefer the config option. It was really frustrating and confusing the first time my controller crossed the threshold and all of a sudden the only value I could set was 64. There was no explanation and no way to revert to relative.

I don't mind waiting for the new prefs. I just wanted to see if it was on your radar. :D

Post

bmrzycki wrote:The device supports 4 acceleration curves for the rotary encoders
I don't want to put a damper on this thread, but I have to say that I HATE ACCELERATING ENCODERS! They ruin live (on-stage) tweakery. Like driving a hovercraft while drunk :?

Post

bumps to howard. i crashed my hovercraft saturday night.... fortunately, they kept dancing anyway.

Post

btw - no one asks about our viruses (virii?) anymore - they want to know what that weird stripped things with the 4 XY dots on our screens are....

Post

amoeba wrote:btw - no one asks about our viruses (virii?) anymore - they want to know what that weird stripped things with the 4 XY dots on our screens are....
That made my day! :lol:

Post Reply

Return to “u-he”