Some MIDI questions


I’ve been reading through the manual and came across Tempo MSB & Tempo LSB in the MIDI section, but “MSB” and “LSB” are nowhere explained (I don’t think). What do they mean?

Same question for “NRPN MSB register”


It’s a tricky one to explain and to be fair, the documentation does a good job.
MSB = Most significant Bit
LSB = Least significant Bit

Before I can explain the NRPN register, you need a bit on an understanding of what MIDI is - or more specifically MIDI CC. MIDI CC (control change or continuous change) is way to send changes to a MIDI device for things like volume, balance, sustain etc. Each one of these ‘parameters’ has an ID and a value - you send a value to a specific ID to change that parameter.

For example CC 7 is volume - send 127 and you’ll get full volume. Why 127? Because that’s the maximum size of a byte of data.

So what if we need more values than just 127? Well, we send the command to 2 MIDI CC parameters; this gives us 127*127 possible values. To make these big numbers we send 0-127 to one MIDI CC - this is the MSB value, then we send 0-127 to another (the LSB). The MSB and LSB are combined to make the large number.

So what if we need to change a parameter that’s not part of the standard MIDI CC parameters? That’s where the NRPN register comes in. Sending values to NRPN register (MIDI CC 98+99) lets you select a custom control parameter; manufacturers are free to come up with their own parameters. Then you send a value for this selected parameter to to MIDI CC 6 (MSB) and optionally MIDI CC 38 (LSB). You can also increment and decrement using MIDI CC 96 +97.

From what I read in the Beatbuddy MIDI spec, they’re not using the NRPN to select a parameter; they’ve simply hardcoded it to control the value of the tempo parameter instead of first selecting the parameter, then sending a value for it. I could be wrong, but that’s how I read it.

Hope that explains things.

Hey thanks!