Poly~ not polyphonic :(
I spent the day going through tutorials, both video form and the built in variety, and I ran into a problem.
I’m trying to hack out a decent polyphonic synth, and I followed the example from the most recent poly~ video tutorial to a T. Problem is I don’t have a midi controller handy to test it out, so instead I hooked it up to a monome style step sequencer I’d made a while back, and formatted it to send out a two part list in the format [midinote, velocity].
I provided the numerical argument to specify the number of instances (16 in this case), and included the @steal 1 argument as the tutorial said. I’m pretty sure I hooked ADSR~ properly, I am managing to get good sounds out of the synth, but it’s still acting monophonic.
I suspected it was because of how ADSR~ was configured, so I’ve tried placing my arguments for ADSR~ both outside and inside the poly~. It seems either way will work. I’ve also considered that it might be the way my messages are getting into the abstraction, that things are configured for voice stealing, but my formatting is cancelling out successive instances and I am always left with just one. Am I missing some really simple detail?
I’ve nested a number of patchers and abstractions together, so it’s difficult to post my work, but I will at anyone’s request. Thanks in advance for your help.
Many people have been confused by this object. The secret is often making sure poly~ knows what instances are free or in use using the ‘thispoly~’ object.
I hate to be ‘that guy’ who suggests you search the forum, but I had a similar problem developing one of my own patches. You will probably find a search useful.
Here’s the post I made on the same subject, including the working patch I ended up with. Hope it helps.
I would strip things down until the exact problems are clearer. This sort of thing usually has to do with managing the busy state. My example "StupidSynth" uses adsr~ and manages the busy state. It can be found here: http://www.xfade.com/max/examples/
Hello and thanks to you both,
after a bit of sleep I’m back at the laptop…I actually downloaded your ‘StupidSynth’ before I went to bed, Chris. I hooked up a few things to my patch and learned a bit.
It would seem things are as I suspected, I had hooked up all the poly~ connections properly, the vid tutorial was dead on, obviously…Taking advantage of StupidSynth, I was able to use the kslider, Voila, polyphony. However, Problems arise when I hook up my ‘monome’ (is the word patented? should I be using something else?) through two new inlets to StupidSynth.
Doing the old A/B, I figure things go awry because with a midi controller notein likely manages how the messages are sent. In my case, my sequencer is sending out the same data formatted the same way (superficially at least) but I only ever hear the lowest note being output. I’m assuming it’s because only one message is sent at a time, and the messages are cancelling each other out.
I can’t make sense of how I’d stagger them so that poly~ is actually able to do it’s job. I can hack my way through generalities, but at this point finite scheduler behaviour still tends to elude me. Again, I can post my patch, but it’ll be a bit of work/time formatting it so it’ll make sense without context. All the same, if I can help you help me, just say the word and I’ll make it so.
there are several ways how to make poly~ work, and you might find your own one day.
poly~ is not like slide~, which you can leanr in 30 seconds, it rather requires 3 months
and several attempts to get the hang on it.
After much frustration I flash back to some of my first objects which I’ve apparently forgotten all about. Makenote is your friend.