Commit Graph

238 Commits

Author SHA1 Message Date
Frank
39db568ca9 increase STACK_BUF_SIZE after PR#59
* increase buffer by 64 bytes (sting added in AR usermod)
* better diag message when buffer is full
* change "Arduino  max stack" to debug message
2023-07-27 12:45:14 +02:00
Frank
1477798bb6 Merge pull request #59 from MoonModules/sync-label
Add extra label to give better info as to what sync actually is
2023-07-26 15:38:52 +02:00
Frank
6521717e90 consider human hearing for "Major Peak" frequency
The "Major Peak" (for double-notes effects) was computed on the raw FFT results.
However the human ear is more sensitive to higher frequencies (pink noise profile).

This code change considers human ear properties for major peak computations.
Effects like "freqmap" will look much more vivid afterwards, as higher frequencies will now have a stronger influence (harmonics are still suppressed properly).
2023-07-26 13:30:44 +02:00
Will Tatam
9968b1f9d1 Add extra label to give better info as to what sync actually is 2023-07-25 16:53:36 +01:00
Frank
8aef4347a1 re-enable old peak detect algo, plus ripplepeak bugfix
* re-enabled old detector which does not detect beats. However something bad may still be better than nothing...

* fixed a typo in RipplePeak and Waterfall effect, which cased wrong configuration of the peak detector.

resolves https://github.com/MoonModules/WLED/issues/43
2023-06-18 22:08:55 +02:00
Frank
af6091b493 fixing some memory leaks
* audio_reactive.h: catch memory errors from WiFiUDP
* udp: explicitly flush unused receive buffers.
* wled.cpp: additional debug info about "largest available block"
* FX_fcn.cpp: free _globalLeds before running purgeSegments().
2023-06-07 17:10:32 +02:00
TroyHacks
7e1d15c87b Merge branch 'audio_fastpath' of https://github.com/MoonModules/WLED into audio_fastpath 2023-06-07 10:35:51 -04:00
TroyHacks
06344aeb41 FFT UDP fush if not read. 2023-06-07 10:35:28 -04:00
Frank
f0dd66e736 SoundSync: use local static buffer
thanks @netmindz for pointing out.
2023-06-07 14:07:50 +02:00
Frank
b6f1a591ee global buffer for UDP sound sync
to prevent memory fragmentation.
* use global (static) buffer for receiving
* added missing flush()
2023-06-07 12:16:22 +02:00
Frank
49f2e26ab5 arduinoFFT hash update
to fix the gh build, following latest dev.
2023-05-27 00:00:59 +02:00
Frank
df26430e42 audioreactive: replace dynamic buffer with static buffer
using a dynamic array for newSamples[num_samples] was never needed. It was a risks as the buffer was allcated/deallocated with every call of getSamples().
2023-05-25 21:50:44 +02:00
netmindz
e6fb6c4a50 Merge pull request #39 from troyhacks/ES8388-Lyra-T-Fixes-Test
ES8388 LyraT Fixes
2023-05-25 21:49:52 +02:00
Frank
6317dcb757 swapped-channel workaround needed a bit longer
It seems that ESP-IDF 4.4.5 will (finally) fix this old bug.  hallelujah.

73ca054b80 (diff-02a5aef0ab7d8485b0a165910efaab3dfc450b473eef0bab1b32bccb4ea85c69)
2023-05-12 19:10:51 +02:00
Frank
56b6290fdd Update audio_reactive.h
small oops
2023-04-30 21:03:00 +02:00
Frank
0c58c12d0f audio fastpath: reduce filter delay
- reduced filter strength, which also reduces delays
- increased I2S buffer count, and reduced I2S cycle time to recover from delays faster.
2023-04-30 20:58:06 +02:00
Frank
a1bdb47c30 trying to make sound pressure less boring for line-in
"sound pressure" for line-in was always close to max - which is expected, because the ADC chip utilize the full 24/16bit sample range.
The new calculation leads to some more "movement".
2023-04-10 23:57:44 +02:00
Frank
8ba43b63ec Sound pressure: modified correction factors for PDM and analog 2023-04-10 03:29:59 +02:00
Frank
61949cfdc8 Sound Pressure - some optimizations
- slightly extend input range
- add correction factors for some sound sources
- gravimeter: tweaking
2023-04-10 02:04:53 +02:00
Frank
197e120e3b estimated audio sound pressure 2023-04-06 18:58:20 +02:00
Frank
b09077627e low-cut audio input filtering
* 40Hz low-cut and DC blocker filter - will remove any signal offsets and also removes rumbling noise up to 12db
* DC blocker set as default for all sources (prerequisite for later measuring sound pressure)

additional filtering options are in the making :-)
2023-04-06 17:56:32 +02:00
TroyHacks
95d6d186c7 ES8388 init optimizations and fixes 2023-04-05 11:00:14 -04:00
Ewoud
cae1c00467 ARTIFX add support for pixelart + small changes
arti_wled.h:
- add jsonToPixels and frameTime
- change printf to print

usermod_v2_artifx
- return MAX(frameTime,FRAMETIME); 

FX.h and FX_2Dfcn.cpp
- add jsonToPixels

audioreactive.h
- ES8388 allow for default and add moon
2023-04-05 13:22:50 +02:00
TroyHacks
111c8c9202 Merge branch 'ES8388-troyhacks' of https://github.com/troyhacks/WLED into ES8388-troyhacks 2023-04-04 17:04:55 -04:00
TroyHacks
f44f307f89 Comments and typos, init optimization and shortening. 2023-04-04 17:04:18 -04:00
Troy
7d32bc5f97 Merge branch 'ES8388' into ES8388-troyhacks 2023-04-04 14:10:04 -04:00
TroyHacks
d775f7fb28 Removed reliance on the ES8388 library and made things more in line with similar boards with I2C init. 2023-04-04 14:01:47 -04:00
TroyHacks
bd477624f0 Working proof of concept for ES8388 2023-04-03 22:41:29 -04:00
Will Tatam
03570848f4 Merge branch 'mdev' into ES8388 2023-04-03 19:20:41 +01:00
Will Tatam
760ff836c3 Merge branch 'mdev' into ES8388 2023-04-03 19:15:28 +01:00
Frank
df9df5e4c8 audireactive: fix for missing dropdowns on -S3/-S2/-C3
these MCUs do not support analog mics, however some code was still existing that tried to add 'AudioReactive:analogmic:pin'.
2023-03-24 17:16:10 +01:00
Frank
5c6e627d28 update for ICS big speaker MIC profile
- reduce reaction to bass
- improved "pink noise" response in mid range
- enhance reaction to higher frequencies
- Lupo is back
2023-03-24 13:17:40 +01:00
Ewoud
d452da2642 NetDebug fix and small changes
AudioReactive: show ☾ specific
IR: cleanup
json.cpp: bugfix: NetDebug not in presets
wled.cpp and wled_server.cpp: show servername in DEBUG INFO
2023-03-22 16:31:07 +01:00
Frank
78f55bce70 small change
parameter tinkering
2023-03-22 16:10:52 +01:00
Frank
691ad17b04 Small oops 2023-03-20 22:33:10 +01:00
Frank
87069ef7c0 audio processing: MicLevel "FAST freeze mode"
This mode freezes MicLev even fast. However it makes some assumptions that may not always be true:
* At least 12 seconds of silence during start
* a high quality microphone with very low noise level.
--> If you are not sure about these preconditions, better use normal "Freeze" mode.
2023-03-20 22:16:35 +01:00
Frank
fc9f3a1c24 audio processing: minor updates
- small optimizations
- remove overlapping in fft bin -> geq channel mapping
- move "freqRMS" to last position in the UI list
2023-03-20 21:43:58 +01:00
Ewoud
b30438ab1a AR: Add Frequency Distribution Normal and RightShift
Experimental setting
2023-03-20 15:15:04 +01:00
Frank
c0be44e07f audioreactive: experimental options for sound processing
- micLev:  "freeze" mode - should help to prevent short "dropout" wen music is playing
- freqRMS: if set to "On", will use a different method for averaging higher frequencies. May give you more action in GEQ. Could lead to GEQ "overshooting" as Mic Profiles are not adjusted to this method.

* const.h: static json buffer (usermod settings pages) was getting tight, added some margin
2023-03-20 14:11:12 +01:00
Frank
feb5542046 enable filters for legacy PDM 2023-03-19 20:52:36 +01:00
Frank
a525c0633a legacy PDM driver option
for low-cost PDM mics that do not have enough volume when used with the standard PDM driver.
2023-03-19 20:29:09 +01:00
Frank
559716867a minor rewording
seems that nobody understands what "GPIO config" means 😜 maybe "pin settings" is clearer.
2023-03-12 14:59:50 +01:00
Ewoud
bb6662ee35 NetDebug: switch between serial/netdebug, store ip and port in settings
pio.ini: enable WLED_DEBUG_HOST in esp32_4MB_M_debug and esp32_16MB_M_debug

audio_reactive, um6050, wled.h
- replace DEBUGOUT.print(x) by DEBUGOUT(x) etc

wled.h: switch between serial/netdebug

cfg.cpp, set.cpp, wled.cpp, xml.cpp
- store netDebugPrintIP and netDebugPrintPort in cfg.json

index.js: rename info tab on off to Net Debug

settings.sync: add netdebug

net_debug.h/cpp: use global netDebugPrintIP remove debugPrintHostIP
2023-02-24 15:40:16 +01:00
Ewoud
6437cc8c7e 4ld and ar um: default pins -1, if set, show in pin dropdown
Audio reactive usermod: add pio.ini build flags defaults (⎌) for mclk, sda and scl (if set)

4ld usermod: 
- if pio.ini build flags not set, make them -1 (undefined is even better but then problems with allocate pins, to be done later)
- pio.ini build flags defaults (⎌) different if spi (clockspi and mosispi instead of scl and sda)
- add pio.ini build flags defaults (⎌) for SPI CS, DC and RESET
2023-01-27 11:09:08 +01:00
Ewoud
15d753aa4a Show analog pins in pin dropdown and show only if analog signal
- shorten oappend MM function names
- add aOpt: analog options only
- add pin 17 for esp8266 (analog pin)
- add a.pins array to show analog pins in pin dropdown
2023-01-23 20:44:12 +01:00
Frank
b27f70f423 AR: small fix for debug statistics
"smooting" does nor work in integer. we need float.
2023-01-19 17:45:16 +01:00
Frank
72168d28b1 new build flag SR_ENABLE_DEFAULT
for boards with builtin microphone (like PICO)
2023-01-18 23:09:37 +01:00
Frank
5575d6ab11 audioreactive optimization for -C3
some optimizations for -C3.

* skip every second FFT, and use interpolation instead.
* reduce sampling rate from 22Khz to 18Khz
* new debug measurement for I2S cycle times (FFTTask)

--> in total, this brings CPU load for sound processing down to 60% (from >100% previously)
2023-01-18 18:40:37 +01:00
Ewoud
10f006ef18 Small changes on pin dropdowns / usermod help
platformio.ini: add wemos_shield_esp32_4MB_all_base

usermods:
- rename disableROPins to disableRO
- bme280: add appendConfigData, info and disableRO
- PWM Fan: add appendConfigData

Settings_um.htm
- add 🟢
2023-01-16 15:07:41 +01:00
Ewoud
90c0870e74 pinDropDown: make reserved and read only aware and disable if needed
AudioReactive: add disableROPins on WS, SCK, MCLK and SCL
4LD:  add disableROPins  on CLK

settingsum: 
- addfield: max 49 pins, if (global interface) also disabled, rename if to global, show 🔴 if pin claimed
- add disableROPins
- pinDropdownsPost
- rename SDA to if:SDA (etc) so it is part of claimed pins (also in set.cpp and xml.cpp)

xml.cpp:
- appendGPIOinfo(): get rsvd and ro_gpio from pinManager.isPinOk instead of hardcoded
- getSettingsJS: add pinDropdownsPost
2023-01-14 17:30:43 +01:00