I have only used libraries for resampling myself. I haven't looked at their source, but it's available. The two libraries I'm aware of are at http://www.mega-nerd.com/SRC/download.html and https://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html
perhaps they can give you some insight. On Wed, Oct 3, 2018 at 2:46 PM Alex Dashevski <alexd...@gmail.com> wrote: > I wrote on android ndk and there is fastpath concept. Thus, I think that > resampling can help me. > Can you recommend me code example ? > Can you give me an example of resampling ? for example from 48Khz to 8Khz > and 8Khz to 48Khz. > I found this: > https://dspguru.com/dsp/faqs/multirate/resampling/ > but it is not enough clear for me, > > Thanks, > Alex > > > בתאריך יום ד׳, 3 באוק׳ 2018 ב-20:56 מאת Spencer Jackson < > ssjackso...@gmail.com>: > >> >> >> On Wed, Oct 3, 2018 at 3:17 AM Alex Dashevski <alexd...@gmail.com> wrote: >> >>> >>> if I do resampling before and after processing. for example, 48Khz -> >>> 8Khz and then 8Khz -> 48Khz then will it help ? >>> >> >> Lowering sample rate can help achieve lower latencies by giving you fewer >> samples to process in the same amount of time but just downsampling and >> then upsampling back doesn't really have any effect. >> >> >> >>> I don't understand why I need filter, This is to prevent alias but I >>> can't understand why ? >>> >>> Technically you only need a filter if your signal has information above >> the nyquist frequency of the lowest rate but this is not usually the case. >> I think wikipedia explains aliasing pretty well: >> https://en.wikipedia.org/wiki/Aliasing#Sampling_sinusoidal_functions . >> Once the high frequency information aliases it cannot be recovered by >> resampling back to the higher rate and your lower band information is now >> mixed in with the aliased information. The filter removes this high >> freqency data so that the low band stays clean through the whole process. >> >> >> Is there option to decrease latency or delay ? >>> >> >> The only way to reduce latency in your algorithm (unless there is some >> error in the implementation) is to reduce the block size, so you process >> 128 samples rather than 240. 240 isn't a very large amount of latency for a >> pitch shifter which is typically a CPU intensive process and therefore most >> implementations have relatively high latencies. >> >> I'm not sure I understand what you mean by the pitch duration requiring a >> buffer-resize or sample-rate decrease. WSOLA creates a signal with more >> samples than the input, you must resample that (usually by a non-integer >> amount) to make it the correct number of samples then output that, and >> reload your buffer with the next block of input data. Please clarify if you >> mean some other issue. >> >> _Spencer >> _______________________________________________ >> dupswapdrop: music-dsp mailing list >> music-dsp@music.columbia.edu >> https://lists.columbia.edu/mailman/listinfo/music-dsp > > _______________________________________________ > dupswapdrop: music-dsp mailing list > music-dsp@music.columbia.edu > https://lists.columbia.edu/mailman/listinfo/music-dsp
_______________________________________________ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp