Csound Csound-dev Csound-tekno Search About

[Cs-dev] PVS adding phase support?

Date2009-07-01 14:06
Frompeiman khosravi
Subject[Cs-dev] PVS adding phase support?
AttachmentsNone  None  
Hello,

I am just wondering if there are any plans to implement the amplitude+phase formant for pvsanal in the near future? I think this addition + adding support for phase-data for pvsftw & pvsftr would allow some kind of phase locking and be very very useful indeed, or is it out of the question?

Otherwise, are there any tricks to allow the reintroduction of the phase information into the signal using the current opcodes?

Many Thanks
Peiman

Date2009-07-01 14:07
Frompeiman khosravi
Subject[Csnd] Fwd: PVS adding phase support?


---------- Forwarded message ----------
From: peiman khosravi <peimankhosravi@gmail.com>
Date: 2009/7/1
Subject: PVS adding phase support?
To: Developer discussions <csound-devel@lists.sourceforge.net>


Hello,

I am just wondering if there are any plans to implement the amplitude+phase formant for pvsanal in the near future? I think this addition + adding support for phase-data for pvsftw & pvsftr would allow some kind of phase locking and be very very useful indeed, or is it out of the question?

Otherwise, are there any tricks to allow the reintroduction of the phase information into the signal using the current opcodes?

Many Thanks
Peiman


Date2009-07-03 12:38
Frompeiman
SubjectRe: [Cs-dev] PVS adding phase support?
I just had a quick glance at Puckette's article 'phase locked vocoder'. It
sounds promising, he mentions that with phase locking the re-synthesised
signal has more presence and is free from the usual fft artifacts. Are there
any software out there to allow phase locking (even commercial)?

I would love to have this in csound! :-)

Thanks in advance
Peiman  


peiman wrote:
> 
> Hello,
> I am just wondering if there are any plans to implement the
> amplitude+phase
> formant for pvsanal in the near future? I think this addition + adding
> support for phase-data for pvsftw & pvsftr would allow some kind of phase
> locking and be very very useful indeed, or is it out of the question?
> 
> Otherwise, are there any tricks to allow the reintroduction of the phase
> information into the signal using the current opcodes?
> 
> Many Thanks
> Peiman
> 
> ------------------------------------------------------------------------------
> 
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
> 
> 

-- 
View this message in context: http://www.nabble.com/PVS-adding-phase-support--tp24289569p24321779.html
Sent from the Csound - Dev mailing list archive at Nabble.com.


------------------------------------------------------------------------------
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2009-07-03 13:11
FromRichard Dobson
SubjectRe: [Cs-dev] PVS adding phase support?
So would I. I am not sure over the patent position. Probably the plain 
Puckette solution is OK. The later ("improved") one was patented by 
Dolson and Laroche for use in Creative Labs time-scaling software (but 
in a disappointing  way - to reduce CPU time to a minimum by getting 
away with the minimum 50% frame overlap; so drums still process rather 
badly!).

The equivalent of phase locking in the amp/freq format is (as far as I 
can tell!) what I call "bin bunching" (mentioned in my ICMC paper on the 
SDFT and SPV). That is, where bins converge on a source component, their 
frequency values are almost equal (i.e. ~equal phase increments). So 
instead of multiplying them to scale pitch, you work out the required 
shift for that block (i.e. find the central or peak frequency value) and 
~add~ the frequency offset to all of them as a block - so the frequency 
differences between them are preserved.  Most of my ICMC examples were 
actually done using this approach, in a preliminary form. I have yet to 
try it inside blocking pvoc. The trick of course being to decide which 
bins belong with which source component;  not so easy with noise-rich or 
otherwise complex sources. Accuracy would require good interpolation 
methods to find the real peak frequency - it will not simply be the 
value of the loudest bin.  Current state of the art (commercial) 
algorithms are using wavelets, transient detection, and "stuff".


The problem with adding the amp/phase format now is that it will 
probably entail revisions to many or all the pvs opcodes; and those 
which depend on manipulating frequency bins would have to either reject 
the format, or do all the maths necessary (in both directions) to 
recover the  phase format internally  (subtraction of the centre 
frequency, and re-normalizing of the bin phase value relative to the 
analysis rate; I would have to look it up to give specifics). 
Amplitude-only processes would be unaffected. Sadly, I am confronted 
with lots of deadlines for work at the moment so can't look at it for a 
while. I have never worked with the amp/phase format myself (Soundhack 
uses it quite a lot, IIRC); revamping opcodes to do so would require 
someone who has. The easy bit is updating the analysis and synthesis 
opcodes, the code is already in there, but not much good without 
updating the opcodes too.

Richard Dobson




> I just had a quick glance at Puckette's article 'phase locked vocoder'. It
> sounds promising, he mentions that with phase locking the re-synthesised
> signal has more presence and is free from the usual fft artifacts. Are there
> any software out there to allow phase locking (even commercial)?
> 
> I would love to have this in csound! :-)
> 


------------------------------------------------------------------------------
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2009-07-04 01:52
Frompeiman khosravi
SubjectRe: [Cs-dev] PVS adding phase support?
AttachmentsNone  None  
Thanks very much for the detailed explanation.

Indeed creative labs stuff seems unimaginative and rather disappointing. I will read your ICMC paper tomorrow to get my head around the idea. So does this mean that adding to all the bins (i.e. shifting them) will keep the phase intact?

Thanks
Peiman 



2009/7/3 Richard Dobson <richarddobson@blueyonder.co.uk>
So would I. I am not sure over the patent position. Probably the plain
Puckette solution is OK. The later ("improved") one was patented by
Dolson and Laroche for use in Creative Labs time-scaling software (but
in a disappointing  way - to reduce CPU time to a minimum by getting
away with the minimum 50% frame overlap; so drums still process rather
badly!).

The equivalent of phase locking in the amp/freq format is (as far as I
can tell!) what I call "bin bunching" (mentioned in my ICMC paper on the
SDFT and SPV). That is, where bins converge on a source component, their
frequency values are almost equal (i.e. ~equal phase increments). So
instead of multiplying them to scale pitch, you work out the required
shift for that block (i.e. find the central or peak frequency value) and
~add~ the frequency offset to all of them as a block - so the frequency
differences between them are preserved.  Most of my ICMC examples were
actually done using this approach, in a preliminary form. I have yet to
try it inside blocking pvoc. The trick of course being to decide which
bins belong with which source component;  not so easy with noise-rich or
otherwise complex sources. Accuracy would require good interpolation
methods to find the real peak frequency - it will not simply be the
value of the loudest bin.  Current state of the art (commercial)
algorithms are using wavelets, transient detection, and "stuff".


The problem with adding the amp/phase format now is that it will
probably entail revisions to many or all the pvs opcodes; and those
which depend on manipulating frequency bins would have to either reject
the format, or do all the maths necessary (in both directions) to
recover the  phase format internally  (subtraction of the centre
frequency, and re-normalizing of the bin phase value relative to the
analysis rate; I would have to look it up to give specifics).
Amplitude-only processes would be unaffected. Sadly, I am confronted
with lots of deadlines for work at the moment so can't look at it for a
while. I have never worked with the amp/phase format myself (Soundhack
uses it quite a lot, IIRC); revamping opcodes to do so would require
someone who has. The easy bit is updating the analysis and synthesis
opcodes, the code is already in there, but not much good without
updating the opcodes too.

Richard Dobson




> I just had a quick glance at Puckette's article 'phase locked vocoder'. It
> sounds promising, he mentions that with phase locking the re-synthesised
> signal has more presence and is free from the usual fft artifacts. Are there
> any software out there to allow phase locking (even commercial)?
>
> I would love to have this in csound! :-)
>


------------------------------------------------------------------------------
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/csound-devel


Date2009-07-04 14:10
FromRichard Dobson
SubjectRe: [Cs-dev] PVS adding phase support?
peiman khosravi wrote:
> Thanks very much for the detailed explanation.
> 
> Indeed creative labs stuff seems unimaginative and rather disappointing. 
> I will read your ICMC paper tomorrow to get my head around the idea. So 
> does this mean that adding to all the bins (i.e. shifting them) will 
> keep the phase intact?
> 
> Thanks
> Peiman 
> 
> 

All the bins associated with a given spectral peak. Fully distinct peaks 
are easy to deal with (e.g. a simple periodic tone). I have never got 
around to writing serious peak-tracking things - unlike Victor, say, 
whose partial-tracking opcodes will depend on it. It's definitely not 
something to under-estimate! A primary application of transient analysis 
is to avoid shifting bins associated with the transient itself (e.g. the 
drumstick impact) and shift only the pitched bits. Short FFT sizes do 
not help. So no free lunch, sadly! That's about as far as my knowledge 
extends, pitch-shifting-wise.

Richard Dobson



------------------------------------------------------------------------------
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net