<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">[poly 1 0] means that until its note is released, all incoming notes between onset and offset of the only voice's note should be completely invisible to it (that's what "one-voice polyphony with no voice stealing" should mean, I think). I don't think it should suddenly output the values of another note that happened to have been depressed and held in the meantime. I think what you're looking for is something different from the voice allocation in [poly]; you're looking more for assigning note priority in monophonic instruments. If I'm understanding you correctly, in order to do what you want with [poly], you would need to manage a very large internal polyphony to keep track of all the potential voices that could be being sustained when a voice receives a note off. </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, May 15, 2016 at 4:47 AM, William Huston <span dir="ltr"><<a href="mailto:williamahuston@gmail.com" target="_blank">williamahuston@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div><div><div><div>Sorry, Sourceforge is blocked for me.<br></div><div><br>I noticed that when using [poly 1 0] (note stealing off)<br></div>when I would smash multi-note chords and release notes,<br></div>sometimes I would be left pressing a note,<br></div>yet the output of [poly] is silence. <br><br></div>I thought this might be a bug with the Windows MIDI driver,<br></div>but it is definitely a bug with [poly], because with higher <br></div><div>values of N, [poly N 0] knows the correct notes <br></div><div>remaining. <br></div><div><br></div>See attached ZIP file. <br>There is an HTML+image included which explains <br></div>how to run the patch to demonstrate the issue. <br><br></div>The problem is there is a race condition. <br></div>Lets say you smash the following chord:<br></div>("smash" means play all notes as simultaneously as possible)<br><br><div><b>24 26 28 29 31 33</b>  [C-D-E-F-G-A]<br></div><div><div><div><div><div><div><div><div><div><br></div><div>Now the value which will be latched by [poly 1 0] is random. <br></div><div>Let's say it is 28. <br></div><div><br>Now we release 33, 31,29 .... ALL GOOD!<br></div><div>Now release 29. <br><b>NOTE 24, 26, 28 are still depressed!<br></b></div><div>[poly] doesn't know what to do here, and releases 28, <b>ALL NOTES OFF.  Yet I am still holding down 3 notes. <br></b></div><div><div><div><div><div><div><div><br></div><div><b>The problem here is how do deal with this condition is ambiguous.</b><br><ol><li>Should [poly] have "highest note value" priority? (and jump to 26)<br></li><li>Or "lowest note value" priority? (and jump to 24) <br></li><li>Or "order received" priority? (and jump to to the <b>latest received</b> of [24,26])<br></li><li>Or maybe "reverse order received" priority? (and jump to the <b>earliest received </b>of [24,26])</li></ol></div><div>I would request a feature enhancement to provide some way to set<br></div><div>the mode of poly (new inlet, message to inlet1, and/or starting parameter) to chose one of these four modes. <br><br></div><div>In the meantime, I think I can code my own version of what I need as an abstraction. <br></div><div><br></div><div>Thanks Miller and everyone who contributes here for such an awesome tool/toy!<br><br></div><div>BH<span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888"><div>-- <br><div><div><div><div>--<br>
May you, and all beings<br>
be happy and free from suffering :)<br>
-- ancient Buddhist Prayer (Metta)<br></div></div></div></div>
</div></font></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
<br>_______________________________________________<br>
<a href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">https://lists.puredata.info/listinfo/pd-list</a><br>
<br></blockquote></div><br></div>