* allow user to control rotation speed (c3 slider)
* preserve accuracy by performing division _after_ multiplication: " (i * speed) / 32", instead of " i * (speed / 32)"
* proper rounding of "map" results, for better visual appearance
* avoid division by zero in map() function
* getpixelcolor: attribute pure - it reads memory, but does not write
* some optimizations for SEGMENT.blur() and SEGMENT.fadeToBlackBy()
* FX.c:pp remove double calls to blur() and fade_out()
* FX.cpp: SEGMENT.setUpLeds() added to effects, to enable LED buffering (safe some time because getPixelColor does not need to access NeopixelBus)
* a few other optimizations to safe time and avoid "expensive" operations
* set I2C bus speed to 400kHz (default is 100Khz)
* a few other small optimizations and tweaks
* pio: esp32 V4 builds use "patch5" toolchain version, which contains a few bugfixes especially for memory management.
* make local functions "static"
* use fast_ int types where possible
* use native min/max instead of MIN/MAX macros. Macros evaluate each parameter TWICE!!
* adding __attribute__((pure)) and __attribute((const)) to help the compiler optimize
* ws.cpp: reduce max "live leds" in fastpath mode
* Soap, new 2D effect
* Fix Soap FX on matrices with edges < 8 LEDs
* Add palette support to Soap FX
---------
Co-authored-by: cschwinne <dev.aircoookie@gmail.com>
* blurz: some visual improvements
* Matripix: improved color smoothness, Color by frequency (instead of volume), option to use sound pressure
* pixelwave: improved color selection, use sound energy instead of volume
* freqwave: some speedups, option to show frequency with "musical scale"
* gravfreq: fixed some math accidents that lead to horrible flickering
* default setting improved for some effects
Modifications from upstream have made the effect kind of boring non-reactive. So we go back to the original effect.
HINT: Effect looks best with _segment_ brightness set to max (use _global_ brightness to reduce brightness as you like).
* leaving out DotStarHspi5MhzMethod, as we are still on NPB 2.6.9 for eth boards
* leaving out the index.css/index.css changes, as I'm not sure how to merge this.
@ewoudwijma we need to merge the JS and CSS parts when you are back; I'll stay with our MM version for now.
Add ARTI-FX to esp8266_4MB_M (experimental!)
Arti.h
- FREE_SIZE ESP.getFreeHeap() for 8266
- define asChar(x) to print to Serial/File depending on ESP32/8266
- artiPrintf: print to USER_PRINTF (experimental)
Arti_wled.h
- add ARDUINO_ARCH_ESP8266 to ARTI_ARDUINO
- add soundPressure
usermod_v2_artifx.h: use FREE_SIZE
* adjusted gravimeter and waverly effects so that "Sound Pressure" can be used instead of volume
* some improvements to gravimeter effect
* fixing some over/underflows in gravimeter
* waverly: option "No Clouds" to only show lower part
* colors.cpp: disable gamma calculation if CIE table mode is active (WLED_USE_CIE_BRIGHTNESS_TABLE)
* fx.cpp: small improvement to FreqMap, and bugfix for effects that modify binNum / maxVol
* pio: update for Line-In shield pins (final hardware version)
related to https://github.com/MoonModules/WLED/issues/12
- fftResult channels contain different frequencies in 0.14
- fftResult content is more balanced in 0.14, while in 0.13 it was always strong in low, an always weak in high frequncies
- an new idea to avoid pastel colors: increase color saturation (HSV)
The previous code was scaling down fftResult[] to matrix height first, then computing smoothed bars.
We now to calculate smooth bars at full fftResult[] resolution first, and afterwards map the result to Matrix height. This improves accuracy and preserves a few more bits of real detail.