Skip to content

GENexp

Generate a table with values on the exp function.

Syntax

f # time size "exp" start end rescale

Initialization

size -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see f statement).

start, end -- first and last value to be stored; the GEN draws a curve that goes from start to end: exp(start) .... exp(end). The points stored are uniformly spaced between these to the table size

rescale -- if not zero the table is not rescaled

Examples

Here is a simple example of the GENexp routine. It uses the file genexp.csd.

Example of the GENexp routine.
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac  ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o genexp.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100 
ksmps = 32 
nchnls = 2 
0dbfs  = 1 

instr 1

aswp    linseg  0.01, p3*.5, .49, p3*.5, 0.01           ;index sweep function
aindex  poscil  aswp, 110, 1                            ;sound to waveshape
atable  tablei  aindex, p4, 1, .5                       ;waveshape index
aenv    linen   0.8, .01, p3, .02                       ;amplitude envelope
asig    = (atable*aenv)*p5                              ;impose envelope and scale
asig    dcblock2 asig                                   ;get rid of DC
        outs    asig, asig

endin           
</CsInstruments>
<CsScore>
f 1 0 8192 10 1 ;sine wave
f 2 0 8192 "exp" 0 15 0
f 3 0 8192 "exp" 0 3 0

i1 0 3 2 2
i1 + 3 3 3

e
</CsScore>
</CsoundSynthesizer>

These are the diagrams of the waveforms of the GENexp routines, as used in the example:

  f 2 0 8192 "exp" 0 15 0
f 2 0 8192 "exp" 0 15 0
  f 3 0 8192 "exp" 0 3 0
f 3 0 8192 "exp" 0 3 0

See Also

GENsone.

More information on this routine: http://www.csoundjournal.com/issue11/distortionSynthesis.html, written by Victor Lazzarini

Credits

Written by Victor Lazzarini