4 releases (2 breaking)

Uses old Rust 2015

0.3.2 Sep 15, 2017
0.2.2 Aug 19, 2017
0.2.0 Aug 18, 2017
0.1.0 Jun 17, 2017

#810 in Audio

Custom license

38KB
735 lines

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

Dependencies

~0–2.3MB
~60K SLoC