Hints, Tips & News From The World Of Music Software
This month, helpful hints for users of Steinberg and Dr. T's software.
The first thing you may ask about system exclusive is 'what are system exclusive messages used for?' System exclusive (SysEx) messages can be regarded as multi-purpose carriers, used to perform varying tasks according to each manufacturer's needs. A common application would be the modification of a synthesizer's setup (patches, timbres, etc.) during the playback of an arrangement, or even for changing individual sound parameters. Like all good things in life, this subject might seem a bit awkward to master at first, but once you get to grips with it you will appreciate how simple it is to implement. What follows is a simple explanation of the various parts that make up a SysEx message.
Let's consider as an example the string 'F0, 41, 10, 16, 12, 03, 00, XX, 66, F7', which determines the fine tune setting on a Roland MT32. The Exclusive Status byte, F0, indicates that this is a system exclusive message, and this is followed by the Manufacturer's ID, in this case 41 for Roland. Then comes the Device ID — 10 — which distinguishes between identical units that might be connected, and the Model ID, in this case 16 for an MT32. Next comes a Command ID — 12 — indicating that this is a transfer.
What we have described so far is collectively known as a SysEx header. Now comes the main data ('03, 00, 03, XX'), carrying the actual data we want to transfer, and a Check Sum ('66') to help verify that the message has been correctly received. The whole string is terminated with an End Of Exclusive byte, F7, but if it is omitted then the next status byte will automatically terminate the message.
The above data format is usually used by Roland for all their SysEx messages. Further information on how to build up a SysEx message can be found in the back of equipment manuals. Finally, if at first you find all this confusing, just remember to persevere: practice makes perfect.
If you happen to have a multi-timbral synthesizer which can output the same note on several MIDI channels simultaneously, you may find an unwanted flanging effect caused by recording more than one channel of data into a part. Your immediate reaction may be to use Delete Doubles to fix the problem, but this will not work because two notes are only considered as doubles when they have the identical start points, note numbers, status and channel. The solution is simply to convert all the events in the part to the same MIDI channel, and then select Delete Doubles.
When calling the Steinberg Helpline ((Contact Details)), you will find it more convenient to be ready with a brief description of your hardware setup, and a short summary of the problem encountered, otherwise you may find the whole procedure a little arduous.
First off this month, a little note for Amiga users of KCS. In general, all the tips in this column will refer to both ST and Amiga versions of the program. Where there are differences, these will be noted.
The conversion of standard MIDI files into KCS is generally trouble-free; however, attention should be paid to one or two points. The first thing to check is that your DEFAULT.ENV file is set to your preferences, particularly with respect to resolution. KCS, as supplied, is set for 240ppqn; although the system is capable of recording at 384ppqn, it is rarely necessary to use a resolution higher that 96ppqn, especially when using the kind of tempi that most people use (110 to 140 bpm). Adjust your setting to suit and re-save the DEFAULT.ENV file — now every time you boot KCS, these setting will be in force.
When loading a MIDI file, KCS will check the resolution of the file and inform you if it is different. If it is, KCS will tell you the resolution of the incoming file, plus your current resolution, and give you the opportunity to change the data to your settings — you should generally respond "Yes" to this dialogue. KCS will then check the various clock and metronome parameters and ask if you want your settings to be altered to match the data — if you answered "Yes" to the previous dialogue, you should reply "No" to this one. KCS will now read the file and place the output in the most logical place; type 0 files will be loaded into the next available sequence in Open Mode, and type 1 files will be loaded into Track Mode. It makes no difference which mode you're in when loading the file — KCS will take care of this for you.
One problem that can occur with type 1 files is that they either don't have a conductor track (Band-In-A-Box is a good example of a program which generates such files) or the MIDI file fails to 'pad' out the length of track 1 to accommodate the overall length of the song. The consequence of this is that when you try to play this, KCS appears to lock up. This is because the final DE event of Track 1 is set to bar 1, beat 1, step 1 (ie. the very first time event). Remember that KCS uses the length of track 1 to govern the overall length of the piece. Whenever you load a MIDI file, and particularly if the file has been produced on a package which you have never tried translating from before, always check the time of the final DE in track 1. If you find it set to the first time step, you'll have to correct this manually. Check a couple of the actual music tracks by seeing what the final time of the last DE event is.
Say, for example, that the last event of a track is 9-1-1; this would indicate that the overall length of the music is eight bars. Go to the final DE event of track, place the cursor on the event and select 'Calc' from the menu. The dialogue shows you the time of the event in question and, underneath this, another set of fields that require the new time. Enter these and click on 'Correct'. The event will be altered and the tracks will now play.
If you're not too concerned with the tracks looping back to the start — you may have imported an entire piece rather than a section, which usually just needs to play once — you can set an arbitrarily large value when using Calc or simply type a large number directly into the final DE event. Remember that the longest single event time is 65535 — at 96ppqn, this is just over 171 bars. If the piece is longer, you must insert additional DE events as required.
If you wish to work on a type 0 file you've imported, it's probably a good idea to port the sequence over to Track Mode using the Seq To All Tracks function. This will 'de-mix' a multichannel sequence to separate MIDI channels. (ST users note — you have the option to Clear Existing Tracks or not. The primary reason for this is that you can bring across sequences which are allocated to different output ports without erasing what's already there; however, this function can also be used to mix and edit material from different sources using Tiger).
One area where users will definitely experience problems with MIDI Standard Files is in relation to SysEx data. Regrettably, KCS does not recognise SysEx data in a file, nor nor will it save any SysEx data present in the track or sequence to a MIDI file (although SysEx can be saved and loaded via ALL, TRK or SEQ files). This is due to the non-standard way in which MIDI files are handled, and should be addressed in the next upgrade.
ST users who are keen to improve their system response time should consider one of the current crop of accelerator boards — both the Turbo 20/25 and the SST-030 boards work fine with KCS. The Turbo 20/25 is particularly recommended because it maintains better overall compatibility with other ST software since it's fitted with a high-speed 68000 as opposed to the 68030 present on the SST-030. Although the SST board is especially attractive, since it offers the opportunity to increase memory up to 16MB, you should thoroughly test all programs you wish to use before committing to using KCS in a high-pressure situation. Amiga users are similarly blessed with a wide range of high-speed processor cards which should provide valuable enhancement to the system's performance.
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!