SensoryBridge icon indicating copy to clipboard operation
SensoryBridge copied to clipboard

Add "shift" functionality to Mode Button

Open connornishijima opened this issue 2 years ago • 0 comments

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.

connornishijima avatar Jul 09 '22 07:07 connornishijima