RetroCade example: "Really Dumb MIDI monitor"


Recommended Posts

(really dumb meaning:All the fun stuff like printf("%02c", byte) happens in RTL state machines)




an example project (attached) for Papilio Pro / RetroCade: All incoming MIDI traffic is dumped to USB serial.

In windows, set up the 2nd USB serial device of the P. Pro board as "virtual com" port.

Use Tera term or the like, and connect to it at 9600 baud. 

Any incoming MIDI traffic will be dumped as hex.

After uploading the bitstream, the LED should turn on while any MIDI key is held down.


The project includes a simple MIDI parser for noteon-/off messages. It remembers the state of all keys (all channels are combined, "omni mode"). Maybe this could be useful for some MIDI music experiments with minimal fuss: Excluding UARTs and FIFO (reused modules), the actual RTL code that does all the work is only about two screen lengths.



  • The clock is tripled to 96 MHz even though it's not necessary (153.6 MHz would probably work, too)
  • Serial IO rate works fine also at 460800 baud (change baud rate divider).
  • if there is need for more throughput (capturing sysex data beyond the FIFO capacity would require 921kBaud, it should work but I haven't tried).
  • Active sensing (0xfe) is suppressed.

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.