A JavaScript library that analyzes audio rhythms using music theory to drive audio-reactive visualizations.
Clubber is a JavaScript library that analyzes audio to extract rhythmic information by converting frequency energies into MIDI notes, applying music theory principles for better audio segregation. It provides a set of measurements ideal for driving audio-reactive visualizations, particularly in WebGL shaders, enabling developers to create dynamic graphics synchronized with music.
Creative developers and visual artists building audio-reactive visualizations, music visualizers, or interactive WebGL experiences that respond to audio input in real-time.
Developers choose Clubber for its music theory-based approach to audio analysis, which offers more meaningful rhythmic data than traditional FFT methods, and its seamless integration with WebGL shaders for high-performance visual modulation.
Application of music theory in audio reactive visualizations
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Converts linear frequency energies to MIDI notes for better segregation of musical elements, as explained in the README, providing more meaningful rhythmic data than traditional FFT methods.
Outputs normalized float arrays directly usable as uniforms in WebGL shaders, enabling real-time visual modulation without additional processing, as highlighted for audio-reactive visualizations.
Allows defining rectangular windows on the MIDI spectrum with adaptive thresholds and smoothing, offering precise control over rhythmic measurements like strongest note index and power-weighted averages.
The Clubber Tool web app facilitates rapid prototyping and music analysis, with export capabilities for patches and Web MIDI output, reducing development time for audio-visual projects.
For offline analysis, the README requires manual time management and buffer calculations, which can be error-prone and adds overhead compared to real-time use.
Optimal integration is with WebGL shaders; projects not using WebGL may find the output format less useful, limiting its applicability to broader visualization contexts.
While the Clubber Tool is well-documented, the core library's README lacks detailed examples for non-WebGL use cases, relying on external resources for advanced guidance.