With the SDFT (hopsize = 1) you can indeed just do that, as the
bandwidth of each bin is the whole frequency range. All you have to
worry about is Nyquist. This is what makes Transformational FM
arithmetically easy, as all bins can be treated as if they are simple
additive sinusoids (and resynthsis is by oscillator bank).
With the normal "hopping" pvoc it is not as simple - the relatively
large hops reduce the bandwidth of a bin significantly, so that when you
rescale a given bin frequency, it may exceed that bandwidth and
therefore have to be put into a higher or lower bin. That is, if you
want the speed of FFT resynthesis. Many versions of Pvoc (e.g. the one
in the F.R. Moore book and in the "PVNation" distribution) automatically
go to oscillator bank resynthesis when any pitch scaling is done. So if
you want to try the simple rescaling approach, without the massive
overhead of the SDFT, make sure you use pvsadsyn or one of Victor's
tracking-based additive opcodes.
With SDFT you still have to worry about phasing effects**, it is not a
"free lunch" solution, but it is possible at least some of the solutions
are easier. This is all very much work in progress!
** The basic issue is that when a partial is "resolved" by pvoc
analysis, multiple adjacent bins receive virtually identical frequency
values - the bins are bunched together (see the figs in our SPV paper
for ICMC 2007). If you just multiply these, the differences between
them (Hz) change; in the worst case, what was one partial gets split
into many. You have to shift them as a group (this is a description
therefore of "Phase-locking"). For clearly distinguished components in
a pitched tone this is relatively easy (but you have to work out the
correct shift amount for each bunch); for percussive and noise-based
sounds rather less easy!
Richard Dobson
peiman khosravi wrote:
> Hi Victor and all,
>
> Am I right to think that if you read the pvs signal into tables and
> then simply multiplied the freq table values with a constant you
> wouldn't end up with a transposer? But why is this the case?
>
> Thanks in advance
> Peiman
>
Send bugs reports to this list.
To unsubscribe, send email
sympa@... with body "unsubscribe csound"