#filter #sound #fft #audio-processing

sys gaborator-sys

Rust API for Gaborator audio processing library

2 releases

0.1.1 Jan 14, 2021
0.1.0 Jan 14, 2021

#995 in Audio


Used in gaborator

AGPL-3.0

51KB
174 lines

gaborator-sys

Gaborator is a C++ library for converting audio samples to a special spectral representation that uses different FTT sizes based on whether it is bass or treble (oversimplifying here). The transformation is reversible. See the website for more info.

This crate is a cxx-based wrapper of this library, allowing Rust code to use Gaborator (although with reduced efficiency).

Limitations:

  • f32 only
  • Not performance-minded
  • Some overridable or low-level details not exposed
  • No visualisation
  • Crate soundness may be iffy - I was just followed the path of least resistance.
  • Arithmentic overflows in buffer length calculations are not checked.
  • Not really tested, apart from included examples. For example, streaming should be supported, but I haven't tried it myself.

Currently based on Gaborator version 1.6. Source code of the Gaborator is included into the crate.

Availble examples:

  • Phase information randomizer, creating sort-of-reverberation audio effect.
  • Converts the analyzed sound to (sample,band,magnitude,phase) CSV file and back.

License of Gaborator is Affero GPL 3.0.

Glue code (sans doccomments copied from Gaborator) in this crate may be considered to be licensed as either MIT or AGPL-3.0, at your option.

License: AGPL-3.0

Dependencies

~0.6–1.3MB
~27K SLoC