How’s this? supersaw.csd (6.8 KB) I originally had 7 oscillators, but after I saw your reply, I scaled it up to 32. I don’t think it really sounds very different though.
I don’t think there’s really that much point in having that many oscillators unless they’re oscillating over different waveforms. If they’re all sawtooths, 7 or so slightly detuned and at different phases sounds basically the same, and the performance is better. You could probably get away with even less than that, especially with some reverb.
The CPU usage in my version still gets sort of high if you play a lot of voices at once, but if you remove the spread feature (or use a smaller number of oscillators) it’s pretty light.
The reason the example you’re working from in that whitepaper is as complex as it is is because they want a wider range of waveforms than just sawtooths. The synthesizer they’re trying to model has the ability to morph between a variety of different waveforms, so they needed infrastructure to accommodate that. As they note, they would’ve used vco2 as I did, but its morphing capabilities are more limited than the synthesizer they were trying to model—it only does saw/triangle/ramp and separately does PWM, whereas they wanted to morph between sine, triangle, saw, square and “spectral” waves. But that seems like a greater range of sounds than just the “supersaw” sound you’re seeking.