If you have any comments on Mammut, send a mail to
Mammut is started with the command "mammut". An empty
window will appear with a menu bar at the top.
Select "Load & Analyze" in the "File" menu, and select a sound file.
Mammut accepts files in AIFF or AIFC format, any sampling rate, mono or stereo.
The sound will then be zero-padded at the end, to achieve an FFT size which
is a power of 2.
The analysis will be stored in memory. This means that there is a limit on the
size of the sound file, because the analysis data size will be huge. If
the program crashes for sounds shorter than 30 seconds at 44.1 kHz sampling
frequency, your computer has a too small swap space anyway, and your swap space
should be increased. A spectrogram is then drawn.
You may now use the options in the "Transform" menu to change the spectral
data, as described below.
To hear the result, you must resynthesize the sound with the "Synth & Save"
button in the "File" menu, and then play the sound by pressing 'p'.
In the "Settings->Analysis" dialogue, you may select a number of duration
doublings in order to zero-pad your sound to progressively higher powers
of 2. This may be useful to increase the duration of silence at the end
of a sound. Some transforms may insert interesting sound in this region.
You will have to run a new analysis after this value has been changed.
CAREFUL! A duration doubling of 3 means that your sound will get 8 times
longer. Processing time will increase even more.
You can choose between four different multiplication algorithms:
Due to the zero padding, Mammut may produce soundfiles which have
a long tail of silence or humming. You should cut this away in a sound
editor.
Mammut doesn't like sounds with DC or other subsonic components. Many
transforms will move these frequencies up into the audible range,
producing annoying tones. You may therefore want to remove all
frequencies from say 0 to 60 Hz using the Filter function before
other transforms are applied.
PLEASE NOTE: You must have a certain attitude when using this
program. Use it experimentally, by ear. Do not try to understand what
happens - even the programmer can't explain it in many cases.
1. Introduction
Mammut will FFT your sound in one single gigantic analysis (no windows).
These spectral data, where the development in time is incorporated in
mysterious ways, may then be transformed by different algorithms prior to
resynthesis. An interesting aspect of Mammut is its completely
non-intuitive sound transformation approach.
2. Transforms
Stretch
All frequencies will be raised to the power of the exponent you
specify, and the frequency axis is then re-normalized. This is
a non-linear stretching of the frequency axis. Values close to
1 (0.9-1.1) are recommended. This transform will produce dispersion
effects, with frequency sweeps.
Wobble
This transform will alternately stretch and contract the frequency axis using
a sinusoidal transfer function for the frequencies.
The Frequency parameter controls the number of periods of the
transfer function from 0 Hz to the Nyquist frequency, while Amplitude
controls its amplitude (1 is the entire frequency axis).
Multiply phase
Multiply all phases with the value you specify. A value of -1 will reverse
the sound.
Derivate amp
Replaces the amplitude spectrum with its derivative (slope). You may
specify a gain factor.
Filter
Optimal bandstop filter. The ultimate in cut-off performance!
Invert blocks
Splits the spectrum into regions with specified size, and turns each
of these backwards. If you select a region size of 100%, the entire
spectrum will be mirrored around its center. Also, the result is complex
conjugated to avoid reversal of the sound.
Threshold
Removes all partials below a given amplitude threshold.
Spectrum shift
Optimal spectrum shift, with no window artefacts. The frequency you
specify (positive or negative) will be added to all frequency values,
shifting the spectrum up or down.
Block swap
Selects randomly positioned regions of the spectrum, and interchanges
their halves. The Block size parameter sets the size of
the blocks, given in percents of the whole frequency axis. This procedure
is repeated a number of times, as specified, thus permutating the partials.
Mirror
Reflects the whole spectrum around the frequency you specify.
Amplitude->phase
The phases of the partials are set to their respective amplitudes, after
a specified gain multiplication. Rather useless.
Gain
A highly useful function, because many of the transforms will
change the gain and the spectrum may have to be re-scaled manually.
3. Load & Multiply
This function, in the File menu, is used for different kinds of spectral
multiplication (cross-synthesis). First, "Load & Analyze" the longest
sound. Then, "Load & Multiply" with the shortest sound.
4. Stereo
These transforms are only available when a stereo soundfile has been
analyzed.Swap phases
The phases, but not the amplitudes, are interchanged between the two channels.
Crossover
Swaps blocks between the two channels. The probability, for each frequency
bin, that the program will switch between swapping and non-swapping mode
as it runs through all the bins, must be specified. Small probability means
that large blocks are swapped (or kept).
5. Tricks
You can zoom the display in and out using the '+' and '-' keys.
Move left and right with the '<' and '>' keys.6. A final word
The general idea (and the name "mammoth FFT") was conceived by the
Swedish composer Paul Pignon many years ago.
FTP
The latest version of Mammut is available by anonymous FTP from
ftp://notam.uio.no/pub/sgi/mammut.tar.gz/