Commit Graph

5474 Commits

Author SHA1 Message Date
Will Tatam
d1cf8a679f Only enable double buffering for matrix portal due to memory issues on classic esp32 2024-07-17 10:23:50 +01:00
Will Tatam
bb7b4b2f79 Tweak SmartMatrix build flags - smaller image size and brighter output 2024-07-17 09:29:15 +01:00
Will Tatam
2867fa6cef Set default name 2024-07-17 09:00:19 +01:00
Troy
6808572907 doSoft fix for GEQ 3D 2024-07-16 19:05:11 -04:00
Troy
7b8d025a24 GPL3 License for GEQ 3D 2024-07-16 18:46:23 -04:00
Frank
9260111cd7 use drawLine for 1D2D mapping modes
thanks @troyhacks for providing the idea.
2024-07-16 23:22:50 +02:00
Frank
9bcc5da132 code cleanup
- removed commented-out code
- reduced blank lines
2024-07-16 20:48:15 +02:00
Frank
7a83f1759d removed a/b testing via Reverse X (segment option) 2024-07-16 20:26:52 +02:00
Frank
98bd7acf1a Merge pull request #143 from MoonModules/3DGEQ
3D GEQ, plus performance improvements when drawing lines.
2024-07-16 20:03:46 +02:00
Frank
4051d5ddd8 increase limit for FX string: 127 --> 191 bytes 2024-07-16 18:40:11 +02:00
Frank
1f14673f43 workaround for "cannot read properties of undefined. reading 'split'
hmpf ... looks like somewhere deep in WLED, the FX name string gets limited to 127 chars....
2024-07-16 16:08:08 +02:00
Frank
e3b4a08393 soft light option
* bugfix for Borders (did not work with <16 bands)

* new option for soft light: when checked, the left & right edges of top lights are drawn with anti-aliasing on. Costs us 1-2 fps, so I made it optional.
2024-07-16 16:03:19 +02:00
Frank
96584c6c70 better rounding 2024-07-16 15:13:05 +02:00
Frank
e3d27de395 better handling of perspective
drawLine parameter "depth" shortens a line by a fraction - useful for VP perspective (vanishing point)
2024-07-16 13:27:56 +02:00
Frank
9928f5b9ec fixie 2024-07-15 18:27:25 +02:00
Frank
88d12547a4 FX.cpp: scrolling text tag #pow --> #amp
scrolling text: #pow --> #amp
because its ampere, not power.
2024-07-15 18:24:27 +02:00
Frank
6565e716ab GEQ speedup
use drawLine() to draw a complete bar at once. Only possible if _not_ doing colored bars.
2024-07-15 18:14:30 +02:00
Frank
961040849e speedup for pinwheel mapping
fast sPC() in pinwheel mapping -> ~10% speedup
2024-07-15 18:06:25 +02:00
Troy
98c15d7ec0 Borders checkbox 2024-07-15 08:18:42 -04:00
Troy
54f9d4ca6d Borders checkbox for @netmindz
Netmindz likes the borders. Now a check-box to enable.
2024-07-15 08:17:00 -04:00
Frank
5401328b6e loop optimizations
* made cols/rows integer, to avoid that "cols-x" wraps around
* pre-compute some expressions that don't depend on loop counters

--> wins us 1-4 fps on my 72x72 test setup
2024-07-15 14:05:19 +02:00
Frank
4f6eb8b161 prevent array bounds violation
+ don't use dynamic array for heights[] - dynamic arrays are using malloc() -> heap frag.
2024-07-15 13:24:18 +02:00
Frank
6d1615189b Merge branch 'mdev' into 3DGEQ 2024-07-15 12:33:48 +02:00
Frank
d0927a5142 akemi and GEQ didn't like map2 2024-07-15 12:29:29 +02:00
Frank
d2762c35b0 Update FX.cpp
* add more accurate version of map() - reduces slight flickering in some 2D effects
* cache fftResult[] in effects (um_data->fftresult might get updated while the effect still calculates)
2024-07-15 11:57:46 +02:00
Troy
3857862e03 Optimized side-wall drawing
Only draw what will be visible.

This is a pretty solid speed increase when the adjacent bar is close in height, or if it's taller and would occlude it anyway, it'll be skipped.
2024-07-14 22:32:42 -04:00
Frank
6aaf7a908d more sPC optimizations
* made setPixelColorXY_fast private
* optimized Segment::fill() to use setPixelColorXY_fast
* "bar" 1D expand optimization
2024-07-14 23:49:37 +02:00
Frank
dddd1574ec (experimental) setPixelColorXY_fast speedup by setPixelColorXY_fast
* adding a _fast_ variant of SetPixelColorXY, that does not perform any error checking.
* drawLine uses the fast setPixelColor variant (bresenham algo only)
* for TESTING: segment option "reverse" switches back to the "original slow" code.
surely needs some more optimization and improvements.

First test on GEQ 3D shows 10%-30% speedup
2024-07-14 14:11:11 +02:00
Will Tatam
aa6d275a86 Swap DMX port to 1, persist user choice of port, validate port vs UART count 2024-07-13 20:26:26 +01:00
Will Tatam
584ca5e8ae Double buffer needed to prevent flicker for effects like GEQ 2024-07-13 13:51:59 +01:00
Troy
75f0c7cb98 Oopsy 2024-07-12 22:34:37 -04:00
Troy
643f82daf0 Don't use new soft drawline() option 2024-07-12 22:32:14 -04:00
Troy
4c8d500215 Seems someone improved drawline() - fixed for this 2024-07-12 22:12:59 -04:00
Troy
52130e176c Merge branch 'mdev' into 3DGEQ 2024-07-12 22:10:39 -04:00
Troy
ce8f01bf90 Bugfixed GEQ 3D
Bug fixes after lots of testing, better settings, etc.

Big thanks to @netmindz  for restructuring the code.

Add rough distance stop to Segment::drawLine()
2024-07-12 22:03:33 -04:00
Frank
346914b965 setPixelColorXY small optimizations
Caching a few segment vars gives a 5% speedup on big setups.

Its 2024, and compilers are still stupid :-P
2024-07-13 01:37:43 +02:00
Frank
982a4bb155 Merge pull request #139 from MoonModules/upstream_patch_clusterf
AC minor patch cluster
* Anti-Aliased Lines and Circles
* replacing deprecated functions in ws.cpp
* using global brightness in analogue clock overlay
* fix for palette names (custom palettes)
* bugfix for UI: when resizing the window, it always jumped to the Colors tab
* UI: add webpage shortcuts for tabs
2024-07-13 01:13:53 +02:00
Troy
4538d24873 Merge pull request #144 from troyhacks/AC101-Support
AC101 audio support
2024-07-10 19:15:09 -04:00
Troy
1c33a4bbea Remove references to AC101 mic mode (not implemented) 2024-07-10 19:08:58 -04:00
Troy
f7e2f14ca4 Minor tab and comment clean-up. 2024-07-10 19:03:38 -04:00
Will Tatam
aed861d063 GEQ Laser use SEGMENT.data 2024-07-10 23:58:35 +01:00
Troy
1fe871c42c Fully working with analog loopthru 2024-07-10 18:54:02 -04:00
Will Tatam
8f4380b075 Rename 3D GEQ to GEQ Laser 2024-07-10 23:51:53 +01:00
Will Tatam
60fbf07bca Fix mx_width and height for 4scan 2024-07-10 23:01:21 +01:00
Will Tatam
bda4bbeeec 3D GEQ - fade speed 2024-07-10 23:00:42 +01:00
Troy
c069385600 Merge branch 'MoonModules:mdev' into AC101-Support 2024-07-10 15:32:43 -04:00
Will Tatam
3fd8078722 3D GEQ - customisable number of bands 2024-07-10 09:40:40 +01:00
Will Tatam
cb3d06bc89 3D GEQ - variable front brightness 2024-07-10 09:24:26 +01:00
Will Tatam
f6cd28cea2 3D GEQ - customisable number of bands 2024-07-10 09:20:58 +01:00
Will Tatam
45f288a2f2 3D GEQ - make front brightness a control 2024-07-10 08:59:05 +01:00