I want to make an application that will open a stereo file (stereo.wav), and apply a pitchshift up 5hz to only the right channel and then be able to play it back. I am somewhat new to csound and I would greatly appreciate any help provided!
Thank you in advance!
If you I think what you’ll need to do is read the file with diskin2, then analyse one channel using pvsanal. Once you have the fsig you can repitch it in real time using pvshift. That should do it.
1 Like
Thanks Rory Walsh! I went to the links you sent, but I am still struggling with the syntax. This is now what I have so far from the tutorials you sent:
instr 1
a1, a2 diskin2 “Enter Sandman.wav”, 1, 0, 1
ifftsize = p4
ioverlap = ifftsize / 4
iwinsize = ifftsize
iwinshape = 1
ffta1 pvsanal a1, ifftsize, ioverlap, iwinsize, iwinshape
ffta2 pvsanal a2, ifftsize, ioverlap, iwinsize, iwinshape
; pvsanal ???
;pvshift ???
outs a1, a2
endin
Something like this will work, just swap out the sound file. I added a slider to control the amount of detuning:
<Cabbage>
form caption("Untitled") size(400, 300), colour(58, 110, 182), pluginid("def1")
rslider bounds(26, 22, 100, 100), channel("freqShift"), range(-20, 20, 0, 1, 0.01), text("Freq Shift"),
</Cabbage>
<CsoundSynthesizer>
<CsOptions>
-n -d -+rtmidi=NULL -M0 -m0d
</CsOptions>
<CsInstruments>
; Initialize the global variables.
ksmps = 32
nchnls = 2
0dbfs = 1
instr 1
a1, a2 diskin2 "pianoMood.wav", 1, 0, 1
ifftSize = 1024
ioverlap = ifftSize / 4
iwinsize = ifftSize
iwinshape = 1
ffta1 pvsanal a1, ifftSize, ioverlap, iwinsize, iwinshape
fShifted pvshift ffta1, chnget:k("freqShift"), 100
a2 pvsynth fShifted
outs a1, a2
endin
</CsInstruments>
<CsScore>
;causes Csound to run for about 7000 years...
f0 z
;starts instrument 1 and runs it for a week
i1 0 [60*60*24*7]
</CsScore>
</CsoundSynthesizer>
p.s. can you format any code you post, it just makes it easier to read 