The
equivalent functions in Sound Designer II, ProTools and Peak are faster,
so in most cases you will want to use those. However, SoundHack will give
you an RMS value for the file, and will allow a different gain factor for
each channel. It will also work on floating point, ADPCM, and µLaw
files. Finally, it will allow you to correct for DC offset in your file.
Click on Analyze and the peak amplitude, peak position
(in samples), RMS values
and DC offset will be calculated. The gain factors will
be set to normalize both channels independently and the additional offsets
(a number between 1.0 and -1.0) will be set to correct the file. Change
Gain will create a new file adjusted by the gain factors set. If you
are dealing with a monaural file, only the channel 1 information is applicable.
Analyze will tie up your machine when it is doing its stuff, so
please be patient. I will fix this in a future version.
(This section of the manual is written by Larry Polansky.)
The seven different spectral mutation functions (USIM,
ISIM, IUIM, UUIM, LCM, LCM/IUIM, LCM/UUIM ) produce different types
of timbral "cross-fades." Each mutation takes 2 soundfiles: a source
and a target , and returns a third soundfile, called the mutant
. The mutation functions operate on the phase/amplitude pair of each frequency
band of the source and target spectra. The output of the functions is a
phase/amplitude pair for each frequency band in the mutant soundfile. Each
phase/amplitude pair in the mutant is some "combination" of the phase/amplitude
pairs of the source and target, for the corresponding frequency band. The
mutations work on the sign (Contour) or the magnitude of an interval, or
both. They change completely a selected number of bands from the source
to the target (Irregular) or partially change all frames (Uniform).
Type
The Type box allows you to select between seven
quite different mutation functions: USIM (Uniform Signed Interval
Mutation), ISIM(Irregular Signed), IUIM (Irregular Unsigned),
UUIM (Uniform Unsigned), LCM (Linear Contour Mutation), and
the concatenations LCM/IUIM and LCM/UUIM. (For specific definitions
of the functions, see below. For more information see the two articles
cited in the bibliography).
Try
starting with the simplest ones, the USIM (a simple spectral crossfade)
and the ISIM (a spectral replacement). These two mutations, unlike
the UUIM and LCM, actually arrive at the source or target,
depending on which direction you mutate (that is, you will actually hear
the source or target with * = 0.0 or * = 1.0, respectively). The IUIM,
UUIM and the LCM will, with * = 1.0, give an image of the
target. These "incomplete mutations" mutate either the sign or the magnitude,
but not both of the intervals between the amplitudes of successive spectral
bands.
The concatenations (LCM/IUIM, LCM/UUIM) are "pipes": they apply the second mutation to the output of the first. The concatenations are complementary: for each frame the LCM mutates sign while the IUIM and UUIM mutate magnitude. Different frequency bins are used for each "stage" of the concatenation, so the mutation trajectory can be rather unpredictable.
Mutation Index (*)
Each of the mutation functions uses an index,
called * (omega), or an *-function. This determines the amount of spectral
mix, from 0 to 1, between the source and target resulting in the mutant.
* = 0 results in all source file, * = 1 all target. * may vary over the
course of the mutation. A constant index will result in a sound which is
a spectral mix of the source and target. More dynamic sounds are produced
with an index function, which changes * over time.
Absolute Interval
There are two methods used by the mutation functions
to compute intervals between frequency bands: Absolute (the default)
and Relative. You may check or uncheck the Absolute Interval
box to get these two methods. If Absolute intervals are used, you may
specify an absolute amplitude value between 0.0 and 1.0 for the source
and target (Source Abs. Value, Target Abs. Value), from which all intervals
will be taken. The choice of values can produce interesting effects, often
"centering" the frequencies in which the mutation happens, making the mutations
themselves less extreme. If two different values are used, amplitudes will
be "transposed" from the source to the target. The use of Absolute intervals
rather than Relative will be most noticeable for the LCM, IUIM
and UUIM , as well as the concatenated mutations. Low values (around
.1 - .2) are a good place to start (note that .1 means 1/10th of the total
amplitude of the soundfile's spectra).
If Absolute is unchecked (Relative intervals), each mutation function uses amplitude intervals between successive frames of the spectra, multiplied by *, to create the corresponding frame of the mutant sound. Relative interval mutations will tend to "drift," often in extreme ways, and the ISIM and concatenated mutations may never "arrive." However, some very interesting sonic results may be produced in this way.
Delta Emphasis
If the mutation uses Relative Intervals (Absolute
Interval box unchecked), you can set a value for Delta Emphasis
(DE). DE allows control over the degree to which successive mutation intervals
are emphasized in the resulting mutant. DE values range from -1.0 to 1.0,
with the default at 0.0 (no emphasis or de-emphasis). For positive DE values,
the current frame's intervalic characteristics will be emphasized more
than the previous mutant frames. For negative values, the current frame
will be "damped," emphasizing the previous information. One way to think
about this is as a way of "slowing down" the mutation: a negative DE value
will keep the more chaotic mutations from getting "out of control." A negative
DE value will function as a low-pass filter, averaging the previous spectral
frames into the current output. Positive DE values will accentuate the
often high-frequency activity of the mutations. Delta Emphasis can
be useful in tailoring the relative interval mutations, especially the
"incomplete" ones.
Band Persist (Irregular Mutations Only)
Band Persist pertains only to irregular mutations,
the LCM , ISIM , IUIM and the concatenations (and
not to uniform mutations, the USIM and UUIM ). It will only
appear on the screen when irregular mutation is selected. High values for
Band Persist (towards 1.0) will produce more "stable" mutations.
Low values (towards 0.0) will introduce a kind of frequency pumping at
the frame rate. Try changing the number of bands for unusual results.
In irregular mutations, not every frequency band is mutated for each FFT frame. * determines the percentage of bands that are mutated for a given frame. If a band is mutated, it completely assumes the particular characteristic (interval sign or magnitude) of the target interval, and retains either the sign or the magnitude of the source interval. For example, the LCM takes the sign of the target interval, and "pastes" it onto the magnitude of the source. However, it only does that for (* * #-of-bands). The selection of which bands to mutate in irregular mutations is done stochastically, but setting Band Persist high will ensure that once a band is mutated, it will keep being mutated as long as possible. That is why a high value for Band Persist will stabilize these highly unusual mutations, making them a bit more "well-behaved." A good experiment is to try an irregular mutation (LCM , IUIM , ISIM , the concatenations) with a fixed , and two different values of Band Persist, one high and one low.
Time Scale Target
The form of the mutation functions used in SoundHack
require that each soundfile (source, target, mutant) be of equal length.
The default technique is to truncate the longer of the two files, producing
a mutant which is the length of the shorter file. If Time Scale Target
is checked, the target soundfile will be time-stretched or -compressed
to be of the same length as the source. Other techniques are of course
possible (including windowing and zero-padding), and we encourage other
software developers to investigate these.
Theoretical Descriptions of the Mutation Functions
The mutation functions can be classified as follows:
| Uniform | Sign | Magnitude | |
| USIM | yes | yes | yes |
| ISIM | no | yes | yes |
| UUIM | yes | no | yes |
| IUIM | no | no | yes |
| LCM | no | yes | no |
The USIM and the ISIM are the simplest mutations,
a spectral cross-fade and spectral band-replacement, respectively The UUIM
and the IUIM are two different ways of "pasting" the magnitude differences
of the target spectra onto the sign of the source, resulting in a mutant
which, when completely mutated, is still some combination of the source
and target. The LCM, perhaps the most unusual sounding and difficult
mutation to control, does the opposite, pasting the signs of the target
onto the magnitudes of the
source.
The functions are defined below. S and T are the source and target soundfiles. Si , Ti are the amplitudes for a given frequency band of the FFT for the ith frame of the sound. Sj , Tj are either the amplitudes of the same band in the previous frame (Relative Interval) or some absolute amplitude (Absolute Interval). Mi is the new amplitude of the given frequency band of the current frame of the output sound, Mj is the amplitude for that band in the previous frame of the output sound (Relative Interval), or some absolute amplitude value between 0.0 and 1.0 (Absolute Interval). Tint , Sint and Mint are the signed magnitude intervals between the amplitude of the current frame for a given band, and the amplitude of that band in the previous frame (Relative) or to some fixed amplitude (Absolute). Each of the equations below applies to one frequency band of the source, target and mutant soundfile spectra. In other words, for all of these functions, Si , Ti , and Mi run from 0 to the number of bands in the FFT.
||Si - Sj| = Smag - and - (|Si - Sj|)/(Si - Sj) = Ssgn
Uniform Signed Interval Magnitude (USIM)
Mi = Mj + (Sint) + *`*
(Tint - Sint)
- where Sint and Tint are (Ssgn * Smag)
and
(Tsgn * Tmag) respectively
Uniform Unsigned Interval Magnitude (UUIM)
Mi = Mj + Ssgn * (Smag +
* * |Tmag - Smag|)
Linear Contour Mutation (LCM)
Mi = Mj + Tsgn * Smag (for
mutated intervals)
Mi = Mj + Ssgn * Smag (general
form for non-mutated intervals)
Irregular Unsigned Interval Magnitude (IUIM)
Mi = Mj + Ssgn * Tmag
(for mutated intervals; non-mutated intervals same as LCM above)
Irregular Signed Interval Magnitude (ISIM)
Mi = Mj + Tsgn * Tmag
(for mutated intervals; non-mutated intervals same as LCM above)
Notes:
1) In Absolute Interval mutations, Mj, the absolute
amplitude to which the new interval is added, is interpolated between the
absolute values for source and target, according to the value for *.
2) The Irregular mutations are in two forms: one for
the case when that particular frequency band is chosen for mutation, one
for when it is not.
More Information and Acknowledgments
For more on morphological mutations, including their
use in other contexts, please contact Larry Polansky at Dartmouth College,
Bregman Electro-Acoustic Music Studio, Music Dept., Hanover, NH 03755,
email: larry.polansky@dartmouth.edu. Various students at Dartmouth, including
Chris Langmead, Eric Smith, Steve Berkley and Martin McKinney have provided
invaluable assistance over the past few years in helping me to formulate
both the spectral mutation ideas and accompanying software techniques.
Ken Overton, Sergei Kossenko, and Chris Langmead all contributed valuable
suggestions to this documentation.