ia -- starting value. Zero is illegal for exponentials.
ib, ic, etc. -- value after dur1 seconds, etc. For exponentials, must be non-zero and must agree in sign with ia.
idur1 -- duration in seconds of first segment. A zero or negative value will cause all initialization to be skipped.
idur2, idur3, etc. -- duration in seconds of subsequent segments. A zero or negative value will terminate the initialization process with the preceding point, permitting the last-defined line or curve to be continued indefinitely in performance. The default is zero.
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, while a longer one will cause the last-defined segment to continue on in the same direction.
Here is an example of the linseg opcode. It uses the files linseg.orc and linseg.sco.
Example 1. Example of the linseg opcode.
/* linseg.orc */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Instrument #1.
instr 1
; p4 = frequency in pitch-class notation.
kcps = cpspch(p4)
; Create an amplitude envelope.
kenv linseg 0, p3*0.25, 1, p3*0.75, 0
kamp = kenv * 30000
a1 oscil kamp, kcps, 1
out a1
endin
/* linseg.orc */
/* linseg.sco */
; Table #1, a sine wave.
f 1 0 16384 10 1
; Play Instrument #1 for a half-second, p4=8.00
i 1 0 0.5 8.00
; Play Instrument #1 for a half-second, p4=8.01
i 1 1 0.5 8.01
; Play Instrument #1 for a half-second, p4=8.02
i 1 2 0.5 8.02
; Play Instrument #1 for a half-second, p4=8.03
i 1 3 0.5 8.03
e
/* linseg.sco */