# waveform
[crates.io](https://crates.io/crates/waveform), [Documentation](https://docs.rs/waveform/) [](https://travis-ci.org/tdgne/waveform-rs)
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)
* `RGBA` 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
```sh
# Demonstrates rendering using a single BinnedWaveformRenderer.
cargo run --features "example-gui" --example binned
```
```sh
# The same but by using a MultiWaveformRenderer, which is
# a combination of multiple BinnedWaveformRenderers.
cargo run --features "example-gui" --example multi
```
