QUICK-REF - CsoundManual - Top of this section - Previous - Contents - Index - Next 

grain

      
ar  grain   xamp, xpitch, xdens, kampoff, kpitchoff, kgdur, igfn,\
                 iwfn, imgdur [, igrnd]

DESCRIPTION

Generates granular synthesis textures.

INITIALIZATION

igfn - The ftable number of the grain waveform. This can be just a sine wave or a sampled sound.

igwn - Ftable number of the amplitude envelope used for the grains (see also GEN20).

imgdur - Maximum grain duration in seconds. This the biggest value to be assigned to kgdur.

igrn - (optional) if non-zero, turns off grain offset randomness. This means that all grains will begin reading from the beginning of the igfn table. If zero (the default), grains will start reading from random iwfn table positions.

PERFORMANCE

xamp - Amplitude of each grain.

xpitch - Grain pitch. To use the original frequency of the input sound, use the formula:


        sndsr / ftlen(igfn


        where sndsr is the original sample rate of the igfn sound.

xdens - Density of grains measured in grains per second. If this is constant then the output is synchronous granular synthesis, very similar to fof. If xdens has a random element (like added noise), then the result is more like asynchronous granular synthesis.

kampoff - Maximum amplitude deviation from kamp. This means that the maximum amplitude a grain can have is kamp + kampoff and the minimum is kamp. If kampoff is set to zero then there is no random amplitude for each grain.

kpitchoff - Maximum pitch deviation from kpitch in cps. Similar to kampoff.

kgdur - Grain duration in seconds. The maximum value for this should be declared in imgdur. If kgdur at any point becomes greater than imgdur, it will be truncated to imgdur.

EXAMPLE:

A texture with gradually shorter grains and wider amp and pitch spread

;;;;;;;;;;;;;;; graintest.orc

instr 1
    insnd = 10
    ibasfrq = 32000 / ftlen(insnd)   ; Use original sample rate of insnd file
    kamp   expseg     8000, p3/2, 8000, p3/2, 16000
    kpitch line     ibasfrq, p3, ibasfrq * .8
    kdens  line     600, p3, 200
    kaoff  line     0, p3, 5000
    kpoff  line     0, p3, ibasfrq * .5
    kgdur  line     .4, p3, .1
    imaxgdur =      .5
    ar  grain kamp, kpitch, kdens, kaoff, kpoff, kgdur, insnd, 5, imaxgdur, 0.0
       out ar
endin

;;;;;;;;;;;;;;; graintest.sco

f5  0 512  20 2                  ; Hanning window
f10 0 65536 1  "Sound.wav" 0 0 0

i1 0 10
e
 

AUTHOR:

Paris Smaragdis
MIT
May 1997


QUICK-REF - CsoundManual - Top of this section - Previous - Contents - Index - Next 
HTML Csound Manual - © Jean Piché & Peter J. Nix, 1994-97