152 {
153
158 }
159 }
160
161
162
164
170
171 const fl::u32 now =
millis();
173
174
179 printf(
"AnimartrixRing: state -> %s (engine speed=%.2f)\n",
182 }
183 } else {
185 }
186
187
189
190
198 } else {
200 }
201
202 FastLED.setBrightness(finalBrightness);
204}
fl::UIAudio audio("Audio Input")
fl::FxEngine fxEngine(NUM_LEDS)
fl::UISlider timeSpeed("Time Speed", 1, -10, 10,.1)
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255)
fl::UISlider orchestratorHysteresisMs("Orchestrator Hysteresis (ms)", 400, 0, 2000, 50)
fl::UICheckbox enableOrchestrator("Enable Sound Orchestrator", false)
fl::shared_ptr< animartrix_ring::SoundOrchestrator > gOrchestrator
fl::UISlider autoBrightnessLowThreshold("Auto Brightness Low Threshold", 8, 0, 100, 1)
fl::UICheckbox autoBrightness("Auto Brightness", true)
fl::UISlider autoBrightnessHighThreshold("Auto Brightness High Threshold", 22, 0, 100, 1)
fl::shared_ptr< fl::audio::Processor > gAudioProcessor
fl::UISlider orchestratorDwellMs("Orchestrator Min Dwell (ms)", 1500, 200, 5000, 100)
fl::UISlider autoBrightnessMax("Auto Brightness Max", 84, 0, 255, 1)
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
uint8_t applyBrightnessCompression(float inputBrightnessPercent, uint8_t maxBrightness, float lowThreshold, float highThreshold)
float getAverageBrightness(CRGB *leds, int numLeds)
const char * toString(SoundState s)
fl::u32 classifierHysteresisMs
fl::u32 millis()
Universal millisecond timer - returns milliseconds since system startup.
void printf(const char *format, const Args &... args) FL_NOEXCEPT
Printf-like formatting function that prints directly to the platform output.
CRGB sample(const CRGB *grid, const XYMap &xyMap, float x, float y, SampleMode mode)
Sample a pixel from a 2D CRGB grid at floating-point coordinates.