oscili
Prev | Orchestra Opcodes and Operators | Next

## oscili

oscili — A simple oscillator with linear interpolation.

## Description

oscili reads table ifn sequentially and repeatedly at a frequency xcps. The amplitude is scaled by xamp. Linear interpolation is applied for table look up from internal phase values.

## Syntax

    ares oscili xamp, xcps, ifn [, iphs]

    kres oscili kamp, kcps, ifn [, iphs]

## Initialization

ifn -- function table number. Requires a wrap-around guard point.

iphs (optional) -- initial phase of sampling, expressed as a fraction of a cycle (0 to 1). A negative value will cause phase initialization to be skipped. The default value is 0.

## Performance

kamp, xamp -- amplitude

kcps, xcps -- frequency in cycles per second.

oscili differs from oscil in that the standard procedure of using a truncated phase as a sampling index is here replaced by a process that interpolates between two successive lookups. Interpolating generators will produce a noticeably cleaner output signal, but they may take as much as twice as long to run. Adequate accuracy can also be gained without the time cost of interpolation by using large stored function tables of 2K, 4K or 8K points if the space is available.

Table ifn is incrementally sampled modulo the table length and the value obtained is multiplied by amp.

If you need to change the oscillator table with a k-rate signal, you can use oscilikt.

## Examples

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

Example 494. Example of the oscili 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
    -odac     ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o oscili.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    instr 1

    kamp = .6
    kcps = 440
    ifn  = p4

    asig oscil kamp, kcps, ifn
         outs asig,asig

    endin

    instr 2

    kamp = .6
    kcps = 440
    ifn  = p4

    asig oscili kamp, kcps, ifn
         outs asig,asig

    endin
    </CsInstruments>
    <CsScore>
    f1 0 128 10 1                                          ; Sine with a small amount of data
    f2 0 128 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111   ; Sawtooth with a small amount of data
    f3 0 128 10 1 0   0.3 0    0.2 0     0.14 0     .111   ; Square with a small amount of data
    f4 0 128 10 1 1   1   1    0.7 0.5   0.3  0.1          ; Pulse with a small amount of data

    i 1  0 2 1
    i 2  3 2 1
    i 1  6 2 2
    i 2  9 2 2
    i 1 12 2 3
    i 2 15 2 3
    i 1 18 2 4
    i 2 21 2 4

    e
    </CsScore>
    </CsoundSynthesizer>

## See Also

oscil, oscil3

## Credits

Prev | Up | Next
oscil | Home | oscilikt