In my excursion to write a music wiki (which I’m picking up on, because Nguyen, Nathan Stang and I have decided to write a piece together), I’ve decided that I need an intermediate format for music other than MIDI. It would be a big mistake to try to make it a notation format (there are plenty of those), so this format will be largely isometric to MIDI. There are a few differences, though:
- Mostly human-readable (but not writable, most of the time)
- Line-based (so that diff and merge like it)
- Measure-based (times are given in terms of the start of the measure, rather than from the last event)
- Notes are given in terms of (start,duration) rather than (start, end).
- Notes are given in the form e.g. c#3, rather than 49.
- Volume is canonicalized into velocity.
The idea is so that it makes it easy to strip out, say, tempo change events, and so that wikiers don’t have to download and upload to make very simple changes.