Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

P4 experimental #203

Closed

Conversation

troyhacks
Copy link
Collaborator

Updating to sync with mdev

troyhacks and others added 30 commits October 2, 2024 10:02
…eed issues with SM8, Scaledemo1 and Hot_Blob
gave me 1-3 extra FPS on -S3 with 128x64
small speedup by declaring some functions "const"
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
* 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
I've checked the code - nothing preventing the effect to run with SEGLEN=1
This is a platform feature that asks forgiveness for PROGMEM misuse:
it adds a handler such that incorrectly used PROGMEM will work without
crashing, just really, *really* inefficiently.

Given that most of our real-world use cases for PROGMEM strings are
relatively infrequent text calls, we can err on the side of developer
convenience and address performance problems if and when they arise.
avoid drawing outside of visible area
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.
only center bars if we more than 4 pixels per bar.
we only use palette and brightness transitions, so effect restart at the transition end is not required.
replacing "map" with direct computation
* removed dead code
* merge octopusStep and radialStep --> octoSpeed
* improve speed slider resolution by first multiplying, then dividing

Thanks @ewoudwijma
Added integer based `sin()/cos()` functions, changed all trig functions to wled_math
* avoid 16bit overflows
* improve time resolution
* limit to 32 birds (=max for 256 pixels)
* fix fade_out
... to help diagnose problems that come from wrong PSRAM settings
quick fix for "missing pixel 256" problem
troyhacks and others added 20 commits December 2, 2024 09:16
Fix Color Order GUI for Art-Net
Fire2012: better randomness
Julia: avoid darkening when using "blur"
audioreactive comet effect (backported from WLED-SR)
segments that are "off" were still rendered during transitions.
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.
* non-breaking - reproduces the old behavior at phases = 127
* minor math optimizations
* phase boost for large values (good for small panels)
esp32S3_4MB_S and esp32s3_8MB_M were used by two different buildenvs.
Cosmetic 2D Setup change: Start at Panel 1 instead of 0
* removed dead code
* prevent promotion to double
* made constants constexpr
* made some methods const
* fixed a few typo's
@troyhacks troyhacks closed this Dec 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants