pvsvoc
Spectral Processing:Streaming
pvsvoc
pvsvoc
Combine the spectral envelope of one fsig with the excitation (frequencies) of another.
Description
This opcode provides support for cross-synthesis of amplitudes and frequencies. It takes
the amplitudes of one input fsig and combines with frequencies from another. It is a spectral
version of the well-known channel vocoder.
Syntax
fsig pvsvoc famp, fexc, kdepth, kgain
Performance
fsig -- output pv stream
famp -- input pv stream from which the amplitudes will be extracted
fexc -- input pv stream from which the frequencies will be taken
kdepth -- depth of effect, affecting how much of the frequencies will
be taken from the second fsig: 0, the output is the famp signal, 1 the output is the famp
amplitudes and fexc frequencies.
kgain -- gain boost/attenuation applied to the output.
It is unsafe to use the same f-variable for both input and output of pvs opcodes. Using the same one might lead to undefined behavior on some opcodes. Use a different one on the left and right sides of the opcode.
Examples
Example
asig in ; get the signal in
asyn oscili 16000, 150, 1 ; excitation signal
famp pvsanal asig, 1024, 256, 1024, 1 ; analyse in signal
fexc pvsanal asyn, 1024, 256, 1024, 1 ; analyse excitation signal
ftps pvsvoc famp, fexc, 1, 1 ; cross it
atps pvsynth ftps ; synthesise it
out atps
The example above shows a typical cross-synthesis operation. The input
signal (say a vocal sound) is used for its amplitude spectrum. An oscillator
with an arbitrary complex waveform produces the excitation signal, giving the
vocal sound its pitch.
Credits
Author: Victor Lazzarini;
April 2005
New plugin in version 5
April 2005.