03-29-2007 12:44 PM
03-29-2007 03:51 PM
Ok, I'm getting there...
Request: madgreek, can you please do the following:
1. Take the data from 'hijacked.wav'. This will be a moderately large 1D array of 8-bit sound samples.
2. Use 'Reshape Array' to reorder this as a 2D matrix. It will be n rows (the first size input) by m columns (the second size input) where m is the # of samples in each individual chunk and n is the # of chunks in the whole wave. I could do this, but I don't know the criteria for choosing chunk size. If chunk size can vary, then this step would need to be handled differently.
3. For each row of that 2D matrix, evaluate whether it is voiced or unvoiced. Create a new 1D integer array with n elements, one for each row of the 2D matrix. The integer value should represent the # of samples to use for each sub-chunk, assuming 50% overlap. Use an integer value of 0 to identify 'unvoiced' rows.
4. Note & reminder: Please no Hanning or other windows yet. The 2D matrix should simply contain the raw 'hijacked.wav' sound samples, simply re-shaped from 1D to 2D.
5. Create front panel indicators for the 2D matrix and the 1D array. Run your code and verify that you've produced good results for the 2D and 1D array.
6. With data in the 2D and 1D arrays, select them and perform an "Edit-->Copy" operation.
7. Create a brand new vi. Perform "Edit-->Paste"
8. Find the menu choice for "Make Current Values Default". Under 7.x, I think it's in the "Operate" menu.
9. Save this new vi (which will be pre-loaded with valid useful data). Shut down LabVIEW then re-open the vi to verify that the data truly was saved as default inside it. Then post it.
10. If you've been able to re-create milqman's code in version 7, please post that too. With that, I can work in 7.1 and save back to 7.0 for posting.
-Kevin P.
03-29-2007 04:03 PM
03-29-2007 04:26 PM
03-29-2007 04:59 PM
03-30-2007 06:41 AM
03-30-2007 12:31 PM
03-30-2007 12:33 PM
03-30-2007 01:31 PM
p.s. The size of arrays goes like this....all arrays are the same size initially.....unvoiced arrays are all the same size (256) and are kept like that....if an array is said to be voiced is broken down from the 256 that is, to smaller sub-arrays of same size (i.e 64). The only difference is the size of these sub-arrays differ from voiced array to voiced array.
Hmmm, now this sounds more like what I thought I kinda understood. So let me just try to get perfectly clear. I'm referring *only* to pitch-shifting with no intention of applying time-shifting.
-Kevin P.
P.S. Friendly reminder -- if you've implemented milqman's code in LV 7, please post it.
03-30-2007 01:50 PM