In short: how can I include the version number of the software/hardware of the recording device in the output-midi?

I looked for SysEx messages but sofar did not find any device doing this.

For now I'm converting the 8-bit version number into a pattern 0xf8/0xfe message-bytes (surrounded by 0xff) which is then "played" when the system boots but this feels rather hacky.


The MIDI specification says:

Device Inquiry

The following two messages are used for device identification, and are categorized as Non-Real Time System Exclusive General Information messages (sub-ID#1 = 06).

The format of the inquiry message is as follows:

F0 7E <device ID> 06 01 F7 

      F0 7E <device ID>   Universal System Exclusive Non-real time header 
      06                  General Information (sub-ID#1) 
      01                  Identity Request (sub-ID#2) 
      F7                  EOX 

A device which receives the above message would respond as follows:

(Note that if <device ID> = 7FH then the device should respond regardless of what <device ID> it is set to.)

F0 7E <device ID> 06 02 mm ff ff dd dd ss ss ss ss F7 

      F0 7E <device ID>   Universal System Exclusive Non-real time header 
      06                  General Information (sub-ID#1) 
      02                  Identity Reply (sub-ID#2) 
      mm                  Manufacturers System Exclusive id code 
      ff ff               Device family code (14 bits, LSB first) 
      dd dd               Device family member code (14 bits, LSB first) 
      ss ss ss ss         Software revision level. Format device specific 
      F7                  EOX 

Note that if the manufacturers id code (mm) begins with 00H then the above message is extended by two bytes to handle the additional manufacturers id code.

  • As I understand, no dialog is intended, but an unsolicited wrapping in a non-formal way doing no harm on the receiver side. But I admit, that the question would benefit from more clarity. – guidot Jan 4 '20 at 22:31

I'm not sure, what you want to do later with that information, but looking at Standard MIDI-File Format Spec. 1.1, a META EVENT definition could be the solution:

Cited explanation:

FF 01 len text Text Event; Any amount of text describing anything.

  • Hi, that is specific for midi-files. I meant something for in-line in a stream of midi going from one device to an other. – Folkert van Heusden Jan 3 '20 at 22:30
  • @FolkertvanHeusden: You should include that into your question, which I understand even less now: any standard device is unlikely to handle that information, so what is the benefit of including it into the stream and what are you trying to achieve? – guidot Jan 3 '20 at 22:41

If you're trying to identify a device, you're probably better off with the super crude string you get from the operating system. Even the device ID on windows can switch out on you if you disconnect USB and reconnect. And all you'll get back from a sysex is a manufacturer dependent set of binary numbers. On windows api it's midiInGetDeviceName or mmmmm, that's probably not right google it. But swap Out for In to get the devices goin the other direction. Alot of times, that string is just the name of the midi interface. Sooooo, good luck to ya. It is a pain in the butt on windows at least.

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.