1<CsoundSynthesizer> 2<CsOptions> 3-o dac 4-d 5-i adc 6</CsOptions> 7<CsInstruments> 8 9sr = 44100 10ksmps = 64 11nchnls = 2 120dbfs = 1 13 14giWet ftgen 0,0,1024,-7,0,512,1,512,1 15giDry ftgen 0,0,1024,-7,1,512,1,512,0 16 17turnon 1 18 19 opcode PitchShifter, aa, aakkk 20 21aL, aR, kpitch, kfine, kfeedback xin 22 23 setksmps 64 24 25ifftsize = 1024 26ihopsize = 256 27kscal = octave((int(kpitch)/12)+kfine) 28 29aOutL init 0 30aOutR init 0 31 32fsig1L pvsanal aL+(aOutL*kfeedback), ifftsize, ihopsize, ifftsize, 0 33fsig1R pvsanal aR+(aOutR*kfeedback), ifftsize, ihopsize, ifftsize*2, 0 34fsig2L pvscale fsig1L, kscal 35fsig2R pvscale fsig1R, kscal 36aOutL pvsynth fsig2L 37aOutR pvsynth fsig2R 38 39 xout aOutL, aOutR 40 endop 41 42 instr 1 ;PITCH SHIFTER 43 44a1, a2 ins 45 46kmix chnget "mix" 47kpitch chnget "pitch" 48kpitch scale kpitch, 12, -12 49kfine = 0 ;chnget "pitchshifter_fine" 50kfine scale kfine, 0.083333, -0.083333 51kfeedback = 0 ;chnget "pitchshifter_feedback" 52 53kWet table kmix, giWet, 100 54kDry table kmix, giDry, 100 55 56aOutL, aOutR PitchShifter a1, a2, kpitch, kfine, kfeedback 57 58aOutL = (aOutL * kmix) + (a1 * (1.0 - kmix)) 59aOutR = (aOutR * kmix) + (a2 * (1.0 - kmix)) 60 61 outs aOutL, aOutR 62 63 endin 64 65 66</CsInstruments> 67<CsScore> 68f0 36000 69 70</CsScore> 71</CsoundSynthesizer> 72