interp
Converts a control signal to an audio signal using linear interpolation.
Syntax
ares interp ksig [, iskip] [, imode] [, ivalue]
Initialization
iskip (optional, default=0) -- if non zero
skips initialisation of internal save space (see reson).
imode (optional, default=0) -- sets the initial output value to the first k-rate input instead of zero. The following graphs show the output of interp with a constant input value, in the original, when skipping init, and in the new mode:
iskip=0, imode=0
| ________
| /
| /
| /
|/
-+------------
|
iskip=1, imode=0
(prev)
| __________
| /
|/
|
|
-+------------
|
iskip=0, imode=1
|____________
|
|
|
|
-+------------
|
ivalue (optional, default=0) -- initial value if both imode and iskip are zero.
ksig -- input k-rate signal.
interp converts a control signal to an audio signal. It uses linear interpolation between successive kvals.
Examples
Here is an example of the interp opcode. It uses the file interp.csd.
Example of the interp opcode. |
---|
| <CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out Audio in
-odac ;;;RT audio out
; For Non-realtime ouput leave only the line below:
; -o interp.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 1024 ; very high, for demonstration purpose
nchnls = 2
0dbfs = 1
instr 1
kamp linseg 0, p3/2, .5, p3/2, 0 ; Create an amplitude envelope.
a1 oscil kamp, 440 ; The amplitude envelope will sound rough because it
outs a1, a1 ; jumps every ksmps period (1024)
endin
instr 2 ; a smoother sounding instrument.
kamp linseg 0, p3/2, .5, p3/2, 0 ; Create an amplitude envelope
aamp interp kamp ; The amplitude envelope will sound smoother due to
a1 oscil aamp, 440 ; linear interpolation at the higher a-rate
outs a1, a1
endin
</CsInstruments>
<CsScore>
i 1 0 2 ; sounds raw
i 2 3 2 ; sounds smooth
e
</CsScore>
</CsoundSynthesizer>
|
See also
Sample Level Operators
More information on this opcode: Csound Journal, issue10 - An Overview of Csound Variable Types, written by Andrés Cabrera
Credits
Updated November 2002, thanks to a note from both Rasmus Ekman and Istvan Varga.