pvswarp — Warp the spectral envelope of a PVS signal
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 (in Hz), values > 0 shift the envelope linearly upwards and values < 0 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 | |
---|---|
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. |
Here is an example of the pvswarp opcode. Play pvswarp.csd
Example 859. Example of the pvswarp opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform -odac ;;;realtime audio out ;-iadc ;;;uncomment -iadc if realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o pvswarp.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 kscal = p4 kshift = p5 asig soundin "fox.wav" ; get the signal in fsig pvsanal asig, 1024, 256, 1024, 1 ; analyse it ftps pvswarp fsig, kscal, kshift ; warp it atps pvsynth ftps ; synthesise it outs atps/2, atps/2 endin </CsInstruments> <CsScore> ;change scale i 1 0 3 1 i 1 + . 1.5 i 1 + . 3 i 1 + . .25 ;change shift i 1 + . 1 0 i 1 + . . 300 i 1 + . . 0 i 1 + . . -300 e </CsScore> </CsoundSynthesizer>
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).