13 releases
0.4.0 | Sep 21, 2023 |
---|---|
0.3.1 | Nov 15, 2021 |
0.2.4 | Sep 14, 2021 |
0.2.2 | Mar 28, 2021 |
0.1.4 | Mar 11, 2021 |
#399 in Audio
89 downloads per month
Used in 2 crates
76KB
1K
SLoC
Rust library: audio-visualizer
So far this library is rather basic and targets developers that develop audio algorithms. With this library you can easily display your current audio data/waveform/spectrum and check if everything looks good/as expected.
Covered Functionality
-
dynamic real-time audio
- functionality to record audio and connect it with a GUI window
- side-by-side (top/btm) view of original waveform and custom view (e.g. spectrum or lowpass filter)
- cross-platform (Windows with WASAPI, Linux with ALSA, MacOS with coreaudio)
-
static waveform
- very basic PNG output
- PNG output with basic axes/labels using https://crates.io/crates/plotters
- TODO fancy static output (code contributions are welcome)
-
static spectrum
- very basic PNG output with the option to highlight specific frequencies (definitely needs more work, code contributions are welcome)
- PNG output with basic axes/labels using https://crates.io/crates/plotters (definitely needs more work, code contributions are welcome)
- TODO fancy static output (code contributions are welcome)
(Code) Examples
There are several examples in the examples/
directory. Below, you can see some visualization examples.
Real-time audio + lowpass filter (6.9MB GIF)
On the top you see the original waveform of the song Holiday by Green Day. On the bottom you see the data after a
lowpass filter was applied. The beats are visible.
Real-time audio + frequency spectrum (5.4MB GIF)
On the top you see the original waveform of the song Holiday by Green Day. On the bottom you see
the frequency spectrum of the latest 46ms of audio. Frequencies <2000Hz are clearly present.
Example of a static waveform
Example of a static spectrum
MSRV
The MSRV is 1.63.0 stable.
Troubleshooting
Linux
- make sure to have these required packages installed:
sudo apt install libasound2-dev libxkbcommon-dev
Dependencies
~5–35MB
~525K SLoC