MIDI-OX User Forum (http://www.midiox.com/cgi-bin/yabb/YaBB.pl)
MIDI-OX >> Questions and Discussion >> How to view 100% raw midi char ?
(Message started by: Skinah on Dec 20th, 2005, 10:51pm)

Title: How to view 100% raw midi char ?
Post by Skinah on Dec 20th, 2005, 10:51pm
Thanks for the midiox app, I've used it for years and recommend it to a lot of people but I now need something very different out of the app...

I should stress I am trying to view something which is not midi notes but random midi characters from a device I have invented. Its midi but its not in 2 or 3 byte midi format and its not sysex, its just raw midi characters...

The problem is that when a midi char is sent, midiox does not display this raw data but converts it into a NOTE.

How can I view the raw midi in HEX or any format would be fine even ASCII ?

thanks for any help.

Title: Re: How to view 100% raw midi char ?
Post by Peter L Jones on Dec 21st, 2005, 2:14pm
Windows MIDI drivers don't let you do this.  Unless you're sending valid MIDI messages, the driver won't recognise the data and pass it to the application that has the input port open.

It sounds like you probably want to try a serial interface (RS-232) rather than MIDI?

Title: Re: How to view 100% raw midi char ?
Post by Skinah on Dec 21st, 2005, 6:46pm
Thanks for the reply Peter. I was hoping this would not be the case. I'm working on some midi hardware which i want to flash update by end users via midi. It has to be midi as its the only interface every user will have.

Is there any way around this ? Sysex strings have their limitations (cant use 0x90 or any char with bit 7 set) or to encode my data into normal midi notes which once again dont allow for data above 127.

Can you think of any way to send a full 256 Byte/CHAR via a  midi interface ? Does midi allow for any full 8 bit transmision characters in its specs ? Does windows allow you to break this in sending data ?

I am not limited in the recieving device, I can break the midi standard as much as I wish so if windows allows a sysex to be sent with any data byte my device will pick it up.

BTW I use "midiOutLongMsg" in visual C not directX to send midi so I'm programming at a lower level if that helps.

Thanks for any help you can give.

Title: Re: How to view 100% raw midi char ?
Post by Peter L Jones on Dec 22nd, 2005, 2:09pm
Many devices are updatable over MIDI using SysEx - it just means more programming on the device.

Either you treat the SysEx data as a pure bit stream, packing seven bits per MIDI data byte.  Or you split each eight bit byte into two bytes, four bits into each, and send those.  In each case, the device takes care of reassembling the data before before storing it.

At the computer, the user just has to be able to send the SysEx data reliably - they don't care about the content, of course.  MIDI OX is ideal for this :D.

Title: Re: How to view 100% raw midi char ?
Post by Jamie OConnell on Dec 22nd, 2005, 3:43pm
Peter is correct in this.  If you have a MIDI Manufacturer's ID, you can send any data you wish through SysEx, as long as it does not exceed 7 bits in value.  It is very common for manufacturers to send ASCII text characters split into two bytes of 4 bits, which are reassembled on the receiving end.

MIDI Manufacturer ID's can be obtained from the MIDI Manufacturer's Association (MMA), although they are rather expensive.

Title: Re: How to view 100% raw midi char ?
Post by Peter L Jones on Dec 23rd, 2005, 12:52pm
A good place explaining SysEx is Hinton Instruments:
http://www.hinton-instruments.co.uk/midi/midicode.html#msex

As you can see, you're allowed to use "7D" for non-commercial use.  It's a very good idea then to put some "unique" key in the immediately following bytes and to checksum the data you're sending so you can be more certain that it's for/from the device.



MIDI-OX User Forum » Powered by YaBB 1 Gold - SP 1.3.1!
YaBB © 2000-2003. All Rights Reserved.