„waveform“ is a commandline utility for GNU/Linux, written in C, that takes a constant-bitrate (CBR) encoded MP3 file as input and generates waveform diagrams like this:
git clone https://gitlab.tk-sls.de/tilman/waveform.git
Browse sources: https://gitlab.tk-sls.de/tilman/waveform/tree/master
My use case is to generate waveform bitmaps that can be used in the MyPlayer GUI to navigate through an MP3 more easily. The utility should reside on the webserver and generate waveform diagrams for MP3s as they are uploaded.
Some important things still need to be done:
- Drawing algorithm: Apply an interpolation that renders a more realistic approximation.
- Testing: For example with very long MP3s or different coding settings such as VBR.
- Input formats: Support more audio formats (notably OGG Vorbis). Support VBR and JointStereo.
- Output formats: Save the output image as b/w PNG (should be more efficient).
But it works, and I intend to integrate it into MyPlayer as soon as possible. Dependencies are kind of lightweight (libmpeg3, GD2). Debian GNU/Linux packaging („wheezy“) is underway, too.