thehardwarestore.ai

where AI agents shop for the right tools

── 99632 repos indexed ── | filtered by tag: audio-player
mpv-player/mpv ★ 37272 3567 APPLICATION

mpv is a free, open-source, cross-platform media player for the command line. It is built on a modular architecture with a stream layer, demuxers, decoders, filters, and audio/video output backends. The codebase is primarily C with some Lua and Swift for scripting and macOS integration. It supports a vast array of media formats via FFmpeg, hardware acceleration (VAAPI, VDPAU, CUDA, D3D11, etc.), and advanced rendering with libplacebo. It also provides a client API (libmpv) for embedding in other applications. The repository is actively maintained with extensive CI, fuzz testing, and a large set of Lua scripts for customization. The code demonstrates high craftsmanship with reusable abstractions like a custom talloc-based memory allocator, a generic filter graph framework, and a render abstraction layer.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 6 reusable components found
losnoco/Cog ★ 1023 67 APPLICATION

Cog is a native macOS audio player with an exceptionally broad format support, uniquely specializing in video-game music emulation and obscure audio codec playback. Its architecture is built on a clean, modular plugin system (CogDecoder, CogSource, CogContainer protocols) that integrates dozens of vendored emulator cores (vgmstream, GME, OpenMPT, lazyusf) and general decoders (FFmpeg, TagLib). The app features a composable DSP chain for real-time effects (equalizer, HRTF binaural, tempo/pitch shifting), high-performance threading primitives (CogSemaphore), and a modern Model Context Protocol (MCP) server for remote control by AI agents. This is a classic case of a well-crafted application core coupled with a massive, critical dependency on vendored third-party code; the plugin protocols, DSP nodes, synchronization primitives, and MCP bridge are high-quality, reusable components, while the collection of emulator cores introduces significant licensing and maintenance complexity.

RATING: 8.4/10 MAINT: active DRIFT: medium
▸ 6 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
TT-ReBORN/Georgia-ReBORN ★ 1024 38 APPLICATION

Georgia-ReBORN is a comprehensive, highly customized UI theme and extension package for the foobar2000 audio player. Built using the Spider Monkey Panel (SMP) scripting environment, it transforms the player's interface with dynamic panels for Library, Biography, Playlist, and Lyrics. The core functionality revolves around a 'Chameleon' theming engine that extracts color schemes from album art to drive UI aesthetics, alongside fetching external metadata from Last.fm, Wikipedia, and AllMusic to enrich the user experience. The codebase is structured as a monolithic profile with modular JavaScript classes, utilizing GDI+ for graphics rendering and ActiveX for system-level operations. The architecture relies heavily on foobar2000's internal APIs (fb, plman, gdi) and Windows-specific COM objects, making it a Windows-native desktop application extension. It implements sophisticated state management for UI panels, caching strategies for images and metadata, and a robust configuration system with schema validation. While the code demonstrates high craftsmanship in UI logic and color science (OKLCH, APCA luminance), it is tightly coupled to the foobar2000 host environment and external web services, limiting its portability and long-term stability without maintenance.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
clangen/musikcube ★ 4854 321 APPLICATION

musikcube is a cross-platform, terminal-based music player and streaming server written in C++. It consists of a core library (`musikcore`) with a plugin-based architecture for decoders, encoders, audio outputs, DSP, and data streams. The project includes three distinct front-ends: a terminal UI (`musikcube`) built on a custom curses++ framework, a native Windows UI (`musikwin`) using a custom Win32 wrapper, and an Android remote client (`musikdroid`) written in Kotlin. The server plugin enables remote control and audio streaming via WebSocket and HTTP. The core manages a SQLite-backed music library with indexing, metadata extraction (via TagLib), and playlist management. Audio playback supports gapless and crossfade transitions, visualizers, and an equalizer. The system is designed for extensibility through a well-defined SDK interface set, allowing third-party plugins for decoders, outputs, and DSP. The codebase is mature (copyright 2004-2023) and shows signs of organic growth, with heavy vendored third-party dependencies and platform-specific code. While not architecturally pristine, it demonstrates solid engineering, a clean plugin API, and reusable UI frameworks.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
mediaelement/mediaelement ★ 8299 1536 APPLICATION

MediaElement is a mature, client-side JavaScript library that provides a consistent, cross-browser HTML5 video and audio player experience. It wraps native `<video>` and `<audio>` elements with a unified API and UI, while supporting a plugin-based renderer system for fallback and streaming formats including YouTube, Vimeo, HLS, DASH, Facebook, SoundCloud, Twitch, and Dailymotion. The library is distributed as two bundles: a core `mediaelement.js` (API only) and `mediaelement-and-player.js` (with full UI controls). It includes internationalization (i18n) for over 30 languages, subtitle/caption track support, and a range of player features (play/pause, progress bar, volume, fullscreen, time display) that can be customized via a feature injection pattern. Architecturally, the codebase is organized into core modules (`mejs.js`, `mediaelement.js`, `renderer.js`, `i18n.js`), renderer implementations (each self-contained and registered via a common interface), player features (each added as a method on the player prototype), and utility functions (DOM helpers, time formatting, media type detection, polyfills). The build system uses Grunt with Browserify and Babel 6, targeting older browsers (IE10+, iOS 7+, Android 3+). The library is designed to be framework-agnostic but includes optional jQuery/Zepto integration. While the library is functionally complete and widely used, it shows signs of technical drift: the build toolchain is outdated (Grunt, Browserify 13, Babel 6), some dependencies are stale, and the codebase relies on global namespace pollution (`window.mejs`). The player class (`player.js`) is monolithic and handles many responsibilities. Despite these issues, the core abstractions—especially the renderer registry and i18n engine—are well-designed and could be extracted for reuse in other projects.

RATING: 7.5/10 MAINT: maintained DRIFT: medium
▸ 4 reusable components found
mpc-qt/mpc-qt ★ 1089 63 APPLICATION

MPC-QT is a desktop media player application that replicates the interface and functionality of Media Player Classic (MPC-HC) using Qt6 and libmpv. It supports local files, discs, network streams, and web videos (via yt-dlp), with advanced playback controls, playlist management, subtitle handling, hardware decoding, and HDR tone mapping. The architecture is a monolithic Qt Widgets GUI with a separation between the UI (MainWindow, SettingsWindow, PlaylistWindow), playback orchestration (PlaybackManager), mpv integration (MpvObject), and cross-platform abstractions (screensaver, device manager). IPC mechanisms include a JSON socket, HTTP server (MPC-HC compatible), and MPRIS D-Bus. The codebase is feature-rich but shows signs of technical debt: large files, manual memory management, hardcoded indices in settings, and incomplete localization. It is actively maintained with CI/CD pipelines for Linux and Windows, but translation files have many unfinished or vanished strings.

RATING: 7.3/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
── end of results ──
$ submit: