museumsvictoria / spatial_audio_server

An audio backend for the multi-layered soundscape of Beyond Perception: Seeing the Unseen, a permanent exhibition at Scienceworks in Melbourne, Australia.
81 stars 14 forks source link

Integrate FFT analysis for all output channels and include data in OSC #49

Closed mitchmindtree closed 6 years ago

mitchmindtree commented 6 years ago

This commit integrates the RustFFT crate for performing a pure rust fast fourier transform for audio analysis. As the RustFFT crate is not audio-specific, this adds a new fft module for mapping audio samples to complex numbers for the FFT input and for decoding the output complex numbers into frequency amplitudes for each bin. It also provides functions for mapping peaks from linearly divided frequency bins to bins divided via Mel-frequencies. This means the resulting frequency bins should better match human perception of frequency differences.

Each computer listed for each installation will now receive the average peak, RMS, 3-band (low-mid-high) and 8-band fourier transform for plugging into visualisations. They also continue to receive the peak and RMS per-speaker in the installation. This should complete the OSC output data story for the exhibition.

Closes #12. Closes #13.

Also adds a logarithmic sine wave sweep WAV which was used to test the fourier transform implementation.