Adding Encoders - Endless & Fixed

+1 vote
asked Feb 22, 2013 in Suggestions by musiclee (500 points)
edited Feb 22, 2013 by musiclee
Hi, this is actually a suggestion that's on here somewhere. Does an endless encoder just wrap around when it hits max value?
And no, it's not in the current app, except that steppers do wrap a control around.
Hey man, hope you're doing well!!

Firstly, your app has given me enough reason to do anything in order to get an iOS device... Secondly, I agree that the app would benefit greatly from the addition of endless controllers/rotaries.

Basically this type of controller would have no start or end position and just rotate endlessly in either direction. It would need to send the assigned MIDI CC with a value of 127 when being rotated clockwise and a value of 1 when being rotated anti-clockwise. I've checked these values by analysing incoming MIDI data with MIDI-OX from an external MIDI device.

Hope this helps to add what would be a brilliant feature... :)
That's what I needed. Thank you! Which is the external MIDI device, if I can ask, please?
Hi there man...

I was using a Numark Mixtrack as a generic device...
You can see more about it at www.numark.com/product/mixtrack

The advantage of this kind of controller is that it works with relative positioning so you could for example assign a bunch of rotaries to adjust the EQ on the actively selected track. You could then change from one track to another and adjust all of their EQs separately. For example, adjust EQ on a guitar track, select a bass track & adjust its EQ, go back to the guitar track & then continue adjustments from the relative position.

Doing the same with a fixed rotary with a minimum of 0 and a maximum of 127 makes the linked parameters jump to the absolute position of the controller as you start making any further changes as it doesn't work with relative positioning.

Hopefully you understand what I mean... Let me know if you don't & I'll try to explain differently.

I would however also suggest that an endless controller could work in 2 separate ways.

Example 1 (Standard)
Endless rotary with a single assignable CC
Turning clockwise sends assigned CC with value 127
Turning anti-clockwise sends assigned CC with value 1

Example 2 (Multi-function)
Endless rotary with separately assignable CCs for each direction
Turning clockwise sends first assigned CC with value 127
Turning anti-clockwise sends second assigned CC with value 127

Example 1 could be used for something like adjusting the cursor position or the start & end loop locators. It could also work as a jog or scrub wheel etc.

Example 2 could be used for navigating through tracks or zooming in/out etc.

Ultimately this would open up a whole new world of possibility...

Anyways, hope this helps you man... Let me know if you're still not clear on anything... :)
And then the next question, and there's no right answer to this one though there are better and worse answers, is What do I do with a knob that is an endless controller when it's a Supercontrol? What about when it's a subcontrol?
I honestly couldn't answer that, Dan, but I could tell you that my suggestion would be to separate it from a knob and also possibly even keep it from being a super/subcontrol. What the main advantage is to this type of control is DJs no longer have to hit the "sync" button, but can beat match as traditionally as an iOS touch based midi controller would allow them.
HUGE thanks (THANKS) to everybody for the discussion. I'll be getting into this shortly for 1.5.1. I should mention that I've got a Novation Zero SL here which helps me figure stuff out from time to time, and might be useful for this.

If you are not on the beta team and would like to help out, please get in touch.
Any progress on the jog/scrub concept?
It would make it a lot easier to use midi-designer for DAW controlling if there was a scrub wheel available!

In the absence of that I have linked several buttons to ffw/rew at different increments manually... works okay, but a jog wheel would be so much more effective ( and a definite improve in the eye-candy department! )

8 )
Hey Jon, thanks for bumping this thread. We did add a relative control type (type of slider/knob). Thanks doesn't fit the bill at all, right?

The point is that if someone can tell me EXACTLY what we're trying to implement, from a MIDI perspective, it would help a lot. At some point, we'll figure it out, but any guidance would push this feature-request along quite a bit.

Thanks!
Dan

Dan Rosenstark
Author & CEO
MIDI Designer
I was just looking at the knob options in MD to see if a jog/shuttle option was available for working with my DAW apps. Then found this thread about it. This feature would be of great use to me as well if you could implement it in a future version.

1 Answer

+1 vote

Encoder functional capability description


Only valid instantiation is a knob with no values or ticks (since it is pure relative).

By definition is a supercontrol - has no capability to send own value.

Increase encoder by one click, pushes up all subcontrols by one MIDI value.  As encoder rotates, subcontrols continue to increase until they hit max.

Sorta like a "stepper" on steroids.  Not the "normal" supercontrol MIDI value to position relationship.

Subcontrols do not provide any feedback to encoder (even in the valid case of single sub).

Only valid supercontrol of an encoder is another encoder or a momentary button acting as a stepper (up or down).

additional notes:

There is nothing “relative” about the existing relative option in MDP2.  It just sends MIDI values 63 and 65.  Nothing inside MDP2 can react to this in a “relative” way.  There may be some dinosaur hardware board somewhere that understands this.  But 99% of MD users have no use for it, prolly is confusing.  Hook up the “relative” control, and all it does is drive subcontrols to either the 63 or 65 MIDI position.  Huh?

There IS one existing true “relative” control in MDP2 - a momentary button configured as a stepper.  It doesn’t care what its subcontrol values are, but can nudge them up or down.  (All other controls drive a subcontrol to a predefined position derived from the MIDI value.)

So what I envision with the encoder is the steppers big brother.  And like a stepper, its own value has no meaning.

The killer use is that it preserves relative positions of its subcontrols.  Think of a mixer - set all your individual channel volumes as desired.  Now grab the “encoder” supercontrol, turn up three positions, and all your subs move up three positions.  This can be done with lots of SB code (as my example).
answered Nov 11, 2023 by jkhiser (19,810 points)
edited Nov 12, 2023 by jkhiser
...