 FMC.EXE and FMC_OPN2.EXE are primitive utilities for making 
files in the .FMD music format from text files.

 The format of the source is rather simple.

First there is a header:
 There may not be any blank lines between each element of the header.
The very 1st line is the title.  There is no checking of the length of the 
text string so try to keep it under 20 characters

 The 2nd line is the speed of the song, or the length of the wait until it moves the counter up.
For OPM mode the counter is moved up every 5ms multiplied by the speed set here
For OPN2 mode it is every 15ms * speed, but in an actual Genesis it's about 16ms so
 in Windows it will be a bit faster than on the Genesis(or emulator)
The higher the number the slower the song
It's a one byte value, so values higher than 255 won't work

 3rd is the length of the song, or how many 16 byte "rows" (12 byte in the case of OPN2) there are
If it's too low than it will loop back to the beginning early, and so on...
length can be no higher than 65535

Next is the part where instrument patches are set and left and right speakers are turned on.

Example:

	11
	epiano.dat
	10
	epiano.dat
	11
	epiano.dat
	01
	epiano.dat
	11
	epiano.dat
	11
	epiano.dat
	11
	epiano.dat
	11
	epiano.dat
 
 In the example above all 8 channels are using a patch defined in a file named "epiano.dat".
If the patch file is not in the same directory, you must give the path of the file.
Those ones and zeros represent which speakers are to be turned on.  
"11" means both speakers are used, "10" means only the left speaker is turned on, and so on.

 In the case of OPN2 music files the settings for the last 2 channels (the 
last 4 lines of the header) can be removed.

Writing the Music:

Everything after this is for commands related to notating the music.
All commands must be on their own line or they will be ignored. 
All commands are case-sensitive, and there must be no extra spaces
Any text within the source file that is not a recognized command will be ignored(sorta like comments)
The basic commands are:

ch?	Set the current channel to channel "?".  All commands from here will be for this channel
	until another ch? command is encountered.  The ? must be a number 1-8(1-6 in the OPN2 version)

l?	Set the default length of notes.  Valid values for ? are 64,32,16,8,4,2, and 1
	additionally, the length can be extended by half of the stated value by adding a "." to the end
	64th notes cannot be extended in this manner due to their being only 1 row in length

l%?	This is allows you to set exactly how long, in "rows", the notes or rests will be by default.
	For example, "l4" could also be expressed as "l%16".  This was designed as a workaround to
	supporting triplets and tied notes... 
	the % can't be used for immediate length values for rests or notes, you must use l%?

o?	sets the octave to "?".  Must be a value 0-7

o+	raises the octave by 1
o-	lowers the octave by 1

r	This inserts a rest for the default amount of time.  You can add the length to the end of it
	for an immediate length value that bypasses the default length.  ex: r2

a - g	Inserts the a note for the default amount of time, or just like the rest 
	can use immediate length values.
	flats and sharps are represented by "-" and "+" respectively after the note name 
	and before the length if notated.  ex 1: b-4.	ex 2: c+8