Re: octaver (plugin) for bass

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 11, 2014 at 07:55:13PM +0200, hermann meyer wrote:
 
> I'm really unsure about how I could use this to calculate it right,
> could you give me some more hints, or best at all, a patch will be
> very welcome, as most I've learned from reading source code.

There's a paper by Dolson and Laroche (1999) which is a 'must read'
for anyone dabbling with phase vocoders. See

<http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.8046>

which has a free download link from columbia.edu.

Their method does the right calculations even without using
the computed frequencies (they wanted to avoid the atan2()
calls), but it's possible to do the same thing using them. 

Hint: if you need the frequencies the Bernsee way, just
compute them using bin number as the unit instead of Hz -
it simplifies things quite a lot ans also shows much 
clearer what's going on.

This is how it's done in some experimantal code I wrote
years ago:

for (i = 0; i <= hlen; i++)
{
    x = _F [i][0];
    y = _F [i][1];
    p = atan2 (y, x) / twopi;       // Phase in cycles.
    d = p - _phase1 [i] - i / div;  // Minus previous and expected difference.
    d -= floorf (d + 0.5);          // Reduce to [-0.5...+0.5]
    _phase1 [i] = p;                // Store for next iteration.
    _freq [i] = i + d * div;        // Frequency in bins.
    _magn [i] = hypotf (x, y);      // Magnitude.
}

where 'div' is the overlap factor, e.g. 4 for 75%. Note
this must be a float.

I'll let you work out the inverse operation by yourself,
you'll notice it's even simpler (as some terms cancel out).
But it's not needed when using D&L's method.

For code, maybe have a look at Rubberband which may contain
interesting things (I don't know, never dared to look as it
would probably have me hooked up for weeks experimenting
with this sort of algorithms...)


Ciao,

-- 
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@xxxxxxxxxxxxxxxxxxxx
http://lists.linuxaudio.org/listinfo/linux-audio-user




[Index of Archives]     [Linux Sound]     [ALSA Users]     [Pulse Audio]     [ALSA Devel]     [Sox Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux