A simple project for testing working with audio/DSP code in an embedded context. The project is developed using PlatformIO and the ESP32 Arduino libraries. It is being run on the following hardware:
- ESP32 dev board
- ICS-43434 I2S microphone board for getting audio in
- MAX 98357A I2S amplifier powering a small speaker.
- Three buttons for controlling the code.
Forgive my wiring setup I am new to electronics
- Record and playback a couple of seconds of audio data.
- Stackable effects including a hard clipper, simple low pass and delay.
- The main audio buffer is limited in space by the ESP32 SRAM size and it's inherent limitations.
- This means that lower than ideal sample rates and bit-depths are required, as well as limited recording time.
- Ideally this data would not be stored in RAM but on some kind of flash storage.
- Continuous recording/playback of audio data for real-time effects application.
- Difficult with current setup due to feedback concerns.
- Effects are not externally controllable and parameters/FX used must be specified in code.
- Implement some more complicated effects:
- Reverb
- Distortion/Fuzz
- Delay with multiple delay lines
- More sophisticated filters
- Experiment with developing against ESP-IDF rather than the ESP32 Arduino library, as the I2S APIs may be somewhat outdated.
- ESP32 I2S code adapted from Atomic14's excellent video tutorials and examples: https://github.com/atomic14/esp32_audio
