MIDI Matters (Part 2)
Understanding MIDI Implementation Charts
The best way of finding out what a new instrument can do is to look carefully at its MIDI Implementation Chart. Jay Chapman acts as your MIDI interpreter and takes you on a guided tour.
You know... those funny charts in the back of your latest acquisition's manual that are full of noughts and crosses but don't make a lot of sense! In case you don't know, have a look at Figure 1 and Figure 2 which show the MIDI Implementation Charts (which we will abbreviate to MICs for the rest of the article) for the Yamaha KX88 and FB-01 respectively. We will use these as examples throughout the article.
In effect, a MIC is a summary of what a device can do as far as MIDI is concerned. It should tell us what MIDI messages the device understands and what messages it can actually transmit. In the cases where messages are interpreted other than in the most straightforward and obvious manner, we should find some sort of explanatory note to keep us on the right track.
Often we will find either a 'o' or a 'x' opposite some feature named in the chart. Quite simply, a 'o' means the device can handle the feature and a 'x' means it can't. If you look just below the bottom right hand corner of each of the charts you will see the key 'o: Yes' and 'x: No' confirming this.
The terminology of MIDI is not explained in this article having been covered in the previous Talking MIDI (SOS Dec 85 to Aug 86) series; it is the translation of the MIC into terms already familiar to you that is covered here.
Looking at Figures 1 and 2, you can see that each MIC is split into four columns. The first is Function, which gives a list of various MIDI message names grouped into related sections. For each of these messages the next two columns detail the form of what is actually Transmitted and Recognised by the device (the KX88 column is headed 'Received' but 'Recognized' is the more usual heading). The final column gives space for explanatory Remarks should they be required.
Since the KX88 is a controlling device, it is logical to concentrate on its Transmit column. Similarly, since the FB-01 is a sound generator we will look at its Recognised column. Where the MICs for the KX88 and FB-01 do not indicate all of the possible types of entry, extra examples will be introduced.
We will start off by considering all the possibilities for both devices in the Basic Channel section, and then we will tend to stick to Transmit for the KX88 and Recognised for the FB-01 to avoid too much duplication.
Let's go through each section in turn. Note that the keywords from the MIC are sometimes printed in bold to remind you of when to refer to the charts.
There are two rows in this section. The Default row tells us what MIDI channel will be used immediately after powering up the device. The FB-01 doesn't transmit any channel-based information at all so it has an 'x' here (as well as in the Changed row, considered next). It does receive however - it wouldn't be a lot of use otherwise! - and it can receive on any of the MIDI channels, so we can see that '1-16' is shown in the table. The Remarks column tells us that the FB-01 will remember which of the channels to use for its Basic Channel even whilst the power is off; this is very useful when you power up a network of several devices, as you don't need to set them onto different channels each time.
Once powered up, it is possible to tell the FB-01 to receive on a different channel, so we find '1-16' in the Changed row under Recognised. In other words, there are no restrictions in the choice of either the Default or Changed Basic Channel.
The KX88 can also remember which of the 16 channels to use by Default and can also have the channel Changed at some later date. The DX7 (Mk I), on the other hand, can only transmit on Channel 1, so in its MIC we would only see a '1' at this point. Notice that the KX88 can receive messages on all channels but that we can't change the channel. The 'all channels' note in the Default row is a little unusual. It is also a little confusing until we read the note in the Notes section at the bottom of the KX88 table. In fact, the KX88 does not take any action based upon anything it receives, it just merges the received data with whatever it is sending to MIDI Out on its own behalf. In other words, there is no facility to specify a particular Basic Channel to receive on because such a facility is not required.
By the way, notice that the MIC doesn't tell the full story - it is only a summary chart after all - the KX88 can in fact transmit on two channels simultaneously in dual and split modes, and both channels will be remembered during power down.
You remember 'OMNI ON, POLY' and all that good stuff, don't you? If you don't recall what the Mode numbers mean, they are described just below the MIC (MIDI Implementation Chart).
The Yamaha KX88 transmits in Mode 3 by Default (see the first row of the Mode section) ie. OMNI OFF, POLY (not on all channels at once, only transmits on one MIDI channel). In fact, OMNI ON is not a mode that would be considered for a transmitter which would have to send out 16 sets of messages (ie. one per channel) for each original message; instead, you would set all receiving devices to the same single channel, or into OMNI ON mode themselves, to achieve the same result.
The MIC for the FB-01 tells us that it can be set to operate in either Mode 3 or Mode 4 and again this information will be remembered as the Default. Mode 4 is useful because the FB-01 can be controlled over several channels to cope with its multitimbral capabilities. In the Notes section for the FB-01, we see that it 'has 8 instruments' - which gives us a clue as to what capability Mode 4 offers. We would have to read the manual to find out all the details though - the MIC just gives us the flavour.
The Messages row in the Mode section requires a little interpretation. In the case of the KX88, we can transmit messages to turn OMNI mode ON or OFF; we can also transmit POLY ON or MONO ON. These entries in the Transmit column are telling us what is possible given the correct button pushes (or whatever) on the front panel of the device being described. If you know your MIDI messages well you will realise that we are talking about being able to transmit the last four Controller messages. Since these messages also have an 'All Notes OFF' effect, we will see them mentioned again in the 'Aux Messages' section later on.
The FB-01 can be switched from MONO to POLY and vice-versa via messages arriving over the MIDI network ('Mono (M=1), POLY'). It is worth pointing out that some devices might be able to make such a change via buttons being pushed on the front panel (as can the FB-01) and yet may not be able to recognise messages telling them to do so.
Notice the '(M=1)' next to 'MONO' - this tells us that if the FB-01 recognises and obeys a 'MONO Mode ON' instruction, it will only allow the use of one channel to be specified in the message (the message can normally specify up to all 16). This is a case where you really do have to read the manual carefully to discover the reason why only one channel is used in this context. It's all to do with the fact that the FB-01 can be up to eight different instruments at once, each of which is controlled via its own specified MIDI channel. The MIDI standard allows consecutive channels to be used for the control of independent monophonic voices, but the FB-01 is a stage more advanced in terms of sophistication. At the level of detail provided by the MIC, all we can see is the '(M=1)' hint which suggests further investigation may prove worthwhile!
The Altered row tells us whether the device can change modes after entering the Default mode on power-up. The row of asterisks in the FB-01's Transmit column tell us that the row/column combination does not make sense and should be ignored. Since the FB-01 can start up in either of two modes (3 or 4), it makes sense that it should be able to be Altered from its current mode into the other mode, and so we see '3,4' in the Recognised column telling us that an incoming message can make the change happen.
In the case of the FB-01 the MIC tells us that messages to change into any mode other than Mode 3 or 4 will be ignored (since they are not shown as being Recognised). Some devices will not ignore such a message but will change into the mode that best approximates to the one being requested out of those modes they can actually change to. If Mode 1 were requested but not available for example, and the device could manage Mode 3, you might see '1->3' in the Altered row under the Recognised section. If the same thing appeared under Transmit, then when the user selects Mode 1 via the device's front panel the device transmits the 'change to Mode 3' message. Since the KX88 is permanently in Mode 3, being a Controller, the Altered row hasn't even been included in its MIDI Implementation Chart. Any mode change messages that arrive on MIDI In are recognised but are simply merged into MIDI Out as previously described.
What Note Numbers can the KX88 keyboard send out? Well, the Transmit column says note numbers 1 through to 127 inclusive ('1-127'), meaning every key number possible except for key number zero?! Again, this is merely a summary: it would be necessary to organise some transposition to be able to send all of these values direct from the keyboard; the MIC just tells us that it is, in fact, possible. Some keyboards might only have a five octave range and no transposition facility, in which case you might see a note number range of 36-96, for example.
The FB-01 can recognise Note Numbers 0-127 according to its MIC. The True Voice entry tells us that the FB-01 can also sound the notes at the pitches requested (give or take transposition of course). Since a transmitter always transmits whatever notes you tell it to transmit, the True Voice category doesn't apply, hence the row of asterisks in the KX88 MIC.
A receiver, however, may recognise a note number and yet be unable to sound that pitch. It may well be that notes below (or above) a certain pitch will wrap around into the octave above (or below) that specified in the received message, or simply not sound at all. This effect would be shown by the True Voice row (possibly aided by extra information in the Remarks column) showing a different range from the row above, eg. the Recognised range might be '0-108', whereas the True Voice note number range might be '24-108', with further details such as'0-11,12-23 = 24-35'. In other words, the device in question ignores key numbers above 108 and plays notes in the octaves consisting of the note numbers 0-11 and 12-23 as the corresponding notes in the octave range 24-35.1 think the FB-01 MIC is not telling the truth in the True Voice slot since it will not, in fact, sound the full range of pitches...
This section tells us how the Velocity bytes in Note ON and Note OFF messages are handled. The KX88 Transmit entry for Note ON ('o 9nH, v=1-127') tells us that the KX88 can transmit Note ON messages in which the Velocity byte can take on the values 1 to 127; in other words, the keyboard is touch-sensitive. The '9nH' means the status byte sent is hexadecimal 9n where 'n' is the MIDI Channel number in the usual range of 0 to 15 (0 to F in hex). If the keyboard had not been touch-sensitive you would expect to see 'v=64' - indicating that a fixed 'average velocity' value is sent out no matter how fast the keys are depressed.
Some devices cannot transmit velocity (because the keyboard can't detect it) but can respond to it - in which case the velocity range information in the Transmit and Recognised columns may differ. For example, some drum machines can be programmed using velocity information arriving over MIDI even though they can't detect such information from the way their pads are hit. This is an example of how MIDI can make some devices more cost-effective by avoiding the duplication of control facilities likely to be available somewhere else in the MIDI network.
The KX88 doesn't transmit Note OFF messages by using the Note OFF status byte (8nH) but, instead, uses the special Note ON message with velocity set to zero - this is shown as 'x 9nH, v=0' in the Note OFF row under Transmit. Since very few existing keyboards can detect and transmit release velocity information (the Prophet T8 being an exception), very few sound generators make use of such information, and there are benefits in sticking to the 9nH messages for both Note ONs and OFFs (remember Running Status?), thus it is common to find an 'x' or two in the Note OFF row.
The FB-01's MIC leaves a little to be desired again, because it shows an 'x' for Note OFF under Recognised and offers no hint as to how Note OFFs are handled... in fact, there should be an 'o' because Note OFFs are Recognised - and there should be some remark about Note ONs with velocity zero meaning Note OFF, because the FB-01 can handle these as well. Maybe the moral is to glance at the MIC but read the manual!
A simple section at last! The Key's row tells us whether Polyphonic Pressure is implemented - which it usually isn't because it costs a lot of money to put a pressure sensor under each key! Ch's (Channel Pressure) is more likely to be implemented because you just require one pressure sensor for the whole keyboard. This information is transmitted on the same single channel as the Note ON/OFF messages.
So, the KX88 can't Transmit Polyphonic Pressure but can Transmit Channel Pressure. The FB-01 can't Recognise Polyphonic Pressure but can use Channel Pressure. The 'PMD' in the FB-01's Remarks column stands for Pitch Modulation Device and this tells us to delve into the manual to find the connection between Channel Pressure (Aftertouch) and PMD; we find that PMD must be set to 'Touch' for the pressure information to have any effect. Obviously, this sort of connection is going to vary for different devices and the Remarks column entries will point us in the right direction.
The Pitch Bend implementation has to be considered from two points of view. At the transmission end it may well be that the full range of 14 bits available for the 'value' part of the message is not used. The KX88 only uses 7 bits, for example, as its MIC tells us: '7 bit reso.' This doesn't cause any compatibility problems but the control of pitch bend may not be as fine as on another keyboard. Having said that, very few (if any?) devices use the full 14-bit range, which would give far too fine a level of control for us to be able to detect and would cause hundreds more messages to be transmitted every time the Pitch Wheel was moved.
A Remark will often appear in relation to the Recognised entry for Pitch Bend indicating the maximum range of bend available. The FB-01 MIC doesn't tell us that the FB-01 can in fact be set, in semitone steps, to pitch bend up to one octave; this information might have appeared in the form '0-12 semitones'.
Which of the controller messages (numbered 0 to 121) can the device Transmit and Recognise? Well, the KX88 can Transmit any of them (though they are not all available at the same time, which the MIC doesn't tell you). The FB-01 can Recognise quite a few controllers and its MIC does well to list them by controller number and the corresponding function in the Remarks column. In general, the function assigned to a control number is manufacturer/device dependent, although Controller 1 and Controller 33 (combining to give 14 data bits) are defined to represent the Modulation Wheel, while Controller 64 is almost always the Sustain Pedal. The PMDs in the Remarks column refer to the fact that the FB-01 is expecting Pitch Modulation Device information, as discussed previously. Although you are not restricted to the Yamaha convention, a quick glance into the manual will show you that the FB-01 is catering for Modulation Wheel data on Controller 1 (as it should!), Breath Controller data on Controller 2 and Foot Controller data on Controller 3.
We see that the KX88 can Transmit any legal program number. The FB-01 can Recognise any number (so says the 'o' in the first row of this section) but we notice that a restricted range of 0 to 47 is specified in the True # or (True Number) row. The FB-01 stores and accesses its voices in banks of 48 and so it only uses the range of 48 numbers from 0 to 47; the rest of the possible numbers are simply ignored.
When devices have different types of storage banks (eg. presets, user programs, RAM packs, disk) or different naming conventions - banks A, B, C and D each with 16 voices perhaps - then the Remarks column should indicate what the numbers Recognised means in terms of the True #. In some cases it may be a simple correspondence eg. number 0 is voice A1, number 1 is A2,... number 16 is B1, and so on. It can also happen that numbers 'wrap' in a similar manner to the Note ON/OFFs described above; you may find that Recognised numbers 0-31, 32-63, 64-95 and 96-127 all translate to True #s 1-32 if your synthesizer only has 32 voice stores for example.
Either they are implemented or they aren't! There is no way that much of the detail is going to be shown in the MIC because these messages are going to be different for each manufacturer and probably for each device as well. The KX88's MIC (MIDI Implementation Chart) points out in the Remarks column that 'Prm. Change' (ie. Parameter Change) messages can be transmitted, which is nice since we have some chance of controlling a receiving device's innards (especially if it is a Yamaha product!) from the KX88's sliders, footpedals and switches. This is a very common type of System Exclusive message to be made available and, in fact, quite a few of the FB-01's 'advanced messages' hinted at in its Remarks column are to do with parameter changes. Other common facilities are dumps and uploads of complete sets of voice data or even voice banks. Again, we have to leave the MIC and delve into the actual product manuals to find out more.
This section covers three messages that are the same on each device by definition, so the MICs generally just say whether they are implemented or not. The FB-01 MIC shows that none of the messages are implemented at all, which is not unreasonable: the FB-01 has no sequencing facility so the Song Position Pointer and Song Select messages are irrelevant, and presumably the FB-01 never needs to be Tuned! The KX88 can transmit the Tune message, the Song Position Pointer message (or so the MIC says - I haven't found out how to do it on mine yet!) and a restricted set of Song Selection messages, ie. only Songs 0 to 9 can be selected rather than the whole possible range of 0 to 127.
Clock and Commands: nice and simple, either they are used or they are not. As usual you have to look in the manual to see how they are used. For example, the KX88 can be told to transmit a Start message from a footswitch and MIDI Clocks at a rate determined by a slider or footpedal. The FB-01 will use its display to show when a Start or Continue are in effect, even though it doesn't obey these commands in any sense!
Maybe 'Miscellaneous' would have been a better title for this section. As you can see from the KX88's MIC it can Transmit all four types of message. The Local ON/OFF and All Notes OFF rows refer to the last six Controller messages which are the specialised 'Channel Mode Messages'. Because this set of messages includes several ways of sending 'All Notes OFF' coupled with other instructions (eg. 'OMNI Mode ON'), the FB-01's MIC is careful to specify that only three messages are recognised (Controller numbers 123, 126, and 127). In the case of '126' - which means 'MONO Mode ON' as well as 'All Notes OFF' - we find the '(M=1)' hint from the Mode section repeated for the same reasons as before.
We see that the FB-01 recognises Active Sense - in other words, once an Active Sensing message has been received the FB-01 will expect one every 300 milliseconds maximum (if there has been no other MIDI activity in the meanwhile); if no message arrives in time the FB-01 will turn off all voices assuming that the controller it was listening to has 'died' and that you don't want permanent drone sounds from now on!
The Reset message can be sent by the KX88 but is not acted upon by the FB-01 in any way. This message is meant to restore your MIDI network to the state it was in just after power-up. Since most devices ignore this request, it may not be too effective...
Finally, each MIDI Implementation Chart has a Notes section where the manufacturer has a bit of space to communicate any points he particularly thinks you should know about the device in question, but in words rather than the more cryptic noughts and crosses of the previous sections. Essentially this section emphasises or explains features in a little more detail but, once again, you should really be flipping through the manual to follow up these points.
The Notes section about the KX88 tells us that the KX88 effectively acts upon nothing that it receives - it is intended to be the system's Master Keyboard Controller after all. The FB-01's Notes emphasises the point that we can use the FB-01 to provide 8 separate instruments if required; this is its strongest selling point and well worth emphasising!
The MIDI Implementation Chart (MIC) then is a brief summary or overview of a device's capabilities. It shows you at a glance what facilities - in MIDI terms - the device offers. This means that you can quickly compare several devices, MIDI feature by MIDI feature. The Remarks column and the Notes section, as well as extra details given at appropriate points in the MIC, can point out variations from the standard interpretation.
If you are considering buying a new device (or hiring one for a session), a quick check over the MIC might save you time and money. For example, if you need a touch-sensitive keyboard, or one that can transmit program changes, or an expander that handles Mode 4, or perhaps you need a synthesizer that can handle Local Control ON messages and thereby act as control keyboard and expander when required... you probably don't have the time to read each of their manuals thoroughly, so glance at the MIC first to eliminate the non-contenders.
Once you have narrowed your choice of devices down by considering their MICs, don't forget that you should still sit down with the manuals for perhaps an hour or more; a little license used by the manufacturer in the MIC could give you quite a false impression! After all, if you are seriously thinking of spending many hundreds of pounds on a synthesizer, the shop should be able to find you a quiet room and a cup of coffee whilst you read the manual, shouldn't they? Finally, if the salesman can't help you unravel the mysteries of the MIC, you might ask yourself if you are buying from the right shop?
Feature by Jay Chapman
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!