line

line — Trace a straight line between specified points.

Description

Trace a straight line between specified points.

Syntax

ares line ia, idur, ib
kres line ia, idur, ib

Initialization

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.

Performance

line generates control or audio signals whose values move linearly from an initial value to a final one.

[Note] 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.

Examples

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

Example 506. 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
-odac   ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o line.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

instr 1 

kp = p6
;choose between expon or line
if (kp == 0) then 	
  kpitch expon p4, p3, p5 
elseif (kp == 1) then
  kpitch line p4, p3, p5 
endif

asig   vco2 .6, kpitch 
       outs asig, asig

endin 
</CsInstruments> 
<CsScore> 

i 1 0  2 300  600  0	;if p6=0 then expon is used
i 1 3  2 300  600  1	;if p6=1 then line is used
i 1 6  2 600  1200 0
i 1 9  2 600  1200 1
i 1 12 2 1200 2400 0
i 1 15 2 1200 2400 1
i 1 18 2 2400 30   0
i 1 21 2 2400 30   1
e
</CsScore> 
</CsoundSynthesizer> 


See also

Linear and Exponential Generators