osciliktp

osciliktp --  A linearly interpolated oscillator that allows allows phase modulation.

Description

osciliktp allows phase modulation (which is actually implemented as k-rate frequency modulation, by differentiating phase input). The disadvantage is that there is no amplitude control, and frequency can be varied only at the control-rate. This opcode can be faster or slower than oscilikt, depending on the control-rate.

Syntax

ar osciliktp kcps, kfn, kphs [, istor]

Initialization

istor (optional, defaults to 0) -- Skips initialization.

Performance

ar -- audio-rate ouptut signal.

kcps -- frequency in Hz. Zero and negative values are allowed. However, the absolute value must be less than sr (and recommended to be less than sr/2).

kfn -- function table number. Can be varied at control rate (useful to "morph" waveforms, or select from a set of band-limited tables generated by GEN30).

kphs -- phase (k-rate), the expected range is 0 to 1. The absolute value of the difference of the current and previous value of kphs must be less than ksmps.

Examples

Here is an example of the osciliktp opcode. It uses the files osciliktp.orc and osciliktp.sco.

Example 1. Example of the osciliktp opcode.

/* osciliktp.orc */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; Instrument #1: osciliktp example
instr 1
  kphs line 0, p3, 4

  a1x osciliktp 220.5, 1, 0
  a1y osciliktp 220.5, 1, -kphs
  a1 =  a1x - a1y

  out a1 * 14000
endin
/* osciliktp.orc */
        
/* osciliktp.sco */
; Table #1: Sawtooth wave
f 1 0 3 -2 1 0 -1

; Play Instrument #1 for four seconds.
i 1 0 4
e
/* osciliktp.sco */
        

See Also

oscilikt and oscilikts.

Credits

Author: Istvan Varga

New in version 4.22