� i don't wanna lead you astray.� i would recommend staying with the phase vocoder as a framework for doing time-frequency manipulation.� it **can** be used real-time for pitch shift, but when i have used the phase vocoder, it was for time-scaling and then we would simply resample the time-scaled output of the phase vocoder to bring the tempo back to the original and shift the pitch.� that was easier to get it right than it was to *move* frequency components around in the phase vocoder.� but i remember in the 90s, Jean Laroche doing that real time with a single PC.� also a real-time phase vocoder (or any frequency-domain process, like sinusoidal modeling) is going to have delay in a real-time process.� even if your processor is infinitely fast, you still have to fill up your FFT buffer with samples before invoking the FFT.� if your buffer is 4096 samples and your sample rate is 48 kHz, that's almost 1/10 second.� and that doesn't count processing time, just the buffering time.� and, in reality, you will have to double buffer this process (buffer both input and output) and that will make the delay twice as much.� so with 1/5 second delay, that's might be an issue. i offered this before (and someone sent me a request and i believe i replied, but i don't remember who), but if you want my 2001 MATLAB code that demonstrates a simple phase vocoder doing time scaling, i am happy to send it to you or anyone.� it's old.� you have to turn wavread() and wavwrite() into audioread() and audiowrite(), but otherwise, i think it will work.� it has an additional function that time-scales each sinusoid *within* every frame, but i think that can be turned off and you can even delete that modification and what you have left is, in my opinion, the most basic phase vocoder implemented to do time scaling.� lemme know if that might be helpful. L8r, r b-j � ---------------------------- Original Message ---------------------------- Subject: Re: [music-dsp] 2-point DFT Matrix for subbands Re: FFT for realtime synthesis? From: "gm" <g...@voxangelica.net> Date: Fri, November 9, 2018 5:02 pm To: music-dsp@music.columbia.edu -------------------------------------------------------------------------- > You get me intrigued with this > > I actually believe that wavelets are the way to go for such things, > but, besides that anything beyond a Haar wavelet is too complicated for me > (and I just grasp that Haar very superficially of course), > > I think one problem is the problem you mentioned - don't do anything > with the bands, > only then you have perfect reconstruction > > And what to do you do with the bands to make a pitch shift or to > preserve formants/do some vocoding? > > It's not so obvious (to me), my naive idea I mentioned earlier in this > thread was to > do short FFTs on the bands and manipulate the FFTs only > > But how? if you time stretch them, I believe the pitch goes down (thats > my intuition only, I am not sure) > and also, these bands alias, since the filters are not brickwall, > and the aliasing is only canceled on reconstruction I believe? > > So, yes, very interesting topic, that could lead me astray for another > couple of weeks but without any results I guess > > I think as long as I don't fully grasp all the properties of the FFT and > phase vocoder I shouldn't start anything new... > -- r b-j� � � � � � � � � � � � �r...@audioimagination.com "Imagination is more important than knowledge." � � � �
_______________________________________________ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp