expsegba

expsegba — An exponential segment generator operating at a-rate with absolute times.

Description

An exponential segment generator operating at a-rate. This unit is almost identical to expsegb, but more precise when defining segments with very short durations (i.e., in a percussive attack phase) at audio rate.

Syntax

ares expsegba ia, itim1, ib [, itim2] [, ic] [...]

Initialization

ia -- starting value. Zero is illegal.

ib, ic, etc. -- value after itim1 seconds, etc. must be non-zero and must agree in sign with ia.

itim1 -- time in seconds at end of first segment.

itim2, itim3, etc. -- time in seconds at the end of subsequent segments.

Performance

This unit generate audio signals whose values can pass through two or more specified points. The final tim 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 last defined segment to continue on in the same direction.

Examples

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

Example 286. Example of the expsegba 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    No messages
-odac           -iadc     -d     ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o expsega.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

; Instrument #1.
instr 1
  ; Define a short percussive amplitude envelope that
  ; goes from 0.01 to 20,000 and back.
  aenv expsegba 0.01, 0.1, 20000, 0.2, 0.01

  a1 oscil aenv, 440, 1
  out a1
endin


</CsInstruments>
<CsScore>

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

; Play Instrument #1 for one second.
i 1 0 1
; Play Instrument #1 for one second.
i 1 1 1
; Play Instrument #1 for one second.
i 1 2 1
; Play Instrument #1 for one second.
i 1 3 1
e


</CsScore>
</CsoundSynthesizer>


See also

Linear and Exponential Generators

Credits

Author: John ffitch

June 2011

New in Csound 5.14