1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out Audio in
-odac ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o pvsadsyn.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 16
nchnls = 1
0dbfs = 1
;; example written by joachim heintz 2009
opcode FileToPvsBuf, iik, Siiii
;;writes an audio file at the first k-cycle to a fft-buffer (via pvsbuffer)
Sfile, ifftsize, ioverlap, iwinsize, iwinshape xin
ktimek timeinstk
if ktimek == 1 then
ilen filelen Sfile
kcycles = ilen * kr; number of k-cycles to write the fft-buffer
kcount init 0
loop:
ain soundin Sfile
fftin pvsanal ain, ifftsize, ioverlap, iwinsize, iwinshape
ibuf, ktim pvsbuffer fftin, ilen + (ifftsize / sr)
loop_lt kcount, 1, kcycles, loop
xout ibuf, ilen, ktim
endif
endop
instr 1
istretch = p4; time stretching factor
ifftsize = 1024
ioverlap = ifftsize / 4
iwinsize = ifftsize
iwinshape = 1; von-Hann window
ibuffer, ilen, k0 FileToPvsBuf "fox.wav", ifftsize, ioverlap, iwinsize, iwinshape
p3 = istretch * ilen; set p3 to the correct value
ktmpnt linseg 0, p3, ilen; time pointer
fread pvsbufread ktmpnt, ibuffer; read the buffer
aout pvsadsyn fread, 10, 1; resynthesis with the first 10 bins
out aout
endin
</CsInstruments>
<CsScore>
i 1 0 1 20
e
</CsScore>
</CsoundSynthesizer>
|