This software is for developing Nintendo Sound Format (NSF) files using a graphical editor of your choice. NSF is the real deal; it's basically a Nintendo ROM file which just drives an (emulated) 2A03 sound chip. That means all of the great aliased square wave sounds and 4-bit samples, but it also means all of the limitations of programming for a real 8-bit Nintendo!
midimml works by converting regular MIDI files (with some special annotations) into MML, which is a text-based format used by many NSF developers. The software mckc (available elsewhere; see below) can compile the generated MML into NSF.
New! midimml 2.0 supports the definition of instruments (collections of MML macros), which allows you essentially all of the power that hand-written MML files have.
midimml comes with documentation, which you can browse here.
In order to do anything, you'll need to set up MCK and related tools as if you were going to be composing MML by hand. This page, "make nsf", describes how to set it up. Note that the link for "mck" has an extra .zip on it, so you'll need to fix it. Also, there's now a newer version of mckwatch out, which you need to get off the main page. Once it's installed, you should be able to use mckwatch to "watch" the output of midimml, so that every time you run midimml it will automatically generate and play the NSF file.
midimml is free, open source software. You can take a look at the source code and modify it, redistribute it, etc. If you make any useful changes, let me know!
Here are a few songs I made with this program:
Giant Stone Space Station - Entry in the Famicompo NSF competition.
Shortcut to Wet, Calm Boat - Also for Famicompo.
In Reston, With Nintendo - Made for my 14th album-a-day, which I recorded without hearing anything until the entire album was done. (So it sounds a little weird..)
Hero Abuse - Made for Famicompo MINI vol.2. Shows off the instrument support a little.
Star Crystal Journey - A simple and charming tune, also for FCMv2. The version I submitted to the contest was a bit buggy (due to a bug in midimml, fixed in version 2.1). This is version 1.1, which sounds a bit better.