interp

Name

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

ar 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 15-1. iskip=0, imode=0

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

Example 15-2. iskip=1, imode=0

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

Example 15-3. 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 15-4. 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.