Hardware Details
We used the Espressif Systems ESP32 DevKitC as our main component for the voice modulator.
The microphone we used is an INMP441 with attached breakout board, which communicates directly to the ESP32 vis I2S.
Our DAC of choice was the MAX98357, which receives I2S signals from the ESP32 and outputs them to a 4Ohm 5W speaker.
We currently have the system powered via UART, though we wish to change our power source to a LIPO battery.
We unfortunately did not have time during our class to finish the PCB design and 3D printing of an enclosure for our device, but when we continue working on our project in the future, the physical design is what we want to primarily focus on.
Software Details
We primarily used the arduino IDE and the arduino-audio-tools library to perform our audio processing as well as the default arduino libraries to create a server to host our website. Our biggest struggles were due to our libraries having conflicting definitions, which is why we decided to use the default arduino libraries for our server and website.
Modutron
What does the Modutron actually do? It takes audio input from the microphone and sends it to the ESP32. The ESP32 has variables stored for each parameter of each audio processing effect that we implemented, so it applies each effect according to those stored variables. After applying the audio processing effects, the ESP32 sends the processed audio through the MAX chip and into the speaker. This process is continuously happening. When the user interacts with the website by changing one of the effect parameters, the ESP32 receives this change and changes the corresponding variable, thereby changing the parameters of the audio processing. Current audio effects that we have implemented are boost, pitch shift, distortion, fuzz, delay, and tremolo.
Final Thoughts
It is a work in progress. it accomplishes its basic goals of processing audio in real time and communicating with a user through a website, but it lacks many of the refined features we would like to employ. We had a great time designing and building a product that we enjoy, and we hope to continue working on this in the future.