Compact ESP32 Projects
Using the circuit boards described in detail below, two enclosures were built with a few mounted controllers and MIDI I/O.
A short PDF describes the project along with a few Arduino sketches to get you started programming the ESP32 boards.
4-Voice, AY Arcade, ESP32 Synth
This is a four-voice programmable synthesizer built with the ESP32 DevKit. The four voices are built from signals generated on 4 ESP32 output pins connected to 4 multiplying MCP4921 DAC chips used for volume control. Two of the pins can be programmed as 8-bit DACs to produce any type of waveform. All four can be programmed to produce square waves and PWM pulse waves. If the pulse is fed random width values it becomes pitched noise.
Two additional ESP32 pins are connected to onboard circuits for MIDI INPUT and OUTPUT.
Among its many applications, the Synth can be programmed to simulate an AY Arcade Game Sound chip from the 70’s using old YM sound files still available on the web.
4-Voice, AY Arcade, ESP32FORTH
This is the four-voice programmable synthesizer board used in the project above, but loaded with an ESP32 Forth Programming Environment.
Forth is now available for the ESP32 Microprocessor. The ESP32forth.ino install file can be installed onto an ESP32 using the Arduino IDE. It loads like any other Arduino Sketch but, amazingly, results in a complete programming environment for the ESP32 in Forth Programming Language.
Forth has a distinct advantage over Arduino C++. There is no compile and upload step. You can immediately try out new programs and test the individual components of a larger program. Sit at the prompt and say "send this MIDI byte" or "read this ADC pin" with immediate results. Poke and prod at will. This interactivity is a big plus when learning and exploring.
I've written an ESP32Forth Programming Guide to get you started programming this board in Forth. It includes the Random Voices Program and the YM Arcade File Playback programs from the project above, ported over to Forth, along with many other Forth Code examples to try out. I think you will find the Forth code here surprisingly efficient and readable.
AY Song Improv
RANDOMLY2 by John Talbert
ESP32 ES8388 Codec
The PCB board shown below was designed to connect an ESP32 DevKit to the ES8388 PCB_Artists Audio Codec Module. It also includes a MIDI Input and Output interface and a convenient set of pads and headers for attaching external controllers and sensors to available ESP pins.
A complete Codec Effects Software package for the ESP32. Includes full documentation PDF.
Effects Software Package for the LyraT and A1S Audio Kit
A complete Effects Software Package for the Lyra T Codec board by Espressif and the A1S ESP32 Audio Kit by AI Thinker. This is an audio development project based on the ESP32 processor with an ES8388 Codec.
The software is written in C++ around an Arduino Framework.
Effects Software Package for the PÚCA DSP Board
A complete Effects Software Package for the PUCA DSP Codec board from CrowdSupply.com. This is an audio development project based on the ESP32 processor with a WM8978 Codec.
The software is written in C++ around an Arduino Framework.
SD Playback and NeoPixels for the LillyGo TAudio
A complete Effects Software Package for the TTGO TAudio codec board from LillyGo.cn . This is an audio development project based on the ESP32 processor with a WM8978 Codec.
Audio Playback from an SD Card is added to the Software Package along with NeoPixel functionality.
The software is written in C++ around an Arduino Framework.
Sparkfun Codec Thing
A PCB circuit board designed to mount the Sparkfun Codec Module with the Sparkfun ESP32 Thing Plus C. Includes a MIDI I/O interface along with convenient pads and header for connecting external controllers. This is an audio development project based on the ESP32 WROOM 32E processor with a WM8960 Codec.
Includes a complete Codec Effects Software Package for the board written in C++ around an Arduino Framework.
Radio Enclosure for Sparkfun Thing
Project built for the Sparkfun Codec and ESP32 Thing Plus shown above.
Six Effects designed for the project.