linsegb

linsegb — Trace a series of line segments between specified absolute points.

Description

Trace a series of line segments between specified absolute points.

Syntax

ares linsegb ia, itim1, ib [, itim2] [, ic] [...]
kres linsegb ia, itim1, ib [, itim2] [, ic] [...]

Initialization

ia -- starting value.

ib, ic, etc. -- value at tim1 seconds, etc.

itim1 -- time in seconds of end of first segment. A zero or negative value will cause all initialization to be skipped.

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

Performance

These units generate control or audio signals whose values can pass through 2 or more specified points. The last 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 value to be repeated until the end of the note.

Examples

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

Example 521. Example of the linsegb 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 linseg.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

instr 1

kcps = cpspch(p4)
kenv linsegb 0, 0.25, 1, 1, 0
asig poscil kenv, kcps, giSine
     outs asig, asig

endin

instr 2	; scaling to duration

kcps = cpspch(p4)
kenv linseg 0, p3*0.25, 1, p3, 0
asig poscil kenv, kcps, giSine
     outs asig, asig

endin

</CsInstruments>
<CsScore>

i 1 0 1   7.00	; = 1 sec, p3 fits exactly
i 1 2 2   7.00	; = 2 sec, p3 truncated at 1 sec

i 2 4 1   7.00	; scales to duration
i 2 6 2   7.00	; of p3

e
</CsScore>
</CsoundSynthesizer>


See also

Linear and Exponential Generators

Credits

Author: Victor Lazzarini
June 2011

New in version 5.14