Csound

OPCODE GUIDE: ADVANCED SIGNAL PROCESSING

 

  • MODULATION AND DISTORTION

    • Frequency Modulation

      foscil and foscili implement composite units for FM in the Chowning setup.

      crossfm, crossfmi, crosspm, crosspmi, crossfmpm and crossfmpmi are different units for frequency and/or phase modulation.

    • Distortion And Wave Shaping

      distort and distort1 perform waveshaping by a function table (distort) or by modified hyperbolic tangent distortion (distort1).

      powershape waveshapes a signal by raising it to a variable exponent.

      polynomial efficiently evaluates a polynomial of arbitrary order.

      chebyshevpoly efficiently evaluates the sum of Chebyshev polynomials of arbitrary order.

      GEN03, GEN13, GEN14 and GEN15 are also used for Waveshaping.
    • Flanging, Phasing, Phase Shaping

      flanger implements a user controllable flanger.

      harmon analyzes an audio input and generates harmonizing voices in synchrony.

      phaser1 and phaser2 implement first- or second-order allpass filters arranged in a series.

      pdclip, pdhalf and pdhalfy are useful for phase distortion synthesis.
    • Doppler Shift

      doppler lets you calculate the doppler shift depending on the position of the sound source and the microphone.

  • GRANULAR SYNTHESIS

    partikkel is the most flexible opcode for granular synthesis. You should be able to do everything you like in this field. The only drawback is the large number of input arguments, so you may want to use other opcodes for certain purposes.

    You can find a list of other relevant opcodes here

    sndwarp focusses granular synthesis on time stretching and/or pitch modifications. Compare waveset and the pvs-opcodes pvsfread, pvsdiskin, pvscale, pvshift for other implementations of time and/or pitch modifications.

  • CONVOLUTION

    pconvolve performs convolution based on a uniformly partitioned overlap-save algorithm.

    ftconv is similar to pconvolve, but you can also use parts of the impulse response file, instead of reading the whole file.

    dconv performs direct convolution. 
  • FFT AND SPECTRAL PROCESSING

    • Realtime Analysis And Resynthesis

      pvsanal performs a Fast Fourier Transformation of an audio stream (a-signal) and stores the result in an f-variable.

      pvstanal creates an f-signal directly from a sound file which is stored in a function table (usually via GEN01). 

      pvsynth performs an Inverse FFT (takes a f-signal and returns an audio-signal).

      pvsadsyn is similar to pvsynth, but resynthesizes with a bank of oscillators, instead of direct IFFT.

    • Writing FFT Data To A File And Reading From It

      pvsfwrite writes an f-signal (= the FFT data) from inside Csound to a file. This file has the PVOCEX format and its name ends on .pvx.

      pvanal does actually the same as Csound Utility (a seperate program which can be called in QuteCsound or via the Terminal). In this case, the input is an audio file.

      pvsfread reads the FFT data from an extisting .pvx file. This file can be generated by the Csound Utility pvanal. Reading the file is done by a time pointer.

      pvsdiskin is similar to pvsfread, but reading is done by a speed argument.

    • Writing FFT Data To A Buffer And Reading From It 

      pvsbuffer writes a f-signal to a circular buffer (and creates it).

      pvsbufread reads a f-signal from a buffer which was created by pvsbuffer.

      pvsftw writes amplitude and/or frequency data from a f-signal to a function table.

      pvsftr transforms amplitude and/or frequency data from a function table to a f-signal.

    • FFT Info 

      pvsinfo gets info either from a realtime f-signal or from a .pvx file.

      pvsbin gets the amplitude and frequency values from a single bin of a f-signal.

      pvscent calculates the spectral centroid of a signal.

    • Manipulating FFT Signals 

      pvscale transposes the frequency components of a f-stream by simple multiplication.

      pvshift changes the frequency components of a f-stream by adding a shift value, starting at a certain bin.

      pvsbandp and pvsbandr applies a band pass and band reject filter to the frequency components of a f-signal.

      pvsmix, pvscross, pvsfilter, pvsvoc and pvsmorph perform different methods of cross synthesis between two f-signals.

      pvsfreeze freezes the amplitude and/or frequency of a f-signal according to a k-rate trigger.

      pvsmaska, pvsblur, pvstencil, pvsarp, pvsmooth perform other manipulations on a stream of FFT data.

  • PHYSICAL MODELS AND FM INSTRUMENTS

    • Waveguide Physical Modelling

      see here  and here 

    • FM Instrument Models

      see here   

 



your comment:
name :
comment :

If you can't read the word, click here
word :