ZZM is the primary ZZT music notation format, however it has many variants. An attempt to categorize them has been made. Please note that the documentation has been reverse-engineered based on existing .ZZM files, and may not be entirely accurate.
ZZM files consist of songs - lines of ZZT #PLAY-notation notes - with additional metadata and headers.
Lines prefixed with ; $ are treated as parseable commands. A list of such commands is provided below:
TITLE [title] - music collection title,SONG [id] - beginning of a song with the specific sequential numeric ID,SONG ENDS - end a song, required,SONG TITLE [id] [title] - song title, optional,SONGS END - end of the song data block,EOF - end of file. Some files (MUSICBOX.ZZM) include song titles after EOF, however…Any lines which are not otherwise understood be either:
The only known free software implementation (KevEdit) seems to only pay attention to TITLE, SONG and SONG TITLE commands.
ZZM 1.0 files use the header ; ZZT Music File v1.0. The following additional commands are present in such files:
GENDATE MM-DD-YYYY - music collection creation date,GENTIME HH:MM:SS - music collection creation time,SONGS BEGIN - beginning of the song data block.
ZZM 1.1 files use the header ; ZZT Music File v1.1. This variation has been introduced by Atrocity in ZZMPlay. It adds support for 64th-length notes, which can be activated using the letter y.
ZZT Music Player 2.0 files use the header ZZTMPLAYer file, version 2.0.. No further details are known.
Used for a music creation tool. No known documentation or source code.