<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Pitch Shifting Using The Fourier Transform</title>
	<atom:link href="http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/</link>
	<description>Signal Processing Tutorials &#38; Software</description>
	<lastBuildDate>Thu, 25 Feb 2010 06:05:19 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Bernsee</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-5566</link>
		<dc:creator>Bernsee</dc:creator>
		<pubDate>Sun, 14 Feb 2010 12:10:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-5566</guid>
		<description>Thank you for your interest in our articles and for your detailed feedback.

Yes this is certainly possible but seems overly complicated if you&#039;re only after an integer factor time stretch, because it involves a lot of redundancies (most notably expressing the operation as a pitch shift and the entire frequency computation associated with it). Also you would be restricted to changing the speed of the signal in steps of 2^n due to the size limitations of the FFT that we use (unless you would replace it by a non-2^n FFT of course, which is not implemented in the code that we provide). 

However, a similar method (different input/output transform sizes) is sometimes used for doing sinc interpolation for high quality sample rate conversion, but that does not involve keeping the speed of the signal constant.

For a more in-depth discussion I would recommend taking this to our forum at http://www.surroundsfx.com/forum/viewforum.php?f=11
I&#039;d be happy to explain this in better detail there. 

Best wishes, Stephan Bernsee</description>
		<content:encoded><![CDATA[<p>Thank you for your interest in our articles and for your detailed feedback.</p>
<p>Yes this is certainly possible but seems overly complicated if you&#8217;re only after an integer factor time stretch, because it involves a lot of redundancies (most notably expressing the operation as a pitch shift and the entire frequency computation associated with it). Also you would be restricted to changing the speed of the signal in steps of 2^n due to the size limitations of the FFT that we use (unless you would replace it by a non-2^n FFT of course, which is not implemented in the code that we provide). </p>
<p>However, a similar method (different input/output transform sizes) is sometimes used for doing sinc interpolation for high quality sample rate conversion, but that does not involve keeping the speed of the signal constant.</p>
<p>For a more in-depth discussion I would recommend taking this to our forum at <a href="http://www.surroundsfx.com/forum/viewforum.php?f=11" rel="nofollow">http://www.surroundsfx.com/forum/viewforum.php?f=11</a><br />
I&#8217;d be happy to explain this in better detail there. </p>
<p>Best wishes, Stephan Bernsee</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Harris</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-5543</link>
		<dc:creator>Robert Harris</dc:creator>
		<pubDate>Wed, 10 Feb 2010 20:14:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-5543</guid>
		<description>In order to slow down the tempo of a musical recording while maintaining the original pitch, your pitch-shifting function can be used by first raising the pitch of a recording by an octave, and then applying a resampling function to create a new signal with twice as many samples, thus lowering the pitch of the musical signal back to its original pitch.

Now it also seems that the slowing down of tempo in music could also be achieved without a resampling function by using a second larger FFT for the synthesis stage. If the second FFT transform were 1024 in framesize, and the original analysis FFT transform was 512 in size, then the synthesis stage would create twice as many samples that could still play the music at its original pitch. 

Of course the crux of the problem is how to calculate the new FFT bin values(real, imaginary) for the second oversize FFT of the synthesis step. In the case above, having FFT framesizes of 512 and 1024, we can calculate accurate bin values for &quot;every other&quot; FFT frequency row in the second FFT, by using your gAnaMagn[]   gAnaFreq[] arrays and their respective calculations for phase and magnitude in the new bins of the second FFT (the ones that share the same frequency as those of the first FFT). 

However we would have only calculated values for half of the synthesis FFT bins, because the gAnaMagn[]  gAnaFreq[] arrays from the analysis only have half the values needed for the higher resolution of the synthesis FFT. At this point the second FFT would only have assigned values in &quot;every other&quot; frequency bin. 

It would be easy to interpolate magnitude between the synthesis FFT&#039;s frequency bins, but how could we interpolate phase values (or even gAnaFreq[] values) for the in-between FFT frequency bins that received no assignment? Your article makes it sound like we should see the same Estimated True Frequency values in adjacent bins of the analysis FFT, but as I examine gAnaFreq[] values from data of polyphonic music, this does not seem to be the case. 

While it&#039;s true that a reasonable signal can be synthesized with half of the second FFT frequency bins being empty, it seems that all the harmonic data of the original signal is not, and can not, be present.</description>
		<content:encoded><![CDATA[<p>In order to slow down the tempo of a musical recording while maintaining the original pitch, your pitch-shifting function can be used by first raising the pitch of a recording by an octave, and then applying a resampling function to create a new signal with twice as many samples, thus lowering the pitch of the musical signal back to its original pitch.</p>
<p>Now it also seems that the slowing down of tempo in music could also be achieved without a resampling function by using a second larger FFT for the synthesis stage. If the second FFT transform were 1024 in framesize, and the original analysis FFT transform was 512 in size, then the synthesis stage would create twice as many samples that could still play the music at its original pitch. </p>
<p>Of course the crux of the problem is how to calculate the new FFT bin values(real, imaginary) for the second oversize FFT of the synthesis step. In the case above, having FFT framesizes of 512 and 1024, we can calculate accurate bin values for &#8220;every other&#8221; FFT frequency row in the second FFT, by using your gAnaMagn[]   gAnaFreq[] arrays and their respective calculations for phase and magnitude in the new bins of the second FFT (the ones that share the same frequency as those of the first FFT). </p>
<p>However we would have only calculated values for half of the synthesis FFT bins, because the gAnaMagn[]  gAnaFreq[] arrays from the analysis only have half the values needed for the higher resolution of the synthesis FFT. At this point the second FFT would only have assigned values in &#8220;every other&#8221; frequency bin. </p>
<p>It would be easy to interpolate magnitude between the synthesis FFT&#8217;s frequency bins, but how could we interpolate phase values (or even gAnaFreq[] values) for the in-between FFT frequency bins that received no assignment? Your article makes it sound like we should see the same Estimated True Frequency values in adjacent bins of the analysis FFT, but as I examine gAnaFreq[] values from data of polyphonic music, this does not seem to be the case. </p>
<p>While it&#8217;s true that a reasonable signal can be synthesized with half of the second FFT frequency bins being empty, it seems that all the harmonic data of the original signal is not, and can not, be present.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bernsee</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-5538</link>
		<dc:creator>Bernsee</dc:creator>
		<pubDate>Wed, 10 Feb 2010 14:14:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-5538</guid>
		<description>I would recommend you post this question in our forum. There are plenty of people who have worked with the code who might be able to help you: http://www.surroundsfx.com/forum/viewforum.php?f=11</description>
		<content:encoded><![CDATA[<p>I would recommend you post this question in our forum. There are plenty of people who have worked with the code who might be able to help you: <a href="http://www.surroundsfx.com/forum/viewforum.php?f=11" rel="nofollow">http://www.surroundsfx.com/forum/viewforum.php?f=11</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: at_198x</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-5536</link>
		<dc:creator>at_198x</dc:creator>
		<pubDate>Wed, 10 Feb 2010 09:30:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-5536</guid>
		<description>I has succeeded transfer the code to java. But I don&#039;t use your smbFft function, it didn&#039;t work in my code (don&#039;t know why), so i use another Fft code i obtain from web. After working with some code to convert byte array to short array for little_endian and big-edian store, the program has run. But the audio stream i obtain has some noise, it didn&#039;t sound smoothly like the original data. Can you tell me where should i focus to solve this problem?
Really thank for your help.</description>
		<content:encoded><![CDATA[<p>I has succeeded transfer the code to java. But I don&#8217;t use your smbFft function, it didn&#8217;t work in my code (don&#8217;t know why), so i use another Fft code i obtain from web. After working with some code to convert byte array to short array for little_endian and big-edian store, the program has run. But the audio stream i obtain has some noise, it didn&#8217;t sound smoothly like the original data. Can you tell me where should i focus to solve this problem?<br />
Really thank for your help.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bernsee</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-5519</link>
		<dc:creator>Bernsee</dc:creator>
		<pubDate>Mon, 08 Feb 2010 09:11:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-5519</guid>
		<description>You might want to email Jacob Blommestein, he has created a Java version: http://blommestein.net/</description>
		<content:encoded><![CDATA[<p>You might want to email Jacob Blommestein, he has created a Java version: <a href="http://blommestein.net/" rel="nofollow">http://blommestein.net/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: at_198x</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-5518</link>
		<dc:creator>at_198x</dc:creator>
		<pubDate>Mon, 08 Feb 2010 09:03:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-5518</guid>
		<description>I tried to change the code into Java but it did&#039;nt work. If anyone have Java version, please share. My email is at_198x [AT] yahoo [DOT] com. Thanks</description>
		<content:encoded><![CDATA[<p>I tried to change the code into Java but it did&#8217;nt work. If anyone have Java version, please share. My email is at_198x [AT] yahoo [DOT] com. Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bernsee</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-5396</link>
		<dc:creator>Bernsee</dc:creator>
		<pubDate>Tue, 26 Jan 2010 20:26:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-5396</guid>
		<description>Hi Bill, thanks for your comment.

If you have to reverse the subtraction you are most likely using a different FFT implementation or have a sign issue somewhere in your FFT code. If you use smbFft() you should get convergence with the code as it is - please let me know if you don&#039;t, as this would be a bug (it seems to work ok on my test project on the Mac).

Thanks!
-Stephan</description>
		<content:encoded><![CDATA[<p>Hi Bill, thanks for your comment.</p>
<p>If you have to reverse the subtraction you are most likely using a different FFT implementation or have a sign issue somewhere in your FFT code. If you use smbFft() you should get convergence with the code as it is &#8211; please let me know if you don&#8217;t, as this would be a bug (it seems to work ok on my test project on the Mac).</p>
<p>Thanks!<br />
-Stephan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Farmer</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-5395</link>
		<dc:creator>Bill Farmer</dc:creator>
		<pubDate>Tue, 26 Jan 2010 14:55:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-5395</guid>
		<description>I have implemented this algorithm twice, once some years ago in Java, and recently in C. Not for pitch shifting, but to accurately measure frequency. In both instances I have had to reverse the logic of the line of code which calculates the change of phase between passes from

				/* compute phase difference */
				tmp = phase - gLastPhase[k];
to

				/* compute phase difference */
				tmp = gLastPhase[k] - phase;

to get the algorithm to work as it should. I get divergence in adjacent bins rather than convergence if I don&#039;t.
Apart from that it&#039;s wonderful stuff.</description>
		<content:encoded><![CDATA[<p>I have implemented this algorithm twice, once some years ago in Java, and recently in C. Not for pitch shifting, but to accurately measure frequency. In both instances I have had to reverse the logic of the line of code which calculates the change of phase between passes from</p>
<p>				/* compute phase difference */<br />
				tmp = phase &#8211; gLastPhase[k];<br />
to</p>
<p>				/* compute phase difference */<br />
				tmp = gLastPhase[k] &#8211; phase;</p>
<p>to get the algorithm to work as it should. I get divergence in adjacent bins rather than convergence if I don&#8217;t.<br />
Apart from that it&#8217;s wonderful stuff.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arab</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-5291</link>
		<dc:creator>Arab</dc:creator>
		<pubDate>Wed, 06 Jan 2010 04:22:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-5291</guid>
		<description>Thanks for a well commented piece of code (a skill sadly lacking in today&#039;s world) it makes understanding the output of the Fourier transform a lot easier. cheers</description>
		<content:encoded><![CDATA[<p>Thanks for a well commented piece of code (a skill sadly lacking in today&#8217;s world) it makes understanding the output of the Fourier transform a lot easier. cheers</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-5211</link>
		<dc:creator>Paul</dc:creator>
		<pubDate>Thu, 17 Dec 2009 15:16:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-5211</guid>
		<description>Care to share it?

-P</description>
		<content:encoded><![CDATA[<p>Care to share it?</p>
<p>-P</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Basti</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-5210</link>
		<dc:creator>Basti</dc:creator>
		<pubDate>Thu, 17 Dec 2009 15:05:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-5210</guid>
		<description>Yes, works like a charm.</description>
		<content:encoded><![CDATA[<p>Yes, works like a charm.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vivek</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-3874</link>
		<dc:creator>Vivek</dc:creator>
		<pubDate>Fri, 21 Aug 2009 06:28:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3874</guid>
		<description>Hi,

Has anyone been able to develop a Java version for this code ?</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>Has anyone been able to develop a Java version for this code ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tc</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-3871</link>
		<dc:creator>tc</dc:creator>
		<pubDate>Thu, 20 Aug 2009 19:24:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3871</guid>
		<description>Hi, 
please, comment some on Loren Wilton&#039;s post on August 17, 2008 at 9:08.

Thank you.</description>
		<content:encoded><![CDATA[<p>Hi,<br />
please, comment some on Loren Wilton&#8217;s post on August 17, 2008 at 9:08.</p>
<p>Thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ruben</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-4/#comment-3632</link>
		<dc:creator>Ruben</dc:creator>
		<pubDate>Mon, 13 Jul 2009 23:07:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3632</guid>
		<description>Does this article require any background apart form your article &quot;Mastering The Fourier Transform in One Day&quot;?
I read that one but had real difficulties in following this one.

I stopped at the deviation of the Kth partial&#039;s phase from it&#039;s bin frequency. Do you mean that if we devide the K&#039;th partial to frame whose length is a multiple of the Kth bin frequency we can get the Kth partial&#039;s true frequency from the deviation in phase from frame to frame?
Then I lost you on the computation of the true frequency when there is an overlap between frames.</description>
		<content:encoded><![CDATA[<p>Does this article require any background apart form your article &#8220;Mastering The Fourier Transform in One Day&#8221;?<br />
I read that one but had real difficulties in following this one.</p>
<p>I stopped at the deviation of the Kth partial&#8217;s phase from it&#8217;s bin frequency. Do you mean that if we devide the K&#8217;th partial to frame whose length is a multiple of the Kth bin frequency we can get the Kth partial&#8217;s true frequency from the deviation in phase from frame to frame?<br />
Then I lost you on the computation of the true frequency when there is an overlap between frames.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam Sida</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-4/#comment-3584</link>
		<dc:creator>Adam Sida</dc:creator>
		<pubDate>Wed, 24 Jun 2009 10:54:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3584</guid>
		<description>Hello,
I&#039;ve tried to compile in Visual C++ 2008 express and got error in smbFft function at row:
            for (k = 0, le = 2; k &lt; (long)(log(fftFrameSize)/log(2.)+.5); k++) {
compiler error, log(long _x) is not exist.

so I just replaced this by:
	//updated by asida [AT] centrum [DOT] cz
	long eol = (long)(log((double)fftFrameSize)/log(2.0)+.5);
	//for (k = 0, le = 2; k &lt; (long)(log(fftFrameSize)/log(2.)+.5); k++) {
	for (k = 0, le = 2; k &lt; eol; k++) {
</description>
		<content:encoded><![CDATA[<p>Hello,<br />
I&#8217;ve tried to compile in Visual C++ 2008 express and got error in smbFft function at row:<br />
            for (k = 0, le = 2; k < (long)(log(fftFrameSize)/log(2.)+.5); k++) {<br />
compiler error, log(long _x) is not exist.</p>
<p>so I just replaced this by:<br />
	//updated by asida [AT] centrum [DOT] cz<br />
	long eol = (long)(log((double)fftFrameSize)/log(2.0)+.5);<br />
	//for (k = 0, le = 2; k < (long)(log(fftFrameSize)/log(2.)+.5); k++) {<br />
	for (k = 0, le = 2; k < eol; k++) {</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ApplistarVN</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-4/#comment-3512</link>
		<dc:creator>ApplistarVN</dc:creator>
		<pubDate>Mon, 25 May 2009 04:01:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3512</guid>
		<description>Thank you very much.</description>
		<content:encoded><![CDATA[<p>Thank you very much.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bernsee</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-4/#comment-3509</link>
		<dc:creator>Bernsee</dc:creator>
		<pubDate>Sat, 23 May 2009 14:02:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3509</guid>
		<description>The most likely cause why this doesn&#039;t work is that your buffer contains 2 channels that are interlaced (left, right, left, right). smbPitchShift can only process single channel (mono) sound data. I would recommend you post any followup questions to our forum, thank you!</description>
		<content:encoded><![CDATA[<p>The most likely cause why this doesn&#8217;t work is that your buffer contains 2 channels that are interlaced (left, right, left, right). smbPitchShift can only process single channel (mono) sound data. I would recommend you post any followup questions to our forum, thank you!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ApplistarVN</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-4/#comment-3508</link>
		<dc:creator>ApplistarVN</dc:creator>
		<pubDate>Sat, 23 May 2009 13:53:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3508</guid>
		<description>Hi,
Thank you for your tutorial. I have met a problem with it, please help me!
I have tried it with my sound data having size as 65536 bytes. Its format is kAudioFormatLinearPCM, mSamplRate is 44100 Hz, 2channels/frame (it is stereo). I call the function as: 
smbPitchShift (1.0, (long)65536/2, (long)2048, (long)32, 44100.0, inData,outData)
but the output voice is very very noisy.
inData and outData are float[65536/2] and inData contains all original sound data.
I also have scaled inData, outData (device and multi with 32768) but I don&#039;t know why it is too noisy.</description>
		<content:encoded><![CDATA[<p>Hi,<br />
Thank you for your tutorial. I have met a problem with it, please help me!<br />
I have tried it with my sound data having size as 65536 bytes. Its format is kAudioFormatLinearPCM, mSamplRate is 44100 Hz, 2channels/frame (it is stereo). I call the function as:<br />
smbPitchShift (1.0, (long)65536/2, (long)2048, (long)32, 44100.0, inData,outData)<br />
but the output voice is very very noisy.<br />
inData and outData are float[65536/2] and inData contains all original sound data.<br />
I also have scaled inData, outData (device and multi with 32768) but I don&#8217;t know why it is too noisy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yan Bellavance</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-4/#comment-3405</link>
		<dc:creator>Yan Bellavance</dc:creator>
		<pubDate>Wed, 06 May 2009 04:00:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3405</guid>
		<description>Hi
I am about to vary the pitch value from frame to frame and I am wondering if that will create any phase or other type of problem.  Got any thoughts?</description>
		<content:encoded><![CDATA[<p>Hi<br />
I am about to vary the pitch value from frame to frame and I am wondering if that will create any phase or other type of problem.  Got any thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Todd</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-4/#comment-3386</link>
		<dc:creator>Todd</dc:creator>
		<pubDate>Fri, 01 May 2009 08:08:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3386</guid>
		<description>Great article! I&#039;m looking to build a shift pitching pedal for my bass guitar (to allow me to play along with a DJ whose key shifts slightly every time a new record is mixed in). Can anyone give me any guidance on what CPU specs I might need (MIPS? clock speed?) to achieve this?</description>
		<content:encoded><![CDATA[<p>Great article! I&#8217;m looking to build a shift pitching pedal for my bass guitar (to allow me to play along with a DJ whose key shifts slightly every time a new record is mixed in). Can anyone give me any guidance on what CPU specs I might need (MIPS? clock speed?) to achieve this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bernsee</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-4/#comment-3192</link>
		<dc:creator>Bernsee</dc:creator>
		<pubDate>Thu, 19 Mar 2009 05:54:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3192</guid>
		<description>Hi all, just another reminder to discuss lengthy questions in our forum (see the &quot;Forum&quot; category in the Contact area) and to not post code from other people / books as a comment, as this violates intellectual property rights. Thank you --smb</description>
		<content:encoded><![CDATA[<p>Hi all, just another reminder to discuss lengthy questions in our forum (see the &#8220;Forum&#8221; category in the Contact area) and to not post code from other people / books as a comment, as this violates intellectual property rights. Thank you &#8211;smb</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-3/#comment-3113</link>
		<dc:creator>Paul</dc:creator>
		<pubDate>Thu, 26 Feb 2009 19:36:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3113</guid>
		<description>Yes, that looks right.
-pt</description>
		<content:encoded><![CDATA[<p>Yes, that looks right.<br />
-pt</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: B</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-3/#comment-3112</link>
		<dc:creator>B</dc:creator>
		<pubDate>Thu, 26 Feb 2009 19:34:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3112</guid>
		<description>In attempt to port this to Java from C++, I came across a few statements I am unfamiliar with. Could someone kindly provide an equivalent to the statement?:

memmove(gOutputAccum, gOutputAccum+stepSize, fftFrameSize *sizeof(float));

Would it be?:

for(k=0; k&lt;fftFrameSize; k++)
    gOutputAccum[k] = gOutputAccum[k+stepSize];


Ill provide the java source once I can get it working. :)

Thanks.</description>
		<content:encoded><![CDATA[<p>In attempt to port this to Java from C++, I came across a few statements I am unfamiliar with. Could someone kindly provide an equivalent to the statement?:</p>
<p>memmove(gOutputAccum, gOutputAccum+stepSize, fftFrameSize *sizeof(float));</p>
<p>Would it be?:</p>
<p>for(k=0; k&lt;fftFrameSize; k++)<br />
    gOutputAccum[k] = gOutputAccum[k+stepSize];</p>
<p>Ill provide the java source once I can get it working. <img src='http://www.dspdimension.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-3/#comment-3067</link>
		<dc:creator>Paul</dc:creator>
		<pubDate>Thu, 12 Feb 2009 06:22:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3067</guid>
		<description>I think this is explained here: http://www.dspdimension.com/admin/dft-a-pied/</description>
		<content:encoded><![CDATA[<p>I think this is explained here: <a href="http://www.dspdimension.com/admin/dft-a-pied/" rel="nofollow">http://www.dspdimension.com/admin/dft-a-pied/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: HyeeWang</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-3/#comment-3066</link>
		<dc:creator>HyeeWang</dc:creator>
		<pubDate>Thu, 12 Feb 2009 06:16:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-3066</guid>
		<description>I often see DFT bin in some DFT/stft literature,What does the term 
&quot;bin&quot; mean exactly? 
Does it refer to a specific single frequency or a frequency range? 
If we do N points DFT,then have N DFT bins, where do the 0-bin and N-1 
bin refer to? 
If N = 256,then where does 112.5 bin refer to?</description>
		<content:encoded><![CDATA[<p>I often see DFT bin in some DFT/stft literature,What does the term<br />
&#8220;bin&#8221; mean exactly?<br />
Does it refer to a specific single frequency or a frequency range?<br />
If we do N points DFT,then have N DFT bins, where do the 0-bin and N-1<br />
bin refer to?<br />
If N = 256,then where does 112.5 bin refer to?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
