waveform 0.3.2

Audio waveform image renderers
Documentation

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