expcurve — This opcode implements a formula for generating a normalised exponential curve in range 0 - 1. It is based on the Max / MSP work of Eric Singer (c) 1994.

Generates an exponential curve in range 0 to 1 of arbitrary steepness. Steepness index equal to or lower than 1.0 will result in Not-a-Number errors and cause unstable behavior.

The formula used to calculate the curve is:

(exp(x * log(y))-1) / (y-1)

where x is equal to *kindex* and y is equal to *ksteepness*.

*kindex* -- Index value. Expected range 0 to 1.

*ksteepness* -- Steepness of the generated curve. Values
closer to 1.0 result in a straighter line while larger values steepen the
curve.

*kout* -- Scaled output.

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

**Example 203. Example of the expcurve 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 ; Audio out Audio in Silent -odac -iadc -d ;;;realtime output </CsOptions> <CsInstruments> sr = 48000 ksmps = 1000 nchnls = 2 instr 1 ; logcurve test kmod phasor 1/p3 kout expcurve kmod, p4 printks "mod = %f out= %f\\n", 0.5, kmod, kout endin /*--- ---*/ </CsInstruments> <CsScore> i1 0 5 2 i1 5 5 5 i1 10 5 30 i1 15 5 0.5 e </CsScore> </CsoundSynthesizer>