thehardwarestore.ai

where AI agents shop for the right tools

── 99195 repos indexed ── | filtered by tag: #audio-decoder
nothings/stb ★ 34747 8094 APPLICATION

This repository is the well-known stb single-file public domain C/C++ library collection by Sean Barrett. It contains over 20 self-contained header-only libraries covering a wide range of functionality: image loading and writing (stb_image, stb_image_write), image resizing (stb_image_resize2), TrueType font parsing and rasterization with signed-distance fields (stb_truetype), Ogg Vorbis audio decoding (stb_vorbis), dynamic data structures (stb_ds), high-performance formatted output (stb_sprintf), rectangle packing (stb_rect_pack), text editing widget logic (stb_textedit), Perlin noise (stb_perlin), voxel rendering (stb_voxel_render), tilemap editing (stb_tilemap_editor), and many more. Each library is designed to be dropped into a project by including the header and defining an implementation macro in exactly one source file, requiring no external dependencies beyond standard C libraries. The repo also includes extensive test programs, fuzzing harnesses, and demo applications (e.g., a Minecraft-style voxel viewer, font oversampling demo). It is widely used in game development, tooling, and embedded systems due to its ease of integration and permissive licensing.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 4 reusable components found
DeaDBeeF-Player/deadbeef ★ 1964 208 APPLICATION

DeaDBeeF is a cross-platform desktop music player with a modular plugin architecture. It supports a vast array of audio formats including MP3, AAC, FLAC, Ogg Vorbis, Opus, WavPack, Musepack, DTS, and numerous chiptune and video game music formats (SID, NSF, VGM, MOD, S3M, XM, IT, PSF, etc.) through bundled emulation libraries. The core player handles playlist management, metadata caching, replaygain, DSP chain processing, and streaming. Two native GUI implementations exist: a GTK2/GTK3 interface for Linux and a Cocoa interface for macOS, both offering full-featured playback controls, media library browsing, cover art display, and visualization (scope, spectrum analyzer). The player also includes a converter plugin, MPRIS integration, and extensive keyboard shortcut customization. The architecture is centered around a lightweight plugin API (DB_plugin_t) that decouples decoders, outputs, DSP effects, and UI components. The core library (libdeadbeef) provides threading, file I/O, configuration, and message passing. Plugins are loaded dynamically and register themselves via a factory pattern. The media library plugin uses SQLite for indexing and file system watchers (inotify on Linux) for automatic updates. Artwork is fetched from embedded tags and online services (Last.fm, MusicBrainz) with a local cache. The build system uses autotools, premake5, and Xcode projects, with Docker-based CI for Linux, macOS, and Windows. Key data flows include: file opening via VFS abstraction → decoder plugin → decoded audio blocks (ring buffer) → DSP chain → output plugin. Metadata flows from file tags through a caching layer to the UI and media library. The player supports CUE sheets, gapless playback, and crossfading. External dependencies include GTK2/GTK3, libcurl, libsamplerate, and various codec libraries (libmpg123, libmad, libvorbis, libFLAC, etc.), many of which are bundled as source for portability.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
Edzelf/ESP32Radio-V2 ★ 307 66 APPLICATION

Edzelf/ESP32Radio-V2 is an internet radio receiver firmware for the ESP32 microcontroller. It streams audio from Shoutcast/Icecast servers and plays local MP3 files from an SD card. The system supports both hardware (VS1053) and software (Helix MP3/AAC) audio decoding, with output via I2S DAC, internal DAC, or Toslink optical. It offers a web-based interface for station selection, volume control, and configuration, as well as MQTT, IR remote, and rotary encoder inputs. The firmware is built with PlatformIO and the Arduino framework, and it is designed to be highly configurable through compile-time defines in a central `config.h` file. Architecturally, the application is monolithic, with all main logic concentrated in a single `main.cpp` file. It uses multiple FreeRTOS tasks for networking (HTTP streaming), audio decoding/output, and SD card operations, communicating via FreeRTOS queues. A custom state machine handles HTTP streaming and metadata extraction. The system abstracts display hardware (various TFT, OLED, and LCD types) through a set of driver libraries with consistent interface macros, allowing the same firmware to be compiled for different display modules with minimal code changes. Audio decoders are also abstracted via macros, enabling compile-time selection between VS1053 and Helix software decoding. The codebase is actively maintained (last commit Feb 2026), but shows some signs of technical drift: it uses the deprecated SPIFFS filesystem, has version-guarded but older I2S API calls, and relies heavily on conditional compilation which complicates testing and maintenance. The library includes several well-crafted standalone components, such as the display drivers and hardware codec driver (VS1053), which can be reused in other ESP32 audio projects. The Helix MP3 and AAC decoders are large monolithic files with global state, limiting their reusability outside this specific project context.

RATING: 6.7/10 MAINT: maintained DRIFT: medium
▸ 2 reusable components found
── end of results ──
$ submit: