Forums > MaxMSP

Using poly~ – What are the tricks?

October 22, 2010 | 11:50 pm

Hello all,

I’m seriously frustrated. I’ve understood from other users that the "poly~" object is a temperamental one, but I just cannot get it to work. I’ve read the help file, done the tutorial, even tried to replicate the example patches with minor differences. There must be a concept I am missing.

So, here’s my issue. I’m working on a replica of the first "drum machine", built by Leon Theremin (see links below, and attached files). Almost everything is how I want it, except it is lacking polyphony. Could someone please take a look at my patch and the subpatch "voices2~" and suggest how I can get the poly~ object operating with polyphony?

Please note, when changing the patch i’ve noticed you need to move the Fundamental Frequency dial to initialize it again after changes.

I appreciate any help! I really want to get this poly~ stuff figured out!

Thanks,
Mike

Links:
http://www.youtube.com/watch?v=HkodVcuPVAo

http://en.wikipedia.org/wiki/Rhythmicon

Attachments:
  1. voices2~.maxpat

October 23, 2010 | 1:49 am

I’ve understood from other users that the "poly~" object is a temperamental one

Don’t worry, it only seems that way until you figure out how all the features operate; then all you have to do is not forget by the time you work on your next patch! ;)

There are two things you need to check out to get this to work. The voice allocation features of the and messages will send the arguments to the first instace of your poly~ subpatch that is not listed as busy. Max has no way of knowing what counts as busy for your particular patch, so you need to have a [thispoly~] inside your poly~ subpatch and send the appropriate busy or not busy messages to [thispoly~].

Any messages sent to your [poly~] without using or will be sent to the instance of the subpatch that has been most recently selected by the target messsage. If you have never sent a target message to your [poly~] the default is that instance 1 is targeted. Sending would route the inlets to instance 2, sending targets every instance and untargets everything.

So here is what is happening in your patch. Since you never use [thispoly~] to set the busy state of a subpatch instance, Max assumes the first instance is not busy and the note number is always sent to the first instance. Also, even if you were setting a busy state, you would find another bug because without using a target message to [poly~], any input to your middle and right inlets will be always sent to the first instance.

I would recommend getting rid of your middle inlet and instead use the message to send the note and velocity to [poly~]. Also, maybe use a [trigger] to first send to [poly~] before sending the Fundamental Frequency value. Although, I suppose in the case of this particular patch, you could use a [loadmess target 0] instead.


October 23, 2010 | 2:02 am

I have a couple very simple poly~ examples here:

http://xfade.com/max/examples/

And another, more complicated one here:

http://xfade.com/max


October 23, 2010 | 2:04 am

Thank you very much for your responses! Roth, I really appreciate all the details and looking through my patch. I want to have this done over the weekend, so again, THANKS!

M.


October 23, 2010 | 11:45 am

heres a way to avoid your clicks– hope it makes sense

– Pasted Max Patch, click to expand. –

October 23, 2010 | 8:30 pm


October 24, 2010 | 2:52 am

Thanks for help everyone. Here’s the finished Rhythmicon re-creation and its relevant subpatch. Hope it’s useful for someone!

Thanks.
M.

(Accidently uploaded two. One opens in presentation mode, one does not.)


October 24, 2010 | 9:13 am

HI MIKE,

CAN YOU SEND A JPG OF YOUR RHYTHMICON V2 WITHOUT PRESENTATION MODE, PLEASE? I HAVE SOME
DOUBTS ABOUT THE CONEXIONS IN THEPOLY NOTE GENERATOR2.
THANKS


October 24, 2010 | 8:58 pm

Sure, I've also edited some other things…

[attachment=144367,1287]


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