03-24-2007 06:53 PM
03-24-2007 07:24 PM
03-24-2007 07:51 PM
03-26-2007 09:43 AM
03-26-2007 12:37 PM
Kevin
Its sure you made my day ![]()
The crossfading of the signals i am talking about is not my goal but just a step into a bigger code i am building and even perhaps, crossfade was kinda the wrong term to use, maybe concatenation was more correct. The problem you had is that you couldnt maintain a constant volume level in your signal after crossfading it, is that it?I dont know why exactly this happened but the very first thought that comes out is that since crossfading fades in and out two signals (in your case the same one twice) i would expect to hear a diminishing volume level at the are where the signals meet, but on the other hand though now i am thinking about it, your signal had a constant volume from the beginning till the end of it. I cant say anything on this right now at least. Thank you though for your tip ![]()
madgreek
03-26-2007 01:06 PM
03-26-2007 02:33 PM
03-26-2007 03:06 PM
Milqman
Please dont take this the wrong way as if i am trying to take advantage of your kindness to help me, but if you want to get a very general idea, summarized in a paragraph ,about pitch scaling, and you have some "extra" free time in your hands, you could read the paragraph 3.2.1 in page 6 of the following paper.
http://www.tc-helicon.tc/Files/helicon_files/Pitch_shifting.pdf
Its the only one of the papers i have in my posession that is summarized in a paragraph
madgreek
03-26-2007 04:26 PM
I tried to quickly review this thread again. This is my first exposure to this subject matter and I'm having trouble keeping track of the terminology. I can, however, talk in very generic terms about arrays of numeric data that need to be manipulated. I'll be able to follow along better if your answers use generic terms too.
1. So let's say you've got data that used to be an array of 512 samples, but which has been split down into 8 segments of 64 samples each.
2. These 8 segments overlap their neighbors by 50%, right? For example, the 2nd half of the samples of segment 3 are exactly the same as the 1st half of the samples of segment 4?
3. When I look at your diagrams, it appears that pitch shifting would cause you to either delete or duplicate segments, and to overlap either less or more than 50%. It isn't completely clear to me how one determines the correct # of segments to use, or which one(s) to delete or duplicate. It *is* clear enough how that determination would then control the % overlap necessary, I think. Am I right in perceiving that the output of pitch shifting would still be exactly 512 total samples?
4. How do you determine the # of segments to combine in the pitch shifting case? The diagram shows special cases where the fractions work out to integer #'s of segments. But what if you needed to pitch shift by a factor of 5/7 while starting with 8 segments? Would you just round to the nearest integer?
5. The time shifting appears to always want to maintain a 50% overlap. Is this right?
6. It further appears to me that a time shift would produce output with either <512 samples (compression) or >512 samples (expansion). Then what? Don't you need to resample it back to exactly 512 samples?
7. When calculating the merged and overlapped segments, all the overlap regions are combined in some type of cross-fade. You've referred to a Hanning window and I saw it mentioned in one of the links as well. Frankly, it strikes me as an odd functional form to use for a time-domain cross-fade. I wouldn't expect it to preserve "volume" constancy through the fade region. I'd have first thought that a triangular window would be a more natural choice. But then again, my story about fan noise and Audacity was based on my own experience where an (apparently) linear cross-fade envelope shape also did not preserve volume constancy. There was a distinct volume attenuation there. I'm a novice with Audacity though, so it may have been operator error.
-Kevin P.
03-26-2007 08:07 PM