this has been sitting around on my hard drive for a while and i don't find the time right now to keep developing it, so i thought i might just put it out there...
it is the first external i've put together and it's basically a hack of ffteases pvoc~. the analysis~ part gives a block with amplitude and frequency information. the adsyn~ part resynthesises it from an oscilator bank.
my intention was to find a way to do a sinebank resynthesis from fft data. looking at the code i've found out that phase information has to be converted to frequency information before it can be fed into a sinebank. to do so, the first step is to calculate the phase delta from frame to frame for every bin, this means discarding the absolute phase. in the next step the phase delta is converted to the actual frequency for every bin, which is not the bin frequency, but a deviation which is more or less close to it. fftease has some nice functions that handle this conversion.
for analyzer~ only the first inlet is of use. i didn't delete the other two yet, because i was afraid to mess something up. adsyn~ has four inlets. one for amp and one for freq blocks, a third one for pitch changes, and a forth one for gating out weak frequencies, in order to save cpu. this last inlet is still troublesome, because the gate isn't ramped in any way. the consequence is that you hear clicks anytime frequencies rise or fall below the threshold. the original pvoc~ has the same problem and it must be fixed by crossing it with something like vectral~ i guess, or something even simpler.changing the analysis window size works like with the other fft~ objects, by just changing block size.
next step would be to tidy up the code and strip it down to what's necessary.
also i've been thinking about if there's any way to improve sound quality by changing the resolution of the sine table.
included is the osx build and all sources.
i hope anyone will find this useful.