# earlephilhower/ESP8266Audio

Arduino library to play MOD, WAV, FLAC, MIDI, RTTTL, OGG/Opus, MP3, and AAC files on I2S DACs or with a software emulated delta-sigma DAC on the ESP8266 and ESP32 and Pico

Repository: https://github.com/earlephilhower/ESP8266Audio
Canonical: https://ross.abutalabs.com/products/esp8266audio
Language: C
License: GPL-3.0
License Family: copyleft
Topics: arduino, esp8266, mod, wav, mp3, dac, i2s, flac, midi, aac, soundfont2, sf2, esp32, rtttl, talkie, speech-synthesizer, hacktoberfest, pico, rp2040, pico2
Last push: 2026-08-02T17:14:10+00:00

## Health v2 (maintenance only)
Score: 96/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 95, release rhythm 94, longevity 100
- inputs: {"age_days": 3308, "days_push": 31, "days_rel": 43, "gap_med": 6, "n_releases_24m": 8}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2392, forks 471 (observed 2026-08-28T04:06:43.410038+00:00)

## What it is
An Arduino library for parsing and decoding audio formats including MOD, WAV, MP3, FLAC, MIDI, AAC, OGG/Opus, and RTTTL on ESP8266, ESP32, and Raspberry Pi Pico (RP2040/RP2350) microcontrollers. It plays audio through I2S DACs or a software-emulated delta-sigma DAC with dynamic 32x-128x oversampling.

## Use cases
- play mp3 files on esp32 with i2s dac
- decode flac audio on esp8266 arduino
- play midi files with soundfont on microcontroller
- stream internet radio aac on esp32
- play wav sounds without external dac chip
- rtttl ringtone playback on arduino
- build an mp3 alarm clock with esp8266

## When to choose
- you need to play multiple audio formats (MP3, FLAC, MIDI, WAV, AAC, Opus) on ESP8266, ESP32, or RP2040/RP2350
- you want audio output without a hardware DAC using the software delta-sigma DAC
- you are building Arduino-based projects like clocks, alarms, or sample players with sound

## When to avoid
- you only target ESP32 or Pico and want a simpler, higher-performance playback model - consider BackgroundAudio instead
- you need AAC-SBR support on ESP8266, which lacks the required RAM
- you need a permissively licensed library - it is GPL-3.0 and AAC decoding carries additional licensing requirements for commercial use

## Facets
- artifact type: library
- maturity: active
- function: audio-processing, speech-recognition, parser
- domain: embedded-systems, hardware
- platform: embedded, iot, cpp
- tags: arduino, esp8266, esp32, raspberry-pi-pico, rp2040, rp2350, i2s, dac, mp3, flac, midi, wav, aac, opus, soundfont2, delta-sigma-dac, audio-decoding, audio

## Member repositories
- earlephilhower/ESP8266Audio (main) score 96

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:43.410038+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:34:26.939855+00:00, confidence not recorded.
  - readme: https://github.com/earlephilhower/ESP8266Audio (fetched 2026-08-28T04:06:43.410038+00:00, sha 9e88c857754c)
- Data as of 2026-08-30T08:39:29.467469+00:00.
