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

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

Example 193. iskip=1, imode=0

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

Example 194. 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 files interp.orc and interp.sco.

Example 195. Example of the interp opcode.

    /* interp.orc */
    ; 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
    /* interp.orc */

    /* interp.sco */
    ; 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
    /* interp.sco */

## See Also

diff, downsamp, integ, samphold, upsamp

## Credits

Example written by Kevin Conder.

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

Prev | Up | Next
integ | Home | invalue