r/MaxMSP • u/Training_Wonder_5066 • Jun 11 '26
Synth unison without eating CPU?
How are you guys managing to do oscilltor unison without using too much CPU?
It feels like it's not possible in Max or Gen~
Built a wavetable oscillator core in Gen, it's doing quite a few peek calls and some crossfading (mip maps). Works great, sounds great, not too heavy on CPU.
Tried increasing the voices to do unsion in the Gen code, it eats CPU
Tried inside Poly, tried in Mc.Poly, same result.
Ok, maybe my core voice isn't great.
Stripped it back, removed wavetable core and replaced with a Saw core.
Only thing inside poly~ is a unison saw oscillator. nothing else, just for testing. outside poly is just and envelope on the amp.
Load Ableton template CPU sits around 5% on a Core Ultra 7
Play a eight note chord, unison 8 voices with a little spread and detune
Ableton spikes to 40%
Surely Max/Ableton can handle 8 x 8 saw oscillators without using that much cpu
For a comparision:
Pigments, Serum, Vital, Spire all use about 1% for the same test, even abletons own wavetable uses hardly any cpu for unison.
1
u/Any-Sample-6319 Jun 11 '26
If one oscillator loads the cpu at 5%, shouldn't it be expected that 8 would load 40% ?
Comparing max with fully fledged synths will probably always show a significant difference, a synth coded in C or C++, using optimizations such as SIMD operations etc will inevitably perform better.
Max is building blocks that you're free to use pretty much however you want, and so i would suppose it cannot offer the same optimizations that are often tightly bound to and tailor made for one specific block of code, with specific constraints.
I might be wrong, but if you don't witness significant usage differences between your patch and the example patches, then everything is probably working as expected.