pvsarp — Arpeggiate the spectral components of a streaming pv signal.
This opcode arpeggiates spectral components, by amplifying one bin and attenuating all the others around it. Used with an LFO it will provide a spectral arpeggiator similar to Trevor Wishart's CDP program specarp.
fsig -- output pv stream
fsigin -- input pv stream
kbin -- target bin, normalised 0 - 1 (0Hz - Nyquist).
kdepth -- depth of attenuation of surrounding bins
kgain -- gain boost applied to target bin
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 butterbp opcode. It uses the file pvsarp.csd. The example shows a spectral arpeggiator working in the 220.5 - 2425.5 range (sr=44100). The LFO outputs a positive-only signal, so its ftable will be defined in the 0 - 1 range (a hanning window can be used, for instance).
Example 346. Example of the pvsarp 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 ; Audio out Audio in No messages -odac -iadc ;;;-d RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o pvsarp.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 256 nchnls = 1 instr 1 asig in ; get the signal in idepth = p4 fsig pvsanal asig, 1024, 256, 1024, 1 ; analyse it kbin oscili 0.1, 0.5, 1 ; ftable 1 in the 0-1 range ftps pvsarp fsig, kbin+0.01, idepth, 2 ; arpeggiate it (range 220.5 - 2425.5) atps pvsynth ftps ; synthesise it out atps endin </CsInstruments> <CsScore> i 1 0 10 0.5 i 1 + 10 0.9 e </CsScore> </CsoundSynthesizer>