...and also check out the rgrano.maxpat embedded in
Reducing the number of voices that [poly~] is using can free up CPU.
There's perhaps a tradeoff between "authenticity" and CPU cycles; to my ears the JFC spectral-freeze example is, well, simply LUSCIOUS. It depends on what sort of processing power you've got at your disposal too. Time-domain granulation (esp my own attempts) can sound a bit 'cheap and cheerful' to me (Monolake, Graincore and Nathan Wolek notwithstanding of course). My 2c. Perhaps I should edit that last sentence out....