1. Introduction
As opposed to the process of pitch transposition achieved using a simple sample rate conversion, Pitch Scaling is a way to change the pitch of a signal without changing its length. In practical applications, this is achieved by changing the length of a sound using one of the below methods and then performing a sample rate conversion to change the pitch. There exists a certain confusion in terminology, as Pitch Scaling is often also incorrectly named 'Pitch Shift' (a term coined by the music industry). A true Pitch Shift (as obtainable by modulating an analytic signal by a complex exponential) will shift the spectrum of a sound, while Pitch Scaling will dilate it, upholding the harmonic relationship of the sound. The actual Pitch Shifting yields a metallic, inharmonic sound which may well be an interesting special effect but which is a totally inadequate process for changing the pitch of any harmonic sound except a single sine wave.

:alright:
NaN
Posted on 2002-05-26 10:37:17 by NaN
Thanks for the answer NaN. :alright:
Posted on 2002-05-26 11:45:07 by Dr. Manhattan
For those of you interested in this stuff,

There is a link on the site Maverick posted that does an excellent job explaining all the gound work i *tried* to say in my above length post.

The advantange here is *pictures*, and it is written quite well, and to the point. (I recomend it)

FFT Tutorial :alright:

:NaN:
Posted on 2002-05-27 12:30:46 by NaN
So NaN are you thinking of working on a
asm FFT?
Posted on 2002-05-28 03:11:12 by bdjames
Yup, im 90% finished coding up one for masm.. :grin:

Just trying to figure out a few bugs at the moment... :rolleyes:

:NaN:
Posted on 2002-05-28 04:15:15 by NaN
:)

Are you hard coding the sample rate?
(32,64,128,... data points)

What are you optimizing for?
(Pentium, PII, P4)
Posted on 2002-05-28 05:08:15 by bdjames
Its still in its "infant" stage. Its done with the FPU at the moment, and only optomizizations are common sense, however i did try to keep it tight.

The sample size is flexible, you specify it in a start-up param. It builds sine tables, and bit-reverse tables in advance before you load data into it.

Im having a hell of a time figuring out some bug tho, that seemingly modifies one of the bit reverse entries. Problem is i cant find "where" it is. I only find the resulting GPF when it is used :rolleyes:

Its driving me nuts at the moment. And when your dealing with arrays in the 1000's you can wast alot of time looking for the one time it makes a "wrong turn" with softice, or ollydebug.

I will get it tho.. all i know is its bit reverse entry "7FFh" and it produces FF001FFCh which is *almost* correct. The MSB 'FF' is the bug, it causes the index to go way outside the list.

I've tried placing "and ebx, 0FFFFh" before writing out the values into the bit-reverse list. But the bug still apears, so its being modified by error somewhere else in the program.. :rolleyes:

(( This is where i went to bed ))

PS: Why are you interested?

:alright:
NaN
Posted on 2002-05-28 13:54:33 by NaN
Nan,
btw have you ordered the free copy of .net speech sdk beta.
I got mine and it is extremly rad compared to the api version. There are graphical editors for writing the speech grammar. (and the packing of the cds is excellent too :grin: )
Posted on 2003-03-26 02:23:56 by clippy

Do you have an URL for that? Thanks.
Posted on 2003-03-26 06:10:05 by Maverick