pvsfreeze — Freeze the amplitude and frequency time functions of a pv stream according to a control-rate trigger.
This opcodes 'freezes' the evolution of pvs stream by locking into steady amplitude and/or frequency values for each bin. The freezing is controlled, independently for amplitudes and frequencies, by a control-rate trigger, which switches the freezing 'on' if equal to or above 1 and 'off' if below 1.
fsig -- output pv stream
fsigin -- input pv stream.
kfreeza -- freezing switch for amplitudes. Freezing is on if above or equal to 1 and off if below 1.
kfcf -- freezing switch for frequencies. Freezing is on if above or equal to 1 and off if below 1.
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. |
Example 692. Example
asig in ; input ktrig oscil 1.5, 0.25, 1 ; trigger fim pvsanal asig1, 1024, 256, 1024, 0 ; pvoc analysis fou pvsfreeze fim, abs(ktrig), abs(ktrig) ; regular 'freeze' of spectra aout pvsynth fou ; pvoc synthesis
In the example above the input signal will be regularly 'frozen' for a short while, as the trigger rises above 1 about every two seconds.
Here is an example of the use of the pvsfreeze opcode. It uses the file pvsfreeze.csd.
Example 693. Example of the pvsfreeze opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> -odac </CsOptions> <CsInstruments> sr = 44100 ksmps = 16 nchnls = 1 0dbfs = 1 ;; example written by joachim heintz 2009 seed 0 instr 1 ifftsize = 1024 ioverlap = ifftsize / 4 iwinsize = ifftsize iwinshape = 1; von-Hann window Sfile1 = "fox.wav" ain soundin Sfile1 kfreq randomh .7, 1.1, 3; probability of freezing freqs: 1/4 kamp randomh .7, 1.1, 3; idem for amplitudes fftin pvsanal ain, ifftsize, ioverlap, iwinsize, iwinshape; fft-analysis of file freeze pvsfreeze fftin, kamp, kfreq; freeze amps or freqs independently aout pvsynth freeze; resynthesize out aout endin </CsInstruments> <CsScore> r 10 i 1 0 2.757 e </CsScore> </CsoundSynthesizer>