This directory devoted to pitch-changing in the frequency domain. See the main assignment page for more background. UTILITIES: normwav : input parameters are a wav array and a maximum value (always 1.0 for me). output is wav array of linearly scaled entries whose largest is the max value parameter. expinterp : An explicit linear interpolator that just takes the familiar x0,y0 and x1, y1 pairs and returns the y value that would result from an xi value that is between x0 and x1. Newbreakup : This takes a long wav file and breaks it up into an array, the rows of which are FFTSiz long, each containing that many samples. They are to be individually FFTd. In this whole effort I wound up restricting the size of the wav file to be exactly some even number of FFTSiz's long, so the breakup and reassemble work simply and no pesky zeros occur in the rows. Newbreakup is used also for making a sonogram in an obvious way: The rows correspond to the vertical strips in the sonogram, since they are shorter sound-segmens whose real time extent depends on FFTSiz and sample rate. Newreassemble : Takes a Newbreakup array and reassembles it into one long wav file for listening and storing. getsound, putsound: just like the time domain: get or create a wav file and put one out to disk with audio playback for interest and checking. ONLY getsound will usually get a fraction of a second more than specified to round out the wav file to a length that's a multiple of FFTSiz. remapf2*: This is the remapping function that creates a new FFT array from the input. In the new one, FFT elements are shifted up (thus are moved to higher frequencies). It interpolates. EFFECT: realtest: The script that produces the effect. Right now it's got 3 different factors to raise the pitch by, corresponding to a major third, a perfect fifth, and a dominant seventh. As with Newchorus in the Time/ directory, it creates a wav file of the original voice with the pitch-shifted ones [named in the for loop command] added. I was hoping for a nice barbershop chorus effect but the result with four voices was dissapointing to say the least... the voice and third above duet is reproduced in the assignment page.