Poly~ - "different patchers on different voices"
Hello,
I'm trying to understand this statement from the poly~ reference
"The poly~ object can load different patchers on different voices, specified as arguments to the patchername/patchernames attribute."
So far, with poly~ I have just been loading one patcher into it and creating multiple voices. So essentially, poly~ just duplicates that single patcher.
Recently, I started using poly~ to create a dynamic effects chain. I have 4 poly~s arranged in series, and can change the patcher in each one on the fly. So this is just an example of a poly~ dynamically switching between different patchers.
What is meant by "on different voices"? Does this mean I could have a 4 voice poly~ loaded with 2 voices of patcher A and 2 voices playing patcher B? So.... a single poly~ synth with 2 voices that are a square wave and 2 voices that are a saw?
If so, what do I need to tell poly~ to accomplish this?
the sentence is a bit misleading, and you can be sure that it does not mean different files.
it loads multiple copies of the same file, one for each voice, and objects in these copies can have different states, since you can adress individual voices.
in an extreme scenario these copies of the same patcher from the same file can actually have different content.
for example when you use scripting to randomize something or choose to make connections from different audio inlets based on the [thispatcher] instance number upon load.
theoretically you can drive that further and script-create the complete content of a poly voice, and a different one for any voice. but it will still have to come out of the same file. (i would still call it "copies of the same patcher" though).
That does make a lot more sense to me than my original interpretation.
I've read a few of your replies in other posts about this topic of creating a dynamic fx chain. Do you have any advice on how to create the most efficient dynamic fx chain? Let's say I have 4 different modules. Currently, with 4 separate poly~s, I can arrange the order of the fx any way I like - in series. I was wondering if I could also do parallel chains by using multiple voices in each of the 4 poly~ objects, with a different module on each voice. But if I'm hearing you right, I can't load different patches to different voices. I could load all my effects modules into one file, and then turn each on/off for different voices within a poly~.... but maybe there's no advantage to doing it this way, rather than just have another lane of poly~ objects for the parallel chain.
Do you have any thoughts on how to maximize the way I can patch 4 modules together on the fly, as efficiently as possible?
Thanks for your reply
what i´ve found is that if you pack every 2-3 objects into their own poly~ so that you can turn everything off when not needed, that it c an take ages to load your patch - but this might be better in newer versions of max.
other than that turning off subcircuits using poly~ is really sexy.
i think it is right to maintain the following worldview: when a poly is turned off, all audio connections going into it are also "turned off". so you can build quite complex structures with poly~s and dont have to be afraid that you run thousands of signals for nothing (because you mostly use 5-7 effects in your 16*16 matrix)
i would not use voices for parallel processes, that feels like a strange design. it is technically possible of course.
so then, if i wanted a 16x16 matrix of effects, i would want 256 poly~s?
yes, and it is not a problem at all to patch this.
just think about how you need to design your effect patches to make the system work like you wish.
for example all effects should start up turned off, and then you need one which ist the "emtpy" effect, which can not be turned on.
or maybe which can be turned on (like in TC spark or bias v-box)

finally you can restrict patching direction to top-down and left-right in order to prevent feedback loops.
the effects themselves could also have a "through" function (which is basically their "off")

Hi,
I think there is a bit of a misunderstanding here.
poly~, in its most recent iteration, does allow to load different patcher files in different voices: just send the "patchername" message followed by the names of the various patches you want to load. Each patch will be loaded in a different voice of poly~, as you can see by sending "open 1", "open 2" etc. to the poly~ object in the "dynamic loading" tab of the help file. You can then switch on and off individually each voice via the "bypass" message. Just keep in mind that the patches will work in parallel, not in series.
I hope this helps,
aa
ah, so it is possible!
so now i have two options. i could just create a single voice poly~ for each link in my effects matrix like i was discussing with roman. so a 4x4 matrix would require 16 poly~s. or i could just use 4 poly~s in series, each with 4 voices (and different patch on each voice) and work out routing all the ins/outs. both would achieve the same thing, i think. in fact, i just tried it with an mc.poly~ and i get all the different voices sent out different channels, which gives me a lot of easy routing flexibility.
does anyone see advantages or disadvantages of one system over the other? (ease of patching/programming, or CPU usage?)
i guess it is time to rename the object to multi~!
sure, that offers one more new option how to organize things; you could include the different processes into a single poly~ and then just choose which voice to run.
i think what is still missing to get a real benefit out of that is that different places can not share the same patcher in RAM, each one has to load its own copy from disk (unlike mixer channels in protools or "preloaded" plug-ins)