Csound Csound-dev Csound-tekno Search About

[Csnd] Sliding phase vocoder and overlap

Date2013-09-03 21:00
FromAndres Cabrera
Subject[Csnd] Sliding phase vocoder and overlap
Hi,

I've been trying to use the sliding phase vocoder and it seems to me that the naming of the parameters for pvsanal are misleading as ioverlap should be called ihop, as a value of 1 should be used for sliding phase vocoder. Is that correct?

Cheers,
Andres

Date2013-09-03 21:46
FromRichard Dobson
SubjectRe: [Csnd] Sliding phase vocoder and overlap
Ah, vocabulary! "ihop" is reasonable enough for pvoc; the "conventional" 
phase phase vocoder is often referred to, especially in more recent 
papers, as the hopping phase vocoder specifically to distinguish it from 
the one-sample sliding form. On the other hand, "sliding" is also widely 
used (arguably, incorrectly) to describe the conventional hopping phase 
vocoder, as also a number of other related algorithms which use 
overlapping windows. The term sliding in this context refers indirectly 
to the underlying "sliding dft" (pretty well-established as a dsp 
technique now)  on which it is based. I have no particular problem with 
referring to "a single-sample overlap"; the sliding pvoc is in effect a 
special case of the general hopping vocoder using an overlap (if we may 
still call it that) of one sample, which enables a particularly simple 
and efficient implementation. Arguably "hop" would be more confusing 
when applied to the sliding pvoc as the single-sample update is surely 
not a hop; more of a step.

Historically, the word "overlap" is by far the most common term in the 
context of the general phase vocoder, and reasonably describes the 
sliding form too. It is no different semantically from having "ksmps = 
1" and still refer to a control rate.

Maybe we should refer to "hopping" and "stepping" phase vocoders? But 
having two names for one parameter in one opcode will probably be just 
as confusing as sticking with one name!

Richard Dobson


On 03/09/2013 21:00, Andres Cabrera wrote:
> Hi,
>
> I've been trying to use the sliding phase vocoder and it seems to me
> that the naming of the parameters for pvsanal are misleading as ioverlap
> should be called ihop, as a value of 1 should be used for sliding phase
> vocoder. Is that correct?
>
> Cheers,
> Andres


Date2013-09-03 21:53
FromAndres Cabrera
SubjectRe: [Csnd] Sliding phase vocoder and overlap
Hi,

Thanks for the ideas, but I mean that if it was called ioverlap, I would expect to use the sliding phase vocoder like this (I actually tried this, and was baffled as to why it didn't work...):

fsig pvsanal a1,1024,1023,1024,1

Because 1023 samples overlap, where as if it was called hop there is a one sample "hop":

fsig pvsanal a1,1024,1,1024,1

Does this makes sense?

Cheers,
Andrés


On Tue, Sep 3, 2013 at 1:46 PM, Richard Dobson <richarddobson@blueyonder.co.uk> wrote:
Ah, vocabulary! "ihop" is reasonable enough for pvoc; the "conventional" phase phase vocoder is often referred to, especially in more recent papers, as the hopping phase vocoder specifically to distinguish it from the one-sample sliding form. On the other hand, "sliding" is also widely used (arguably, incorrectly) to describe the conventional hopping phase vocoder, as also a number of other related algorithms which use overlapping windows. The term sliding in this context refers indirectly to the underlying "sliding dft" (pretty well-established as a dsp technique now)  on which it is based. I have no particular problem with referring to "a single-sample overlap"; the sliding pvoc is in effect a special case of the general hopping vocoder using an overlap (if we may still call it that) of one sample, which enables a particularly simple and efficient implementation. Arguably "hop" would be more confusing when applied to the sliding pvoc as the single-sample update is surely not a hop; more of a step.

Historically, the word "overlap" is by far the most common term in the context of the general phase vocoder, and reasonably describes the sliding form too. It is no different semantically from having "ksmps = 1" and still refer to a control rate.

Maybe we should refer to "hopping" and "stepping" phase vocoders? But having two names for one parameter in one opcode will probably be just as confusing as sticking with one name!

Richard Dobson



On 03/09/2013 21:00, Andres Cabrera wrote:
Hi,

I've been trying to use the sliding phase vocoder and it seems to me
that the naming of the parameters for pvsanal are misleading as ioverlap
should be called ihop, as a value of 1 should be used for sliding phase
vocoder. Is that correct?

Cheers,
Andres



Send bugs reports to the Sourceforge bug trackers
csound6:
           https://sourceforge.net/p/csound/tickets/
csound5:
           https://sourceforge.net/p/csound/bugs/
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"




Date2013-09-03 22:03
FromRichard Dobson
SubjectRe: [Csnd] Sliding phase vocoder and overlap
Overlap is used in the sense of "degree of temporal separation". It is 
the inverse of the analysis frame rate. A "half-window" overlap is the 
maximum separation viable given the use of symmetrical analysis windows 
sucm as Hann (some windows require a minimum 25% overlap, etc); that 
would be e.g. 1024, 512, 1024. Or, if you like, how much of a frame is 
left exposed by the next one. There is nothing wrong semantically with 
what you propose, it is just that the established meaning of the 
analysis frame overlap  is as above; so that to activate the sliding 
pvoc you do need to specify 1 (or a v low number) for the overlap. 
That's just the way it has turned out, with the sliding pvoc facility 
added to the existing opcode and framework in which all the parameter 
names have a history of several decades of established use behind them.

Richard Dobson

On 03/09/2013 21:53, Andres Cabrera wrote:
> Hi,
>
> Thanks for the ideas, but I mean that if it was called ioverlap, I would
> expect to use the sliding phase vocoder like this (I actually tried
> this, and was baffled as to why it didn't work...):
>
> fsig pvsanal a1,1024,1023,1024,1
>
> Because 1023 samples overlap, where as if it was called hop there is a
> one sample "hop":
>
> fsig pvsanal a1,1024,1,1024,1
>
> Does this makes sense?
>


Date2013-09-03 22:17
FromAndres Cabrera
SubjectRe: [Csnd] Sliding phase vocoder and overlap
Hi Richard,

Thanks for the explanation, makes sense now.

Cheers,
Andrés


On Tue, Sep 3, 2013 at 2:03 PM, Richard Dobson <richarddobson@blueyonder.co.uk> wrote:
Overlap is used in the sense of "degree of temporal separation". It is the inverse of the analysis frame rate. A "half-window" overlap is the maximum separation viable given the use of symmetrical analysis windows sucm as Hann (some windows require a minimum 25% overlap, etc); that would be e.g. 1024, 512, 1024. Or, if you like, how much of a frame is left exposed by the next one. There is nothing wrong semantically with what you propose, it is just that the established meaning of the analysis frame overlap  is as above; so that to activate the sliding pvoc you do need to specify 1 (or a v low number) for the overlap. That's just the way it has turned out, with the sliding pvoc facility added to the existing opcode and framework in which all the parameter names have a history of several decades of established use behind them.

Richard Dobson


On 03/09/2013 21:53, Andres Cabrera wrote:
Hi,

Thanks for the ideas, but I mean that if it was called ioverlap, I would
expect to use the sliding phase vocoder like this (I actually tried
this, and was baffled as to why it didn't work...):

fsig pvsanal a1,1024,1023,1024,1

Because 1023 samples overlap, where as if it was called hop there is a
one sample "hop":

fsig pvsanal a1,1024,1,1024,1

Does this makes sense?




Send bugs reports to the Sourceforge bug trackers
csound6:
           https://sourceforge.net/p/csound/tickets/
csound5:
           https://sourceforge.net/p/csound/bugs/
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"