pvsarp
Prev | Orchestra Opcodes and Operators | Next

## pvsarp

pvsarp — Arpeggiate the spectral components of a streaming pv signal.

## Description

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.

## Syntax

    fsig pvsarp fsigin, kbin, kdepth, kgain

## Performance

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.

## Examples

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

Example 776. 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
    ksmps = 100
    nchnls = 1
    0dbfs = 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>
    f 1 0 4096 10 1 ;sine wave

    i 1 0 10 0.9
    i 1 + 10 0.5
    e

    </CsScore>
    </CsoundSynthesizer>

Here is another example of the pvsarp opcode. It uses the file pvsarp2.csd

Example 777. 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
    -odac    ;;;RT audio I/O
    ; For Non-realtime ouput leave only the line below:
    ; -o pvsarp2.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 16
    nchnls = 1
    0dbfs = 1

    ;; example written by joachim heintz 2009

    instr 1
    ifftsize	=		1024
    ioverlap	=		ifftsize / 4
    iwinsize	=		ifftsize
    iwinshape	=		1; von-Hann window
    Sfile1		=		"fox.wav"
    ain1		soundin	Sfile1
    fftin		pvsanal	ain1, ifftsize, ioverlap, iwinsize, iwinshape
      ;make 3 independently moving accentuations in the spectrum
    kbin1		linseg		0.05, p3/2, .05, p3/2, .05
    farp1		pvsarp		fftin, kbin1, .9, 10
    kbin2		linseg		0.075, p3/2, .1, p3/2, .075
    farp2		pvsarp		fftin, kbin2, .9, 10
    kbin3		linseg		0.02, p3/2, .03, p3/2, .04
    farp3		pvsarp		fftin, kbin3, .9, 10
      ;resynthesize and add them
    aout1		pvsynth	farp1
    aout2		pvsynth	farp2
    aout3		pvsynth	farp3
    aout		=		aout1*.3 + aout2*.3 + aout3*.3
    		out		aout
    endin

    </CsInstruments>
    <CsScore>
    i 1 0 3
    e
    </CsScore>
    </CsoundSynthesizer>

## See Also

pvsanal, pvsynth, pvsadsyn

## Credits

Author: Victor Lazzarini
April 2005

New plugin in version 5

April 2005.

Prev | Up | Next
pvsanal | Home | pvsbandp