Skip to content

lineto

Generate glissandos starting from a control signal.

Syntax

kres = lineto(ksig, ktime)
kres lineto ksig, ktime

Performance

kres -- Output signal.

ksig -- Input signal.

ktime -- Ramp duration in seconds. Positive durations are rounded up to a whole number of control cycles. Zero or negative durations jump to the new target immediately.

lineto adds linear ramps to a stepped input signal, such as the output of randh or lpshold. It starts at the first value of ksig. When it accepts a new target, it moves linearly to that value over ktime, then holds it until another ramp starts.

When used together with the output of lpshold it emulates the glissando effect of old analog sequencers.

📝 Note

lineto finishes the current ramp before accepting another target or duration. Once the ramp ends, it uses the latest ksig and ktime. Use tlineto to interrupt a ramp with a trigger.

Examples

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

Example of the lineto opcode.
<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 lineto.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

kfreq     randh     1000, 20, 2, 1, 2000 ;generates ten random number between 100 and 300 per second
kpan      randh     .5, 1, 2, 1, .5   ;panning between 0 and 1
kp        lineto    kpan, .5          ;smoothing pan transition
aout      poscil    .4, kfreq, giSine
aL, aR    pan2      aout, kp
          outs      aL, aR

endin
</CsInstruments>
<CsScore>

i 1 0 10
e
</CsScore>
</CsoundSynthesizer>

See also

Standard Filters: Control signal filters

Credits

Author: Gabriel Maldonado

New in Version 4.13