Practically MIDI (Part 6)
Martin Russ takes out his soldering iron and creates the MIDI Monitor - an unbelievably useful gadget for anyone with a MIDI set-up of any kind.
Admit it - you weren't expecting a practical project based on MIDI, were you? As with all the best ideas, this one is firmly based on a solution to a real-life problem. I needed to test whether or not a computer-based MIDI interface was sending out information, and I wasn't sure of the integrity of the interface or the MIDI lead, and half a dozen other problems (ever have one of those days?) Anyway, after writing a program on the Atari ST which turned into the public domain MIDI ChannelScope program [that's enough advertising! - Ed.] I put on my thinking cap and designed the device which will probably cause you to fall over laughing: the MIDI Monitor.
Designed is probably too strong a word for the process which I undertook - I just took the following components:
1 5-pin 180° DIN plug
1 120 ohm resistor ¼W
1 miniature red LED
some rubber sleeving
and sort of soldered it together, based upon a quick sketch I did on a scrap of paper. (I can remember reading, some time ago, in a wireless magazine about a receiver called the 'Beermat Special' which was apparently designed in half an hour on a beermat in a pub!) There should be a neatened-up version of the original sketch around here somewhere (see Figures 1 and 2).
What can you use this extraordinarily complex device for? Well, plug it into a MIDI Out, for starters, and try playing a few notes. The red LED should light slightly if your MIDI Out is sending Active Sensing "I'm here!" bytes, but should get brighter when you play and release notes. Pitch bend wheels and modulation wheels should cause it to rival the Blackpool Illuminations! Perhaps not, but the LED will certainly be brighter still.
You can use the MIDI Monitor to check drum machine outputs and check computer interface outputs. It can be really useful in large MIDI networks where you have lost track of a cable and want to find out where it goes - plugging the MIDI Monitor into Thru sockets as you move around the network and playing keys on the offending keyboard, can quickly get you back in control. In fact, it turns out that since building it, it has never had a spare moment in its role as the ultimate MIDI consultant's aid. It has joined the screwdriver, 6N138 opto-isolator and MIDISwitch box as part of the 'tool kit' I carry with me on call-outs!
Well, that's that over with! It may look silly at first sight but apart from making noises by carrying around a MIDI synth expander and a pair of headphones, how else can I tell if there is any MIDI data flowing around? Or how about trying to figure if a bulk dump really is coming out of that MIDI Out socket when you aren't even sure if you have programmed the synth correctly to instigate a dump! The MIDI Monitor works and saves me time, therefore it is a success in my book! Now to the next practical problem...
I had been having problems with a bass line. I was using my DX7 Mk1 to input a bass line into my Iconix sequencer on the Atari ST computer, but something very bad was happening between the computer output and my trusty Sequential Pro-One monosynth (I use a MIDI-to-CV convertor) which was supposed to be supplying the sounds. On long held notes, the Pro-One would suddenly stop playing. Taking a leaf out of the Essence Of Detection book (I watch too much 'Moonlighting'), I went for the most obscure and unlikely solution: the output was the problem, so I went looking at the input for the solution. I found it, too! Here are your clues: The MIDI Specification 1.0 says that the MIDI rate should be 31.25 Kbaud +/— 1 %. It also says that the time between Active Sense messages (FEh) should be less than a maximum time of 300 milliseconds. Any idea where this is leading? Answers on a postcard please, to arrive before the next paragraph.
(Short pause for postman...)
Reading through the postcards which have arrived so far, it seems that quite a few of you already know about this. But for the rest of you here's what was happening: The DX7 is supplying the note info to the Atari ST sequencer, but it also outputs Active Sensing messages at the same time. The sequencer ignores the active sensing but transmits it to the Pro-One synth via the MIDI Thru function of the sequencer during playback. That is, the MIDI Out on the Atari ST contains the notes in the bass sequence as well as the Active Sense messages. The upshot of this is that an expander connected to the output of the sequencer would receive the Active Sense messages and would thus play OK. However, the DX7 is sometimes rather slow in sending out messages, mainly because MIDI was very new when the DX7 was designed, and so the Active Sense messages can be a bit slow in arriving sometimes. In fact, the MIDI Out of the original DX7s can be out by rather more than the recommended +/— 1%.
Meanwhile, in the MIDI-to-CV convertor, a watchdog timer is keeping note of how long it is since it last received an active sensing message or status byte. Unfortunately, just as it decides that more than 300ms have elapsed since it last received one and has consequently shut down, what should arrive but a Note Off byte, just after it has timed out. Result: the MIDI-to-CV convertor drops the current note and the Pro-One stops playing the current bass note. Even worse, since when you lose active sensing you don't expect to get note data following on immediately, the convertor throws a fit and gets confused: it starts converting the incoming notes into pitch bends, leaving the Pro-One out of tune and me with a rattling good problem.
A quick phone call to the manufacturer and a replacement ROM is on the way - this one is more generous in its interpretation of the 300ms 'window' and works beautifully. (Thanks, Paul!) Remember that this is not a fault in the MIDI-to-CV convertor, it is merely a fix around a problem in another piece of gear - the DX7 in this case (it seems that my very early DX7 is particularly slow). The MIDI-to-CV convertor was only interpreting the incoming MIDI data correctly! (Interestingly, DrT's Keyboard Controlled Sequencer software makes allowance for the sluggishness of some DX7s and has a 'slow MIDI' option on its input spec page!)
An interesting case, eh? I would normally have suspected the Pro-One to be the culprit first, since these hybrid monosynths are notorious for having triggering problems due to the use of CMOS circuitry for the ADSRs (envelopes). Next in line I would have suspected the MIDI-to-CV convertor (actually blameless in every way, and a very good tool for enabling the use of velocity sensitive bass lines on MiniMoogs and other ancient monosynths), followed by the sequencer. In fact, the real problem lay in the DX7, right at the start of the system, and the last place anyone would normally look. Anyone except a MIDI consultant, that is!
The moral of this month's instalment is simple: although something may at first appear simple and obvious, it may turn out to be valuable after all. The MIDI Monitor looks so simple that you assume it couldn't possibly be of any real use, and yet it has repaid the minute investment many times over. The conversion problem also looks obvious - although it would have been pointless trying to find out what was wrong with the convertor box when the problem was somewhere else, resulting in a very useful investigation into active sensing times. See you next month!
Feature by Martin Russ
Previous article in this issue:
Next article in this issue:
mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.
If you value this resource, you can support this project - it really helps!