interp
Prev | Orchestra Opcodes and Operators | Next

## 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]

## Initialization

iskip (optional, default=0) -- initial disposition of internal save space (see reson). The default value is 0.

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 368. iskip=0, imode=0

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

Example 369. iskip=1, imode=0

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

Example 370. iskip=0, imode=1

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

## 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 371. 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.csounds.com/journal/issue10/CsoundRates.html , written by Andrés Cabrera

## Credits

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

Prev | Up | Next
integ | Home | invalue