here's a sketch of what the future documentation will be: program args --- arg 1 = filename of input composition file arg 2 = filename of output WAV file file format --- - hiearchical tag-based format somewhat similar to HTML. syntax is loosely C-style, with brackets bounding tag contents; i.e tagname { tag contents }. - each file must specify a global bpm (beats per minute) value, to provide as a reference in song construction. the bpm is more properly called mpm or measures per minute, since each "beat" (bpm) or "measure" (mpm) can be divided into a given number of sub-beats, via the measure division attribute of the sample tag. - tags are as follows: drumm - root tag; contains a list of tags. { flowrate { bpm (an int) } files - contains a list of all { files used file { path (a string) name (a string) } } letsdrumm - tag to start a { composition; simply contains a list of samples sample - main tags used to { layout the compositon name (a string) minute number (an int) measure number (an int) measure divison (an int) -- how many beats per measure? measure offset (an int) } } } - thus, the simplest song file is 62 bytes: drumm{flowrate{1}files{file{a a}}letsdrumm{sample{a 0 0 4 0}}}