

Troubleshooting tip: if you can't seem the get this interface to talk with external MIDI devices, then perhaps you swapped pins 4 and 5. You can also use other libraries or write your own MIDI implementation of course, the hardware should work with any MIDI library with USB MIDI and Serial MIDI support. I included both the basic USB to MIDI interface source code and a version with "all notes off" filtering. The person who wrote the library indicated that this issue would be fixed once the 2.x version comes out. I added instructions in the comment heading of the source code on how to fix this issue. This resulted in errors when trying to use a D50 editor/librarian, as it sent rather large SysEx packages.

One issue I ran into with the Control Surface library is that it doesn't handle large SysEx packages well.

By filtering the "all notes off", the D50 becomes useful again as a master keyboard.

Modern implementations, such as most of the VST instruments I use, interpret this as an immediate hard cut-off of all running note sustains. The D50 sends an "all notes off" command each time the last key is depressed. In my case I used this to fix the broken MIDI implementation of my Roland D50 synthesizer. You can also register callbacks so you can process the data before passing from MIDI to USB or the other direction. Just take a look on the Control Surface website for more information, it's really easy to do! You could for example add some potentiometers, pedals or buttons connected to the analog / digital inputs to add extra MIDI controls. Unlike some other libraries or manually coded implementations, Control Surface handles all the different aspects of the somewhat complex MIDI protocol correctly.Ĭontrol Surface also lets you add all kinds of extras. On the software side I decided to use the excellent Control Surface library. Use sand paper before gluing the PCB (standoffs)
