question about mc

ward de jager's icon

I've got a question about the new mc~ features in max
I am coming from a reaktor background ( pretty hardcore coding in core for over a decade ) , when reaktor is set for example to 64 voices , each inserted module has 63 duplicated voices ( when set to poly ) where each voice can be user adjusted , be it pictch for osc's o freq, for filter etc..
Making it perfectly easy to create an 1024 band vocoder where you only see 2 filter modules on the screen ( one for analyzing input , one for re-constructing ) or even use a single sine oscillator as carrier to reconstruct the signal using partials ( depending on number of voices ) in reaktor talk it's called parallel processing while in essence it's just polyphony
Is this what the new max mc is about , how does it differ from regular polyphony ?
or am i completly missing the ball ?

Exit Only's icon

MC is pretty much what you are describing. The online documentation for it is here-
https://docs.cycling74.com/max8/vignettes/mc_topic

Max/MSP doesn't have a system-wide concept of polyphony like reactor/nord modular etc do. In the old days you would create polyphonic patches using a special poly~ object that essentially created X instances of your patch which would then be addressed separately. This was handy but had some limitations. A big one was that any time you wanted to change something, you had to save your base patch and poly~ object would reload. Having to save separate files is kind of a drag too, because if you wanted 4 copies of an oscillator going into 6 filters or something like that, you would have to use separate poly~ objects and manage separate files.

MC allows you to specify multiple channels for any MSP object, so you could have 64 oscillators. You could use this for polyphony by directing note inputs to a given "free" channel out of the 64 oscillators you assigned. There are additional objects to help this voice management. On the other hand, each channel is individually controllable per MSP object. This means you could use those 64 oscillators as part of one "voice" in an additive synth with 64 partials.

There are objects to mix down those channels, so if you wanted to you could mix those 64 oscillators to 2 channels panned and then spread those two channels out across 8 bandpass filters or whatever. Or you can do things like interleave the 64 channels across X filters instead of mixing them down first. I think this has an advantage over a "system-wide" polyphony architecture in that you don't have to have the same number of channels for all components in your patch.

ward de jager's icon

So does this make the old poly~redundant ?

Exit Only's icon

not entirely. there are some cool tricks you can do with poly~ such as creating polyphonic sequencers i.e. start a sequence on each note you play. you can also do things like dynamically swap out patches and do upsampling. basically, any time you would want multiple copies of an entire patch. similar to MC but different. poly~ always got on my nerves though and I'm happy to not need it often.

Roman Thilenius's icon


selecting a channel or turning on/off channels is cryptic in both.

assigning voices and releated things are quite different.

mc is better if you want to do a lot of DSP stuff in series, too (less connections)

poly... what nick said.

Roman Thilenius's icon


turning off a specific voice for a whole lot of objects at once is exactly what only poly~ can do by a simple message to one object (i think - i have close to zero experience with mc)

the other thing is that it will work with third party objects or contains sub-poly~s

mc is awesome, but it is a closed system and not a new version of the runtime or canvas.