GENtanh
Prev | Score Statements and GEN Routines | Next

## GENtanh

"tanh" — Generate a table with values on the tanh function.

## Description

Creates an ftable with values of 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 1039. Example of the GENtanh routine.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

    <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 3 0 8192 "tanh" -10 10 0 - less distortion than f2

f 4 0 8192 "tanh" -10 15 0

## See Also

GENexp and GENsone.

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

## Credits

Written by John ffitch

Prev | Up | Next
GEN52 | Home | GENexp