Skip to content

triglinseg

Triggers a series of line segments between specified points.

Syntax

ares triglinseg kTrig, ia, idur1, ib [, idur2] [, ic] [...]
kres triglinseg kTrig, ia, idur1, ib [, idur2] [, ic] [...]

Initialization

ia -- starting value.

ib, ic, etc. -- value after dur1 seconds, etc.

idur1 -- duration in seconds of first segment.

idur2, idur3, etc. -- duration in seconds of subsequent segments.

Performance

kTrig -- trigger value. Will trigger playback of envelop when kTrig is equal 1

These units generate control or audio signals whose values can pass through 2 or more specified points. The sum of dur values may or may not equal the instrument's performance time: a shorter performance will truncate the specified pattern. Triggering the envelop while it is already playing will cause the envelop to jump to the start and play again. This might cause a pop or a click. It is best to wait till the envelope has ended before retriggering it.

Examples

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

Example of the triglinseg opcode.
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out   Audio in    No messages
-odac   -d    -m0d     -M0  -+rtmidi=virtual ;;;RT audio I/O with MIDI in
; For Non-realtime ouput leave only the line below:
; -o midiin.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1

instr 1
aEnv linseg 0, .2, 1, .2, .5, .2, .7, .2, 0
a1 oscili aEnv, 400
outs a1, a1
endin

instr 2
kTrig metro 1
aEnv trigLinseg kTrig, 0, .2, 1, .2, .5, .2, .7, .2, 0
a1 oscili aEnv, 400
outs a1, a1
endin

</CsInstruments>
<CsScore>
i1 0 1
i2 1 10
</CsScore>
</CsoundSynthesizer>

See also

Linear and Exponential Generators

Credits

Author: Rory Walsh
2021