In short, “Poly~” object let you create instances of your subpatch. You can encapsulate the patch and control each of the instances individually.
It is probably better to try more than to read. Please clone this repository or download this zip file and unzip. There is a folder named 1, and inside the folder, there are 2 patches named “main.maxpat” and “sub-1.maxpat”.
From now on, we’ll try to create 3 instances of sub-1.
Before starting to use poly~, let me explain “sub-1.maxpat”. It just creates the note randomly from 60 ~ 71 and output as a sin wave. “out~ 1” object in sub-1 sends the input signal to the 1st outlet of poly~ object.
Create a poly~ object
Close “sub-1.maxpat”, and open “main.maxpat”. In “main.maxpat”, There’s only ezdac object.
First. create poly~ object like this:
In this case, “poly~ sub-1 3” means “Create 3 instances of sub-1(.maxpat)”.
Next, create “live.gain~” object. This is really useful max for live object to check and change volume.
In inspector, change its channels to 1, and orientation to horizontal.
And connect all objects like this:
Before turning on audio, turn the volume down to -inf (zero) so that your speaker or ears won’t be damaged. Then, turn on the audio, and turn the volume up slowly.
Probably if you turn the volume to 0db, it will clip. This is because there are 3 maximized audio signals from outlet of poly~ object. Around -12db may be fine, and you will hear three different sine waves. ( If you are 1/12 person, you will hear only 2 waves, or 1/144 person to hear only 1 sound.)
What’s going on?
Let’s see what’s going on inside the poly~ object. Connect 3 message boxes to poly~ like this:
open X message means open Xth instance window. Therefore, if you click open 1, you will get the window of 1st instance of “sub-1.maxpat”
You’ll see (1) on the title. This is the ID of instance. If you also click open 2 and open 3, you will get these windows.
If you want to, you can change the note number.
In this patch, poly~ sub-1 3 creates 3 kinds of waves, and the output signal is coming from outlet of the poly~ object. You also can try changing the number of instances to to 4, 5, 6….1024 is maximum.