A C++ command-line tool that generates waveform data and renders PNG images from MP3, WAV, FLAC, Ogg Vorbis, and Opus audio files.
audiowaveform is a C++ command-line application that generates waveform data and renders visual waveform images from audio files. It solves the problem of programmatically creating audio visualizations by converting MP3, WAV, FLAC, Ogg Vorbis, or Opus files into data formats or PNG images suitable for use in web applications, media players, or editing tools.
Developers and engineers working on audio applications, media processing pipelines, or web projects that require embedded audio visualizations, such as podcast platforms, music streaming services, or audio editing software.
Developers choose audiowaveform for its high-performance C++ implementation, support for multiple audio formats, and flexible output options including JSON for web integration. It provides precise control over waveform rendering and is designed for reliability in automated workflows.
C++ program to generate waveform data and render waveform images from audio files
Reads MP3, WAV, FLAC, Ogg Vorbis, and Opus files, as listed in the README, making it versatile for processing various audio sources without prior conversion.
Exports waveform data as binary, JSON, or PNG images, with JSON specifically noted for web integration with tools like Peaks.js, enhancing developer usability.
Offers color schemes (Audacity or Audition styles), bar or normal waveform styles, and axis label toggles, allowing detailed control over PNG output appearance.
Supports reading from stdin and writing to stdout, enabling seamless use in automated workflows with tools like ffmpeg, as shown in the examples.
Requires cmake, Boost, and multiple audio libraries (e.g., libmad, libsndfile), with detailed OS-specific instructions that can be cumbersome for quick setup.
Focuses solely on waveform data and images, lacking support for other audio processing features like filtering, effects, or spectral analysis mentioned as beyond its scope.
The README admits that decoding long MP3 files directly to PNG can take significant time, suggesting inefficiencies for batch processing without intermediate .dat files.
:musical_keyboard: Making life easy to create a MIDI-app on the web. Includes a library to program synesthesia into your app for memory recognition or for creating trippy effects. Convert soundfonts for Guitar, Bass, Drums, ect. into code that can be read by the browser. Supports multiple simultaneous instruments and perfect timing.
Audio feature extraction for JavaScript.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.