Sorry, Sourceforge is blocked for me.

I noticed that when using [poly 1 0] (note stealing off)
when I would smash multi-note chords and release notes,
sometimes I would be left pressing a note,
yet the output of [poly] is silence.

I thought this might be a bug with the Windows MIDI driver,
but it is definitely a bug with [poly], because with higher
values of N, [poly N 0] knows the correct notes
remaining.

See attached ZIP file.
There is an HTML+image included which explains
how to run the patch to demonstrate the issue.

The problem is there is a race condition.
Lets say you smash the following chord:
("smash" means play all notes as simultaneously as possible)

24 26 28 29 31 33  [C-D-E-F-G-A]

Now the value which will be latched by [poly 1 0] is random.
Let's say it is 28.

Now we release 33, 31,29 .... ALL GOOD!
Now release 29.
NOTE 24, 26, 28 are still depressed!
[poly] doesn't know what to do here, and releases 28, ALL NOTES OFF.  Yet I am still holding down 3 notes.

The problem here is how do deal with this condition is ambiguous.
  1. Should [poly] have "highest note value" priority? (and jump to 26)
  2. Or "lowest note value" priority? (and jump to 24)
  3. Or "order received" priority? (and jump to to the latest received of [24,26])
  4. Or maybe "reverse order received" priority? (and jump to the earliest received of [24,26])
I would request a feature enhancement to provide some way to set
the mode of poly (new inlet, message to inlet1, and/or starting parameter) to chose one of these four modes.

In the meantime, I think I can code my own version of what I need as an abstraction.

Thanks Miller and everyone who contributes here for such an awesome tool/toy!

BH
--
--
May you, and all beings
be happy and free from suffering :)
-- ancient Buddhist Prayer (Metta)