A small but annoying bug (I think it's a bug)

I run into this now and again, and it's partially due to my unkempt nature... but it would be helpful if it were fixed:

I use the keystroke "+" to output MIDI during testing of my MT code. So... when I press "+" it might, for example, output a single midi command, or several as in "90 0C 00 90 0D 00 90 OE 00 90 0F 00 90 24 00".

Everything works well until I inadvertently leave my cursor at the end of a Raw MIDI message in the Outgoing field. In that case, when I press the "+" key everything is ok until I try to output the message more than once, at which point MT crashes. I'm not sure now if it requires two or three consecutive outputs - I think it's three.

Anyway, it's not a big issue, and since I backup constantly during a session, I've never lost lots of work. Still....


I’ll check if can duplicate but maybe if you use the ESC key (or other non-printing character) instead of + the problem may go away. My guess is the MT pro is trying to interpret the + character as a hex character or variable, gets confused and then crashes.


That’s a good suggestion. In fact… it’s a great suggestion. Works like a charm. Thanks Steve.
Kind of related is a general question I have about using Raw Midi to output long strings of commands. I do this frequently in my code and it seems to work, but I’m wondering if I’m potentially going to have problems at some point. There are times when I might string 30 MIDI commands into a single Raw MIDI output. My computer seems to be fast enough to handle it, and MIDI itself seems robust enough, but I wonder if I may run into problems in the future. What is the limiting factor here?


1) I tested and confirmed the problem you reported
2) I also confirmed that the fix works.
3) I wouldn’t worry about long raw midi output strings. I actually use them for one of my devices that doesn’t handle ”all notes off”. I just send a single string with note off messages for every note. Never had a problem.

Hi fingerlight, crashes are always top priority for us, so we’ll have this fixed for the next version. It might be related to a different bug where entering illegal MIDI message can cause a crash. But good that Steve pointed out a working work-around.

Regarding performance, don’t worry. MIDI is so slow that any computer (or smart phone, for that matter) is fast enough to handle whatever you can think of in MIDI. A few years ago, we’ve measured MT Pro’s MIDI performance. For translating MIDI messages, including Rules, MIDI Translator Pro handled approx. 1 million MIDI messages per second via the Bome virtual MIDI ports on a typical computer. If you go through MIDI DIN, the limiting factor is the transport’s bandwidth which allows you to send up to 1000 messages per second (excluding System Exclusive messages).


Yes…Steve is sharp – nice workaround!
As for MIDI speed, the other side of the question is whether MIDI itself can handle the output from MT when Raw Midi outputs long strings of commands – and, in fact, many long strings. When I initialize my system, I send out many hundreds of commands, perhaps a thousand, one right after the other. I use timers to put spaces between batches of commands, but don’t know if it’s really necessary. Also, it seems to me that MIDI might ignore messages if they are thrown at it too rapidly.
Does midi have buffering of some kind so that this isn’t an issue?

It will really depend on transport that you use. If you are using USB or Virtual Midi ports, it should handle it. You could possibly run into problems if you are flooding a single very long midi message over midi DIN.
Also some USB to DIN converter cables have small buffer size.

So if there is something connected via DIN and you run into problems, you might need to adjust. Again, I’ve never run into this but most of my external devices are native USB midi.

I HAVE run into situation where I have have had midi USB to DIN converter not handle even fairly small sysex messages, Just make sure if you use one of these you don’t buy a cheap one. I use a MIO 1 cable for my FCB-1010 controller that has a DIN.

Hi Steve,
Thanks for the information. I’m at peace now 😉