<?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>Tue, 17 Aug 2010 17:32:10 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Miroslav</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-6374</link>
		<dc:creator>Miroslav</dc:creator>
		<pubDate>Wed, 30 Jun 2010 16:00:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-6374</guid>
		<description>Send to algorithm 9 ms of sound + additional fftFrameSize samples of silence. Then get fftFrameSize samples and ignore them and get 9 ms of shifted sound (not ideal but good enough).</description>
		<content:encoded><![CDATA[<p>Send to algorithm 9 ms of sound + additional fftFrameSize samples of silence. Then get fftFrameSize samples and ignore them and get 9 ms of shifted sound (not ideal but good enough).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Miroslav</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-6373</link>
		<dc:creator>Miroslav</dc:creator>
		<pubDate>Wed, 30 Jun 2010 15:50:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-6373</guid>
		<description>Thanks, seems it works</description>
		<content:encoded><![CDATA[<p>Thanks, seems it works</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bernsee</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-6364</link>
		<dc:creator>Bernsee</dc:creator>
		<pubDate>Tue, 29 Jun 2010 16:12:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-6364</guid>
		<description>Yes. You will need to increase the overlap for one thing. That should be the most important part.</description>
		<content:encoded><![CDATA[<p>Yes. You will need to increase the overlap for one thing. That should be the most important part.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Miroslav</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-6334</link>
		<dc:creator>Miroslav</dc:creator>
		<pubDate>Sat, 19 Jun 2010 15:54:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-6334</guid>
		<description>[ If you need a wider pitch shift range you need to tweak the code a bit. ]

How? I can just make several passes but may be there are more effective way?</description>
		<content:encoded><![CDATA[<p>[ If you need a wider pitch shift range you need to tweak the code a bit. ]</p>
<p>How? I can just make several passes but may be there are more effective way?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kavan</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-6163</link>
		<dc:creator>kavan</dc:creator>
		<pubDate>Wed, 12 May 2010 18:51:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-6163</guid>
		<description>Hello, 
I am new to the STFT. I understand that if the frequency of a specific sinusoid within a window is not coinciding with the fundamental &quot;analysis&quot; frequency or multiples of it  determined by the window length and sample number, then that sinusoids will show different phase offsets in each window....

We can calculate the difference between phase offsets from two consecutive windows for the same frequency w. What do we then do with that?
The phase vocoder uses that change in phase to do what exactly? I guess I do not really undestand what pitch shifting is....
Thanks for the patience,
Kavan</description>
		<content:encoded><![CDATA[<p>Hello,<br />
I am new to the STFT. I understand that if the frequency of a specific sinusoid within a window is not coinciding with the fundamental &#8220;analysis&#8221; frequency or multiples of it  determined by the window length and sample number, then that sinusoids will show different phase offsets in each window&#8230;.</p>
<p>We can calculate the difference between phase offsets from two consecutive windows for the same frequency w. What do we then do with that?<br />
The phase vocoder uses that change in phase to do what exactly? I guess I do not really undestand what pitch shifting is&#8230;.<br />
Thanks for the patience,<br />
Kavan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Namekuji</title>
		<link>http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/comment-page-5/#comment-6047</link>
		<dc:creator>Namekuji</dc:creator>
		<pubDate>Wed, 07 Apr 2010 08:17:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.dspdimension.com/2007/10/18/pitch-shifting-using-the-fourier-transform/#comment-6047</guid>
		<description>How can I pitch shift a sound of only 9 ms ?</description>
		<content:encoded><![CDATA[<p>How can I pitch shift a sound of only 9 ms ?</p>
]]></content:encoded>
	</item>
	<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>
</channel>
</rss>
