MODPLAY ********* (C) Mark J Cox MODPLAY ** 1990/1991 MODPLAY ******* Freeware MODPLAY ************** Version 2.00 Play AMIGA 4 channel music on a PC I. QUICK START ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ If you are impatient and don't want to read all the documentation before trying this program, type: mp -i or mp -a-i If your machine is 10Mhz - 12Mhz II. QUICK GUIDE TO CHANGES ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1 Now supports playing from ZIP's and LZH's as well as shelling to DOS. Just create an archive with one file in it - the file being the .MOD file and make sure that somewhere on your path there is a copy of PKUNZIP and LHA (or batch files that run similar programs). 2 If your video card supports text modes such as 25*132, 44*132, 60*132 or just about any other text mode then enter this mode (using the utility supplied with your card) and MODPLAY will take full advantage of it. III. INTRODUCTION TO MODPLAY ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Modplay allows you to play Amiga soundtracker/noisetracker files (or 4 channel Startrekker files) on a PC (10Mhz or faster clock speed). Modplay is written *entirely* in assembler and now runs to nearly 6,000 lines of source and has taken around 300 hours to produce. 1. WHAT ARE MODULES? ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ A module consists of 15 (or 31) sampled instruments and a four channel music track. By playing the instruments at different pitches a soundtrack lasting many minutes can be produced. The PC speaker is not really up to handling modules, since in total we have a 10 bit sample to be played, and the speaker can only handle 5 (and thats only just possible). A D/A converter gives 8 and the stereo version gives effectively 9. The output sounds OK through a good sized PC speaker, the cheap piezo devices found in some computers including laptops are not really designed to cope. So through external harware MODPLAY comes close to the quality you would get on an AMIGA. 2. IMPLEMENTATION ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ MODPLAY implements all Amiga effects such as volume sliding, vibrato etc. Most Amiga modules have samples in them that are less than 64k each in length, these can be played as normal on any 286 10Mhz or better; a rare few have samples >64k in them and although these will be played by modplay you really need a 16MHz machine minimum to keep up. These modules are marked with a '*' on the top line of the display next to the filename when they are playing. 3. MODPLAY OPTIONS - COMMAND LINE PLAYING ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ From the command line a module can be played through any of the output devices with or without a moving graph display. The format is MP [/q] [/0..6] [/a..c] filename [.MOD] Items in [ ] are optional. The /q if present tells MODPLAY not to display any text and so the module will play without disturbing the text display. (You could use this in a game's title screen written in C or Basic, by doing a system or shell command - MODPLAY exits when a key is pressed). The /number tells MODPLAY what hardware to play the module through. The filename can contain wildcard characters (*,?), so MODPLAY * would be valid and would play all the *.MOD files in the current directory one after the other. Playback of a sequence of files can be aborted by pressing ESCape two or three times in rapid sucession. /0 is the PC Speaker /1 is a D/A converter on printer port 1 /2 is a D/A converter on printer port 2 /3 is 2 D/A converters, one on port1 the other on port2 (gives stereo) /4 is 2 D/A converters as above but giving mono. /5 is a D/A converter on printer port 1 (when the port is on a video card) /xm This is of use if you have a single D/A converter on an expansion port or any known address. Use /xm(address) where the address is a 3 digit hex number. (Example /xm3B7 would play in mono to a D/A converter at address 03B7) /xs This is similar to /xm, allowing two D/A converters and hence stereo operation. Use /xs(address1)(address2). [Example, /xs300301 would play in stereo to D/A converters at 0300 and 0301. Note that these switchs must be used from the command line and cannot be changed when inside MODPLAY Stereo-on-1 Modplay will autodetect a Stereo-on-1 board on any Parallel port and use it. See HARDWARE.DOC for more information Soundblaster Modplay will autodetect a Soundblaster card at any base address and use it. (Using a /number will ignore anything autodetected). /a should be used if your computer crashes when playing tunes, it decreases the rate of playing samples - decreasing the quality noticably through the speaker, but should mean 10Mhz-12Mhz machines can cope. /b This is the default mixing speed designed for a 12MHz PC /d This option is used when if you don't like my choice of character for drawing the bars. I've had lots of mail all saying you would like different characters - so now you can choose your own, Usage is /dxx where xx is a two-digit hexidecimal number of the character you want to use, /dF0 Would be ð, the default bar /df7 Would be ÷, one of my favorites /d02 is quite fun for 'acid house' type mods. And if you are still not satisfied, then pressing F1 or F2 when playing changes the character as well! F3 and F4 even change the colour of the moving bar. Hours of fun (yawn)! Playing is stopped by pressing *any* key, or when the module is finished Modules that loop at the end, or jump backwards are stopped so they will only play once. There are some special keys, described in the next section that can be used to whiz through a module like a CD player. 4. MODPLAY IN INTERACTIVE MODE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ MP /i will bring up a display menu screen - help on all key presses is available by pressing F1. From this screen you can change directory, change drive or play one or more modules. The commands allowed are: Basic Keys: Cursor Keys Move the highlight bar together with the 'PgUp', 'PgDn', 'Home' and 'End' keys. This will play the current module highlighted, or change to the directory or drive hightlighted Quits modplay Steps through the allowed output devices Lets you perform DOS commands. Advanced: Tags the currently highlighted module (displays a "+") or untags the module if already tagged. Tags all modules in directory Untags all modules in directory

Plays all tagged modules in sequence. Takes you into the Sample sub-menu screen Sample Sub-menu: From here you can look at the samples that make up the module - there are a few special keys that perform various functions that are not fully tested and are provided for users that know what they are doing (i.e. not bomb proof input routines!)

Plays the sample highlighted Plays the whole module Prompts for a filename and then saves the sample to disk Reads a new sample into the old slot. 5. PLAYBACK KEYS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ During any playback, pressing the left arrow key will slow the music down, the right arrow key will speed it up and the down arrow key restores to default speed. The PageDown key will skip to the next track, PageUp jumps back one track. The END key will (almost) pause the music, with the down arrow key restoring the speed. 6. TEST MODE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ You can obtain an alternative display when playing modules from the interactive mode by starting MODPLAY with the /t/i switches. This display may not update quickly enough on slower machines. 7. ARCHIVED MODULES ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Using a popular archiving utility normally saves about 30% of disk space for modules. Support is now added so that MODPLAY will automatically find and play modules stored in archives (in interactive mode only at present). Modules can be archived into LZH or ZIP formats and there must be only one module per archive (modules must have a .MOD extension) MODPLAY runs your unpacker for you, creating the .MOD file temporarily on your hard disk; plays the .MOD file then deletes it. To play ZIP files you must have a program or a batch file called PKUNZIP somewhere on your path; to play LZH files you must have a program called LHARC. If you have a better method you would like adding, please let me know. 8. SOURCE OF MODULES ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ You can obtain modules from many Bulletin Boards, Internet sites or from friends Amiga's. Modules usually come archived in LZH form, these can be unpacked with the excellent LHARC program. The files will usually unpack as 'mod.something' and so MSDOS cuts them short to 'mod.SOM' and it is best to rename these to 'something.mod' so that MODPLAY will automatically detect them. 9. FREEWARE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This software is Freeware - that means that there is no registration fee, you can copy this software, give it to anyone, and use it for anything (subject to the license at the end of this document). If you like this software, and would like the author to continue writing- a gift would be appreciated, send any spare UK currency you have left (from holiday etc.) 8-) *** Was free, Is free, Always free *** 10. CREDITS & THANKS DUE TO: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º º º DABS PRESS - For providing a Soundblaster Board that enabled º º Manchester, UK MODPLAY to finally work with it! DABS PRESS º º supply PC's and a whole host of peripherals, º º including Soundblaster boards at excellent º º prices. Look at the adverts in most UK º º computer magazines or ring 061-773 8632 now! º º º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Mahoney & Kaktus - A sample Amiga assembler noisetracker replay routine that provided some details on how a module was comprised and sparked the initial idea. Francois Jalbert - For spending hours wading through my source code looking for a nasty bug that only seemed to occur when we were not looking for it - and providing moral support when I get bored of coding. Norman Lin (Modedit) - Who pointed out a few mistakes in my initial implementation. Derek Beacroft - For obtaining the Soundblaster programming information and other ideas Paul/Pete/Phil - For finding all the bugs in pre-release versions and picking holes in the documentation And the other (now over 100) people who have commented on MODPLAY and given ideas for the future. 11. COPYRIGHT/LICENSE/WARRANTY ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The files MP.COM, HARDWARE.DOC and this document MP.DOC ("the software") are copyrighted by the author. The copyright owner hereby licenses you to: use the software; make as many copies of the program and documentation as you wish; give such copies to anyone; and distribute the software and documentation via electronic means. You are specifically prohibited from charging, or requesting donations, for any such copies, however made; and from distributing the software and/or documentation with commercial products without written contract. This software may be distributed in Shareware/Public Domain libraries that charge for copying and distributing disks. º No Copy Of The Software May Be Distributed Or Given Away Without º º This Document; And Neither The Program Or Document May Be Altered º º In Any Way, Or Reverse-Engineered By Disassembly Or Other Method. º There is no warranty of any kind, and the copyright owner is not liable for damages of any kind. By using this free software, you agree to this. The software and documentation are Copyright (C) 1990/1991 by Mark J Cox 12. EXAMPLE QUESTIONS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ These are a selection of comments/suggestions and questions I have received. Q. I keep getting 'Divide Error' and my computer locks up A. Some modules I have seen are corrupt - there is no way MODPLAY can tell and there is no time to do any checks - use the 's' command and you should be able to see if the module has any garbage in it. Q. It sounds like my computer is about to explode. A. You have a small piezo speaker - why not build a resistor D/A as explained above or put a nice sized speaker (Radio Shack/Tandy) in instead. Q. Can I edit modules? A. Not with MODPLAY - use MODEDIT written by Norman Lin that uses MODRES a resident version of MODPLAY Q. Ever thought of supporting 8 channels like 'Startreker'? A. Yeah, but you would need a 386-33 to run it...and I haven't found enough modules that support it yet though. Q. I can't find this ZN426E chip A. Try MAPLIN (if you are in the UK) otherwise you could always substitute any D/A or use the resistor version Q. I really like MODPLAY A. A gift would be appreciated :-) Q. "Speech on the IBM PC is not just a case of 'yet another Lotus-1-2-3' but a basic piece of innovative software which is being incorporated into several commercial products at this very moment. Releasing an un-supported non-commercial product of this nature is a highly irresponsible act which we cannot stand by and watch without doing our utmost to prevent" - A UK company talking about the PLAY program. A. (I'll let you make your own answer up, send me your favourite) 13. CONTACT/SUPPORT ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Before June 1992: ----------------- Mark J Cox Electronic Mail: 17 Kirkburn Place (JANET) m.j.h.cox@uk.ac.bradford (UK) Bradford m.j.h.cox@bradford.ac.uk (other) W. Yorks, UK (NETMAIL) Post a message in PLAY SUPPORT on BD7 2BZ Kingdom of Greyhawk BBS (+44 332 756414) After June 1992: ---------------- 29 Lundie Close (NETMAIL) Post a message in PLAY SUPPORT on Stenson Fields Kingdom of Greyhawk BBS Derby, UK (+44 332 756414) DE2 3AN All comments on PLAY, RESPLAY, MODPLAY or future software are welcomed! Please enclose a SSAE for quicker reply. Any company need a PC assembler programmer?