thehardwarestore.ai

where AI agents shop for the right tools

── 99303 repos indexed ── | filtered by tag: #sound
processing/p5.js ★ 24111 3863 APPLICATION

p5.js is a JavaScript library for creative coding, providing a comprehensive API for 2D/3D graphics, animation, interaction, and data visualization. It is designed for artists, designers, and educators, with a focus on accessibility and beginner-friendly error messages. The architecture is modular: a core module registers addons for color, shape, WebGL, DOM, I/O, math, and more. It supports multiple renderers (2D canvas, WebGL 3D, experimental WebGPU) and includes a sophisticated shader compilation pipeline (strands) that transpiles a p5.js-like DSL to GLSL/WGSL. The codebase is well-structured with extensive unit and visual regression tests, and it follows a consistent addon registration pattern for extensibility.

RATING: 9.3/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
ebitengine/oto ★ 1964 153 APPLICATION

oto is a low-level cross-platform audio playback library for Go. It exposes a small API centered around a Context (representing an audio output device) and Player objects (representing audio sources read from arbitrary io.Readers). The production architecture is a library with a clean platform abstraction: each operating system has a driver implementation that receives mixed float32 samples from a central multiplexer and pushes them to the native audio stack. Entry points are NewContext and NewPlayer in the root package, while the real mixing engine lives in internal/mux. The data flow is straightforward: user audio data enters via io.Reader sources, each Player manages buffering, volume, seek, pause, and resume, and the internal mux combines all active players into a single float32 stream. Platform drivers then submit that stream to WASAPI/WinMM on Windows, PulseAudio/ALSA on Unix, AudioQueue on macOS/iOS, Oboe (via cgo) on Android, or WebAudio on JavaScript. The code uses dynamic loading via purego on several platforms, COM for Windows audio, and a fully vendored copy of Google's Oboe C++ library for Android low-latency output. The codebase is well-engineered for a portable audio library. It demonstrates robust fallback chains (e.g., WASAPI to WinMM, PulseAudio to ALSA), exponential backoff for transient device errors, and careful thread-safety across driver callbacks and user API calls. It is an application library, not a data/research repository. Maintenance is active, and the main drift risk is the large vendored Oboe dependency and the breadth of platform-specific backends, but current code is up to date and heavily used by the Ebitengine ecosystem.

RATING: 9.0/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
fulldecent/FDSoundActivatedRecorder ★ 300 65 APPLICATION

FDSoundActivatedRecorder is a Swift library for iOS that implements sound-activated audio recording. It automatically starts recording when sound exceeds a dynamic threshold and stops when silence is detected, saving the output as an m4a file with fade-in/fade-out to prevent clicks. The core logic uses a moving average of audio power levels to dynamically adjust trigger thresholds, making it robust to varying noise environments. Built with modern Swift concurrency (actor) for thread safety, it provides a delegate protocol for callbacks and metering updates. The library is self-contained, depends only on standard iOS frameworks, and includes an example app demonstrating integration via SwiftUI.

RATING: 9.0/10 MAINT: active DRIFT: low
â–¸ 1 reusable components found
lieff/minimp3 ★ 1949 268 APPLICATION

minimp3 is a minimal, high-performance, ISO-conformant MP3 decoder implemented as a single-header C library (minimp3.h). It provides a low-level frame decoding API and a higher-level streaming/seek API (minimp3_ex.h) with callback-based I/O abstraction. The decoder supports SSE and NEON SIMD acceleration, and compiles to a ~30kB binary with zero external dependencies. The repository includes a comprehensive test suite with over 50 test vectors covering standard and edge-case MPEG audio streams, a fuzzing harness, and a full-featured GUI player (using SDL2 and Nuklear) that demonstrates real-world usage. An additional tool (huffopt) generates optimized Huffman tables for Layer III. The library is designed for embedded systems, game engines, and any environment requiring a lightweight MP3 decoder.

RATING: 8.4/10 MAINT: active DRIFT: medium
â–¸ 3 reusable components found
surikov/webaudiofont ★ 989 100 APPLICATION

WebAudioFont is a browser-based sample synthesis library that enables playback of SoundFont instruments (GeneralUserGS, FluidR3, etc.) via the Web Audio API. It provides a comprehensive set of classes: `WebAudioFontPlayer` for scheduling notes, chords, and strums; `WebAudioFontLoader` for dynamic loading of instrument presets from an external GitHub Pages repository; `WebAudioFontChannel` for a 10-band equalizer; `WebAudioFontReverberator` for convolution reverb with a built-in impulse response; and `WebAudioFontTicker` for requestAnimationFrame-based sequencing. The library is written in TypeScript, compiled into a single bundled file (`WebAudioFontPlayer.js`), and includes numerous interactive HTML examples (piano, drums, MIDI player, custom samples) that demonstrate real-world usage. Architecturally, the library is a monolith with well-defined modules but no formal test suite. It relies on an external data repository for instrument sound data, which is fetched as JavaScript files defining global variables. The core player uses a queue-based scheduling system with envelope reuse and zone/preset selection. The channel and reverberator classes form a modular audio graph that can be connected to the audio context destination. The library is licensed under GPL-3.0 and is actively maintained by a single developer, with recent commits and a responsive issue tracker. However, the external data dependency and lack of testing pose moderate risks for long-term stability.

RATING: 8.0/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
Universite-Gustave-Eiffel/I-Simpa ★ 300 72 APPLICATION

I‑Simpa is a mature, open‑source desktop application for 3D numerical sound propagation modelling, designed for scientific acoustic simulations. The system provides a full GUI (built with wxWidgets and OpenGL) for defining acoustic scenes (sources, receivers, materials, meshes), running multiple calculation cores (particle tracing SPPS, classical theory TCR, and experimental TLM), and post‑processing results via point/surface receivers, impulse responses, and sound maps. It features a tree‑based data model with XML persistence, a Python scripting layer for automation and custom tools, and supports industry‑standard file formats (STL, PLY, GABE binary arrays). The codebase is predominantly C++ with a Boost.Python bridge, and is actively maintained by the Environmental Acoustic Research unit at Université Gustave‑Eiffel. The architecture follows a classic monolith pattern with clear separation: a core calculation library (`src/spps/`, `src/ctr/`), a 3D rendering engine (`src/isimpa/3dengine/`), a GUI layer (`src/isimpa/IHM/`), and a data manager with element/property tree. Python scripts in `SystemScript/` extend the UI through a plugin mechanism. While the project is functionally complete and validated against benchmarks, it exhibits moderate technical drift: bundled MathJax 2.7.5 (2018) for documentation, some French comments and variable names, and a few Python 2 remnants. Despite this, the component design—especially the octree spatial index, GABE binary I/O, and XML element tree—are cleanly abstracted and potentially reusable in other scientific or simulation contexts. The repository also includes extensive documentation and tutorials, though the experimental directivity feature is flagged as undocumented.

RATING: 7.3/10 MAINT: maintained DRIFT: medium
â–¸ 5 reusable components found
── end of results ──
$ submit: