ihandle, ktime pvsbuffer fsig, ilen
fsig pvsbufread ktime, khandle[, ilo, ihi]
This pair of opcodes make up a circular buffer read/write pair
for streaming PV signals.
The first sets up and writes to a circular buffer of length ilen (secs),
giving a handle for the buffer and a time pointer, which holds the
current write position (also in seconds).
The second opcode reads from the circular buffer specified by
khandle at a time position determined by ktime (secs). It can
read the whole set of PV bins or a subset defined by the
freq interval (ilo, iho).
With these opcodes it is possible to, among other things:
1) time-stretch/compress a fsig stream, by reading it at
different rates
2) delay a fsig or portions of it.
3) ‘brassage’ two or more fsigs by switching buffers, since
the reading handles are k-rate. Note that, when using k-rate
handles, it is important to initialise the k-rate variable to a
given handle (so that the fsig initialisation can take place)
and it is only possible to switch handles between compatible
fsig buffers (with the same fftsize and overlap), eg.
fsig1 pvsanal asig1,1024,256,1024,1
fsig2 pvsanal asig2,1024,256,1024,1
ibuf1,kt1 pvsbuffer fsig1, 10 ; 10-sec buf with fsig1
ibuf2,kt2 pvsbuffer fsig2, 7 ; 7-sec buf with fsig2
khan init ibuf1 ; initialise handle to buf1
if ktrig > 0 then ; switch buffers according to trigger
khan = ibuf2
else
khan = ibuf1
endif
fsb pvsbufread kt1, khan ; read buffer
Now in CVS (should be there in the next release);
man page coming soon.
Victor