The Analysis & Resynthesis Sound Spectrograph

The Analysis & Resynthesis Sound Spectrograph is a program that analyses a sound file into a spectrogram.
Download

The Analysis & Resynthesis Sound Spectrograph Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • Michel Rouzic
  • Publisher web site:

The Analysis & Resynthesis Sound Spectrograph Tags


The Analysis & Resynthesis Sound Spectrograph Description

The Analysis & Resynthesis Sound Spectrograph is a program that analyses a sound file into a spectrogram. The Analysis & Resynthesis Sound Spectrograph, also known as ARSS, is a program that analyses a sound file into a spectrogram and is able to synthetise this spectrogram, or any other user-created image, back into a sound.The ARSS consists in two main parts, a spectrographer with a base-2 logarithmic frequency scale, and a spectrogram synthetiser.Unlike most spectrographers which are based on STFTs and 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.The filter bank is, as of now, made up with overlapping bandpass FIR filters defined logarithmically. Once the original signal is filtered with the filter bank, each resulting signal is sent to envelope detection.Envelope detection in the ARSS isn't based on a Hilbert transform and peak detection, as it's usually done. To achieve envelope detection, we first perform a FFT on the signal, zero-pad the beginning of the signal in the frequency domain according to a user-defined setting, then we perform an IFFT, and, now in the time domain, we turn every negative sample into a positive one, and we low-pass filter (and eventually decimate) the signal according to the same user-defined setting as we previously used.For instance, let's say we have a signal with a sampling frequency of 44,100 Hz, and that we want to obtain an envelope for it which sampling frequency would be 100 Hz. Once we perform the FFT, we add enough zeroes in the frequency domain at the beginning of our signal so that every frequency component shifts by 50 Hz (100 Hz divided by two, it will later appear obvious why), and we perform an IFFT. Our signal now has a sampling frequency of 44,200 Hz (44,100 + 100 Hz), and the original signal which previously spanned from 0 Hz to 22,050 Hz now spans from 50 Hz to 22,100 Hz.Now we turn every time-domain sample into its absolute value by turning every negative sample into a positive one. To perform this on a signal means that, for example, a sine wave of a certain frequency would become a signal which periodicity would be twice that frequency. Once we low-pass filter that signal to twice that frequency we obtain that signal's envelope. In our case, now that we have obtained the absolute values for our signal, since the periodicity of a sine at the lowest frequency - 50 Hz - would now be 100 Hz, we only low-pass filter our signal at 100 Hz to obtain the original signal's envelope. We can now decimate the signal to a sample rate of 100 Hz.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 synthetiser 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 synthetisation mode chosen by the user, sines matching to the central frequency each horizontal line represents, or noise filtered through the filter bank.What's New in This Release:· Fixed the logarithmic base system so that it produces the expected results when using a different base than 2· Implemented linear frequency scaling· Fixed the volume of noise bands in noise synthesis, although it may not be perfect and may be way off for logarithmical bases other than 2 and linear frequency scale· Implemented bounds checking when reading and writing in the lower and upper frequencies· Fixed the brightness setting input which would only take integer values· Added a bit more information on the progress display line


The Analysis & Resynthesis Sound Spectrograph Related Software