pvswarp

pvswarp — Warp the spectral envelope of a PVS signal

Description

Warp the spectral envelope of a PVS signal by means of shifting and scaling.

Syntax

fsig pvswarp fsigin, kscal, kshift[, klowest, kmeth, kgain, kcoefs]

Performance

fsig -- output pv stream

fsigin -- input pv stream

kscal -- spectral envelope scaling ratio. Values > 1 stretch the envelope and < 1 compress it.

kshift -- spectral envelope shift, values > 0 shift the envelope linearly upwards and values < 1 shift it downwards.

klowest -- lowest frequency shifted (affects only kshift, defaults to 0).

kmethod -- spectral envelope extraction method 1: liftered cepstrum method; 2: true envelope method (defaults to 1).

kgain -- amplitude scaling (defaults to 1).

kcoefs -- number of cepstrum coefs used in formant preservation (defaults to 80).

[Warning] Warning

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 489. Example

asig  in                                 ; get the signal in

fsig  pvsanal   asig, 1024, 256, 1024, 1 ; analyse it
ftps  pvswarp   fsig, 1.5, 0             ; warp it
atps  pvsynth  ftps                      ; synthesise it

       out atps                     


The example above shows a spectral envelope warper, scaling the freq envelope by 1.5. Used with vocal sounds, it will shift the formants and result in a changed vowel timbre, similar to the effect of a singer inhaling helium (the 'donald duck' effect).

Here is an example of the use of the pvswarp opcode. It uses the file pvswarp.csd.

See Also

pvsanal, pvsynth, pvsadsyn

Credits

Author: Victor Lazzarini
November 2004

New plugin in version 5

November 2004.