M16 is a 16-bit audio synthesis library designed for use with Arduino-compatible microcontrollers, specifically the ESP8266 and ESP32 families and the Pi Pico. Developed by Andrew R. Brown, M16 enables real-time audio generation and processing using the ESP microcontroller with it’s inbuilt 8-Bit DAC or an external 16bit I2S DAC. It supports a range of ESP32 variants (including the classic ESP32 and ESP32-S3) and is inspired by the architecture and a focus on efficient code of the 8-bit Mozzi audio library designed for the Arduino Pro Micro by Tim Barrass in 2012. 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. It is available for download on GitHub.

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