Name: ZZT Music Player v2.2 Genre: Utility/Executable Author: Jacob Hammond Text: ------------------------------------ ZZT Music Player v2.2 Documentation ------------------------------------ What is it? ----------- The ZZT Music Player is a DOS program for playing ZZM files, which generally are soundtracks from ZZT games. It can nearly fully emulate ZZT's #play command. A ZZM file can contain up to 500 ZZT songs of any length. What's in this ZIP? ------------------- zztmplay.exe - the ZZT Music Player itself, version 2.2 zztmplay.doc - this file zztmrip.exe - the ZZT Music Ripper, version 2.15 zztmus1.zzm - several songs from ZZT games musicbox.zzm - 32 songs by Greg Janson, from the Music Box What features does it have? --------------------------- o Full note emulation, including error-checking (fixing of E# and other invalid note instances). o Full drum emulation. o Three VU modes (faked, but looks cool :) for music and drums. o ASCII-graphics interface. o Pause, Stop, Rewind/Fast Forward functions. What's new in v2.2? ------------------- o A very long time after v2.15, this one is released. :) Thanks go to Atrocity for compiling it for me (it wouldn't compile on my system, which delayed the release greatly). o Yet another timing fix. The drums now work at the right times on all tempos. o The drum VUs now work (they were off in v2.15 for some reason). o The drums have been redone again, now at last they are all of the same length, eliminating most timing problems. o Really large songs (many lines) now play correctly (they messed up the screen, before). o Added the Gay Denny's title screen music to ZZTMUS1.ZZM (it's a good demonstration of a really large song). o A few things fixed with the file selector - it now sorts the files alphabetically, and directories with Win9x long names won't crash it. o Did you know that KevEdit has ZZM importing support? Just press Alt+M while editing an object. Select a ZZM file, and a song list will be presented. Select a song to paste it into the object with #play statements added. You can get KevEdit from http://kevedit.sourceforge.net/ . A version of the player is being ported to VBDOS (windowing interface), and it should be done soon. The "What was new in vn.nn" sections have been moved to the end of the document. How do I use it? ---------------- Run ZZTMPLAY.EXE to start it. A file selection box will appear, and you can select the song file that you want to load. You can also change the current directory; all directories within the current one are yellow, while all .ZZM files are grey. After the song has been loaded it will begin to play. Information about the song is displayed in the player window, including the song number, current position in the song, the current octave and speed, etc. The following keys can be used in the player window: P - start the song playing again, after a stop or pause. S - stop, going back to track 1. A - pause. Arrows left/right/up/down - select current track. <,> - seek forward/back. R - set the repeat mode. Repeat One loops the current song, while Repeat All plays all the songs in the ZZM. L - load a new song file. N - give the song a name. Esc - quit the program. Known bugs / problems --------------------- o It's too slow on anything below a 486/33. Getting Music ------------- You can download ZZM files from: o the zzt.archive (http://zzt.org/), under the ".zzm music" category. The latest version of the player/ripper should also be available in the utilities section. o the ZZT Music Player page (http://members.xoom.com/catt19/zztmplay), no longer updated but you might find some ZZMs there. The latest version should always be available from the zzt.archive. The ZZT Music Player page is out-of-date, and will no longer be updated. My personal homepage will have a ZZT Music Player division, but it's not up yet. Making ZZMs ----------- A ZZTMPLAY music file is a plain text file containing one or more ZZT songs. A song is a collection of ZZT #play-format music notes. Examine one of the included .ZZM song sets to get an idea of how the file format works. Usually, to acquire music for use in ZZTMPLAY, you'll use the ZZT Music Ripper: Using ZZTMRIP ------------- Included in this package is the ZZT Music Ripper, which can be used to acquire all of the music from a ZZT game quickly and efficiently. To use ZZTMRIP, simply input the path and filename of the ZZT world you want to rip the music from, and then the name of the .ZZM file to write the song(s) to. ZZTMRIP goes through the ZZT file and copies over all #play statements inside of objects. Changing the Minimum Line Length specifies the minimum size of a #play music line required to put it in the file. This can be useful for skipping over sound effects. There is also a Proximity value fixed at 4, which is the maximum length that consecutive #play statements can be from each other to be counted as one song. ZZTMRIP takes about two minutes to extract all music from Code Red 2, running on a P300. While it's extracting, you can see the current byte position and how many songs have been found. ZZTMRIP will work on standard ZZT games and also Super ZZT (.SZT) games. In theory you could run it on a plaintext file containing ZZT music (with three or four blank lines in between), but I'm not going to make any guarantees on how it will work... Conclusion ---------- If you have any questions or comments, you can e-mail me at zig16@hotmail.com. Thank you for using the ZZT Music Player! Look out for the ZZT Animation System... coming sooner than you think. Aetsch aka Jacob Hammond Interactive Fantasies 6/00 Old "What was new" entries -------------------------- What was new in v2.15? ---------------------- o Another update one day after the first! Sorry to all the file maintainers out there. =) o All known tempo problems have been fixed - big improvement in timing. o Redid the drums so they're all of the same data length, increasing synchronization. o Added correct implementation of . and triplets - now songs like Head Lice play correctly. o Slightly improved support for ripping songs from Super ZZT files - not perfect, but getting there. o Hint - to make songs more rippable, try adding four or five blank lines at the start/end of an object that contains music, so the ripper can detect the difference between adjacent objects. What was new in v2.10? ---------------------- o Player/music playback tempo fixed, the tempo is now just a little bit too fast (barely noticeable). o Added Repeat All/One function. o Another VU type. o Improved the drums a little bit. o The VUs now are updated more frequently (every 100ms). o Other miscellaneous things were improved. o Press N while a song is playing to assign it a name. What was new in v2.0? --------------------------------- o Fully rewritten code o New, better drum patches o Support for ZZM files containing multiple songs o A file selecter o More control over song playback o Better interface o Player bugs fixed, added rest command (.) and fixed slow-song problem EOF ---