Hi - while I posted a bug report as I thought this was something just pertaining to USB out, it appears it’s the same on midi out. So maybe it’s me? Something I’m missing? Is there a message I should be putting into one of the fields in the preset editor to alter the behavior?
Here’s what I’m getting, confirmed by both controlling synth parameters and checking messages in a midi monitor:
The relative control, regardless of the type selected, sends out only two possible values (eg 63/65 if binary offset is selected), yet the display indicates acceleration depending on the speed of a turn, and I see acceleration mentioned elsewhere in the forum. The values associated with accelerated relative midi are not sent. The display, however, shows the equivalent to accelerated messages (roughly -10 to +10).
In fact, because a fast turn seems to send out far fewer messages with the same value as slow-turn messages, turning the encoder more quickly results in reduced impact on the target parameter - almost like reverse acceleration. For example, if controlling a VCF cutoff, a fast turn of the encoder almost halfway around sends out only five “65” messages, while a slow turn of the same distance sends out dozens.
This part is working as designed. The goal of acceleration in this case is to thin out the number of MIDI messages and to reduce the amount of turning of an encoder when you have a large range. Most MIDI CCs are 0-127, so you don’t normally care about thinning the messages. However, if you’re editing sample start/end points or delay times that range from milliseconds to seconds, having less messages sent for a given amount of encoder twisting is a good thing.
You can’t speed up the rate of MIDI transmission, only the density of what is sent. So acceleration is typically referring to increasing the jump in values across a given amount of twisting. For example, a slow 3/4 turn might increment a target from 1 to 100 and a fast 3/4 turn might go from 1 to 1000.
Yes, what you describe is how it should work - and does with the fader control. But not the relative control, because the relative control, at least on my unit at its default, does not send acceleration data (though it displays it), but does do thinning on fast turns - which results instead in de-celeration. Relative midi acceleration can’t just use message thinning on fast turns because it isn’t sending absolute values - so thinning without a change to the message sent results in DE-celeration on a fast turn.
Accelerated relative midi normally works is by sending higher or lower relative midi data based on the speed of the turn. For example, in binary offset mode, slow turns send out the default 63 for negative change and 65 for positive change. When turning faster, it should instead send values progressively lower than 63 or higher than 65, causing value jumps that allow the encoder to traverse a full range of a control in one or slightly more than one turn. This is equivalent to thinning but because the control is relative it has to use a different method. This is how it is implemented in other controllers that have acceleration option on their encoders (Faderfox units - though the low turn resolution causes other issues, BCR-2000 and the latest Midi Fighter Twister firmware). This allows either fine 7-bit equivalent control on low res encoders, or 14-bit equivalent control on high res encoders (which is what we have on the Electra One) on slow turns controlling high res parameters (eg softsynths such as Zebra or Bazille that allow setting fine, medium, or coarse for external parameter control, or DAWs that can produce high-res automation control from relative midi).
Without those accelerated values, but with value skipping, the opposite occurs: if only 7 "65"s are sent on a 3/4 fast turn, the value only changes by 7 points, rather than skipping values.
So it is possible the problem is that the relative control is using the acceleration method for absolute control (thinning instead of value changes), which results in the opposite behavior in relative mode.
It does work beautifully for absolute faders on the Electra, because value skipping works for absolute midi (AND unlike most implementations of 14-bit midi, the absolute faders seem to correctly sync the LSB and MSB on fast turns, minimizing jitter which is great) It doesn’t work for relative but again, but I posted the question as I’m wondering if I’m supposed to enter some sort of behavior flag in the editor to get it to send these values, since acceleration IS indicated on the display.
Sorry for slower response on this one. I was working on relative controls recently and I did not want to give an answer before having it finished.
The acceleration of relative CC is included in the upcoming public release. There will be an option to enable / disable acceleration per control value. Also, it will be available for all types of controls. Of course, for controls such as fader, it is users responsibility to update the visual value on E1’s screen after receiving the relative data.
The feature will be first released on mkII (work is completed and tested there) and then it will be added to mk1 firmware too.