Closed raldi closed 2 years ago
I'm redesigning the rainbow picker. The old one was based on the built-in colors of the APC, but who cares about that? The new one will let you scroll through the HSB colorspace, with 72 hues of columns you can scroll through with the Tempo knob, and for each hue, there are five sat/bri combos. The APC will display them with as much fidelity as the hardware supports, and then when you pick one, the color on the clipboard will be the precise HSB for that square, regardless of the APC's limited palette.
Also working on rebasing this off the dev branch. If you have the time, though, I'd appreciate a UX / design review of the PR as-is, and I'll integrate your feedback into the next revision.
Rebased off the dev branch and redesigned the color picker.
Also to clarify my suggestion the GridMode stuff - I think it's probably worth actually making that a member variable of the class, and having the value set + update when either the BANK or the DEVICE_LOCK button is pushed.
That way all of the other code that's checking those things can simply check:
if (this.gridMode == GridMode.WHICHEVER)
And there can be:
private void setGridMode()
invoked when either BANK or DEV LOCK is pressed, and it can deal with updating this.gridMode
and performing all of the necessary side-effect operations.
I have some big ideas involving dynamic colors, but I'd like to get this PR in first and then I'll write them up for your consideration.
Next iteration of this PR is up.
Good stuff, just merged and made a few very minor cleanups. Some of that bank-vs-device button stuff could perhaps go into the updateGridMode() method to ensure that they are always consistent, but I think it's fine how you've done it.
https://github.com/heronarts/LX/commit/0fcb6a546ed6a65edeb8836fdc7382a05505afbf
Ping me about dynamic colors whenever you like!
I tried recording a video of this code in action, but despite all white-balance-adjustment efforts, I couldn't get the APC's button lights to look onscreen like anything other than uniform shades of white. Instead, here are instructions for making your own walking tour:
The most glaring problem remaining is that the RGB values in APC's spec seem kind of bonkers. It may very well be the values being sent to their LEDs, but due to issues of gamma correction or what-have-you, the actual observed result of comparing the illuminated buttons to onscreen representations of their RGB values often shows wild discrepancies. I might have to just go through all 128 colors and rewrite their supposed RGB values to match what my own eye is seeing.