frequency quantization and resynthesis

M K's icon

how would it be possible to quantize the spectrum of an input to a scale (btw are there any easy automatic way to create a pool of midinote-values in a scale? vexpr?) and resynthesize it with a (preferably manually build) oscillatorbank?
thanks for any help

M K's icon

im thinking the last patcher posted in this thread will help:
https://cycling74.com/forums/controlling-ocsbank-with-fft/

it misses a manually built oscbank (i want to be able to change waveform) and the frequency quantization though

M K's icon

bump
the reason i dont post any patch is because i don't really know where to start. hope someone gets the idea and have time to help

Jason Charney's icon

As with [cycle~] you can change the internal waveform of your [oscbank~] with a message "copybuf" followed by the name of the buffer you want to use as a wavetable.

M K's icon

great didnt know that... but still have no idea how to go about the frequency quantization

Roman Thilenius's icon

well you are asking about resythesis and there is no simple and short answer to that.

the more advanced forms of resynthesis are using dynamic frequency partiual tones (as opposed to fft bands, for example) in order to recreate the original as exact as possible. such a system will of course also allow a lot of fun with microtonal scales, stretched or distorted spectra or what you called quantisation.

if CPU comsumption does not matter you could also build a freely patchable and tunable 1000-band vocoder to get something similar - which will work in realtime.

as there is no tau editor for max yet :) you could start reading the CNMAT spectral synthesis tutorials or experiment with the SDIF format.

i have no idea how to properly use the latter within modern versions of max/msp though. maybe [csound~] is your best bet here.

M K's icon

you are probably right, it will not be that simple... i think i'll start learning C and writing my own externals. thanks for the suggestions tho