One of the first things that happens when you plug [notein] into a monophonic synth design in Pd is that overlapping notes break the envelope: if, say, C and D overlap with D sounding and you release C, then the D note gets cut off!
If you want it to behave like a standard VST synth with voices = 1 and "legato" on -- the logic ends up being relatively involved. So, for my students' sake, I wrapped it up as a couple of abstractions.
Note that it depends on cyclone -- a note-off message needs to delete a note number from a list, which is a missing feature from [list] (but implemented in cyclone as [zl filter] -- sure, it would be possible to implement with a list iterator, but I'm willing to bet [zl filter] is faster).
A second object supplies the glide.