expon — Trace an exponential curve between specified points.


Trace an exponential curve between specified points.


ares expon ia, idur, ib
kres expon ia, idur, ib


ia -- starting value. Zero is illegal for exponentials.

ib -- value after idur seconds. For exponentials, must be non-zero and must agree in sign with ia.

idur -- duration in seconds of the segment. A zero or negative value will cause all initialization to be skipped.


These units generate control or audio signals whose values can pass through 2 specified points. The idur value may or may not equal the instrument's performance time: a shorter performance will truncate the specified pattern, while a longer one will cause the defined segment to continue on in the same direction.


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

Example 131. Example of the expon opcode.

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

; Select audio/midi flags here according to platform
; Audio out   Audio in
-odac           -iadc    ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o expon.wav -W ;;; for file output any platform

; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; Instrument #1.
instr 1
  ; Define kcps as a frequency value that exponentially declines 
  ; from 880 to 220. It declines over the period set by p3.
  kcps expon 880, p3, 220

  a1 oscil 20000, kcps, 1
  out a1


; Table #1, a sine wave.
f 1 0 16384 10 1

; Play Instrument #1 for two seconds.
i 1 0 2


See Also

expseg, expsegr, line, linseg, linsegr


Example written by Kevin Conder.