https://github.com/junon10/esp32-multiband-digital-audio-processor
An Arduino multiband digital audio processor with ESP32, PCM5102-dac, STM32F411-digital-input or pcm1802-adc-input.
https://github.com/junon10/esp32-multiband-digital-audio-processor
arduino audio-processing dsp esp32 pcm5102a stm32f4
Last synced: 2 months ago
JSON representation
An Arduino multiband digital audio processor with ESP32, PCM5102-dac, STM32F411-digital-input or pcm1802-adc-input.
- Host: GitHub
- URL: https://github.com/junon10/esp32-multiband-digital-audio-processor
- Owner: junon10
- License: gpl-3.0
- Created: 2024-02-14T11:38:03.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-03-05T12:36:37.000Z (over 1 year ago)
- Last Synced: 2025-03-05T13:35:34.559Z (over 1 year ago)
- Topics: arduino, audio-processing, dsp, esp32, pcm5102a, stm32f4
- Language: C
- Homepage:
- Size: 4.27 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Esp32 Multiband Digital Audio Processor
## Features
* Web interface for control and configuration.
* Adjustment of the number of frequency bands in real time from 1 to 10.
* Graphic equalizer.
* Audio echo.
* Independent or synchronized adjustments for each audio compressor.
* Audio VU (low speed).
* Audio balance adjustment.
* Audio Pre-emphasis and Post-emphasis by software.
* Output audio peak protection system.
* Settings saving system with preset files.
* Circuit power supply directly from the USB port.
* Simplified scheme with a low number of electronic components.
Audio level and main
Compressor
Digital Audio Processor
Schematic (Digital Usb Input)
PCB Layout (Digital Usb Input)
Prototype (Digital Usb Input)
Schematic (PCM1802 ADC Input)
## Recommended compilation settings
* Microprocessor: ESP32 WROOM Devkit
* Rom: 4MB, Minimal SPIFFS large Apps with OTA
* Ram: Internal ~ 350 KBytes
* Ide: Arduino v1.8.19
* Board Version Support: Esp32 v2.0.7
* Use ArduinoJson 5.x! Please type in the terminal window in the folder ArduinoJson to set 5.x version:
```bash
git checkout 5.x
```
* ArduinoJson 6.x and 7.x use a lot of memory and are not suitable for this project!
* This project does not work with the latest versions!
* The tools folder should be copied to your ~/Documents/Arduino folder if you haven't already installed Esp32 Sketch Data Upload (Required to upload the data folder into Esp32's SPIFFS memory).
## Tips
* The recommended input level is 15dB for PC volume control at 50%.
* To change a slider, first click on it and move it with the directional keys for better precision.
* The default access credentials are admin/admin.
* The WiFi AP credentials are DAP/123mudar.
* The Web interface IP is http://192.168.4.1
## Dependencies
* https://github.com/junon10/STM32F411_USB_AUDIO_DAC
* https://github.com/junon10/yummyDSP
* https://github.com/junon10/ArduinoJson (old ArduinoJson 5.x, because it's lighter and more stable!)
## Hardware
* 1 ESP32 MH ET LIVE WROOM DevKIT
* 1 STM32F411 BlackPill
* 1 PCM5102A DAC board
## Author
- **Junon M.**
Contact: [junon10@tutamail.com](mailto:junon10@tutamail.com)
## Contributing
Contributions are welcome! Please fork the repository and send a pull request.
## Repository
- [https://github.com/junon10/esp32-multiband-digital-audio-processor](https://github.com/junon10/esp32-multiband-digital-audio-processor)
## Changelog
- **v1.0.2.71 (2024/02/14)**: Initial commit.
- **v1.0.2.72 (2025/06/19)**: More detailed explanation of the necessary development environment.
## License
- GPLv3
## Notes
* This dynamic audio compression library is not perfect due to the insufficient speed of esp32, which makes it impossible to use real-time logarithm functions for more than two simultaneous frequency bands. In practice with this lib you get a good effect, but with a not very wide input dynamic range.
* There are other compressor variations, for example the unlinked MonoCompressor, which I will add to this code in the next updates.