Forums > MaxMSP

poly~ can read your mind?

April 30, 2012 | 8:08 pm

Hi
I am quite familiar with the (target 0), or (target $1) method of accessing specific instances inside a [poly~]; having built a neato l’il (li’l?) granulator I decided to access groups of voices, rather than all voices always (target 0).

I have duplicated a bunch of parameters, but assigned them all to voice groups 1-4, 5-8 and 9-12 as in the patch below; but what fiddles my tiddles is that, even though each unique voice-group is sending it’s own (target $1) messages continuously, changing voice1 parms does NOT affect all instances, it only targets the voices 1-4; similarly changing voiceTwo stuff doesn’t go to all instances (and neither do I want them to) – just to voices 5-8. Strange

– Pasted Max Patch, click to expand. –

Brendan


April 30, 2012 | 8:53 pm

Not strange really. From the reference page:

"Target … Specifies the poly~ instance that will receive subsequent messages …"

In your example, when changing voice1 parms, only voices 1-4 actually receive a subsequent message.


April 30, 2012 | 9:05 pm

Yes, but in my example all voices are still being sent a target message…..just in groups of 4. When changing any "voiceGroup" parameter, the other two are still firing their own respective target messages. THAT’S what’s strange, to me anyway

Yes I know; it works so I should just shuttup


April 30, 2012 | 9:19 pm

l’ill


April 30, 2012 | 9:20 pm

l’ol


April 30, 2012 | 9:21 pm

Ok.


April 30, 2012 | 11:12 pm

Each ‘target’ message is being immediately followed by the list of parameters you intend for that voice, because the ‘target’ message and the instructions that follow it are both triggered by the same message, namely the list coming out of the pak object. So even though you’re bombarding your poly~ with lots of ‘target’ messages, the desired list always goes out immediately after the correct ‘target’ message, so it gets to the correct voice of the poly~. Is that what you’re wondering?


May 1, 2012 | 1:01 pm

Thanks for revealing the mystery Christopher; had I been joining the relevant parameter-voicenumber as a list, this would have been obvious, but it just appeared that [poly~] was ‘assuming’ which parameters were going to which group, especially as the pitch parameter sources are a signal – ie continuously firing all voice numbers. Still, the way poly is doing this is pretty damn tight timing:

"Any sufficiently advanced technology is indistinguishable from magic [particularly to n00bs]"

Brendan


May 1, 2012 | 1:38 pm

Not sure if this is the case, but if you’re doing pitch with a multiplicative scale (1 = original, 0.5 = -1 octave, etc.), you can also use the transratio object so you can specify pitch in halfsteps.


May 1, 2012 | 2:00 pm

Cheers Peter; I actually have quite a cool user-defined glissando parameter, from half-step leaps to full sinusoid gliss….i will get this online, PhD IP notwithstanding, but i don’t think there’s anything ground-breakingly innovative in it, just some unique combinations of existing approaches.

Thanks again
Brendan


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