'mml2mid' is a free compiler for music composition.
mml2mid compiles MML(Music Macro Language) file into
SMF(Standard MIDI File format 0 and 1).
MML is a text based music description language whose specification
has been carefully defined by mml2mid project team. We have been
improving the MML specification over many years.
MML provides us easy (and also detailed) music data composition.
Using MML input is much convenient than using present scoring
software such as putting notes onto GUIs of music sheet, or
writing notes by step recording.
One of the advantages in using MML is that we can input score data
extremely fast. Since MML is a text based language, we use text editor
to input MML data. While text editors suit for continuous text
modification, MML input using text editors suit for continuous MML
data input & modification. We can get plenty of benefits from using
text editor, e.g., using convenient editor command such as cut & paste
command makes it easy to input score data. On the other hand, using
present scoring tools and putting notes onto GUIs by using mouse drag
and drop requires much more time than using MML input.
Comprehensibility is an another advantage of MML. During the score
data input, when we check or modify the score data, we often need to
compare data of one part (track or channel) with another part.
This check is not easy if we use present scoring software, because we
can see only one (or only a few) part one at a time in such software's
GUI. Even worse, notes on step writing tool is not easy to comprehend,
while values of scale and length of the note are described as meaningless
numeral characters. On the contrary, MML data is comprehensible since
we can look out over many parts in one glance (as we show an exmple
below):
A C1 @34 o3 v123 k110 c8re8rg8f8ra8r>c8<g8rb8r>d8<c8rc
B C2 @82 o4 v118 k110 rr>cc<ggeeaara^4rrgrarbr>ccrc
C C3 @63 o4 v116 k100 r8.cr8cr r4.cr r8.dr8dr ec<re>
D C3 k100 r8.er8er r4.fr r8.gr8gr >c<grc
E C10 @10 v110 [$kcr8c$sc8$kcr]3 $sccrc
F C10 $h[cr8ccr:rc r8.ccrcr]2cr $occrc
In this example, part A, B, C, D, E and F can be seen in one field of view.
It is easy for us to modify one part while seeing other parts; and, this
style of modifing is very usuful for us during score data input and
composition. Futhermore, notation of scale and length of each note in
MML is much more comprehensible than in present step writing tools.
In MML, the note 'do, re, mi ...' corresponds to 'c, d, e ...'. The
length of each note is also easy to comprehend; e.g., 'eigth note of do'
corresponds to the notation 'c8'.
The only disadvantage of MML is that MML data input is not suited to
realtime recording using keyboard (music synthesizer) instruments.
So far, if we use personal computer keyboard to input or compose
score data, than the MML is a good choice to input data.
Our MML also provides 'detailed' score data input. There are many
effective commands to give a rich expression to each note, such as
LFO command, envelope command, etc.
We also provide MML commands that make us easy to modify the data.
We regard the MML data input procedure not only the data input procedure
but also the continuous data modification procedure:
+-----------------+ +-------------------------+
|data modification| -> |data compilation and play|
+-----------------+ +-------------------------+
^ |
| |
+----------------------------+
We assume the case that we input a partial data and then play the data.
In such case, we need to play only a partial data in the whole MML file.
We have prepared the command for partial MML data compilation. We have
prepared many more usuful MML commands for data input.
We also want a person who can translate documents of MML2MID from Japanese into English.


Click below to get MML2MID. (Sorry, no english documents yet)
mml524bt.lzh Ver 5.24beta for MS-DOS
mml523c.lzh Ver 5.23 for Win32 console
mml523.tgz Ver 5.23 for UNIX
mml521w.lzh Ver 5.21 for Windows98/NT
MML2MID project team member.
Main Program:
Akito Monden
Sub Program:
Hideki Fujii
Windows98/NT GUIs:
Hisayasu Kuroda
Bugfix and Expansion:
Naoyuki Nide