MaxMSP is running too slow to act as a MIDI clock!

    Mar 12 2006 | 6:25 pm
    Hi to all,
    I've been working on a project where the tempo object is sending MIDI clock messages to an external drum sequencer to play it and control it's tempo, while break-point envelopes are used to automate parameters by sending control (ctlout) values to the external unit.
    However, I'm using the tempo object as the clock source (banging @ 96th note divisions) and Max is set in overdrive mode, but there is a very obvious timing issue, as it seems max cannot cope with sending the bangs out fast enough, or with any consistent time base. There is a terrible speeding up/slowing down effect on the sequencer, which is rendering the project almost useless!!!
    What can be done about this?
    I'm running on a 3GHz Processor and 1GB RAM, so a pretty good spec system. I get the problem to an intolerable degree although no other programs are running.
    Is this just an area where Max is not a particularly useful program to use? Or are there ways of optimising?

    • Mar 12 2006 | 7:09 pm
      If you want rock-solid timing, a phasor~ based system is the way to go. With audio interrupt on, use phasor~ with edge~. To do subdivisions, use this:
      phasor~ 1. *~ 16 %~ 1. edge~
      and you now have sixteen subdivisions at 60 bpm.
      Alternatively, you can muck around with the performance settings, which may help as well.
      Since MIDI doesn't have the greatest bandwidth, there's a possibility that your ctlout envelopes are saturating your bandwidth if you're using something like
      line 0. 1
      a bunch of times to send data to ctlout. You can use speedlim to throttle data for those, (or just use a higher default granularity setting on line)
      Peter McCulloch