Stepper that changes a value by more than 1

0 votes
asked Nov 14, 2014 in Advanced by mr-x (520 points)
edited Nov 14, 2014 by MIDI Designer Team (Dan)

3 Answers

0 votes

Thanks for the question.

Here's the all-text answer. I can add more detailed instructions in the future on request. (Or you could edit this answer and help!)

  1. Create a supercontrol of the knob you wish to move
  2. Give the supercontrol knob a lower number of "ticks" than the subcontrol knob
  3. Create a momentary button as a supercontrol of the super knob

The momentary button will now step the subcontrol knob through its values in larger increments. 

What kind of increments can I get?

It's important to note that you cannot arbitrarily increment by any amount (like 10). The first value that the supercontrol will hit is always the next tick up. So if your supercontrol were set to have 9 ticks, and the subcontrol value were set at 39, the next tick up for the supercontrol would be 48. Then the ticks would be of size 16 (with 9 ticks).

How can I do increments of 10?

For increments of 10, you need to use named ticks. The MIDI values of the named ticks should be 0, 10, 20, 30, 40 etc. You'll have to decide how you want to handle the jump at 127... either leave out 127 and jump from 120 (to 0) or use 120, 127 (to 0).

But I really want larger increments, and a choice to not wrap around!

See the other answer to this question!

answered Nov 14, 2014 by MIDI Designer Team (Dan)
edited Nov 14, 2014 by MIDI Designer Team (Dan)
You said:

    Create a supercontrol of the knob you wish to move

Do you mean create a new supercontrol and make the slider that I wish to move a subcontrol of this supercontrol, or do I make the slider I wish to move into a supercontrol or something else entirely?

I have sliders A,B,C,D. Do I need a new supercontrol for each slider?
You also said "this workaround is available".
Do you mean there's a workaround to stop the sliders from wrapping around?
Very slick! Thank you for that tip.
It would make sense for stepper controls to use the "on" value as the step amount. Right now it seems to ignore value and midi settings.
mr-x, supercontrol by default don't send out midi message, you can enable this feature in Config menu as a global feature for all supercontrols. But also in that case, midi messages sent by supercontrols are not used as parameters of the relationship with the subcontrols.
also note that I'm using knobs/sliders interchangeabley, but they actually refer to:
1) knobs
2) sliders
3) crossfaders
4) X or Y dimensions of XY pad

And yes, creating new controls... but really, you should have some extra pages in your rig for testing stuff for your "lab"... add controls, try weird stuff out, delete controls, etc.
Thank you, I know they work that way now, but what I'm suggesting is that if the supercontrol is set to NOT transmit midi, then the midi value could be used as the stepper value. Isn't the choice of the stepper value being 1 just an arbitrary choice anyway? There's no setting for that value currently, so it's just a value chosen in the code. No reason it couldn't use the MIDI on value instead.
yep, you can post it as suggestion in the specific category of forum, we posted there already many other suggestions indeed...you must do the queue! :) I'm joking of course!
mr-x that's a pretty cool way to go, because the MIDI on value is not being used for anything. The problem is the 1% of users who have "supercontrols send own value" set to on. In retrospect, we should've eliminated that option two years ago...
+2 votes
There is another way to obtain stepper with a delta bigger than 1...simply creating more stepper button with a supercontrol for them:
  • create standard stepper button to increase of 1 your slider
  • duplicate it as many time as desired (if you need 10 unit step, create 10 momentary stepper buttons)
  • make these 10 steppers hide in performance
  • create a momentary button as supercontrol of these 10 hidden momentary stepper buttons
This way you will get always an increment of 10.
 
Same thing if you need to decrease of 10.
answered Nov 14, 2014 by elkbeat (1,120 points)
edited Nov 14, 2014 by MIDI Designer Team (Dan)
This is amazing!
I am following this conversation, but I seem to be missing something here, because it seems rather simple to have an increment of 10.

Here is what I do.

- How many times does your increment fit within 127? Increase that by 1. That will be your number of ticks in the slider sub control. For example, 10 fits 12 times in 127. Add 1 to include the 0. Don't set the number of ticks yet.

- Create the stepper button B.
- Create a sub control slider S.
- Midi min max is 0->120
- Display min max 0->120
- Number of ticks 13.

 Now you have a slider with an increment of 10.
Yes ezb, but this way you loose the fine trimming on the subslider. I assumed mr-x wanted to keep the granularity of control on the slider. But maybe my assumption is wrong indeed.
The "multiple steppers" solution above is the best so far as it will increment by 10 regardless of where the slider is currently. The "2nd slider" solution posted at first isn't as good because it will snap the values to matching values on the 2 sliders, I believe.
e.g. if the subcontrol is set to 9, and the supercontrol has ticks at 10/20/30/40, the first "step" will set the subcontrol to 10, rather than 19, which is what the 2nd solution with multiple buttons will do.
I still vote that the MIDI on value be used as the stepper increment, but only in the case where the supercontrol does not send it's own value.
Is there a case where the supercontrol even needs to send it's own value? It could control a hidden subcontrol that sends a value instead of it sending its own...
0 votes

Hello MR-x,

I found an other way to increase or decrease a group of sliders with more than 1 step. Maybe you want to have a look at this

http://mididesigner.com/qa/3766/answer-to-slidergroup-step-control

Greetings, Geer

answered Jan 15, 2015 by geer-assink (710 points)
Wrap around is the bigger problem now
...