csound-expression-0.0.2: Csound combinator library

CsoundExpr.Opcodes.Siggen.Granular

Description

Granular Synthesis

Synopsis

Documentation

diskgrain :: (K k0, K k1, K k2, K k3, K k4) => [Irate] -> String -> k0 -> k1 -> k2 -> k3 -> k4 -> Irate -> Irate -> ArateSource

  • opcode : diskgrain
  • syntax :
   asig diskgrain Sfname, kamp, kfreq, kpitch, kgrsize, kprate, 
       ifun, iolaps [,imaxgrsize, ioffset]
  • description :

diskgrain implements synchronous granular synthesis. The source sound for the grains is obtained by reading a soundfile containing the samples of the source waveform.

fof :: (X x0, X x1, X x2, K k0, K k1, K k2, K k3, K k4) => [Irate] -> x0 -> x1 -> x2 -> k0 -> k1 -> k2 -> k3 -> k4 -> Irate -> Irate -> Irate -> Irate -> ArateSource

  • opcode : fof
  • syntax :
   ares fof xamp, xfund, xform, koct, kband, kris, kdur, kdec, iolaps, 
       ifna, ifnb, itotdur [, iphs] [, ifmode] [, iskip]
  • description :

Audio output is a succession of sinusoid bursts initiated at frequency xfund with a spectral peak at xform. For xfund above 25 Hz these bursts produce a speech-like formant with spectral characteristics determined by the k-input parameters. For lower fundamentals this generator provides a special form of granular synthesis.

fof2 :: (X x0, X x1, X x2, K k0, K k1, K k2, K k3, K k4, K k5, K k6) => [Irate] -> x0 -> x1 -> x2 -> k0 -> k1 -> k2 -> k3 -> k4 -> Irate -> Irate -> Irate -> Irate -> k5 -> k6 -> ArateSource

  • opcode : fof2
  • syntax :
   ares fof2 xamp, xfund, xform, koct, kband, kris, kdur, kdec, iolaps, 
       ifna, ifnb, itotdur, kphs, kgliss [, iskip]
  • description :

Audio output is a succession of sinusoid bursts initiated at frequency xfund with a spectral peak at xform. For xfund above 25 Hz these bursts produce a speech-like formant with spectral characteristics determined by the k-input parameters. For lower fundamentals this generator provides a special form of granular synthesis.

fog :: (X x0, X x1, X x2, K k0, K k1, K k2, K k3, K k4) => [Irate] -> x0 -> x1 -> x2 -> Arate -> k0 -> k1 -> k2 -> k3 -> k4 -> Irate -> Irate -> Irate -> Irate -> ArateSource

  • opcode : fog
  • syntax :
   ares fog xamp, xdens, xtrans, aspd, koct, kband, kris, kdur, kdec, 
       iolaps, ifna, ifnb, itotdur [, iphs] [, itmode] [, iskip]
  • description :

Audio output is a succession of grains derived from data in a stored function table ifna. The local envelope of these grains and their timing is based on the model of fof synthesis and permits detailed control of the granular synthesis.

grain :: (X x0, X x1, X x2, K k0, K k1, K k2) => [Irate] -> x0 -> x1 -> x2 -> k0 -> k1 -> k2 -> Irate -> Irate -> Irate -> ArateSource

  • opcode : grain
  • syntax :
   ares grain xamp, xpitch, xdens, kampoff, kpitchoff, kgdur, igfn, 
       iwfn, imgdur [, igrnd]
  • description :

Generates granular synthesis textures.

grain2 :: (K k0, K k1, K k2, K k3) => [Irate] -> k0 -> k1 -> k2 -> Irate -> k3 -> Irate -> ArateSource

  • opcode : grain2
  • syntax :
   ares grain2 kcps, kfmd, kgdur, iovrlp, kfn, iwfn [, irpow] 
       [, iseed] [, imode]
  • description :

Generate granular synthesis textures. grain2 is simpler to use, but grain3 offers more control.

grain3 :: (K k0, K k1, K k2, K k3, K k4, K k5, K k6, K k7, K k8) => [Irate] -> k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> k6 -> Irate -> k7 -> k8 -> ArateSource

  • opcode : grain3
  • syntax :
   ares grain3 kcps, kphs, kfmd, kpmd, kgdur, kdens, imaxovr, kfn, iwfn, 
       kfrpow, kprpow [, iseed] [, imode]
  • description :

Generate granular synthesis textures. grain2 is simpler to use but grain3 offers more control.

granule :: (X x0, K k0, K k1) => [Irate] -> x0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> k0 -> Irate -> k1 -> Irate -> Irate -> Irate -> ArateSource

  • opcode : granule
  • syntax :
   ares granule xamp, ivoice, iratio, imode, ithd, ifn, ipshift, igskip, 
       igskip_os, ilength, kgap, igap_os, kgsize, igsize_os, iatt, idec 
       [, iseed] [, ipitch1] [, ipitch2] [, ipitch3] [, ipitch4] [, ifnenv]
  • description :

The granule unit generator is more complex than grain, but does add new possibilities.

partikkel :: (K k0, K k1, K k2, K k3, K k4, K k5, K k6, K k7, K k8, K k9, K k10, K k11, K k12, K k13, K k14, K k15, K k16, K k17, K k18, K k19, K k20) => [Irate] -> Arate -> k0 -> Irate -> Arate -> k1 -> Irate -> Irate -> Irate -> k2 -> k3 -> k4 -> k5 -> Irate -> k6 -> k7 -> Irate -> Irate -> Arate -> Irate -> k8 -> Irate -> k9 -> k10 -> k11 -> Irate -> k12 -> k13 -> k14 -> k15 -> k16 -> Irate -> Arate -> Arate -> Arate -> Arate -> k17 -> k18 -> k19 -> k20 -> Irate -> MultiOutSource

  • opcode : partikkel
  • syntax :
   a1 [, a2, a3, a4, a5, a6, a7, a8] partikkel agrainfreq, 
       kdistribution, idisttab, async, kenv2amt, ienv2tab, ienv_attack, 
       ienv_decay, ksustain_amount, ka_d_ratio, kduration, kamp, igainmasks, 
       kwavfreq, ksweepshape, iwavfreqstarttab, iwavfreqendtab, awavfm, 
       ifmamptab, kfmenv, icosine, ktraincps, knumpartials, kchroma, 
       ichannelmasks, krandommask, kwaveform1, kwaveform2, kwaveform3, 
       kwaveform4, iwaveamptab, asamplepos1, asamplepos2, asamplepos3, 
       asamplepos4, kwavekey1, kwavekey2, kwavekey3, kwavekey4, imax_grains 
       [, iopcode_id]
  • description :

partikkel was conceived after reading Curtis Roads' book Microsound, and the goal was to create an opcode that was capable of all time-domain varieties of granular synthesis described in this book. The idea being that most of the techniques only differ in parameter values, and by having a single opcode that can do all varieties of granular synthesis makes it possible to interpolate between techniques. Granular synthesis is sometimes dubbed particle synthesis, and it was thought apt to name the opcode partikkel to distinguish it from other granular opcodes.

partikkelsync :: Irate -> MultiOutSource

  • opcode : partikkelsync
  • syntax :
   async [,aphase] partikkelsync iopcode_id
  • description :

partikkelsync is an opcode for outputting partikkel's grain scheduler clock pulse and phase. partikkelsync's output can be used to synchronize other instances of the partikkel opcode to the same clock.

sndwarp :: (X x0, X x1, X x2) => x0 -> x1 -> x2 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> MultiOutSource

  • opcode : sndwarp
  • syntax :
   ares [, ac] sndwarp xamp, xtimewarp, xresample, ifn1, ibeg, iwsize, 
       irandw, ioverlap, ifn2, itimemode
  • description :

sndwarp reads sound samples from a table and applies time-stretching and/or pitch modification. Time and frequency modification are independent from one another. For example, a sound can be stretched in time while raising the pitch!

sndwarpst :: (X x0, X x1, X x2) => x0 -> x1 -> x2 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> MultiOutSource

  • opcode : sndwarpst
  • syntax :
   ar1, ar2 [,ac1] [, ac2] sndwarpst xamp, xtimewarp, xresample, ifn1, 
       ibeg, iwsize, irandw, ioverlap, ifn2, itimemode
  • description :

sndwarpst reads stereo sound samples from a table and applies time-stretching and/or pitch modification. Time and frequency modification are independent from one another. For example, a sound can be stretched in time while raising the pitch!

syncgrain :: (K k0, K k1, K k2, K k3, K k4) => k0 -> k1 -> k2 -> k3 -> k4 -> Irate -> Irate -> Irate -> ArateSource

  • opcode : syncgrain
  • syntax :
   asig syncgrain kamp, kfreq, kpitch, kgrsize, kprate, ifun1, 
       ifun2, iolaps
  • description :

syncgrain implements synchronous granular synthesis. The source sound for the grains is obtained by reading a function table containing the samples of the source waveform. For sampled-sound sources, GEN01 is used. syncgrain will accept deferred allocation tables.

syncloop :: (K k0, K k1, K k2, K k3, K k4, K k5, K k6) => [Irate] -> k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> k6 -> Irate -> Irate -> Irate -> ArateSource

  • opcode : syncloop
  • syntax :
   asig syncloop kamp, kfreq, kpitch, kgrsize, kprate, klstart, 
       klend, ifun1, ifun2, iolaps[,istart, iskip]
  • description :

syncloop is a variation on syncgrain, which implements synchronous granular synthesis. syncloop adds loop start and end points and an optional start position. Loop start and end control grain start positions, so the actual grains can go beyond the loop points (if the loop points are not at the extremes of the table), enabling seamless crossfading. For more information on the granular synthesis process, check the syncgrain manual page.

vosim :: (K k0, K k1, K k2, K k3, K k4, K k5) => [Irate] -> k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> ArateSource

  • opcode : vosim
  • syntax :
   ar vosim kamp, kFund, kForm, kDecay, kPulseCount, kPulseFactor, ifn [, iskip]
  • description :

This opcode produces a simple vocal simulation based on glottal pulses with formant characteristics. Output is a series of sound events, where each event is composed of a burst of squared sine pulses followed by silence. The VOSIM (VOcal SIMulation) synthesis method was developed by Kaegi and Tempelaars in the 1970's.