Skip to content

GENtanh

Generate a table with values on the tanh function.

Syntax

f # time size "tanh" 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: tanh(start) .... tanh(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 GENtanh routine. It uses the file gentanh.csd.

Example of the GENtanh 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 gentanh.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 "tanh" -100 100 0    ;symmetrical transfer fuction
f 3 0 8192 "tanh" -10  10  0    ;symmetrical
f 4 0 8192 "tanh"   0  10  0    ;not symmetrical

i1 0 3 2 1
i1 + 3 3 1
i1 + 3 4 2

e
</CsScore>
</CsoundSynthesizer>

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

  f 2 0 8192 "tanh" -100 100 0 - lots of distortion
f 2 0 8192 "tanh" -100 100 0 - lots of distortion
  f 3 0 8192 "tanh" -10 10 0 - less distortion than f2
f 3 0 8192 "tanh" -10 10 0 - less distortion than f2
  f 4 0 8192 "tanh" -10 15 0
f 4 0 8192 "tanh" -10 15 0

See Also

GENexp and GENsone.

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

Credits

Written by John ffitch