On Thu, Aug 9, 2012 at 3:03 PM, Alexandre Torres Porres porres@gmail.com wrote:
Awesome, in fact I'm particularly interested in doing pitch shift on the fly as well, how do you do that?
And what about these limitations of [tabread4~]? I'm getting the idea it's all a matter of better quality in the recording of the audio, is it right or is there any other feature?
And moreover, what is "variable speed" about anyway? I can only make some assumptions, but it'd be good to have a better input on this.
Thanks for working on this and sharing it out.
Cheers
Alex et al.,
[tabread4~] reads from a table of numbers based on the index you give it. If you give it a fractional index (e.g. "3.427"), it will interpolate between the values in the two surrounding points (in the example, between the values stored at indices 3 and 4). It does so by drawing a curve that fits the values at the four surrounding indices, and outputs the value of that curve at your fractional index. In some way, it is trying to fill in between samples, and give you a value of what the sample "would have been" at that factional index.
So, you can read through a table faster or slower than the original sample rate, and [tabread4~] will give you higher quality by filling in the gaps (this is one of the things meant by "variable speed").
[ipoke~] does this in reverse -- it's a table writer, so the left inlet you give the signal you want to write, and right inlet you give the indices in the table you want to write. If you write into the table fast (e.g. imagine the indices you give it are [0, 4.5, 9, 13.5, 18, 22.5, 27 ...]), it will interpolate over the gaps and give you a lower sound. So far it does linear interpolation, but in the works is cubic interpolation like in [tabread4~].
It can be used for many things like pitch and doppler shifts, and other more experimental things in a way that can be difficult to get with a table reader like [tabread4~]. You can change the speed you go through the table with a [phasor~] for complicated pitch shifts, and you can write backwards into a table as well. [ipoke~] will also let you overdub -- that is, mix the signal you want to write into the table with what is already there. This gives you some flexibility.
I'm not sure what you mean by "pitch shift on the fly" -- can you elaborate?
Best,
Matt