MERGING MIDI INFORMATION
Two into one will go - but if you're talking about MIDI datastreams there are a few important rules you need to follow. Vic Lennard explains the Ins and Outs of merging MIDI information.
ONE CONTINUING AREA OF MIDI CONFUSION IS THAT SURROUNDING THE MIDI MERGE BOX - WHAT DOES IT DO, AND HOW MIGHT IT HELP YOU?
THERE CAN BE few people taking their first tentative steps into the world of MIDI who haven't wondered at some time or other "Why can't I simply splice together two MIDI leads when I want to use two different keyboards to play a single synth?" With a MIDI Out socket on each of the keyboards but only a single MIDI In on the synth, this, on the surface, wouldn't appear to be too unreasonable a request.
But of course, life isn't ever that simple.
Consider the example of two tubes each with different coloured balls being pushed through them by means of compressed air. With the tubes separated, the balls will obviously emerge in the same order as they were sent in. If, however, they are joined so that they share a common outlet, the balls will emerge mixed together, making it impossible to determine the order in which they entered, or even which ball came from which tube. The result would be chaos.
The flow of MIDI information follows broadly similar principles. Here, data transmitted down MIDI cables takes the place of the coloured balls rolling through tubes whilst the "push" provided by the compressed air is generated electronically by what is known as a current loop. And just as in our example the tubes must be kept separate if the balls are to emerge in the correct order, so each MIDI line must be kept independent if data is to be interpreted correctly by the receiving device.
THE "PACKAGES" OF MIDI data sent down each cable are referred to as messages. Pressing a key, for example, sends a Note On message, while releasing it transmits one for Note Off. Each message consists of a series of MIDI bytes which, essentially, are made up of strings of numbers. Different types of messages are made up of differing numbers of bytes: Note On and Off, for example, need three bytes each to convey all of the necessary information, while a program change requires only two bytes. Sending the entire set of program parameters for all the sounds in a synth, on the other hand, could involve some 64,000 bytes or more.
To further complicate matters, the bytes for each message are, in effect, mutually dependent and cannot normally be separated. This means that should any of the three bytes which comprise a Note On message (Note On status, MIDI channel, note number and velocity) be lost, the message would be incomplete and would be unintelligible to the receiving device.
Clearly then, MIDI data needs to be handled with some care; though vast amounts of information may be transmitted down each cable, these cannot be simply joined together in an effort to mix information from separate sources. If we want to merge data from two or more MIDI outputs, it has to be through a purpose-made device - the MIDI merge box.
AS WE'VE ALREADY seen, a MIDI merge device has two principal tasks. It has to keep together all the bytes that comprise each message and it has to ensure that the timing for each message is such that they cannot collide. But under what circumstances is it needed? Let's take an example where a sequencer is used to control both a keyboard synth and a drum machine, with the latter providing the MIDI clock timing data necessary to keep it in sync with the sequencer. In addition to the MIDI Out from the sequencer going to the MIDI In of the keyboard, and, via MIDI Thru, to the MIDI In on the drum machine, the MIDI Out from the drum machine must also be connected to the MIDI In of the sequencer. No problem here.
"THE PROLIFERATION OF SOFTWARE-BASED SYNTH EDITORS HAS PUT SOME OF THE GREATEST DEMANDS ON THE MIDI SYSTEM - A STRATEGICALLY-PLACED MIDI MERGE BOX CAN MAKE LIFE A LOT EASIER."
But supposing you want to program some extra notes into the sequencer from the keyboard. How can the MIDI Out from the keyboard send data to the sequencer when its MIDI In port is busy receiving MIDI clock information from the drum machine? We could try connecting the MIDI In on the drum machine to the MIDI Out on the keyboard (rather than MIDI Thru), but then the drums would no longer be played from the sequencer. And unless the drum machine can combine the notes coming in with the clock data it is generating (which some can't), this wouldn't work anyway.
What we actually need to do is to merge the MIDI output from the drum machine carrying the timing data, with the MIDI output from the keyboard carrying the note data. Enter the MIDI merge box...
THE LAST EXAMPLE illustrates well a situation where life can be made a lot simpler using a MIDI merge device of some description. But what of our first problem where we simply wanted to play a synth from two keyboards? With a MIDI merge box to mix the two MIDI Outs to feed a single MIDI In, it isn't a problem any more. There is, perhaps, the question of overloading the merge box with too much MIDI data, but generally speaking this is unlikely to present any difficulties. Most sequencers are capable of playing all 16 MIDI channels simultaneously, and yet rarely, if ever, do we hear any timing glitches. Having said that, there are certain types of MIDI messages which require more bytes than others: pressing the keys of a synth using channel aftertouch, for instance, can easily produce an extra 100 bytes of data. And if it's of the polyphonic (or key) variety of aftertouch we're talking about, this can be multiplied by the number of notes being pressed. And our friend the pitchbend wheel is an even worse offender. A moderate speed pitchbend from the centre position to either extreme and back will usually generate around 400 to 800 bytes of data, depending on the resolution of the wheel, and that can take some time to transmit.
But it's the proliferation of software-based synth editors in recent years which has put some of the greatest demands on the MIDI system. Once again a strategically-placed MIDI merge box can make life a lot easier. The problem is one of being able to hear edits as they are taking place. This is fine if we are dealing with a keyboard synth (like the Roland D50), because the keys can be pressed while the synth is being edited. But it can become rather more problematic when the modular version of the synth is used (like the Roland D550).
Let's say that we have a master keyboard and a synth module along with a computer and a piece of editing software. Connect the MIDI Out of the keyboard to the MIDI In on the computer and its MIDI Out to the MIDI In of the synth, and what happens? Answer: not a lot unless the editor has what is usually termed a "Soft(ware) Thru" which combines the incoming note data with the edits being created.
"THE MIDI MERGER IS ABOUT TO TAKE ON A NEW LEASE OF LIFE WITH THE EMERGENCE OF MIDI TIME CODE - THIS IS A SYNC CODE WHICH CAN BE SENT OVER MIDI AND WORKS QUITE HAPPILY ALONGSIDE SMPTE."
Unfortunately, most editors need to be connected to the synth in a handshaking mode - which means that the MIDI Out of each unit has to be connected to the MIDI In of the other. This is usually to allow you to send existing data from the module to the computer - which on some editors is necessary before you can proceed any further. However, it may also be so that if you need to edit certain parameters from the module itself, you can do so in the knowledge that the computer will be kept in step with the process by requesting the data from the module each time any changes are made.
But surely the software allows you to "play" the synth from the computer keyboard? Well, yes, but only after a fashion. Some editors provide you with an on-screen keyboard with special methods for producing aftertouch and pitch-bend effects, but in general they tend to be rather limited - ever tried playing a chord using a mouse? The best solution is probably that provided by Steinberg whose editors let you load in a pattern from one of their sequencers, though even this doesn't come close to actually playing a keyboard.
So how can a merge box help? Simple: connect the MIDI Outs from the computer and the master keyboard to the MIDI Ins on the merger, the MIDI Out from the merger to the MIDI In on the module and the module's MIDI Out to the MIDI In on the computer. The module receives the data from the editor and the notes from the keyboard, and we have two-way communication between the computer and module.
CONSIDERING IT HAS a microprocessor at its heart, the MIDI merge box is not perhaps as costly as it may at first appear. Prices start from around £75 for the excellent Philip Rees 2M, whilst other fairly inexpensive units (around £100) include Yamaha's YMM2, Groove Electronics' MIDIMerj and the rather ingenious Anatek Pocket Merge which doesn't use a power supply of any sort but is powered by voltages derived from the MIDI system itself.
Other manufacturers have taken to incorporating MIDI merge facilities within MIDI patchbays - Akai's ME30PII, Digital Music Corporation's MX8 and XRI Systems' XR400 being good examples. These start at about £200. Finally, there are the big guns such as the JL Cooper MSB+ which incorporate a large scale MIDI patchbay with mass merging of inputs. Function Junction and Friendchip also have products up and coming in this division.
The MIDI merger is about to take on a new lease of life with the emergence of MIDI Time Code (MTC). This is a sync code which can be sent down the MIDI line, but is far more accurate to work with than MIDI timing clock, and works quite happily alongside SMPTE - which cannot travel with standard MIDI data. Here, the MIDI merger will be necessary to combine MTC with other MIDI data.
And on the subject of future developments that involve merging MIDI data - or perhaps potential developments - there are a number of hardware interfaces belonging to various packages for the Atari ST which include merging facilities, but this is only within the confines of their own software. It would be better if they could be opened up to the rest of the market place.
Finally, if you have a merge box and fancy a little diversion during those long evening sessions when nothing is going right, interesting results occur when controlling a synth from two keyboards on the same MIDI channel. Playing the same note on each keyboard and then releasing one of them sometimes stops one note and sometimes both of them - the results vary from synth to synth, even from those of the same manufacturer. Ah, the joys of MIDI.
Feature by Vic Lennard
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!