pvscale
Spectral Processing:Streaming
pvscale
pvscale
Scale the frequency components of a pv stream.
Description
Scale the frequency components of a pv stream, resulting
in pitch shift. Output amplitudes can be optionally modified in order
to attempt formant preservation.
Syntax
fsig pvscale fsigin, kscal[, ikeepform, igain]]
Performance
fsig -- output pv stream
fsigin -- input pv stream
kscal -- scaling ratio.
ikeepform -- attempt to keep input signal --
-- formants; 0: do not keep formants;
1: keep formants by imposing original
amps; 2: keep formants by filtering
using the original spec envelope
(defaults to 0).
igain -- amplitude scaling (defaults to 1).
The quality of the pitch shift will be improved with the use of a
Hanning window in the pvoc analysis. Formant preservation is only
successful with strong-formant sounds, such as voices and certain
instrumental sounds, but also can be used for intersting
transformation effects.
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
fsig pvsanal asig, 1024, 256, 1024, 1 ; analyse it
ftps pvscale fsig, 1.5, 1, 2 ; transpose it keeping formants
atps pvsynth ftps ; synthesise it
adp delayr .1 ; delay original signal
adel deltapn 1024 ; by 1024 samples
delayw asig
out atps+adel ; add tranposed and original
The example above shows a vocal harmoniser. The delay is necessary to
time-align the signals, as the analysis-synthesis process will imply a
delay of 1024 samples between the analysis input and the synthesis output.
Credits
Author: Victor Lazzarini;
November 2004
New plugin in version 5
November 2004.