Forums > MaxMSP

NRPN resolution Speed

May 26 2009 | 2:09 am


I tried googling this but didn’t get a definitive answer.

What is the maximum resolution (speed) of MIDI CC messages, is it limited to the clock speed of 24 pulses per quarter note?

I can guess that NRPN values would have half the resolution of CC since they use two messages.

And I also guess multiple streams would interrupt each other.

Sorry for the broad questions not directly involving max/msp.

May 26 2009 | 2:40 am

I don’t think message speed and PPQ are related. PPQ is a function of sequencer resolution and message speed is a function of baud rate. As I recall, MIDI has a 31,250bps baud rate. Thus, in theory you should be able to transmit roughly 3100 messages per second (assuming 8 bit messages plus stop and start bits). Obviously, at a faster tempo, that means you get fewer messages per quarter note than at a slower tempo, but I’ve never heard that the data transfer rate is affected by PPQ.

May 26 2009 | 3:29 am

OK cool thanks,

that’s much faster than I thought – I was asking because I’m going to make an NRPN 4 bar sequencer to sync with my hardware and automate parameters. Similar to the techno~ object except out of [table] .
Obviously I’d like the best resolution possible. I might just use an arbitrary multiple of the amount of quarter notes cause it seems 3100 a second is definitely enough – even for multiple simultaneous changes.


May 26 2009 | 3:43 am

Ahh of course,

the baud rate is more than fast enough but using [table] I’m limited to 1000 max messages per second.
I guess I’ll base my resolution/speed on that.

May 26 2009 | 6:39 am
pechnatunk wrote on Mon, 25 May 2009 22:43
Ahh of course,

the baud rate is more than fast enough but using [table] I’m limited to 1000 max messages per second.
I guess I’ll base my resolution/speed on that.

The baud rate may be 31250 but most MIDI messages are at least two bytes, and many are more, including NPRN. So you’ll have to take that into account too.

I made a synth controller using [sxformat] to change parameters, and wanted to use [pattrstorage] (a great object to learn about for any project) to interpolate between whole sets of parameters, and the baud rate wasn’t nearly fast enough to handle it… some lockups, data loss, and a few crashes. Admittedly, the sysex commands are more bytes than NPRN, but the bottleneck definitely was there, and there were some unexpected crashes when trying it, so I went a different route. However, with NPRN you may be fine. And if there’s a way to send a whole series of your data points at once (with only one start and stop byte) that would help a lot, I’m not sure if you can with NPRN but you may be able to.

May 27 2009 | 2:56 am

the speed limit of physical midi connections or midi
protocol is probably much less a problem of sending,
it is more about the recieveing side.

which is why you are on the right path when you
are going to quantize your maxmsp seqencers output
to a grid in order to keep midi traffic low, this
is always a good idea.

May 27 2009 | 8:57 pm

A complete message with three bytes like a noteon will roughly need 1 ms. If running status is used it might be a bit faster. To adress this problem you could actually keep your patch as it is and just put a speedlim before your output. Its exactly made for that…


Viewing 7 posts - 1 through 7 (of 7 total)

Forums > MaxMSP