Granular Timestretching in Max/MSP using mc objects

This example uses 30 channels to create a roomful of Barack Obamas.

This project is under construction and not yet available:

temporary files


  • mc_granular2.maxpat
  • obama.aiff

The original idea was to adapt Andy Farnell’s PSOLA granular timestretch algorithm to run using multiple voices – using Max mc object wrapper. After many attempts, the results just sounded like mostly noise.

So I started over, using a mc granular example that comes with Max8. In this example, a metro object triggers each new voice instance. I found that by altering the rate of that metro using a [drunk] object, ie.,  random-walk. It would give a good approximation of the natural cycles of density that happen in a crowd of people talking.

The other changes were adding wider ranges to the sliders and more control over the overall playback speed.

Also there was a problem in the example that prevented the voices from being recycled properly.


clean up the patch, add presets, and document.