Max MIDI Busses and Pro Tools 9

    Jun 21 2011 | 10:14 am
    So, I seem to have stumbled upon a mildly nasty and probably-unimportant-to-most-people 'bug.' I don't have many other DAWs to test with, but if I'm outputting a dense stream of MIDI CC commands (say about 1500 per second) on one of the 'From MaxMSP' busses, and into Pro Tools 9 - Pro Tools will become completely unresponsive to user interface elements (mouse or keyboard have no effect on anything). It will stay unresponsive until you stop the midi coming out of Max, and even then it will take upwards of 15-30 seconds to 'catch up.' I've noticed no issues if I use the IAC bus to get the CC stream from Max to Pro Tools, so there's a nice little work around there. But I have no idea why there's the hangup with the MaxMSP busses compared to the IAC bus.
    For anyone that happens to have a copy of Pro Tools 9, I'm including a little patch that can (somewhat) consistently cause this problem on my machine, the specs of which follow:
    OSX 10.6.6, 8 Core Mac Pro (Xenon, I believe) 3ghz. 5gb RAM, MaxMSP 5.1.7 (going to check 5.1.8 in a moment, but I didn't see anything related to this in the change log), Pro Tools 9.0.0, 9.0.2, and 9.0.3 tested. Other equipment that might be related (IE, midi stuff hooked up): NI Maschine, Casio PX-130 Digital Piano, Aleisis Q25, Akai LPD8, and a BCF2000.
    Max's DSP settings don't appear to matter much, I've tried IO/Signal vector sizes ranging from 32 to 2048, with and without overdrive/audio interrupt, to no avail.
    Another fun thing to try is to run Max as a Rewire slave, and use a rewire midi bus - then Pro Tools will just crash without warning, at random! I blame that on Avid more than anything else, though.
    If anyone else can or can't reproduce this issue, I'd be interested to know. It took me about a day and a half or so to narrow this issue down to the MaxMSP virtual midi busses, and maybe it can be narrowed down further.

    • Jun 21 2011 | 6:39 pm
      I unfortunately don't have Max on this computer right now to open your patch. But by simply crunching the numbers I'd say the crash not surprising when looking at the MIDI specifications:
      MIDI is a serial protocol supposed to run at a speed of 31250 baud - which means 31250 bits per second. A serial MIDI byte contains out of 10 bits (1 start-bit 8 data-bits and 1 stop-bit) and cc-change Message contains 3 Bytes. That means that by specification MIDI is expected not to send/receive more than 1041 cc-messages per second. (And already that would entirely block the MIDI bus.)
      In any case 1500 cc-messages are not expected by the application.
    • Jun 21 2011 | 8:32 pm
      That makes sense, but why does the IAC bus handle this overload fine, yet the MaxMSP busses do not?
    • Jun 21 2011 | 8:48 pm
      Well, that i guess is a question for the developers at Cycling'74... I could imagine - but that is a pure guess - that the Apple bus limits the data which it is passing through, and Max passes on everything.
      There are good arguments for both approaches.