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 276. 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 277. 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