[aubio-user] What should I know to understand the implementation of aubio

Paul Brossier piem at piem.org
Mon Sep 21 15:57:35 CEST 2015


Hi Yi,

The phase vocoder adds the following steps prior to the FFT:

- block sliding: aubio_pvoc_do expects vectors of length hop_size, and
will build a vector of length buf_size by concatenating the previous
(buf_size - hop_size) samples to the new hop_size ones.
- windowing: each element of the vector of length buf_size will be
multiplied by a hanningz window
- shifting: the left and right parts of the vector will be swapped to
improve phase continuity across consecutive frames of analysis

The corresponding steps are applied in reverse order in aubio_pvoc_rdo
in order to re-synthesise the signal. Provided you use a hop_size of at
least half buf_size, perfect reconstruction is achieved.

The phase vocoder is an important building block of several DSP
algorithms, and extra care was taken for the one included in aubio to
work well.

To learn more about these steps, I suggest reading the following article:

Amalia de Götzen, Nicolas Bernardini, and Daniel Arfib. Traditional (?)
implementations of a phase vocoder: the tricks of the trade. In
Proceedings of the International Conference on Digital Audio Effects
(DAFx-00), pages 37–44, University of Verona, Italy, 2000.
http://www.cs.princeton.edu/courses/archive/spr09/cos325/Bernardini.pdf

Let us know if you have more questions,

Cheers, Paul

On 9/21/15 11:43 AM, yi huang wrote:
> Specifically what does phase vocoder do addition to simply a short time
> Fourier transform.
> 
> 
> _______________________________________________
> aubio-user mailing list
> aubio-user at aubio.org
> https://lists.aubio.org/listinfo/aubio-user
> 




More information about the aubio-user mailing list