4

I was asked recently about making improvements on some software instruments. It is common, for example, to have key velocities between 0 and 127, which ultimately limits the expressional range of the musician.

I realized I couldn't really explain why this limit exists, other than the fact that MIDI has always been an 8-bit control scheme. Disregarding the practical side of changing the standard, would it be possible to achieve everything that MIDI does, but with 16 or 32-bit resolution?

  • OSC is related to this topic but has not been mentioned. Now it has. – maxime.bochon Oct 7 '15 at 12:52
  • 1
    Various MIDI2 specs have been proposed since the dawn of the serial port... no agreement was ever reached. Instead, 'bolt-ons' were allowed, including 'infinite' length sysex & the wonderful/dreaded XMF spec... make your own mind up - midi.org/techspecs [I still own a Rhodes Chroma with one proposed parallel MIDI spec... of course nothing else was ever made to hook it to... – Tetsujin Oct 7 '15 at 18:41
  • I don't know if anyone has really wanted to have more than 128 velocities available, but NRPN is supported on many devices to allow finer-grained control of other things, usually controllers. One thing that would be nice would be a complete NRPN "code book" or standard that all manufacturers would sign on to that would basically extend existing MIDI with backward compatibility. For example, filter cutoff frequency could have one parameter number and data range across all manufacturers and then an agnostic controller could be built or software could be written that works on all filters. – Todd Wilcox Oct 8 '15 at 18:50
  • Musicians definitely want more than 128 velocities. The software instruments do not "feel" like real instruments because of the limited range imposed by the bit depth – soultrane Oct 8 '15 at 18:55
3

MIDI does not use 8-bit values. It uses 7-bit values.

Except where it doesn't, such as in pitch bend messages (14 bits), LSB controllers 32-63 (14 bits), or high-resolution velocity (14 bits).

It would be possible to define an alternate protocol with bigger numbers, but MIDI's biggest strength is interoperability, which any intended replacement would not have, and could not achieve quickly.

  • It does not use 8 bit values, but it is an 8 bit language, as the first bit says what type of message is being sent. And I did mention that practical considerations of changing what is standard should be disregarded, so does this mean there isn't any reason why a higher resolution controller couldn't be constructed? It could even have a conversion in order to work with current devices. – soultrane Oct 7 '15 at 18:06
  • @soultrane - the problem isn't the bit-depth, it's the serial nature of the entire beast... & the fact you couldn't run a modern dishwasher on the chip-spec – Tetsujin Oct 7 '15 at 18:42
  • So if the data wasn't sent serially, handling higher resolution would be easier? That makes sense, but I don't see why 16 bits can't be sent serially with modern computers – soultrane Oct 8 '15 at 15:03
  • Whether the data is transmitted serially or not is not related to the word length (i.e. 8 vs 16 bits, etc.). USB is serial and while control messages are sent in predefined sizes with set word lengths, data is packetized and therefore USB doesn't care how the data is formatted. Protocol backward compatibility combined with NRPN for larger values have both been detriments to the advancement of an alternative music control language. Note that the protocol that specifies 7 data bits per word is not the only important part of the spec. USB is limited to 15 feet whereas MIDI can go up to 50 ft. – Todd Wilcox Oct 8 '15 at 18:46
  • @soultrane: Data is sent through opto-isolators at a rate of 31,250 bits/second. While opto-isolators are available that are many orders of magnitude faster than that, any existing equipment would be limited to the slower speed. If one wanted to use something faster, 10mbps Ethernet cabling could be much, much, faster. In the time it takes MIDI to send a single "note on" message, a 10mbps Ethernet link could send a dozen 64-byte packets. If each network segment was used exclusively for music communication using custom protocols (but standard hardware), ... – supercat Jan 19 '18 at 19:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.