Unfortunately I would have to stick with the "sliding" PD phase locking
structure from the book for now,
iterating through the spectrum to search for peaks and identify groups
will add too many frames of additional latency in Reaktor.
But for me this method unfortunately defintively gave worse results than
without phase locking for music.
It actually sounded broken in some cases, when pitch shifted in frequency.
Both at 22050 and 11025 Hz SR with a 1024 FFT so it's not just a
question of frequency resolution.
or rather, it probably is, but 4096 @ 44.1 kHz would not solve the problem.
On the other hand, on some speech sample I found an improvement.
(It might be, of course, that I am still doing something else wrong...
Also I might be fooled a little bit because it's louder without phase
locking since summing the adjacent bins
will decrease the peak bins amplitude so it seems to sound better
without when you switch it on and off.)
At least meanwhile I understand why and how the method is expected to
work and I like it's approach.
If s.o. is interested I can post another audio example but I think I've
spammed the list enough so far...
About such sophisticated things as intra frame corrections, besides that
it might well be above my head
I first have to get a basic frequency domain shift to work in a decent
quality...
Meanwhile I found what was broken, the shifted frequencies phases were
wrong, but quality is still
dissapointing compared to the time stretch version.
I also made a quick test where adjacent amplitudes around peaks where
simply set to zero
(which doesn't require additional latency here since I can do it on the
output stream)
and that definitively sounds better on up shifts, so I assume I really
do need something to treat the phases around peaks
but I am not sure whats an efficient way yet that I can implement.
Maybe it's just that, setting some bins to zero?
Maybe I need to explain that the FFT I made for Reaktor provides a
constant stream of values like
an audio stream and you have to work on that, sample by sample, or else
you need a frame
of latency to store the values and work on them, again, sample by sample.
This makes prototyping a little bit odd and laborious, but in the end it
forces you to choose
efficient solutions, thats why I like Miller Puckets version of the
phase locking, it just didn't work so well here.
_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp