#audio #visualizer #waveform #spectrum

bin+lib audio-visualizer

Smple audio visualization library which is especially useful for developers to visually check audio samples, e.g. by waveform or spectrum. (So far) this library is not capable of doing nice visualizations for end users.

12 releases

Uses new Rust 2021

0.3.1 Nov 15, 2021
0.3.0 Nov 13, 2021
0.2.4 Sep 14, 2021
0.2.2 Mar 28, 2021
0.1.4 Mar 11, 2021

#166 in Audio

Download history 32/week @ 2022-10-08 14/week @ 2022-10-15 18/week @ 2022-10-22 30/week @ 2022-10-29 52/week @ 2022-11-05 24/week @ 2022-11-12 24/week @ 2022-11-19 13/week @ 2022-11-26 14/week @ 2022-12-03 20/week @ 2022-12-10 64/week @ 2022-12-17 18/week @ 2022-12-24 14/week @ 2022-12-31 18/week @ 2023-01-07 14/week @ 2023-01-14 24/week @ 2023-01-21

71 downloads per month
Used in 2 crates

MIT license

74KB
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

  • 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)

Example visualization of real-time audio + lowpass filter
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)

Example visualization of real-time audio + lowpass filter
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 visualization of a waveform

Example of a static spectrum

Example visualization of a spectrum (0-140hz)

MSRV

The MSRV is 1.56.1 stable.

Troubleshooting

Linux

  • make sure to have these required packages installed: sudo apt install libasound2-dev libxkbcommon-dev

Dependencies

~2.5–6MB
~128K SLoC