aus 0.1.7

A library of audio processing tools
Documentation
# aus


[![](https://img.shields.io/crates/v/aus.svg)](https://crates.io/crates/aus)
[![](https://docs.rs/aus/badge.svg)](https://docs.rs/aus/)

This is a crate for audio processing and analysis in Rust, combining new functionality with aggregated functionality from other existing crates. For example, this crate provides wrappers for `rustfft`, allowing a FFT to be performed with a single function call. It also has a STFT/ISTFT function pair. It also has built-in window generation in the style of `numpy`. And there are implementations of spectral feature extraction, such as calculating spectral centroid, entropy, slope, etc.

## Primary Goals

- Abstraction of existing crates (`rustfft`, `symphonia`, `hound`, `fft-convolver`), allowing their functionality to be used with a simple function call or so.
- FFT functionality designed not just for analysis, but also for FFT modification and resynthesis, including STFT.
- Analysis tools that compute spectral and audio features for analysis and synthesis projects.
- Multithreaded tools for more efficient processing. At present, there is a multithreaded analyzer that allows spectral analysis data to be computed much more quickly for an entire audio file.
- Fast audio feature extraction in Rust, for speeding up Python libraries (e.g. https://github.com/fleximeter/aus-analyzer)

## Features

- Audio read/write using `symphonia` and `hound`. Reads multiple formats, but only writes to WAV.
- FFT processing courtesy of `rustfft`. Includes real FFT, inverse real FFT, real STFT, inverse real STFT, spectrum decomposition and recomposition.
- Spectral transformations (scrambling FFT bins and STFT frames, as well as spectral freeze). Includes a convenience wrapper for `fft-convolver`.
- Granular synthesis tools
- Tuning computation
- Basic audio manipulation (fade in/out, panning)
- Spectral analysis tools:
    - Alpha ratio
    - Hammarberg index
    - Harmonicity
    - Spectral centroid
    - Spectral difference
    - Spectral entropy
    - Spectral flux
    - Spectral flatness
    - Spectral kurtosis
    - Spectral roll-off-points
    - Spectral skewness
    - Spectral slope (including slope of sub-bands)
    - Spectral variance

## License

This crate is dual-licensed under the MIT and GPL 3.0 (or any later version) licenses. You can choose between one of them if you use this crate.

`SPDX-License-Identifier: MIT OR GPL-3.0-or-later`