interp

interp — Converts a control signal to an audio signal using linear interpolation.

Description

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:

Example 438. iskip=0, imode=0


 |    ________
 |   /        
 |  /         
 | /          
 |/           
-+------------
 |            
        


Example 439. iskip=1, imode=0


(prev)
 |  __________
 | /          
 |/           
 |            
 |            
-+------------
 |            
        


Example 440. iskip=0, imode=1


 |____________
 |
 |
 |
 |
-+------------
 |
        


ivalue (optional, default=0) -- initial value if both imode and iskip are zero.

Performance

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 441. Example of the interp 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 interp.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; Initialize the global variables.
sr = 8000
kr = 8
ksmps = 1000
nchnls = 1

; Instrument #1 - a simple instrument.
instr 1
  ; Create an amplitude envelope.
  kamp linseg 0, p3/2, 20000, p3/2, 0

  ; The amplitude envelope will sound rough because it
  ; jumps every ksmps period, 1000.
  a1 oscil kamp, 440, 1
  out a1
endin

; Instrument #2 - a smoother sounding instrument.
instr 2
  ; Create an amplitude envelope.
  kamp linseg 0, p3/2, 25000, p3/2, 0
  aamp interp kamp

  ; The amplitude envelope will sound smoother due to
  ; linear interpolation at the higher a-rate, 8000.
  a1 oscil aamp, 440, 1
  out a1
endin


</CsInstruments>
<CsScore>

; Table #1, a sine wave.
f 1 0 256 10 1

; Play Instrument #1 for two seconds.
i 1 0 2
; Play Instrument #2 for two seconds.
i 2 2 2
e


</CsScore>
</CsoundSynthesizer>


See Also

diff, downsamp, integ, samphold, upsamp

More information on this opcode: http://www.csoundjournal.com/issue10/CsoundRates.html , written by Andrés Cabrera

Credits

Updated November 2002, thanks to a note from both Rasmus Ekman and Istvan Varga.