Midi File Creator

(Click the Close button (X) on your browser when finished viewing each screen. It is best to view them using 800 X 600 resolution.)


What Is It ?

Midi File Creator is based on Midi Synthi Player, but with a few important differences. The main difference is that the output of this program, the .mid file, is more completely compatible with most MIDI players, sequencers, and notation programs. Therefore, Midi File Creator can be used as a standalone program, or in comjunction with other software for purposes of editing, playing, or printing out the notation.

The main difference is in the concept used for rubato, accelerando, and ritardando. Whereas Midi Synthi Player uses Duration Adjustment, the ability to alter directly any note value, this program uses Tempo Change (or a series of Tempo Changes) for this purpose, which seems to be the common usage. This eliminates several problems inherent in the other system, and also makes it possible to display or print out the actual musical notation. In conjunction with this, the program also provides for Meter Changes. As opposed to Midi Synthi Player, Tempo now refers to the exact metronome setting for tempo.


Midi Piano File Creator

Midi Piano File Creator is designed primarily to be used with an external Electronic Piano (or an acoustic piano with a MIDI controller), but it can also be used with a soundboard or external synthesizer. It combines features from Midi Piano Player and Midi File Creator. It requires practically no knowledge of MIDI, and contains no references to patches, controllers, pitchbend etc. In its relative simplicity, it resembles Midi Piano Player, but combines some of the newer concepts, advantages and functions from Midi File Creator .


Auxiliary Programs

This program automatically uses Media Player to play the MIDI file (Play;Play .MID File). However, if for some reason it is missing, or you prefer to use another player program, an option is available to set up a different default player program (Miscellaneous;Select Default Player).

An additional auxiliary program can be set up for any purpose (i.e. to get functions not available in Midi File Creator). For example, I have set up Cakewalk Express as an auxiliary program. I can use it to look at the file in notation view, or for other purposes. To set up an Auxiliary Program select Miscellaneous;Select Auxiliary Program. The selection Play;Run Auxiliary Program will take you there, and when you exit the Auxiliary Program, it will bring you right back.



Each time you recreate the MIDI (.mid) file, it is advisable to do it in three steps:
1) Click on Play;Check Tracks for Balance to check whether the file is in balance. If it is in balance, go on to the next step.
If it is out of balance, a message will come up to that effect. Check on the right of the screen to see which track (or tracks) are out. (Note: a small descrepancy will automatically be balanced, although that descrepancy will still display on the screen). The simplest way to pinpoint the error, is to run Play;Balance Tracks, first suppressing all tracks except one in-balance track and one out-of-balance track. Start from bar 1 and gradually work through the likely bars. Make sure the end bars selected end at the bar line, and do not tie over the bar line.
2)Select Play;Validate Legato. This will check all tracks to make sure that there is a LEGOF for every LEGON in the passages using the legato function, and there are no double LEGON's or LEGOF's. It will also check to see that a stray controller or rest does not occur within these passages. If anything shows up, these spots should be corrected before going on to step 3.
3)Select File;Make .MID File

If the above steps have been followed, and an error still occurs when attempting to play the MIDI file, two other options remain, which can be tried to pinpoint or correct the problem:
1) Suppress selected tracks, and run Play;Make (Modified) .MID File. Then try to play the file. This will identify which track or tracks contain(s) the problem.
2) Test the file with a different player program. The default player program that is used by Midi File Creator is an early version of Media Player. I have run into one instance where a strange and anomalous error occured when trying to play a particular sequence using the default player program. However, when I tested the same file with a number of other player programs, including a later version of Media Player, in each case it worked fine. This particular problem has been corrected, but if this happens, change your default player (Miscellaneous; Select Default Player).


Preparing the Musical Score

In almost all cases, when using Midi File Creator, you should work from a printed or written score. It is essential to pencil in the bar numbers at the beginning of each line, if they do not already exist. Repeated sections can use the same bar numbers, and the program allows for four repeats of any given section of music. However, in editing (dynamics, for instance), it can sometimes be confusing to repeat the bar numbers in repeated sections, and as a general rule, it is preferable to use unique bar numbers for every bar in the piece. The bar numbers are needed strictly for editing purposes, and the files will play without any bar numbers, but since editing is such an important feature of this program, bar numbers should always be used, and specified accurately. When entering data, pressing F9 at Item Number will take you to any specified bar. Pickup notes at the beginning of a piece can be incorporated into bar one. Bar 0 can be used for initializing a track with Program Change and Controller information. This can now be automatically handled through File;New or Miscellaneous;Initialize a New File. Track 1 is used for Time Signature (METER) and Tempo (TEMPO) information, and it contains only those two designations, and rests in between.

When working from an instrumental or orchestral score, assign each instrumental part to a different track number, if possible. However, keep the same Channel numbers for the same instruments (e.g. Trumpet 1, Trumpet 2, and Trumpet 3 are all on the same channel). In this way, only Trumpet 1 has to be set up with not only the Program Change, but also all the Controllers (Expression, Pan, Reverb etc.). Other tracks on the same channel will automatically have the same instrumental sound and effects. There are advantages to giving each part its own Channel Number, if you have enough free channels to do this; these include avoidance of situations where a note doesn't sound (attempting to sound a note on one track when the same note on another track hasn't yet been turned off), as well as controlling such things as pan or expression for each individual part. Sometimes, a hybrid system can be used, where unused portions of one track can be used to control instruments on another track, or a sparsely used instrument can be squeezed in here and there on different tracks. In general, it is preferable to reserve each track for a particular instrumental part, but many situations arise where it becomes convenient (or even necessary) to have channel changes and/or Program Changes on a single track. As long as the score is marked clearly (Channel Number, Track Number, Program Change etc.), all these things can be done. For each instrument/channel track, there should be a separate expression (CC11=Continuous Controller 11) track using the same channel number.



This program tries to achieve legato by simulating a technique on an instrumental keyboard whereby each note in a legato passage is held until the subsequent note has been played, and then it is released. In effect, it delays the 'note off' code until the next 'note on' has been processed. Its effectiveness depends upon the patch being used, and possibly other factors, and, in some cases, there is no noticeable difference when the same series of notes is played in the normal way. This type of legato is set up by inserting LEGON at Note Name after the first note in a legato passage, and inserting LEGOF after the last note of the legato group. A shortcut for this is F4 for LEGON and F5 for LEGOF (at Note Name (or Rest)). CC11 (expression) is also useful in achieving legato, as well as the selection of appropriate patches (not really an option when producing a GM file). When LEGON and LEGOF are used, no rests or controller changes (CNTRL) should intervene on the same track. The function Play;Validate Legato will identify these instances as well as make sure the LEGON's and LEGOF's are in balance.


16 bit and 32 bit Versions

For versions 2.6 and lower, the only significant difference between the 16 bit and 32 bit versions is that the 32 bit version will display long filenames properly. However, beyond this point (version 2.7 and higher), only the 32 bit version is favoured with the changes and improvements. Windows 3.x (3.1 etc.) operating system must use the 16 bit version. Windows 9x (Windows 95/98 etc.) can use either the 16 bit or the 32 bit version. The 32 bit version supports only Windows 9x and up.


Entering the Data

The best way to enter the data is a few bars at a time. Enter all the parts, and balance them before going on to the next section. When entering data, all the parameters are automatically defaulted from the previous entry. Therefore, only those parameters that have changed need be entered, before the item is accepted. Repeated notes are very simple, only requiring F12 function key for the number of repeated notes required. In any event, only three parameters should generally be entered - Note Name (or Rest), Octave, Note Value (as well as Bar Number changes; the Home key will increment the Bar Number). Expression, Tempo Changes, Dynamics, and Pitchbend should normally be handled by Edit functions after the section has been completed for all tracks. When entering, simply let a default value (64 for dynamics,0 for Pitchbend) be carried forward from item to item. At a later point, when a certain amount of the music has been entered, the editing functions for Dynamics, Pitchbend etc. can be used.

Always look in the score for opportunities to copy or transpose material. Even if one bar is immediately repeated by the next bar, just do all the tracks on the one bar, and then use the editing function Edit; Copy a Section (Copy by Bar). In much music, two bar phrases are frequently repeated, and the Copy by Bar function is very useful, and saves a lot of time. Material can also be copied or transposed from one track to another (or to several others). The Vertical Copy function is very convenient for this. There are also situations where, although an exact copy or transposition isn't taking place, because the same rhythm is used in all parts, it may still be expedient to use a copy or transposition, and then go in and edit the differences in the pitches. A common use of Vertical Copy is to handle all the tracks containing only rests in a particular passage after one track has been set up with the appropriate rests.

When you click Edit;Add/Edit/Scan Notes, to start a session of entering data, the program always starts at the item following the last completed item. It is useful to go back to the last completed item to verify exactly which bar etc. has been entered last. Also, this will set up the defaults for the next item to be entered. Then just press F12 to carry on with data entry.


Some Helpful Hints

Backing Up

No matter how small the amount of work completed on any given day, always back up your work to another medium. You can use floppies, CD's, or Zip Drives. This is very important, since a considerable amount of work can be lost if your hard disk or your system becomes non-functional, your files become corrupted, or you make a mistake which would take a considerable amount of time to correct. Simply copy the folder containing all the files for a given Title, and paste them in a particular folder (e.g. Midi Files) on your backup medium. Then, if any of the above problems occur, it's a simple matter to delete or rename the folder on your Hard Drive, and restore the folder from the backup. If a problem occurs on a single track, only that track has to be restored (inside the folder you will find all the track files plus the .cre file and the .mid file, and from version 3.2 and up, the .dat file with track descriptions).

Transposing Instruments

If you are sequencing an orchestral score, you will notice that the actual sounds produced by some instruments differ from the sounds indicated by the notes on the page. The following is a list of the most common transposing instruments and the actual transpositions for each of these instruments: Additionally, you have to watch out for the use of alto and tenor clefs on certain instruments, which I won't go into here.

There are two ways you can handle transposing instruments:
  1. Do the transposition in your head as you are entering the notes.
  2. Use Edit,Copy a Section (Horizontal Copy) as follows:
    1. Enter a section of the music exactly as notated.
    2. Go to Edit,Copy a Section and select the track (or tracks of instruments with the exact same transposition).
    3. Select the starting and ending bar numbers
    4. Select the transposition (as indicated above)
    5. Select Replace
    6. Select Starting At (same as starting bar number)
    7. The Bar Number Offset remains at zero
    8. Select OK
Repeat the above for other transpositions.
Note that the transpositions may use sharps where you might expect flats (and vice versa), but the sounds are correct.

Copy and Transpose Functions

When to use Vertical Copy, Copy a Section (Horizontal Copy), and Copy by Item

Vertical Copy copies (or transposes) a portion of the music from one track to another, or to several other tracks. It is useful when a number of tracks all contain rests, or when there is doubling at unison or in octaves of a number of orchestral parts. It can also be used when parts are in the same rhythm, but are separated primarily by certain intervals (thirds, fourths etc.). Rarely are parts separated by exactly the same interval, but it is still easier to do the transposition for one particular interval, and then go in and change the notes that need to be changed. Please note that Vertical Copy will pick up the Channel Number previously in use on the 'Copy To' track. This may have to be changed, and this can easily be done using the Edit; Revise Parameters function.
Copy a Section (Horizontal Copy) will copy (or transpose) a particular selection of tracks to the same tracks further along. The most obvious usage is when whole sections (or even one or two bars) of the music are repeated. Don't forget to specify the correct Bar Number Offset. It can also be used for transposing instruments (see above). This function can also be used to horizontally copy complete tracks, or parts of tracks, from another file.
Copy by Item (F8) is available in-line as data is being entered on a given track. It references specific items on the current track, and will copy or transpose them to the current location. This is useful when you wish to copy (or transpose) within a given bar, or when it is difficult to pinpoint the exact 'From' location without specifying the Item Number.

Clearing all items on a single track from one point to the end of the track

In the process of entering data, if you wish to erase everything (whether a single item, or many items) from a particular point on a single track to the current end of the track, simply type the word "END" (not the quotes) at Note Name (or Rest). Follow this by pressing the Enter key, and then accept the item.




Using Midi File Creator with Garritan Personal Orchestra

All the above information relates to using this program with soundfonts. However, lately I've been working with Garritan Personal Orchestra (GPO), and have used recent versions of Midi File Creator (32 bit) (MFC) with this fine library of samples. So far, all the files I've created were based on MIDI files I had previously created as GM files using soundfonts. However, many changes had to be made to the MIDI file to accomodate GPO, and I've added some new functions to MFC specifically for this purpose.

I will not go into too many details regarding GPO here, but here are a couple of the main differences: Controller 11 (CC11) is replaced in GPO with CC1. Velocity has a very minor function except with percussion, harp, piano, and pizzicato strings where it has the same function as with soundfonts. With winds and bowed strings, CC1 has to be used for all dynamic changes. To set up the sounds, I use Garritan Studio - this gives me provision for 64 instruments sourced by eight different ports, 8 instruments per port. It provides for the master volume, panning, channel, etc. for each instrument, and allows me to save these setups, and also to apply reverb, and to record the final .wav file. In conjunction with this, I use Cakewalk Express, set up as an auxiliary program, to handle the ports, and the playing of the file.

Here is what I do with my existing MIDI file to work with GPO:
1) Using GPO Studio, I set up all the instruments needed. With brass, I Usually set up muted as separate instruments; with strings I set up short+sustained, pizzicato, muted, and tremolo as separate instruments. I also set up master volume, panning, polyphony etc. as required (some of it will be changed later). I allow the channel numbers (1-8), which are automatically assigned to stand. There are some exceptions which will be noted later.
2) Now I copy my original MIDI file onto a new file with GA somewhere in its name.
3) Usually multiple ports are required, so I go through each track assigning as the first item the appropriate port number (PORTS). Although GPO calls each port Player 1, Player 2 etc., Player 1 becomes port # 0, Player 2 becomes port # 1 etc. The Edit;Punch-In function can be used for this, setting all tracks to Port 0, and then going in and editing the changes.
4) Now, using Edit;Revise Parameters, I assign the appropriate Channel # to each track to agree with the GPO setup. If I'm using the same instrument (i.e. channel) for both clarinets, then I assign the appropriate channel number to both tracks, plus the expression track. With strings where pizz, tremolo, and muted were set up as a separate instruments, simply assign the channel number for regular arco strings to the whole track, and edit it later for the pizz etc. bars. Similarly, with the brass and muted sections.
5) With GPO, if two tracks using the same channel are doubling each other, it is possible to have both parts playing the same notes. This was not possible with soundfonts. To handle these changes, first, using Edit;Delete By Bar, delete the bars on the track containing the rests (e.g. the 2nd clarinet part), then, using Edit;Vertical Copy, copy the appropriate bars from the 1st clarinet part to the 2nd clarinet part. Don't forget to click on Insert, and enter the At Bar info (usually the bar following the last bar being copied).
6) Using Edit;Edit Dynamics, set all dynamics for winds and bowed strings (as well as some drum rolls etc.) to 64. Using Edit;Change Controller Numbers or Values, change all CC11's for bowed strings and winds to CC1's. The values of the CC1's as well as the velocities for keyboard, percussion, pizz etc. may or may not be correct. They might possibly be corrected by changing them up or down by a percentage.
7) Now the big job. This involves controlling dynamics for bowed strings and winds by means of CC1. Edit;Punch-In/Punch-Out can be used when a number of tracks require the placement of a CC1 in the same spot. CC1's will be needed on expression tracks where velocity was formerly used.
8) If pizzicato, tremolo, and mutes were set up as separate instruments, it may be necessary to revise channel numbers (using Edit;Revise Parameters) for the bars affected. The same function can be used for revising percussion parts to use the correct Note Names and Octaves etc. It can also be used to handle using alternating sticks in percusion parts.