exp
Prev | Orchestra Opcodes and Operators | Next

## exp

exp — Returns e raised to the x-th power.

## Description

Returns e raised to the xth power.

## Syntax

    exp(x) (no rate restriction)

where the argument within the parentheses may be an expression. Value converters perform arithmetic translation from units of one kind to units of another. The result can then be a term in a further expression.

## Examples

Here is an example of the exp opcode. It uses the file exp.csd.

Example 209. Example of the exp opcode.

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 exp.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

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

    gisine    ftgen     0, 0, 2^10, 10, 1 ;table for a sine wave

    instr 1 ;master instrument
    koct      linseg    6, p3, 12 ; octave register straight rising from 6 to 12
    kexp      linseg    0, p3/3, 5, p3/3, 5, p3/3, 0 ;exponent goes from 0 to 5 and back
    kdens     =         exp(kexp) ;density is e to the power of kexp
              printks   "Generated events per second: %d\n", 1, kdens
    ktrig     metro     kdens ;trigger single notes in kdens frequency
     if ktrig == 1 then
    ;call instr 10 for 1/kdens duration, .5 amplitude and koct register
              event     "i", 10, 0, 1/kdens, .5, koct
     endif
    endin

    instr 10 ;performs one tone
    ioct      rnd31     1, 0 ;random deviation maximum one octave plus/minus
    aenv      transeg   p4, p3, -6, 0 ;fast decaying envelope for p4 amplitude
    asin      poscil    aenv, cpsoct(p5+ioct), gisine ;sine for p5 octave register plus random deviation
              outs      asin, asin
    endin

    </CsInstruments>
    <CsScore>
    i 1 0 30
    e
    </CsScore>
    </CsoundSynthesizer>

Its output should include lines like this:

    Generated events per second: 1
      rtevent:	   T  0.000 TT  0.000 M:  0.00000  0.00000
    new alloc for instr 10:
      rtevent:	   T  0.811 TT  0.811 M:  0.48906  0.48906
    new alloc for instr 10:
    Generated events per second: 2
      rtevent:	   T  1.387 TT  1.387 M:  0.48611  0.48611
      rtevent:	   T  1.833 TT  1.833 M:  0.48421  0.48421
    Generated events per second: 3
      rtevent:	   T  2.198 TT  2.198 M:  0.47536  0.47536
      rtevent:	   T  2.506 TT  2.506 M:  0.46530  0.46530
      rtevent:	   T  2.773 TT  2.773 M:  0.44986  0.44986
    Generated events per second: 4
      rtevent:	   T  3.009 TT  3.009 M:  0.48096  0.48096
      .........

## See Also

abs, frac, int, log, log10, i, sqrt

New in version 4.21

Prev | Up | Next
exitnow | Home | expcurve