Polyphonic Synthesizer Tutorial

Ever wanted to play multiple notes (voices) of your synthesizer or sampler at the same time? In Max, this is accomplished by using the poly~ object. In this video tutorial, we’ll get you up to speed on how to use poly~, so you can start making your own polyphonic instruments.

Download the patches

I've tried this tutorial

Bang! Finished it!

I had some trouble, but got through it.

I did not get this tutorial at all.

May 09 2011 | 7:32 am

This is a fantastic tutorial – I had never thought of using swap and edge~ within poly~, thanks a lot!

May 09 2011 | 12:19 pm

great! more tutorials please! thx

May 11 2011 | 3:28 am

Great tutorial, but what about making the final patch downloadable so that we can study it further ?

May 12 2011 | 1:01 pm

Hi Jeepee,

Here is a link to these two patches:



May 14 2011 | 2:22 pm

Very clear! Excellent tutorial. Thanks tons!

May 21 2011 | 8:57 am

Thanks for this tutorial !
When an another one ???

May 25 2011 | 6:25 am

Thanks you!!!

Jun 10 2011 | 11:24 am

Hey! Very excellant tutorial. Professional and clear. You should definitely do more! Thanks.

Jul 30 2011 | 2:42 pm

great tutorial man. bravo

Sep 02 2011 | 2:58 am

I’ve learn many things through this tuto, which is great indeed!
I have nonetheless several problems :
1° the changes in the saved subpatch weren’t always taken into account immediately in the main patch.
2° It doesn’t work with a cycle~ instead of the saw~: the synth clips when the keys are released.
3° When I use the synth with a live.step sequence and through a makenote, I have tone bends when notes are changed.
I still find this tuto is great, but I have some further work to do to have my own synth module.
Thank you!

Jan 30 2012 | 8:23 pm

@2:22 the divider /127 is not created.. or at the least it is not evident what the instructor is doing
I am using MAX6 and there is no /1`27. object that i can find..
that works anyway
Can not the lesson be just a little less arcane for idiots like me?

Jan 30 2012 | 8:40 pm

the sub-patch does NOT open upon double click, nor does a separate window open after selecting and "encapsulating"
is this a preference, am I an idiot, or can you at the least explain without the glaring gaps in this tutorial?

Feb 02 2012 | 12:21 pm

I had the same problems. Through extensive trial and error, I found the solution to our problems. @2:22, you need to create a new object, and simply type in "/ 127." (no quotes). to open the sub patch, right click and de-select "edit". then, you can double click the box that says p and the sub-patch will open in a new window.

Feb 02 2012 | 4:14 pm

Thanks everyone for the good feedback. It looks like UncleChubb figured out that I was making a "/ 127." object at 2:22. Yes, the space between the object’s name (/) and its argument (127.) is important. UncleChubb also figured out that the patch needs to be taken out of Edit mode in order to double-click a patcher to open it. If you’re in too much of a hurry to switch modes, you can just command-click (Mac) or control-click (Win) to operate a patcher when it’s in Edit mode.

Lucycle, keep in mind that the synth_voice patch must be saved to disk before the changes are loaded into poly~. I tried swapping a cycle~ for the saw~ and didn’t hear any problems. Also I tried feeding MIDI notes from live.step to the synth and didn’t hear any portamento happening. Hmmm…maybe there’s something else going on?

Sorry some things weren’t clear. It’s tough being really clear without making the tutorial ending up being an hour long. :) I’ll definitely keep your comments in mind for the future. Happy patching!

Feb 25 2012 | 11:58 pm

guys, i am really frustrated… whenever i try to rename the patch p into the name synth_voice it does not seem to accept it. I saved it in one folder and checked the filenames. Furtheron, on one pc it works when i leave it as ‘p synth_voice’ and i can add the poly~ infront, however on the othermachine, as soon as i change it to poly~ it opens up an empty patch! It seems so easy but i am doing something wrong…

Feb 27 2012 | 1:15 pm

It sounds like your patch is having a hard time finding synth_voice.maxpat. In the tutorial, both the main synth_patch.maxpat and synth_voice.maxpat are on the Desktop, in other words, in the same folder. Here’s something you can try: make sure both patches are in the same folder, then close them both and reopen synth_patch.maxpat. Does it find synth_voice.maxpat?

Keep in mind also that "p synth_voice" is a subpatch; its contents are part of the main patch. Once you drop the p, both "synth_voice" and "poly~ synth_voice" load the file "synth_voice.maxpat" from disk. For that reason, it must be in a location that Max can find.

If you’re really frustrated, go to menu item Options > File Preferences… to add a new folder for Max to search.

Mar 05 2012 | 2:33 am

thanks a lot for you reply Les Stuck, now i am pretty sure it is a bug. I created a new folder into which i save all patches and sometimes it works and sometimes when i rename a new object to the patches name saved earlier it opens up a new patcher window. Then i copy paste the content of the patch but saving again gives me the obvious ‘there is already a file with that name’ dialogue.
It is funny that once the containt is copied across it acts like the patcher is supposed to act ( i can see all the in and outs but once i create a new object again and copy the exact name of the patcher into the new object it opens up an empty patcher.
Little note, i am using maxforlive but that would not be a problem right?

Thanks in advance

Jul 13 2013 | 6:55 pm

R: Little note, i am using maxforlive but that would not be a problem right?

Exactly the problem I had. I made sure i was putting the synth_voice file in the same folder as the patcher in live (I did Show in Finder), it did nothing. It worked fine when I open the same patcher without running ableton and do it with both files on the desktop. I guess theres another step to it when you are using m4l? i’m a little bit new to this, so I don’t know what that might be.

Apr 12 2015 | 8:45 pm

I know I’m probably doing something really stupid, but my outlet on the ‘poly~ synth_voice 1 @steal 1’ box refuses to show, even after I save the new sub patch with the new ‘in 1’ and ‘out~ 1’. Any thoughts?

Jul 18 2015 | 1:19 pm

Why does this patch not work using a Novation Launchpad?

Jul 18 2015 | 3:03 pm

I predict that this question will fall off the end of the interwebz

Jul 18 2015 | 11:40 pm

"Why does this patch not work using a Novation Launchpad?"

I can confirm here. Not working with 6.latest either…

Aug 15 2015 | 4:57 pm

i have used your method but changed the saw~ object to a wavetable with an oscillator but cant get any polyphony and ideas ?

  1. Screen-Shot-2015-08-16-at-00.31.58


Sep 16 2015 | 8:45 am

thanks for the very helpful tutorial. Unfortunately I cannot open the original patch when option clicking the title bar of the instance in poly~ . Any idea what the reason for that could be? Thanks

Hans Peter

Sep 16 2015 | 12:40 pm

Hi Hans Peter,

In Max 7, I would recommend using the ‘Patcher Windows’ icon in the lower left patcher toolbar. This should show you the patcher hierarchy.


Oct 09 2015 | 7:16 am

I’ve copied this tutorial exactly and no outlet ever appears on the "poly~ synth_voice 16 @steal 1" patch. Any idea why this is? Thanks.

Oct 09 2015 | 8:56 pm

Hi James,

Do you see any errors in the Max window?

Is the synth_voice.maxpat patcher in Max’s search path? It will have to be in order for poly~ to find it.

What happens when you double-click on the poly~ in a locked patcher?


Viewing 27 posts - 1 through 27 (of 27 total)

Explore More

Subscribe to the Cycling ’74 Weekly Newsletter

Let us tell you about notable Max projects, obscure facts, and creative media artists of all kinds.

* indicates required