line — Trace a straight line between specified points.
ia -- starting value.
ib -- value after idur seconds.
idur -- duration in seconds of segment. A zero or negative value will cause all initialization to be skipped.
line generates control or audio signals whose values move linearly from an initial value to a final one.
![]() |
Note |
---|---|
A common error with this opcode is to assume that the value of ib is held after the time idur1. line does not automatically end or stop at the end of the duration given. If your note length is longer than idur seconds, kres (or ares) will not come to rest at ib, but will instead continue to rise or fall with the same rate. If a rise (or fall) and then hold is required that the linseg opcode should be considered instead. |
Here is an example of the line opcode. It uses the file line.csd.
Example 265. Example of the line 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 line.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 kcps as a frequency value that linearly declines ; from 880 to 220. It declines over the period set by p3. kcps line 880, p3, 220 a1 oscil 20000, kcps, 1 out a1 endin instr 2 kcps line 880, 1, 660 ; kcps won't stop at 660 if p3 > 1 a1 oscil 20000, kcps, 1 out a1 endin </CsInstruments> <CsScore> ; Table #1, a sine wave. f 1 0 16384 10 1 ; Play Instrument #1 for two seconds. i 1 0 2 ; Play Instrument #2 for two seconds. i 2 3 2 e </CsScore> </CsoundSynthesizer>