Creativity - Technology - Learning
 
M16: An Arduino Audio Synthesis Library for ESP8266 and ESP32

M16: An Arduino Audio Synthesis Library for ESP8266 and ESP32

M16 is a 16-bit audio synthesis library designed for use with Arduino-compatible microcontrollers, specifically the ESP8266 and ESP32 families. Developed by Andrew R. Brown, M16 enables real-time audio generation and processing using the ESP microcontroller and an I2S DAC. It supports a range of ESP32 variants (including the classic ESP32 and ESP32-S3) and is inspired by the 8-bit Mozzi audio library designed for the Arduino Pro Micro. M16 provides a suite of audio tools such as oscillators, filters, envelopes, and effects, allowing for complex sound synthesis and manipulation. It also includes sequencing and arpeggio classes. It is optimised for audio performance, which may limit compatibility with other timing-sensitive libraries like Wi-Fi or file I/O. Designed for use in the Arduino IDE, M16 emphasises modularity, efficiency, and creative flexibility, making it a powerful tool for embedded audio projects. M16 is inspired by the 8-bit Mozzi audio library by Tim Barrass 2012. It is available for download on GitHub.

The M16 library has been used to power a number of my bespoke electronic music instrument designs.