Few practical questions before I buy anything
I have a very specific problem I’d like to solve, and Max seems to be the most down my alley. (None of the commercial available software does what I need, I have some experience with visual programming, and I’m to lazy to learn real programming.)
So far I have two very specific questions that I’d like to know before i get into something i can’t handle.
I wish to analyze a single note with FFT. I have to get the partials/harmonics frequencies out as numbers.
One way I figured to do this is to parallel process a single through approximate bandpass filter (+/- half tone from a preset frequency) to get rid of the garbage around the partial whose number i need to extract.
I’ve seen examples of polyphonic pitch recognition, namely with "fiddle~" and something called Realtime Polyphonic Pitch Observation with MnM object set. The latter uses a preset pitch database so it’s really not that interesting for me. Is that feasible? The frequency extracted needs to be as accurate as possible.
Can i deal with switchable sub patchers or bpatchers in presentation mode? As in, you have more "tabs" in the same interface. This is not mandatory but would save plenty of screen real-estate, i guess it could be theoretically solved with databases and presets.
Thank you for reading
The FTM & Co object set (of which MnM is a part) will do what you’re describing, though perhaps not with the MnM object you’re thinking of. There are various objects that will take FFTs and output matrices of data from them. It’s a big object set, and very powerful. Well worth investing time in if you’re interested in partial analysis.
And yes, you can switch between subpatchers in Max very easily, using the thispatcher object.
The 3rd party external object
sigmund~ is worth looking into for the partial tracking part of your patch.
Thanks for the swift response, that’s good enough for me!
Placed an order, waiting for my student ID confirmation.
First without Gen, i don’t want to waste any money on something I won’t be able to use. Although it looks tempting. I love the fact that cycling doesn’t lure you into purchasing everything because of some special discounts, so i can wait with Gen when i’m less strapped for cash. Puts my mind at ease.
Can’t wait to dig into it, it’s going to be fun and probably as much annoying. :)
Here we go.
What I’ve managed so far:
Because I know the approximate frequencies of what I need to extract (obviously, I’m extracting partials from tuned acoustic instruments, who’s frequency content relies heavily on the harmonics series), I’ve created a parallel filter set, which cleans out garbage and isolates (more or less) the frequency in question.
Because sigmund~ itself didn’t give me enough accurate information. This way, I’ve created a set of control that help me on the fly determine the width of the filter (based on "cents", rather than frequency, very nice, had to refresh my high school math) (two vb.cheby~ filters to create a steep band pass), slope, ripple, and also, "de-tuning" of a certain band.
Sigmund~ now has an easy job of giving me the specific value of the frequency in question…
It’s not fully automatic, it’s a lot of redundant programming, its a very dumb way (parallel filters for extracting harmonics, i mean, seriously?!), but I *need* very accurate frequency output.
I have learned enough to start working on patches to extract harmonics content out of bells or random sounds which don’t have a specific harmonic set.
It really helps if you cut Sigmund~ some slack and splitband its processing to at least 4 bands, with individually controlled parameters, because it will give *significantly* more accurate results.
I tried going with pfft~ and the only thing i can imagine it would help is the eliminate the need for parallel vb.cheby’s which aren’t light not the CPU, but the control of the filter would be less accurate.
wanted to try iana~ but it costs as much as max.
I’m yet to dig into FTM object set (and zsa for that matter, but i think ZSA can’t bring me anything sigmund does atm), but it’s only been for days and I’m a complete beginner. :)
I’m trying to do a very similar patch and I was wondering if you could share what you accomplished with this back in the day, It’d be really appreciated.
Thanks in advance!