poscil3 — High precision oscillator with cubic interpolation.
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.
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]
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.
Here is an example of the poscil3 opcode. It uses the file poscil3.csd.
Example 780. Example of the poscil3 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 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 .
Example 781. 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>