This is about implementing the possibility of sending MIDI Data from the USB port to one or both the MIDI-DIN ports. The MIDI Clock will have priority so the MIDI Data will be moved around it.
The Midronome will have two more USB-MIDI input interfaces on the computer, called "Midronome MIDI Out 1" and "Midronome MIDI Out 2" (on top of the current "Midronome Commands") where the data will have to be sent to.
Note: This feature could be combined with a simple add-on module with a MIDI-DIN input to be able to forward data from a MIDI-DIN input.
Important notes about the implementation:
- Clock always has priority and is totally undisturbed by other MIDI data, no matter how much is sent (jitter will stay the same)
- Start/stop also has priority, and is also undisturbed
- The forwarded data will be sent in under 0.2ms after it is received, in the same order. Extra latency might be introduced if there is a Clock, Start, or Stop message (since they have priority).
- The device has a queue of about 700 MIDI bytes which can be received over USB before they are sent to DIN-MIDI. Because USB is much faster, this limit can actually be reached if the USB is spammed with messages faster than they can be sent over DIN-MIDI. Once the limit is reached new messages will be lost.
- Sysex messages can be max 125 bytes long - longer Sysex will be ignored (lost).
- If MIDI Start needs to be sent (f.eks. when pressing Play or when a resync happens) and we are in the middle of sending a long Sysex message, the Sysex message will be interrupted right away (so that MIDI Start can be sent in time), and then sent again from the start right after MIDI Start. This is not the case for MIDI Stop, and not the case for Sysex messages of 6 bytes of less (including F0 and F7).
Feel free to comment here regarding:
- If you think some information is missing or unclear
- How you would like this feature to be implemented (buttons, settings, how to activate, how it is done, etc.)
- Why you think this feature is a good addition to the Midronome