SensoryBridge
SensoryBridge copied to clipboard
Add "shift" functionality to Mode Button
This is how to set hue, saturation, and hue-shift using the face knobs without affecting normal operation. This allows users to override the color generator and set their own display color semi-permanently, including white.
- The Mode Button, when pressed, switches to the next available display mode.
- When held >= 0.5 seconds, the Mode Button should cause the audio engine to halt, and the display to be overridden with a fade-out.
- While still held, the display quickly fades back in to a gradient of BLACK-[COLOR]-BLACK, where [COLOR] is an RGB value whose hue and saturation are now to be decided by rotating the first two knobs.
- The third knob can be used to set the distance of "hue-shift" that occurs at changing brightness levels.
- Hue shift can be positive or negative, with the center of the knob being 0.0.
- In this example, only the hue (left knob) is changed.
- Once the Mode Button is released, the left-hand Sweet Spot LED will instantly begin flashing.
- On the display is two dots, a dim red one and a yellow one.
- The red dot's position on the light bar linearly represents the original rotation of the knob before entering this mode (it was once a brightness knob, which we don't want to affect)
- The yellow represents the currently measured rotation of the knob
- Dim green dots animate towards the red dot, from the yellow one.
- This is a readout of approximately how the user should rotate the knob to return it to its original, intended position.
- Automatically upon aligning the two dots within a threshold distance for more than X milliseconds, the Sensory Bridge returns to normal light show function, or refreshes the display to begin correcting a second or third knob until all of them are back in their approximate original positions. The Sweet Spot LEDs reflect which knob is currently being addressed.
Extra note: When a user sets a custom color, it persists with LittleFS through reboots and different mode selections until the mode button is held for >=0.5 and <=1.5 seconds to return it to the default color generation functions. When released before <= 1.5 seconds, the gradient normally shown during this mode is replaced with a rainbow version of itself that quickly cycles and fades out to alert the user that normal color functions have been restored, before fading back in to resume the light show.