Way better slider inputs
Captain's Log: Stardate 77555
Today I implemented a totally new take on the floating point value input system, which formerly I referred to as "Dials," with what I now call "PrecisionSlider." This is 90% working, with a few edge cases and details to work out, and surely some bugs that I haven't yet found.
The underlying problem I'm solving is that some parameters in Anukari vary by several orders of magnitude. Spring stiffness, for example, goes from 1 to 5,000,000. Similarly, delay times can be anywhere from 1/48000th of a second to 1 second. So a regular slider that's, say, 200 pixels wide, doesn't have nearly enough resolution for these kinds of situations.
The Dial solution was workable, but it had some disadvantages. It was a little tricky to use, and hard to explain. But a more annoying issue was that it was not quick to make large jumps in the value, since you had to spin the dial to get anywhere, as opposed to a slider where you can just click where you want it to go.
The new PrecisionSlider solves all these problems by coming a slider for coarse adjustments with a thumbwheel for fine adjustments. For exponential sliders, the thumbwheel adaptively adjusts its sensitivity based on the current slider position, which is the key thing that makes it all work. I tested this with tuning pitch via spring tension, and it had plenty of precision across the whole range of values. Hopefully this is the last time I need to redesign the slider system.... 😄
This is what the new sliders look like with their fine-precision thumbwheels below