hanging MIDI note messages / stuck notes / polyphony
Hello all, this is a basic question but one which keeps cropping up for me. My setup is a fairly recent G4 aluminum laptop, my MIDI interface the trusted Hammerfall cardbus / multiface combination. In a number of recent patches I would love to get polyphonic MIDI input working reliably, but I keep having problems with "stuck" or "hanging" notes (lost note-off messages).
I’ve tried several different polyphonic objects – MAX’s poly, my own implementation with poly~, borax, etc. In all cases, if I don’t have any MSP going on, the objects respond fine to incoming MIDI data, even if I put my forearms down and fire out 88 MIDI notes, all the noteoffs register afterwards. But as soon as audio goes on, even with a simple sinewave synth, I get stuck notes. Not all the time, but enough to make the whole process frustating and unreliable for live music.
Other synthesis engines (e.g. Reaktor) – no problem.
So what’s going on? I need the custom number-crunching of MAX to process my data, and would like to use it for the sound-generation as well, but I can’t seem to get reliable MIDI control.
Does anyone else ever experience these problems? I have searched the forums under "hanging" or "stuck" notes, and under "poly" but haven’t come up with any results.
Any advice would be sincerely appreciated.
PS. Here is a simple sine synth (example patch) using poly~ … shouldn’t be too demanding, works OK under modest input, but produces hanging notes with more elaborate playing. Can this be avoided, for example by using raw MIDI input instead of "notein"?
Thanks in advance!
OK – found what seems to be a solution, not sure why this works, maybe someone has an idea?
If you use "notein", you get stuck note information.
If you use "midiin" followed by "midiparse", the results are much better. So far, no problems with the same demo patch and even more complicated MSP engines.
I’ve had this problem myself lots of times (particularly inside of Pluggo patches) but never thought of using midiparse instead, thanks for that.
I actually should have thought of this myself because there is another similar problem I have found with bendin occasionally swallowing bend messages. Like you I solved this by using midiparse instead of bendin.
Maybe there is some dodgy code common to notein and bendin which is causing drop-outs…
I’ve also occasionally run into trouble with this, but haven’t had
the time/inclination to chase it down yet.
I wonder if it has to do with how [notein] changes true note-off
messages into note-on messages with velocity=0? Both are "legal" but
to use actual note-off messages with velocity you have to use
[xnotein] and [xnoteout]. Do those work for you in place of [midiin]
with [midiparse] without dropping the note-of messages?
On Mar 6, 2008, at 9:25 AM, Marc Sabat wrote:
> OK – found what seems to be a solution, not sure why this works,
> maybe someone has an idea?
> If you use "notein", you get stuck note information.
> If you use "midiin" followed by "midiparse", the results are much
> better. So far, no problems with the same demo patch and even more
> complicated MSP engines.
Steven M. Miller
Professor, Contemporary Music Program
College of Santa Fe
Home < http://pubweb.csf.edu/~smill>
SFIFEM < http://sfifem.csf.edu>
Atrium Sound Space < http://atrium.csf.edu>
OVOS < http://pubweb.csf.edu/~smill/ovos.html>
CMP < http://www.csf.edu/academics/contemporary_music/>