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