Hi, I have audio echo application. I want to do a signal process on this audio on *RealTime.* I understood from previous answer that I can implement WSOLA with resample or with pitch shifting. Where can I find lecture/tutorial about it ?
Thanks, Alex 2018-05-29 20:45 GMT+03:00 robert bristow-johnson <r...@audioimagination.com> : > > > ---------------------------- Original Message ---------------------------- > Subject: Re: [music-dsp] WSOLA > From: "Alex Dashevski" <alexd...@gmail.com> > Date: Tue, May 29, 2018 5:22 am > To: music-dsp@music.columbia.edu > -------------------------------------------------------------------------- > > > Hi, > > > > > From what I understood, WSOLA is algorithm that should work on Time domain. > > Pitch shifting is a technique that should work on Frequency domain. > > that's mistaken. most pitch shifting algorithms in hardware (like the > Eventide, the Lexicon PCM-90, Digitech) are time-domain algorithms. > > > > Thus, I don't understand your answer. > > Could you explain in a more details what I need to do ? > > in my answer of May 27, i did explain WSOLA to the best of my ability. > > to do something with your Android, first you need to be able to pass > samples from the input buffer to the output buffer. then you need to > figure out the standard way of creating an app where you can allocate > memory in your app *and* get access to those input and output buffers built > in (i believe those are the 240 sample buffers you mention). this is *not* > a small project. and you're not even at square 2 if you cannot pass audio > through an app of your own. you gotta be able to do that. i have never > programmed either an Android or an iPhone. > > sorry, at this point this is the best advise i can yell from the > helicopter (while you're down in the fray). > > > > > Thanks, > > for what it's worth... > > > > -- > > r b-j r...@audioimagination.com > > "Imagination is more important than knowledge." > > > > > > > 2018-05-29 12:04 GMT+03:00 robert bristow-johnson < > r...@audioimagination.com> > > : > > > >> > >> Do you mean as a time-scaler or as a pitch-shifter? > >> > >> WSOLA can and does work real-time in a pitch-shifter. But a time-scaler > >> can't be real-time whether it's WSOLA or a phase-vocoder. Because a > >> real-time process requires the output to process the input indefinitely > >> without the input and output pointers colliding or diverting away from > each > >> other indefinitely. > >> > >> > >> -- > >> r b-j r...@audioimagination.com > >> > >> "Imagination is more important than knowledge." > >> > >> > >> > >> > >> > >> -------- Original message -------- > >> > From: Alex Dashevski <alexd...@gmail.com> > >> Date: 5/28/2018 10:22 PM (GMT-08:00) > >> To: robert bristow-johnson <r...@audioimagination.com>, > >> music-dsp@music.columbia.edu > >> Subject: Re: [music-dsp] WSOLA > >> > >> Hi, > >> > >> I mean WSOLA on RealTime. How can I proof to my instructor that it's not > >> possible ? > >> > >> Why do I need to do resampling ? Android sample and resample in the same > >> frequency(in my case,48Khz). Maybe, do you mean to do a processing with > >> 8Khz(subsample) ? > >> > >> I also want to achieve the high performance and minimum latency. > >> > >> How can I proof to my instructor that correct way to implement is pitch > >> shifting and not WSOLA on* RealTime*? > > >> > >> Thanks, > >> Alex > >> > >> > >> 2018-05-29 4:19 GMT+03:00 robert bristow-johnson < > r...@audioimagination.com > >> >: > >> > >>> > >>> > >>> ---------------------------- Original Message > ---------------------------- > >>> Subject: Re: [music-dsp] WSOLA > >>> > From: "Alex Dashevski" <alexd...@gmail.com> > >>> Date: Sun, May 27, 2018 2:56 pm > >>> To: philb...@mobileer.com > >>> music-dsp@music.columbia.edu > >>> ------------------------------------------------------------ > >>> -------------- > >>> > >>> > Hi, > >>> > > >>> > I don't understand your answer. > >>> > I have already audio echo application on Android. Buffer size and > >>> Frequency > >>> > sample infuence on latency. > >>> > Could you explain me how implement WSOLA on Real-time ? It is a bit > more > >>> > difficult . > >>> > > >>> > >>> yes WSOLA is a little difficult, but less difficult than a > phase-vocoder. > >>> > >>> > >>> > >>> now, when you say "WSOLA" and "Real-time" in the same breath, do you > mean > >>> a pitch shifter? not a time-scaler, right? because pitch shifting can > be > >>> done real-time, but time-scaling has to be done with an input buffer > (with > >>> some number of samples) getting made into a longer (more samples) or > >>> shorter (fewer samples) buffer with the same sample rate. that can't be > >>> done on an operation the runs on indefinitely, even with a long > throughput > >>> delay. eventually the input and output pointers will collide. > >>> > >>> but you can combine time-scaling and resampling (the latter is > >>> mathematically well defined) to get pitch shifting that can run on > >>> forever. one operation increases the number of samples and the other > >>> reduces the number of samples exactly in reciprocal proportion. so the > >>> number of samples coming out every buffer of time is the same as the > number > >>> going in. > >>> > >>> now the "S" in acronym stands for "Similarity", so you have to position > >>> the windows in the input waveform to be similar to the waveform in the > >>> output. the waveform in the first-half of the input window should match > >>> the similarity to the waveform in the last-half of the output window > of the > >>> previous frame. normally the frame hop is exactly half of the window > >>> width. and the window shape should be complementary like a Hann window. > >>> > >>> i believe that 240 sample buffer in the Android is an input/output > sample > >>> buffer for the media I/O. you can't really do anything with that buffer > >>> except pull in input samples and push out output samples. you will > have to > >>> (using whatever programming environment one uses to make Android apps) > >>> allocate memory and create your own buffers to hold about 100 ms of > sound. > >>> in that buffer, you will use a technique called AMDF, ASDF, or > >>> autocorrelation to measure waveform similarity. your input frame hop > >>> distance (which has both integer and fractional parts) is the output > frame > >>> hop size times the reciprocal of the time-stretch factor. so, if you're > >>> time-stretching (instead of time-compressing), your input frame will > >>> advance more slowly than your output frame, that increases the number > of > >>> samples. but in that output buffer, you will resample (interpolate) > with a > >>> step-size that is time-stretch factor (do this only for output samples > that > >>> have already been overlapped and added) thus reducing the final output > >>> number of samples back to the original number. you will allow some > jitter > >>> on the input window that is informed by the result of the waveform > >>> similarity analysis. > >>> > >>> that's how you do WSOLA, as best as i understand it. > >>> > >>> -- > >>> > >>> r b-j r...@audioimagination.com > >>> > >>> "Imagination is more important than knowledge." > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> _______________________________________________ > >>> 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 > > > > > > > > > > > > > > > -- > > r b-j r...@audioimagination.com > > "Imagination is more important than knowledge." > > _______________________________________________ > 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