Giter Club home page Giter Club logo

audio-visualizer's Introduction

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 + spectrum analysis
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.63.0 stable.

Troubleshooting

Linux

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

audio-visualizer's People

Contributors

phip1611 avatar nanai10a avatar dependabot[bot] avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.