For on screen controls, is the largest value in a range (or setMax()) 16383?
or maybe 32767? (not talking about some displayed value/string, the actual range max)
What about internally? Can I have internal math calculations that are larger and then do something to scale it for the control?
I know MIDI generally has an upper bound and the Electra One was designed to mainly deal with MIDI data, so just wondering since I’m getting some weird displays and other issues with large integer values.
If the device and the sysex data supports an upper value of 42000 I can’t create a single control with a min/max of 0,42000 so I’m trying to figure out how to handle the user interaction with such a parameter.
While building presets for an Expert Sleepers Disting EX, I tried to find a way to use 16 bit parameters (Disting EX uses 16 bit values in sysex messages, split into 2 + 7 + 7 bits).
It looks however like Electra One’s internal value is always max. 14 bits. I can scale its value up to 16 bits but will never have the 16 bit resolution then. Even when choosing the Virtual or the None message type I remain bound to a 14 bit resolution.
Can’t this limitation be lifted for certain message types?
The official MIDI spec as of now does not support a value greater than 16383. In my case, the older gear made compromises for MIDI control versus the front panel. But, internally they stored a full 16 bit value. It is on me to properly recognize that and do the math to store and display and retransmit it properly.
Since sysex data is effectively binary information, manufacturers are free to code up 8, 14, 16 or even 24 bit values. It’s up to the application on how to handle that.
If the large value is tuning (for example), you could create a fine and coarse tune set of controls and internally combine them before sending back a series of sysex bytes. Yes - more work on your part, but there’s no other easy way.
For other large value, maybe a x1, x100, x1000 control and then a second linear control in that range.