The ARSS

Main Page | Download | Code | Examples | Documentation | MFAQ | Roadmap


About

The Analysis & Resynthesis Sound Spectrograph (formerly known as the Analysis & Reconstruction Sound Engine), or ARSS, is a program that analyses a sound file into a spectrogram and is able to synthesise this spectrogram, or any other user-created image, back into a sound.


News

May 30th, 2008 : The ARSS 0.2.3 released. Changes since version 0.2.2 :

Knows bugs as of version 0.2.3 :

May 9th, 2008 : The ARSS 0.2.2 released. Changed the formula used in the filtering function which reduces the visible time domain ripples which can mainly be seen on the lower part of spectrograms, hence increasing the quality of produced spectrograms.

May 5th, 2008 : The ARSS version 0.2 (final version) has just been released. It's the first feature-complete version since 0.1, which means noise synthesis is back in a rewritten and faster form, although not yet as fast as I'm working to make it. Here's a list of significant changes since the previous release :

I also added a Documentation section. As of now it covers the basics of using the ARSS. More in-depth documentation and tutorials will eventually appear there.

I would also enjoy it very much if a Mac OS X user could send me a statically linked Universal binary of the latest version of the ARSS, using something like 'gcc *.c -o arss -arch i386 -arch ppc -static -lm -lfftw3 -O2', as it would save the trouble to every other Mac OS X user of having to compile themselves.


Technical Description

The ARSS consists in two main parts, a spectrograph with a base-2 logarithmic frequency scale, and a spectrogram synthesiser.

Unlike most spectrographs which are based on STFTs (which perform the analysis by cutting the signal into small time slices to analyse these slices in the frequency domain), the ARSS is based on a filter bank followed by envelope detection, which means that the signal is cut into small frequency-domain slices, and then analysed in the time domain, in a manner quite similar to how analog spectrographs do.

The filter bank is, as of now, made up with overlapping logarithmic-scale frequency-domain Hann windows. Once the original signal is filtered with the filter bank, each resulting signal is sent to envelope detection. The technique used for envelope detection consists in obtaining the magnitude of the analytic signal. The resulting envelope for each frequency band makes the horizontal lines of the image representing the spectrogram. The amplitude of the envelopes translate linearly into intensity in the image.

The spectrogram synthesiser is based on modulation using horizontal lines of the image as envelopes. Each horizontal line is upsampled to the sampling rate of the desired final signal's sampling rate, and is then modulated with, depending on the synthesis mode chosen by the user, sines matching to the central frequency each horizontal line represents, or noise filtered through the filter bank.


This site is under construction. Last updated on July 24th, 2008
©2007-2008 Michel Rouzic