Commit Graph

352 Commits

Author SHA1 Message Date
Frank
49130c9ec9 (chores) cleanup some compiler warnings
* switch-cases that fall through
* potential buffer overflow in improv.cpp
* potentially uninitialized variables in FX.cpp
* potential array out-of-range on segment::col[]
* minor optimization: only apply gamma correction when result is needed
* tag some possibly unused variables with   [[maybe_unused]]
2026-03-11 13:54:58 +01:00
Frank Möhle
9e3b2131fa change default mic level method from "floating" to "freeze"
"floating" is a bad default for digital I2S input. "Freeze" avoids signal loss in moments where audio dynamics are low.
2026-03-10 13:32:07 +01:00
Frank
7627fbd989 AR: avoid user confusion between PDM and I2S
"'Generic I2S PDM" -> "'Generic PDM"
unrelated: simplify an ifdef in audio_source.h
2026-02-24 13:10:01 +01:00
Frank Möhle
cce3c0b5d3 psram-aware malloc functions (backport of upstream #4895) (#342)
Introduces new memory allocation functions, based on wled#4895 by @DedeHai

* keep a minimum of 15KB RAM available to UI - improves stability
* S3/S2/C3 automatically use "fast RTC Ram" for small data (reduces fragmentation)
* auto-detects PSRAM (or no PSRAM) when firmware was built with -D BOARD_HAS_PSRAM
* d_malloc() and d_calloc() prefer DRAM if possible (faster), but fall back to PSRAM when free RAM gets low.
2026-02-18 17:57:47 +01:00
Frank
6625e2bb12 nitpick 2026-01-11 19:35:15 +01:00
Frank
a44d2d3f8e renamed user options, and minor code clarity improvements
* rename user option to "skip old data"
* remove unneeded variable lastValidPacketSize
* rename constant AR_UDP_AVG_SEND_RATE -> AR_UDP_AVG_SEND_RATE
2026-01-11 19:11:24 +01:00
Frank
69b8fe11aa clarify misleading comment 2026-01-11 18:33:40 +01:00
Frank
7d7cebdd79 minor cleanups
* add "override" to all methods that oveeride the base usermod class
* fixing a minor copy-paste mistake
* ovoid shadowing class attributes
* spelling, grammar and other nitpick
2026-01-11 18:19:33 +01:00
Frank
d813bc430c AR sound receive: user option for queue purge 2026-01-11 17:39:24 +01:00
Frank
cefd42116a AR UDP: automatic packet drop
experimental -> works
2026-01-11 15:20:33 +01:00
Frank
0b71bbab1f AR: new sequence check
experimental -> works
removing old code
2026-01-11 15:19:30 +01:00
Frank
3ce3718124 AR bugfix: UDP format detection
remove early assignment receivedFormat = 2
2026-01-11 15:17:20 +01:00
Frank
c5e8a1a080 AR receiver: improved sequence checking
experimental
2026-01-11 02:09:30 +01:00
Frank
201bba0759 AR receiver: automatic packet droping
* rework of PR #231
* allow droping packets when
   - first connection
   - silence
   - re-connect after timeout
   - main loop is too slow
2026-01-11 02:08:41 +01:00
Frank
56866752ee AR bugfix
missing "break" for AC101 setup
2026-01-09 16:46:31 +01:00
Frank
f9c7828eeb fix parameter order in calloc() calls
calloc(nmemb, bytes) allocates memory for an array of _nmemb_ elements of size _bytes_
2026-01-01 22:02:06 +01:00
Frank
e0c7d254bb fix outdated URLs
Aircoookie Wiki => mm.kno.wled.ge
MoonModules/WLED => MoonModules/WLED-MM
Aircoookie/WLED => wled/WLED
2024 => 2025
2025-11-23 17:18:10 +01:00
Frank
219355d047 AR audio sync: improved sequence check for audio packet handling
currently just a comment so I don't forget about it :-) needs some testing but very sure this will work.
2025-11-18 23:57:44 +01:00
netmindz
2c62cd5e41 Merge pull request #4690 from Arcitec/ar-agc-control
AR: add compile-time flag for "Automatic Gain Control" option
2025-11-03 16:16:19 +01:00
Frank
b215c8209d post-merge updates
CONFIG_ASYNC_TCP_TASK_STACK_SIZE => CONFIG_ASYNC_TCP_STACK_SIZE
2025-10-25 21:48:55 +02:00
Troy
5a06280935 receiveAudioData() process last packet in buffer now to account for slower refreshes 2025-01-29 18:10:08 -05:00
Frank
257b7b5876 better audiosyncPacket description (audio_reactive.h)
clarify meaning of some fields
2024-12-29 19:56:28 +01:00
Troy
a5e9df6668 Revert "Merge pull request #204 from troyhacks/Strip_Level_Color_Adjust"
This reverts commit db55872732, reversing
changes made to 972257a7ee.
2024-12-10 12:14:03 -05:00
Troy
6ad0b2893a Merge branch 'mdev' into Strip_Level_Color_Adjust 2024-12-10 12:12:44 -05:00
netmindz
67e78296be Merge pull request #168 from troyhacks/ES8311-Support
ES8311 Support
2024-12-03 14:48:25 +00:00
Ewoud
33318dab25 Merge pull request #170 from MoonModules/license 2024-10-16 00:14:46 +02:00
Frank
22b16ab542 Align all licensing statements with EUPL-1.2 2024-10-14 21:52:52 +02:00
Frank
db983d80ca fir for 8266 build 2024-10-14 11:34:56 +02:00
Frank
68536635d7 show toast when reboot is needed, or error restart happened
less WTF, more information
2024-10-14 11:25:41 +02:00
Frank
0dd036cdce AR: trying to improve coexistence with HUB75
Hub75 is very memory hungry. So we try to make a bit more RAM available
* use 16bit samples when compiling with HUB75 support --> 3KB saved
* avoid using aPLL (HUB75 needs it)
* move audio buffers from BSS (always allocated) to heap (only allocated when FFTtask runs) --> 10Kb saved
* suspend live preview for 6 seconds when out-of-memory
2024-10-13 23:06:50 +02:00
Frank
5381119f9e AR: new input type 'None' for network receive only 2024-10-08 19:00:59 +02:00
Troy
283a7284b4 ES8311 support added for the ESP32-P4 EV board with mic. 2024-10-02 10:02:34 -04:00
Frank
f1088bb5c0 (experimental) loop2 to get fresh audio just before drawing
* introducing usermod::loop2() - runs just before strip.service()
--> expecting to reduce lagging between audio and visual to an absolute minimum.
2024-09-21 20:41:05 +02:00
Troy
98195b4d5d Merge branch 'MoonModules:mdev' into Strip_Level_Color_Adjust 2024-09-14 13:33:49 -04: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
Troy
1c33a4bbea Remove references to AC101 mic mode (not implemented) 2024-07-10 19:08:58 -04:00
Troy
c069385600 Merge branch 'MoonModules:mdev' into AC101-Support 2024-07-10 15:32:43 -04:00
Frank
4d03af6466 mic quality dropdown, cleanup
* mic quality: When set to "low noise" or "perfect", only minimal smoothing is performed on the "Mic Volume" input.
Every filter adds a delay, so this option can lead to better on-spot responses from effects.

* cleanup: removed a few unused variables and unused code.
2024-07-05 17:53:43 +02:00
Frank
bd997f7056 added Blackman window 2024-07-05 15:37:03 +02:00
Frank
cba883c663 parameter tuning
*some filter parameter tinkering
* restore FFT_MajPeakSmth in UDP SoundSync receiver
2024-07-05 15:12:41 +02:00
Frank
160e66a766 user-selectable FFT window functions
experiments: user-selectable FFT "windowing" options

https://en.wikipedia.org/wiki/Window_function#Cosine-sum_windows
2024-07-04 21:44:09 +02:00
Frank
9b14de06b2 fix build error on -S2, -C3 2024-07-04 20:13:57 +02:00
Frank
7d04660b91 postProcessFFTResults adjustments for FastPath
samples arrive 2x as fast in fast mode - adjust filters accordingly
2024-07-04 20:06:13 +02:00
Frank
7883474404 postProcessFFTResults minor refactoring
* limiter on/off : made the logic a bit clearer.
* use a simpler way of writing filters: a = n*a + (1-n)*b --> a = a+ n*(b-a)

no functional impact.
2024-07-04 18:37:31 +02:00
Frank
eaf6117f31 Merge branch 'mdev' into Full_audio_FastPath 2024-07-04 17:55:12 +02:00
Troy
28cb5c88b6 Skeleton, not working yet. 2024-07-03 16:20:44 -04:00
Frank
27dd6bddac AudioReactive:digitalmic:pin[] --> uxp
before: String buffer usage: 2805 of 4037 bytes
after:    String buffer usage: 2566 of 4037 bytes
2024-07-01 22:56:18 +02:00
Frank
31a12f5098 AudioReactive -> ux
before: String buffer usage: 3530 of 4037 bytes
After:    String buffer usage: 3183 of 4037 bytes
2024-07-01 21:10:45 +02:00
Frank
a317af42fc trying to make effects respond to changes quicker in fastpath mode
filter parameter tuning
2024-07-01 16:37:44 +02:00
Frank
e98858c751 audio FASTPATH, part 2
* introducing sliding window FFT, which effectively doubles the rate of samples - and FFT results - produced per second. As a side-effect, it also makes FFT a bit less noisy.

As sliding window FFT requires double the number of FFT runs, the feature is only enabled on esp32 and esp32-S3.
2024-07-01 16:29:09 +02:00