Designing "many-value sliders"
Captain's Log: Stardate 77565.7
Today I did some easy but time-consuming tasks, like adding units display for PrecisionSlider and assigning units to each parameter, rewriting all the tooltips to be much more useful, reorganizing the order in which parameters appear so that the useful ones are on top and you only have to scroll down to see the less-common ones, etc. These things were on my backlog of UX improvements, and even though they're small, they really make a big difference.
But more importantly I spent time today designing "many-value sliders." The background is that in Anukari's GUI, the user can select any number of objects they like. So they can select, say 50 springs. Then in the right-hand editor panel, the sliders will show the value of the parameters, say, stiffness, for those springs. When the user moves the slider, the stiffness is adjusted for all 50 springs.
This works fine when all 50 springs have the same stiffness. But it works poorly when their stiffness values vary. Right now, moving the slider sets them all to the same stiffness. This isn't great if you have an instrument where you intentionally are varying some parameter across a bunch of objects, and then you want to adjust them all up/down. You have to do it one by one.
This is a real problem: in my Bach Prelude demo on YouTube, the timbre I wanted involved having different masses for each body along each note's little string. I realized that to tune it I'd have to change every mass independently, which is crazy. So I just tuned it with spring stiffness, which worked but had a slightly different timbral result.
So "many-value sliders" need to solve this. I think the way they'll work is that when there are varying values, the little slider cap will have whiskers (like a box and whiskers plot) to show the range of values. And then dragging the slider will move all the values up or down proportionally, keeping the same ratio between them. Now, to implement...