Commit Graph

5540 Commits

Author SHA1 Message Date
Frank
b47c55db90 fix 8266 builds
wled00/FX_fcn.cpp:974:16: error: '_isSuperSimpleSegment' was not declared in this scope
2024-08-18 13:21:55 +02:00
Troy
1ef13c2077 Arc 1D Expand uses drawArc if the segment is not "super simple"
WLEDMM: drawArc() is faster if it's NOT "super simple" as the regular M12_pArc code can do "useSymmetry" to speed things along on larger 2D layouts, but a more "complicated" segment likely uses mirroring which generates a symmetry speed-up, or other things which mean less pixels are calculated.
2024-08-17 13:05:23 -04:00
Troy
f23df9dfbc Revert functionality change to M12_pArc
Left the new code in for reference
2024-08-17 08:28:08 -04:00
Troy
20fde24ac4 Merge pull request #154 from troyhacks/mdev
2D Audio Reactive Paintbrush Effect
2024-08-17 08:19:54 -04:00
Troy
7bb351b185 Minor updates to Paintbrush 2024-08-17 08:15:27 -04:00
Troy
324f3acd59 Merge branch 'MoonModules:mdev' into mdev 2024-08-17 00:58:29 -04:00
Frank
b9007f2dc6 bugfix
fix compiler error on non-fastpath builds
2024-08-16 18:02:25 +02:00
Frank
030a7cee53 another small speedup, and segment stability improvement
* removed a few sanity check that are done again later in getPixelColor
* stability: prevent crashes when changing segments settings or effect options
2024-08-16 17:54:11 +02:00
Frank
1ae8a62cf5 Merge pull request #155 from netmindz/FX-cleanup-mdev
Remove repeating code to fetch audio data
2024-08-16 02:01:40 +02:00
Frank
f287143cc3 build 2408150 2024-08-15 20:36:09 +02:00
Frank
f7e3f35c0c my favourite HUB75 buildenv [env:esp32_4MB_V4_HUB75_forum] 2024-08-15 20:35:16 +02:00
Will Tatam
b0b3e75556 Move getAudioData to static 2024-08-15 16:22:24 +01:00
Will Tatam
3b551a40f3 Remove repeating code to fetch audio data 2024-08-15 10:51:26 +01:00
Troy
af1752770f Merge branch 'MoonModules:mdev' into mdev 2024-08-14 11:53:58 -04:00
Troy
9e65ab3be4 Stop issue playlist continuing when disabling AutoPlaylist
If you use the "music" playlist on boot, it'll keep it going even when you manually override to something else.  This seems to fix this condition.
2024-08-14 11:53:35 -04:00
Troy
6fed9f323c Merge branch 'MoonModules:mdev' into mdev 2024-08-13 16:15:23 -04:00
Troy
340197fd91 Merge branch 'mdev' of https://github.com/troyhacks/WLED into mdev 2024-08-13 12:13:29 -04:00
Troy
38d30723a0 2D Audio Reactive Paintbrush Effect 2024-08-13 12:13:14 -04:00
Frank
5610548652 HUB75 clock phase
`mxconfig.clkphase = false;` seems to help reduce flicker on some panels.

@netmindz I think we should add a checkbox to the UI - something like "clocked on positive edge" (default = checked) which means clkphase = true. when unchecked, we set clkphase = false.
2024-08-13 12:52:19 +02:00
Frank
a77520aa05 bugfix
forgot to commit one line ...
2024-08-12 12:36:45 +02:00
Frank
a257e49bb4 HUB75 trying to reduce glitches
the HUB75 driver seems to randomly produce glitches, especially on hight contrast edges.

* roll back to HUB75 version 3.0.10 (known good)
* limit max brightness to 238 (=92%)
* add short delay after starting the driver
2024-08-12 12:20:15 +02:00
Will Tatam
e90f8e7f0d DMX Input - reinstate loggers for connection state change 2024-08-10 15:42:30 +01:00
Frank
2934739ebf HUB75 cleanup, double buffer improvement
* code cleanup, removing some unneeded sanity checks
* use dirty bits in double buffer mode, too -> only not-black pixels are drawn into the back-buffer (20%-30% faster)
2024-08-09 17:46:14 +02:00
Frank
a44aa92c75 playing with Fire2012
* speedup: add functions to only blur rows or columns (50% faster)

* fire2012: tinkering with bur options. Vertical blur only when slider < 64 (faster); extra blur for  slider values >192 (bush burn)
2024-08-09 12:55:04 +02:00
Blaž Kristan
89412b999d Merge pull request #4078 from apanteleev/fire-blur-control
Add a parameter for blur amount in the Fire 2012 effect
2024-08-09 12:19:31 +02:00
Frank
d00b3147b4 Waverly: better slider names
Slider names were misleading.
First slider: fade speed (low values means longer hold times)
Second slider: signal gain (i.e. amplification)
2024-08-08 22:28:14 +02:00
Frank
28db9bfcfd waverly effect speedup
* faster math
* limit height to visible area
2024-08-08 22:03:49 +02:00
Frank
56e72ef22d HUB75 live preview 2024-08-08 20:57:15 +02:00
Frank
f8154a8c78 Update wled.h - build 2408080 2024-08-08 19:08:34 +02:00
Frank
bad923570b double buffer off (MatrixPortal S3)
`mxconfig.double_buff = true` should not be necessary any more.
2024-08-08 19:04:10 +02:00
Frank
1b098b9863 fixie 2024-08-08 19:00:19 +02:00
Frank
b5d97cca93 HUB75 leds buffer with dirty bit acceleration
Instead of using the memory-hungry driver double buffer, this implements a LEDS buffer inside the BusHub75Matrix class.
--> up to 50% faster
--> uses one "dirty" bit per pixel, to only re-transmit pixels that changed after the last "show"
2024-08-08 18:56:12 +02:00
Frank
5b7345ef39 HUB75 refactoring
* move HUB75 implementation into bus_manager.cpp
* add "override" keyword
* include FastLED.h if not included previously
* move RGB macros into bus_manager.h
2024-08-08 18:48:49 +02:00
Frank
c66a8af85c reduce WiFi disconnects
HUB75 is very heap-hungry - use a more relaxed metric for triggering "low heap emergency" actions
2024-08-08 17:44:13 +02:00
Frank
90dd048878 revert fadeToBlackBy optimization
causes problems with overlay text (scrolling text)
2024-08-08 17:41:05 +02:00
Frank
6e415dfbbe HUB75 hack
HUB75 is very memory hungry - this hack deletes the mapping table when its not needed --> frees 8Kb with a 64x64 panel.
2024-08-07 18:31:06 +02:00
Frank
fb2402fb97 HUB75 optimization (double buffer only)
In double duffer mode, the screen is blanked at each show(). So we can drop setPixelColor(BLACK) calls until we receive a pixel with different color.
2024-08-07 17:02:46 +02:00
Frank
b2844645c6 pinwheel mapping XXL - no holes at 64x64 2024-08-07 16:53:25 +02:00
Frank
7f9da309c9 const const const
adding hints for the compiler for optimization.
In case your custom build complains about "const", just remove the keyword. based on e82f38e277, but going further :-)

* "const" class functions : function does not modify any class attributes ( --> "this" becomes const)

* __attribute__((pure)) :  function return value depends only on the parameters and/or global variables. The function does not modify any global or static variables.
* __attribute__((const)) : function only examines arguments (no globals), and has no effects except the return value. This slightly more strict than "pure"
* hot: tells the compiler "this functions is called very often"
* cold: the opposite of hot
2024-08-07 14:58:38 +02:00
Frank
273154db76 drawArc speedup (Circle mapping mode)
* Optimize drawArc to skip pixels that are off-screen or outside the circle's bounding box. Also move repeating calculations out of the inner loop.

testcase 64x64 : 8fps --> 33 fps :-)
2024-08-06 18:13:59 +02:00
Troy
5778b596be ESP32-ETHERNET-KIT-VE Fix
Changed eth_address from 0 to 1 based on testing with devkit as it wasn't working by default with 0
2024-08-06 10:44:44 -04:00
Frank
42919f9daf blob effect improvements, and a dirty hack for HUB75 double buffer
* mode_2Dfloatingblobs() improvements for large panels
* Segment::fillCircle() speed optimizations
* HUB75 hack (disabled by default): skip first fill(BLACK) when using double buffering (as the buffer gets cleared after each frame)
2024-08-06 15:53:46 +02:00
Troy
9ee4165dad Freqmatrix stop identical first pixel/line 2024-08-05 16:37:49 -04:00
Frank
5240c3450b Segment drawing optimizations (FASTPATH only)
* cache width, height, and a few more values that are normally re-calculated for each pixel
* make normal sPC a bit faster
* Segment::fade_out() optimization

--> only active in FASTPATH mode, to preserve flash on small devices (8266)
--> code still needs some polishing
--> up to 20% speedup with some 2D effects (esp32,  flash qio 80Mhz, -O2)
2024-08-05 21:30:25 +02:00
Frank
078bd70775 HUB75 speedups and minor improvements
* HUB75: allow to use native driver gamma correction - requires to undo WLED gamma
* added unGamma24() function
* HUB75: optimized setPixelColor()
* some experimental HUB75 stuff
2024-08-05 17:28:03 +02:00
Frank
6505e04cbf minor effect improvements
* 2DBlackHole: improved accuracy
* 2Dfloatingblobs: draw anti-aliased blobs when "blur" slider = 1
* FX framework: un-clutter and optimize "XY()"
2024-08-05 17:09:50 +02:00
Frank
5f4834dec4 small improvements
* optimized fadeToBlackBy() - don't repaint unchanged pixels
* made MIN_HEAP_SIZE configurable by build_flags
* specific error message when not enough memory for LEDs buffer
2024-08-05 17:06:38 +02:00
Frank
18f9d64e24 HUB75 lib version 3.0.11
using the git hash of version 3.0.11
2024-08-03 23:49:13 +02:00
Frank
114cdfefd8 Hub75 lib versions rollback
3.0.11 breaks the gh build.
2024-07-30 16:16:44 +02:00
Frank
ecb8817c90 Update audio_source.h - swapped channel bug still exists in 2.0.17
Actually we could even check for " < 5.0.0 " - arduino 2.0.x is in maintenance mode now, and I see little chance that a fix will appear before 3.0.0.
2024-07-30 16:03:19 +02:00