reset all poly~ instances at once ?
Hi,
I made an m4l instrument using poly~
for some reason once in a while I'm having stuck notes so the poly will not stop producing sound until I will open the device, unfreeze it and reset the poly manually by rewrite the name of the poly~ instance.
Is there any way to reset all poly~ at once like you can do with "reset" message to a gen~ ?
Thanks!
There are many ways to reset or init or anything else the entire poly.
But I can't tell you what, whithout seeing what you use.
What is voice mamagement ?
Using target or note messages ?
And in first place you should fix stuck notes, must be some kind of mistake
in voice targeting management
Its a little bit complicated. I'm using the midi value to extract a frequency out of a scala file then I send this frequency together with the velocity message to the poly~ using prepend midinote message.
So instead of passing a midinote message with midi value for pitch and midi value for velocity I'm passing a message with a frequency and a velocity value.
Then inside the poly~ patch the frequency go to the oscillator and the velocity is translated to db and to amp .
so because my stuck note are not in midinote but rather already in frequency I cannot send the note value with velocity 0 to release the stuck note.
It sounds too complicated for me...
How do you normally manage voicing ?
I mean is there voice stealing active, is there adsr involved,
voice muting ?
There is one simple way, insert r KILLALL into poly subpatch
to mute it, and send s KILLALL message to zero output of all instances.
that would at least mute output.
Can't tell you any better, as the voice management remains a mistery
I'm using voice muting..
I will try the method with the killall message. I could not find it in the refernce of poly~. strange..
Edit: this "killall" method working great! thanks!
this is just a simple message s/r name, you could have named it
whatever else, just without spaces.
When sent all poly instances in all max patches or live devices will get turned off.
P.S. - it is my mistake not to have stated clearly that I meant you send a zero
using the send - receive, not the killall as a message...
I don't yet understand why would you get hanging notes ...
Would you mind trying a simple patch using 4 voices in the way you describe it ?
It is as basic as could be, adsr takes care to switch voice off
Thanks for you explanation and patch!
It seems as same way I'm using my patch and yet here no stuck notes.
after checking when my stuck notes occur I discover that its happening only when I holds some notes and change to a different scl files so what actual happening is that a different frequency is send while still old frequency is held. If I got it right, I am guessing this is what cause the stuck notes.
A good point.
I guess scl are supercollider transposition maps or something similar.
Could you somehow try to link change of scl file to
turn currently held notes off ?
You can't use flush or midiflush with floats,
so maybe only option is to kill all voices...
Or ... is it possible that only Note ON messages switch to new scl
scale map, and allready held notes continue with previous one
till released ?
Just an idea in case that changing scl while some notes still sound
is important.
yep. fush is not an option but I will try those ideas out!
much appreciate your help
i am not too fond of this approach. when a patch doesnt work right, then fix it, not add a reset function.
Me neither, but midi CC#s all notes off, all sounds off etc
were invented because of need to solve panic no matter was caused hanging notes.
Back to the patch itself, I seem to remember seeing that
in some other thread, don't remember which.
Fix could be a very simple one,
instead of translating midi notes to frequency in the main patch,
one could send plain notes to poly instances and grab corresponding
frequency from the coll, or whatever is used to store the lists.
That would allow changing scales no matter if notes are held or not