ï~~Proceedings of the International Computer Music Conference 2011, University of Huddersfield, UK, 31 July - 5 August 2011
discontinuous and is only sampled at the beginning of
each beat clock (length sampled = voices/stretch x beat
length). Each input segment is enveloped with a stretched
raised cosine function to minimize glitches. With this
method, even large time stretch values can be used, and
the characteristic sound of the phase vocoder time stretch
can be applied to live input signals.
The +spiralstretch plugin also implements a
granular time stretch algorithm, which can be used as an
alternate to the phase vocoder method, but this is not
within the scope of this article.
5. PHASE MODULATION TRICKS
Figure 3. +phasemash user interface.
The plugin +phasemash is a collection of simple
transformations to phase difference and band assignment.
Most of these filters in this plugin have been developed
over the years as class demonstrations on the effect of
phase modulation in the phase vocoder. None would be
difficult to recreate in Max or PD. The number of bands
has a dramatic difference on all of the +phasemash
processes. Large number of bands narrow the bandwidth
and also increase the number of samples processed in
each block, which increases the possible effect on phase.
single sideband ring modulation frequency shifting.
Phase nulling decreases the phase change between
blocks, and when at 100% completely removes all phase
change information, locking all harmonics to the lowest
band of the phase vocoder(N x bands/Nyquist rate). This
results in a typically harmonized or severely comb
filtered sound.
The phase noise control adds a random number to
the phase change, in effect treating the entire sound as a
residual signal. This effect is very effective at either
removing pitch from a sound at a low band setting, or
adding a scrambled ambiance when the number of bands
is large. As phase is cumulative, a phase reset button is
provided to reset the phase to the source signal.
All of these transformations are mathematically
simple, and have little to do with natural acoustics, but
together in one interface give a wide variety of frequency
and phase distortion effects.
6. FUTURE DIRECTIONS
The plugins in the Pvoc Kit contain some novel and
musically useful applications of the phase vocoder
algorithm. However, there are obvious directions for
further development of other new processes.
In pitch shifting more could be done with other
types of pitch sieves. Also, a compositional algorithm
could intelligently control the sifting process. Finally, a
cross-synthesis technique could be developed which
analyzes two live signals and uses one sound's harmonics
as a pitch sieve for the other.
In time stretching, as mentioned earlier, having
new notes initiate new layers or some other performer
control of the layer initiation (as simple as a pedal or
switch) could be very useful. In addition, as one of the
main uses of this layered time stretching will probably
be to create large masses of ambiance, a feedback or
regeneration path would add greatly to this [9].
Finally, as this work was focused on developing
new applications of the phase vocoder, not as much
attention was given to the underlying phase vocoder
engine. Enhancements such as phase-locking [4][8] and
multiresolution peak-picking [3] would make obvious
improvements to the overall quality of sound.
7. REFERENCES
[1] Bogaards, N., R6bel, A. and Rodet, X. "Sound
Analysis and Processing with AudioSculpt 2."
Proceedings of the International Computer Music
Conference, Miami, USA. 2004.
amplitude phase - - - - - -.
- sig2spect Ziff
phase shift phase null phase noise band shift
Figure 3. +phasemash block diagram.
Band shifting is the simple reassignment of phase
and amplitude from one band to another. An increment is
added to each band number with bands wrapping aroundit
the top and bottom. This provides a positive or negative
frequency shift that is somewhat complicated by the
wrapped bands. Phase shifting adds a static offsetfrom -t
to m to the phase change between blocks. This also gives
a linear frequency shift, but with phase cancellation
resulting when adding phase offsets near to m or -in. Both
of these methods are nice alternatives to the typical
145