03-26-2007 08:09 PM
03-26-2007 08:48 PM
03-26-2007 08:53 PM
03-26-2007 08:58 PM
03-26-2007 09:06 PM
03-27-2007 12:45 PM
I've only got 8.20 and 7.1 installed. I can't backsave any earlier than 8.0 either.
I'll try to look at milqman's posting later tonight. Meanwhile, I'll follow on with the numbered list of q's & a's.
2. By "exactly the same" I really meant the exact same values. The way I interpreted the "pitch and time scale.png" attachment was some of the original 512 samples belonged to both the last half of segment 3 and also to the first half of segment 4. That's what I meant by calling it 50% overlap.
However, I am right now realizing a silly oversight on my part. Even while I read and typed the value 512, I kept thinking in terms of 256 simply because that's the barrier value I encounter far more commonly. So I figured that 8 segments times 64 samples each was 2x too many, when in reality it's exactly the right number. Looking at the diagram you posted, I'd expect a more relevant starting point would be to define 16 segments of 64 samples each, such that the segments overlap by 50% as shown in the diagram. (I think I gather that for each set of 512 samples, you may come up with a different # of segments to divide it into. For now, let's stick with a single sample set though.)
3-4. Maybe the diagram is throwing me off. Here's how I interpret it: the x-axis overall extends over exactly the original 512 samples. The triangular regions give clues as to what range of indices from the original sample array are used to define the segments, as well as a "relative gain" to apply while cross-fading from one segment to the next. However, after performing the pitch-shift, it appears that the segments no longer overlap by exactly 50% of their width. The overlap may be either less or more depending on how many total segments are used to span the 512 sample range. Is this interpretation wrong?
I'm now inclined to think the following, starting with 16 segments of 64 samples, each segment overlapping by 50% with each of its neighbors. (Note: the final algorithm will need to have some memory so that the last segment of one 512 sample data set can be used to combine with the first segment of the next 512 sample data set. Let's ignore that for the time being though.) To compress by a factor of 0.5, keep only 8 alternating segments, leaving you with 0 overlap and 0 gaps, but exactly 512 total samples. It seems to me there's no cross-fading to do. To expand by a factor of 2, you duplicate all the segments and fit them halfway between existing overlapping segments. Now you'll have 32 segments which overlap their neighbors by 75%, and cross-fading must be done among 3 overlapping segments (2 unique, 1 duplicate).
5-6. It appears that when you perform time-shifting, you specifically do NOT preserve the # of samples at 512. Is this right? Do you produce an output with either <512 or >512?
7. I'm sure a Hanning window has a different spectral response than a Triangular window. I don't really have any good idea whether that difference may be useful or even significant to this processing. I'd suggest making the windowing operation into a sub-vi so it can be more easily changed later on if needed.
Sidebar to milqman on Audacity: As I recall, it's easy to generate true white noise in Audacity. Can you verify my observations? Generate 10 seconds of noise, then copy and paste it as a 2nd audio track. Set the two tracks to overlap by about 1 second and apply the standard linear cross-fade to the tracks for that 1 second. Don't you hear a volume drop during that second? If no, I'd like to learn what I'm doing wrong...
-Kevin P.
03-27-2007 01:22 PM
03-27-2007 02:01 PM
03-27-2007 06:22 PM
03-27-2007 07:53 PM