On Sat, 28 Jun 2008, cyrille henry wrote:
i personally consider that the interpolation should not add harmonics, and should remove non audible harmonics. i.e : a noise with freq from 20Hz to 20kHz shift 2 octave lower should result in a noise with freq from 20Hz to 5KHz. but it's ok for me if the result is from 5Hz to 5KHz. shifting it 2 octave higher should result in a 80Hz->20KHz frequency on the signal. (freq from 20KHz to 80Kz should be removed to kill alliasing effect.
It's not the job of an interpolator to do anything about actual acoustics. To be Pd-like, your interpolator must not make any assumptions about the signal, which could be any kind of signal, sound or not, and which could be at a different apparent sample rate than what it will be played at. Using acoustic assumptions reduces the practical pluggability of objects in any way that the user sees fits, as less combinations are usable. This is why Pd doesn't use any acoustic assumptions. The Pd way to do what you want is to put a [hip~] after the interpolator.
a table filled with alternate -1 and 1 can be seen as a 22KHz sinus (@ 44100 Hz sampling rate). shifting it higher should result in a null signal with an anti aliased interpolation.
This is not an acoustic consideration, so this is fine. The choice of the Nyquist frequency of 22.05 kHz is an acoustic consideration, but it's not a choice that the interpolator itself makes, it's a choice that the interpolator just has to deal with, so it is fine.
shifting it lower should result in a pure sinus wave. this is my opinion. i test this, and tabread4c~ is very close to the sinus wave, while tabread4~ is closer to a triangle wave.
I will love tabread4c~...
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec