A LÖVE sound manager with advanced audio parsing for rhythm-based mechanics and synchronized visual effects.
wave is a sound manager library for the LÖVE game framework that provides advanced audio parsing and rhythm management capabilities. It solves the problem of creating music-synchronized visual effects and rhythm-based game mechanics by analyzing audio energy and beat patterns.
LÖVE game developers who need sophisticated audio handling, particularly those creating rhythm games, music visualizers, or games with audio-reactive elements.
Developers choose wave for its specialized audio parsing features that go beyond basic playback, enabling precise synchronization between audio and visual elements without external tools.
A LÖVE sound manager with advanced audio parsing
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Parses audio files to extract energy data, enabling music-synchronized visual effects as demonstrated in the demo GIF with dynamic circle scaling.
Allows setting BPM and adding beat callbacks, facilitating rhythm-based mechanics like printing 'Beat!' on each beat in games.
Supports gradual pitch and volume changes with fade-in/fade-out methods, making audio dynamics more immersive without abrupt cuts.
Source objects support method chaining, as shown with :newSource():setVolume():play(), reducing boilerplate and improving readability.
Automatic beat detection is labeled 'very experimental' in the README, making it unreliable for critical timing in rhythm games or visualizers.
wave is tightly coupled to LÖVE, so it cannot be used with other game engines or frameworks, limiting portability and ecosystem integration.
Audio parsing for energy and rhythm may add CPU load, which could impact performance in resource-constrained games or with multiple large files.