If you study the specifications of the ESP8266 WiFi-enabled microcontroller, you will notice that it features an I2S audio interface. This is a high-speed serial port designed to deliver 16-bit audio data in a standard format, and has its origins in consumer audio products such as CD players. It would be usual to attach a dedicated DAC to an I2S interface to produce audio, but [Jan Ostman]’s synthesiser projects eschew that approach, and instead do the job in software. His I2S interface pushes out a pulse density modulated data stream in the same manner as a 1-bit DAC, meaning that the only external components required to produce audio are a simple low-pass filter. He’s posted a video of the synth in action, which we’ve placed below the break.
The example he gives us is a basic clone of a Roland 909 drum machine, and he takes us through the code with extensive examples including MIDI. He’s using the Wemos D1 Mini board, but the same could be replicated with many other ESP8266 platforms.