oscilikt
Prev | Orchestra Opcodes and Operators | Next

## oscilikt

oscilikt — A linearly interpolated oscillator that allows changing the table number at k-rate.

## Description

oscilikt is very similar to oscili, but allows changing the table number at k-rate. It is slightly slower than oscili (especially with high control rate), although also more accurate as it uses a 31-bit phase accumulator, as opposed to the 24-bit one used by oscili.

## Syntax

    ares oscilikt xamp, xcps, kfn [, iphs] [, istor]

    kres oscilikt kamp, kcps, kfn [, iphs] [, istor]

## Initialization

iphs (optional, defaults to 0) -- initial phase in the range 0 to 1. Other values are wrapped to the allowed range.

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

## Performance

kamp, xamp -- amplitude.

kcps, xcps -- 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).

## Examples

Here is an example of the oscilikt opcode. It uses the file oscilikt.csd.

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

    ; Initialize the global variables.
    sr = 44100
    kr = 4410
    ksmps = 10
    nchnls = 1

    ; Instrument #1.
    instr 1
      ; Generate a uni-polar (0-1) square wave.
      kamp1 init 1
      kcps1 init 2
      itype = 3
      ksquare lfo kamp1, kcps1, itype

      ; Use the square wave to switch between Tables #1 and #2.
      kamp2 init 20000
      kcps2 init 220
      kfn = ksquare + 1

      a1 oscilikt kamp2, kcps2, kfn
      out a1
    endin

    </CsInstruments>
    <CsScore>

    ; Table #1, a sine waveform.
    f 1 0 4096 10 0 1
    ; Table #2: a sawtooth wave
    f 2 0 3 -2 1 0 -1

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

    </CsScore>
    </CsoundSynthesizer>

## See also

Basic Oscillators

## Credits

Author: Istvan Varga

Example written by Kevin Conder.

New in version 4.22

Prev | Up | Next
oscili | Home | osciliktp