Nick Saizan – Weekly Status Report #4

This week I worked on the MIDI Decoding part of our project. My first steps were to being looking at the waveforms of our MIDI keyboard and begin to inspect the actual data it was sending. My goal was to confirm that the information is was sending is consistent with the research I’ve done so far on the MIDI interface.

The above picture is the waveforms generated from both a KEY-ON and a KEY-OFF message. On the left side you can see that one of the bits in the first byte is different. this is consistent with 0x90 for KEY-ON and 0x80 for KEY-OFF, which is a part of the MIDI standard. One of the challenges was realizing that each byte is sent in reverse bit order, and there is a low bit to signal the start as well as a high bit to signal the end of a byte. While the inner byte order is reversed the ordering of byte amongst each other is not.

With this information I was able to begin working on the MIDI Decoding FSM/Datapath. Currently the only messages we care about are NOTE-ON, NOTE-OFF, and AFTERTOUCH. And thus that is why those are the only types of commands read by the FSM. Writing the whole MIDI decoding system out was a little over 300 lines of systemverilog, however I have not had the chance to test it.

Leave a Reply

Your email address will not be published. Required fields are marked *