* made timing calculations work with large led counts
* improve randomness by injecting esp_random()
* ripple 2D: avoid ugly artifacts, by limiting circles to on-screen coordibnates
* BusManager::show(): explicitly wait until the bus driver is idle (done by NPB show, too, but in a different way)
* BusManager::removeAll(): use delay() instead of yield() - yield() does _not_ free the processor on esp32!
controls the number of phases shown by the effect
breaking - the old code was using a fixed width per wave, while the new one always fits the same number waves into the panel width.
* removed dead code
* merge octopusStep and radialStep --> octoSpeed
* improve speed slider resolution by first multiplying, then dividing
Thanks @ewoudwijma
you still have to use a trick -> the "expand 1D" drop-down is hidden once you select a 2D-capable effect
* Create your segment with 2 colums or 2 rows (might also need "transpose"
* Select a 1D effect like chunchun
* set expand to "Pixels" or "Bar"
* now select the GEQ effect
--> Flat GEQ runs in the previously set expand mode.
* avoid black spots
* better randomness on esp32
* new mode "FreqMap" (checkbox) - blob location follows major frequency
* new mode "GEQ scanner" (checkbox) - blob location based on GEQ band
--> looks cool with Pinwheel or Bar or Arc mapping
--> will be even better with the new Waterfall mapping mode
allows the compiler to inline access to ledsrgb[] , while still keeping the "no buffer" case in a separate function so program size does not blow up.
--> up to 10% faster
It seems that the FM6124 driver makes some "outdoor" panels work, that previously only showed random color flicker. FM6124 is largely compatible with panels that did work with the standard driver, too.
Art-Net Improvements
* AsyncUDP instead of WiFiUDP so it's much faster
* Support for professional Art-Net gear with many outputs
* Color-order remapping
* ESP32-P4 SIMD assembly optimization for brightness calc, a bit faster
* Full GUI support for all settings
* GUI guidance for setup