The values coming from supercontrols are not scaled. What is happening is that to move a subcontrol full scale, it takes a full scale movement of the supercontrol, whether or not the subcontrol has named ticks. That movement is effected as the midi value sent to the subcontrol.
For a seven bit super control, this means 127 to hit max. For a 14 bit, 16383.
So if your subcontrol has thee ticks, named or not, you send the values 0, 64, and 127 respectively. Five ticks, 0, 32, 64, 95, 127.
Your three sub controls might have the labels 1, 2, 3, and midi values of 2, 4, 6. The 3/6 combo is the full range value, and requires a drive of 127 to reach. Is why midi receive sets the subcontrol to the correct value when it receives the 6.
For real confusion, have the supercontrol be 7 bit, and the subcontrol be 14 bit. The seven bit super will still drive the sub full range at 127, via every 8th value. Might actually be a use for this.
Once this gets into practice, it comes easy. Much of my workflow is in a spreadsheet, were the values get calculated. And continues my argument of why it is a best practice to separate the super control and any scaling issues from the midi value transmission.
Two ways to calculate the button values:
- MDP2 will calculate the numbers. Make a new knob, select the number of ticks, do not change max value from 127, then convert to named ticks. The correct midi values will be filled in. These are NOT the midi values you need in the sub control, but the values to send to activate the nth subcontrol setting. (Also works for 14 bit controls)
- Dan has posted a spreadsheet to scale your buttons. (Although I cannot find that link now - will have to find, or post my version - my math comes out slightly different than his).
- For smaller sets of numbers these are 'ish - 1, 28, 60, 97, 127 prolly works for five values.