poscil3
High precision oscillator with cubic interpolation.
poscil3 (precise oscillator) is the same as oscil3, but
always employs floating-point table indexing, instead of integer math. It is only a bit slower than oscil3 when reading power-two size tables.
Syntax
ares poscil3 aamp, acps [, ifn, iphs]
ares poscil3 aamp, kcps [, ifn, iphs]
ares poscil3 kamp, acps [, ifn, iphs]
ares poscil3 kamp, kcps [, ifn, iphs]
ires poscil3 kamp, kcps [, ifn, iphs]
kres poscil3 kamp, kcps [, ifn, iphs]
Initialization
ifn -- (optional) function table number. This defaults to -1 which indicates a sinewave.
iphs (optional, default=0) -- initial phase (normalized table index 0-1). If a negative value is given initialisation of the phase is skipped.
ares -- output signal
kamp, aamp -- the amplitude of the output signal.
kcps, acps -- the frequency of the output signal in cycles per second.
poscil3 works like poscil, but uses cubic interpolation.
Examples
Here is an example of the poscil3 opcode. It uses the file poscil3.csd.
Example of the poscil3 opcode. |
---|
| <CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac ;;;realtime audio out
;-iadc ;;;uncomment -iadc if real audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o poscil3.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1
giSine ftgen 0, 0, 2^10, 10, 1
instr 1
krnd randomh 40, 440, 1 ; produce random values
ain poscil3 .6, krnd, giSine
kline line 1, p3, 0 ; straight line
aL,aR pan2 ain, kline ; sent across image
outs aL, aR
endin
</CsInstruments>
<CsScore>
i1 0 10
e
</CsScore>
</CsoundSynthesizer>
|
Here is another example of the poscil3 opcode, which uses a table filled from a sound file. It uses the file poscil3-file.csd.
Another example of the poscil3 opcode. |
---|
| <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 poscil3-file.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
; Example written by Joachim Heintz 07/2008
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; non-normalized function table with a sample 1
giFile ftgen 1, 0, 0, -1, "fox.wav", 0, 0, 0
; Instrument #1 - uses poscil3 for playing samples from a function table
instr 1
kamp = p4
kspeed = p5
ifn = 1
iskip = p6
kcps = kspeed / (ftlen(ifn) / ftsr(ifn)) ; frequency of the oscillator
iphs = iskip / (ftlen(ifn) / ftsr(ifn)) ; calculates skiptime to phase values (0-1)
a1 poscil3 kamp, kcps, ifn, iphs
out a1
endin
</CsInstruments>
<CsScore>
i1 0 2.756 1 1 0
i1 3 2.756 1 -1 0
i1 6 1.378 1 .5 2.067
e
</CsScore>
</CsoundSynthesizer>
|
See also
Basic Oscillators
Credits
Authors: John ffitch, Gabriel Maldonado
Italy
New in Csound version 3.52
variants with a-rate amplitude or frequency new in 5.16
Function table optional in Csound version 6.00
Skip of initialisation new in version 6.06