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

Alec J P's icon

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?

Peter McCulloch's icon

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