Skip to content

Audio waveform image renderers for Rust

License

Notifications You must be signed in to change notification settings

iluvcapra/waveform-rs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

waveform

crates.io docs.rs Build Status

waveform is a set of waveform image renderers written in Rust.

It is speed-oriented for heavy use.

Features

  • Generation of bicolored raster images (outputs are either returned as Vec<u8>s or written into a slice)
    • RGB (Vector3) or RGBA (Vector4) format images
    • Gray scale (Scalar) images for use as masks etc.
  • Fast rendering from binned min/max amplitudes
  • Multilevel binning for rendering in various resolutions
  • Time-range specification in either seconds (f64) or samples (usize)

Some TODOs

  • Cached rendering
  • Guarantee thread safety (it probably is...)
  • Memory/time optimizations

Requests and contributions are welcome!

Screenshot

# Demonstrates rendering using a single BinnedWaveformRenderer.
cargo run --features "example-gui" --example binned
# The same but by using a MultiWaveformRenderer, which is
# a combination of multiple BinnedWaveformRenderers.
cargo run --features "example-gui" --example multi

examples/waveform.rs

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Audio waveform image renderers for Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%