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)

    exp(k/i[]) (k- or i-arrays)

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 272. 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:

    </CsOptions>
    <CsInstruments>

    ; By Stefano Cucchi 2020

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

    instr 1
    i1 = exp(2)
    ; BASE = e (2,71828 18284 59045 23536...)
    ; EXPONENT = 2
    print i1
    endin

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

Its output should include lines like this:

    new alloc for instr 1:
    instr 1:  i1 = 7.389
    B  0.000 ..  1.000 T  1.000 TT  1.000 M:  0.00000  0.00000
      .........

Here is another example of the exp opcode. It uses the file exp-musical.csd.

Example 273. Musical 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