Encoder acceleration

I’m desperately searching for an option to activate and configure the encoder acceleration. Forum search leads me to statements of @martin saying that it got implemented in FW 0.9.12, but I can’t find it anywhere, all my knobs are unaccelerated. How can I activate it?
Thanks in advance!

Hi, they use accelerated reading. But there can be confusion about the meaning of that word. On E1, the accelerated reading means that speed of turning plays role in the rate of value change. This makes it possible to transverse full 14-bit (16384 values) range with approximately one fast turn, yet being able to change it by small steps when turning the knob slowly.

Are you looking for a way to adjust / configure the sensitivity? Let us know.

3 Likes

means that speed of turning plays role in the rate of value change. This makes it possible to transverse full 14-bit (16384 values) range with approximately one fast turn, yet being able to change it by small steps when turning the knob slowly.

Yes, this acceleration behavior is what I want for the 7bit CC knobs as well. That a fast turn causes larger changes. Just like other modern MIDI controllers do it.
I wondered if it only applies to the 14bit CCs and switched to 14bit, but it didn’t change their acceleration behavior.

Hmm, that is strange. I just tried the same and I see it working :slight_smile:

The effect of acceleration depends on the range of values for given control. If you just switched a fader from 7bit CC to 14 bit, but the max value stayed at 127, you merely changed the format of the MIDI message that is being sent out. If you increase the max value to say 8000, you should observe that the rate of change depends on the speed of turning the knob.

The same is present for controls with smaller ranges (like 127 values). It is just not that obvious as E1 decreases the rates to keep things so that one turn is more less sweep from 0 to max.

1 Like

Okay, I get what you’re saying: acceleration means that one 360°-turn is always a 0-max full range change, no matter if full range is set to 50 or 16838.

But independently from 7/14bit and max value settings, on my E1 the speed of turning the knob doesn’t make a difference: if I turn the knob quickly or slowly, I always need a 360°-turn to reach my max value.
I’m looking for such a behavior: If I turn the knob slowly, I’d need maybe 5x 360°-turns to reach max value. If I turn the knob very quickly, I’d need just 1x 90°-turn to reach max value. You know? :slight_smile:

For example other MIDI control devices like Faderfox or Novation Circuit Tracks with incremental encoders handle it this way. On Faderfox UC4 e.g. you can even set the amount/sensitivity of acceleration.

2 Likes

I guess this acceleration discussion explains to me why when I only have a few values defined on a fader (between 2 and 5 for example) it takes more of a turn than I expect to get it to change at all.

I want it both ways (all ways?) – if I have just a small range, I want no acceleration logic - small turn to change values; I don’t want to have to turn the encoder 90 degrees to increment through 4 items. If I have a very large range, I need the acceleration logic.

I think that’s what is supposed to happen, but it feels like not always.

2 Likes

for what its worth, I’m playing around with the idea that by quickly tapping the encoder, it changes the multiplier from x1 to x10 to x100 and then back to x1.

I have some of it working, but there’s still some glitches. I added it to the bottom right corner of the bi-polar reverse example.
It’s kind of ok, but not 100% yet.

I did some updates to that encoder. It works for the most part as a proof-of-concept.

Since the value being displayed can make big jumps, the encoder progress bar no longer tracks, since it is actually tracking the raw (value) which is still being incremented/decremented by 1 each movement of the encoder. It also uses more globals per control than I’d like. I do have some need of a thing like this, so maybe I’ll revisit it in the future.

I have a lot of other Electra One tasks on my plate, so I’m leaving it here as-is.
preset link: bi-polar, reverse, multiplier

Yet another edit/comment - for large ranges, Martin’s existing implementation of the acceleration code works very well. I haven’t tested it yet with a hw device to see what happens, but in that example preset, if you remove the function from the control and just use it naturally, it works well.

1 Like

hmm, I like that. I see two things to look at:

  1. the acceleration could be possibly adjusted, so that it does not try to map to one turn.
  2. the @oldgearguy’s idea could be moved to the firmware. I like an idea that some gesture (eg. turning the knob while some of the hardware buttons is pressed) would change the sensitivity / multiplier. I am not sure, however, if tapping the knob would be practical. Especially on stage. That would, at least, need some visual feedback on the screen.
3 Likes

Yes, the tapping is what I thought of first since we can recognize touch/release. Holding a side button is a more reliable approach.

The big issue is that the fader display is expecting me to increment the “value” parameter by 1, not 10 or 100. There is an API to get the value, but none to set it, so I couldn’t figure out how to just manipulate the value directly inside the function call to keep everything consistent.

Honestly I’m still wondering if we’re talking about the same. As mentioned above the speed of turning the know doesn’t change anything on my device. Should I make a video of it? Maybe it’s just a bug on my device :thinking:

@alectroniq, no I am sure I understand, what you need. No video is needed.

1 Like