FastLED 3.9.15
Loading...
Searching...
No Matches

◆ loop()

void loop ( )

Definition at line 195 of file Animartrix.ino.

195 {
196 FL_WARN("*** LOOP ***");
197 uint32_t start = fl::millis();
198 FastLED.setBrightness(brightness);
199
200 // Always drain audio samples from the ring buffer to prevent overflow,
201 // and process them when vibe reactive is enabled.
202 {
204 if (sample.isValid()) {
205 static uint32_t sAudioSamples = 0;
206 sAudioSamples++;
207 if (sAudioSamples == 1) {
208 FL_WARN("Animartrix: First audio sample received! enableVibeReactive=" << (int)enableVibeReactive.value());
209 } else if (sAudioSamples % 172 == 0) {
210 FL_WARN("Animartrix: " << sAudioSamples << " audio samples processed, enableVibeReactive=" << (int)enableVibeReactive.value());
211 }
212 if (enableVibeReactive.value()) {
213 audioProcessor.update(sample);
214 }
215 }
216 if (!enableVibeReactive.value()) {
217 fxEngine.setSpeed(timeSpeed);
218 }
219 }
220
221 static int lastFxIndex = -1;
222 if (fxIndex.as_int() != lastFxIndex) {
223 lastFxIndex = fxIndex.as_int();
224 animartrix.fxSet(fxIndex.as_int());
225 }
226 fxEngine.draw(fl::millis(), leds);
228 FL_WARN("*** DRAW TIME: " << int(end - start) << "ms");
229 FastLED.show();
230 uint32_t end2 = fl::millis();
231 FL_WARN("*** SHOW + DRAW TIME: " << int(end2 - start) << "ms");
232}
fl::UIAudio audio("Audio Input")
fl::audio::Processor audioProcessor
fl::UICheckbox enableVibeReactive("Enable Vibe Reactive", false)
fl::FxEngine fxEngine(NUM_LEDS)
fl::Animartrix animartrix(xyMap, FIRST_ANIMATION)
fl::CRGB leds[NUM_LEDS]
fl::UIDropdown fxIndex("Animartrix - index", { "RGB_BLOBS5", "RGB_BLOBS4", "RGB_BLOBS3", "RGB_BLOBS2", "RGB_BLOBS", "POLAR_WAVES", "SLOW_FADE", "ZOOM2", "ZOOM", "HOT_BLOB", "SPIRALUS2", "SPIRALUS", "YVES", "SCALEDEMO1", "LAVA1", "CALEIDO3", "CALEIDO2", "CALEIDO1", "DISTANCE_EXPERIMENT", "CENTER_FIELD", "WAVES", "CHASING_SPIRALS", "ROTATING_BLOB", "RINGS", "COMPLEX_KALEIDO", "COMPLEX_KALEIDO_2", "COMPLEX_KALEIDO_3", "COMPLEX_KALEIDO_4", "COMPLEX_KALEIDO_5", "COMPLEX_KALEIDO_6", "WATER", "PARAMETRIC_WATER", "MODULE_EXPERIMENT1", "MODULE_EXPERIMENT2", "MODULE_EXPERIMENT3", "MODULE_EXPERIMENT4", "MODULE_EXPERIMENT5", "MODULE_EXPERIMENT6", "MODULE_EXPERIMENT7", "MODULE_EXPERIMENT8", "MODULE_EXPERIMENT9", "MODULE_EXPERIMENT10", "MODULE_EXPERIMENT_SM1", "MODULE_EXPERIMENT_SM2", "MODULE_EXPERIMENT_SM3", "MODULE_EXPERIMENT_SM4", "MODULE_EXPERIMENT_SM5", "MODULE_EXPERIMENT_SM6", "MODULE_EXPERIMENT_SM8", "MODULE_EXPERIMENT_SM9", "MODULE_EXPERIMENT_SM10", "FLUFFY_BLOBS" })
fl::UISlider timeSpeed("Time Speed", 1, -10, 10,.1)
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255)
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
#define FL_WARN(X)
Definition log.h:276
fl::u32 uint32_t
Definition s16x16x4.h:219
fl::u32 millis()
Universal millisecond timer - returns milliseconds since system startup.
constexpr T * end(T(&array)[N]) FL_NOEXCEPT
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.
Definition sample.cpp.hpp:9

References animartrix, audio, audioProcessor, brightness, enableVibeReactive, FastLED, FL_WARN, fxEngine, fxIndex, leds, fl::millis(), and timeSpeed.

+ Here is the call graph for this function: