±Û Û ±Û Û ±Û ÛÛÛÛÛÛ ±Û ±ÛÛ±ÛÛ ±Û Û ±Û ±Û ±Û ±Û Û Û ±Û Û ±Û ±Û ±Û ±Û Û ±Û Û ±Û ±Û ±Û ±Û Û ±Û Û ±Û ±Û ±Û ±Û Û ±Û Û ±Û ±Û ±Û ±Û Û °ÛÛÛ °ÛÛÛÛ ±Û ±Û ±Û Û ÛÛÛ ±ÛÛÛÛ ±Û Û ±Û ±ÛÛÛÛ ±ÛÛ±ÛÛ ±Û Û ±Û Û ±Û Û ±Û ±Û ±Û Û Û ±Û Û ±Û Û ±Û Û ±Û ±Û ±Û Û ±Û Û ±Û Û ±Û Û ±Û ±ÛÛÛ ±Û Û ±Û Û ±Û Û ±Û Û ±Û ±Û ±Û Û ±Û Û ±Û Û ±Û Û ±Û ±Û ±Û Û °ÛÛÛ °ÛÛÛÛ °ÛÛÛ °ÛÛÛÛ ±ÛÛÛÛ ±ÛÛÛÛ ±Û °ÛÛÛ ±Û Û ±ÛÛÛÛ ±ÛÛÛÛ ±Û Û ±Û ±Û Û ±Û Û ±Û ±Û Û ±Û Û ±Û ±Û Û ±Û Û ±Û ±Û Û ±ÛÛÛÛ ±Û ±ÛÛÛÛÛ ±Û ±ÛÛÛ ±ÛÛÛÛ ±Û ±Û ±Û Û ±Û ±Û ±Û Û ±Û ±Û ±Û Û ±Û ±Û ±Û Û ±Û °ÛÛÛÛ ±Û Û ±Û ±ÛÛÛÛ ±Û Û version 2.606 - (C) Charles Attard - April 1996 Introduction ±±±±±±±±±±±± What can it play ? ±±±±±±±±±±±±±±±±±± The Multi Module Player is a very high quality digital music module player. It supports the following types of modules : NST NoiseTracker (4 channels, 15 instruments @16574 Hz) MOD ProTracker , SoundTracker, FastTracker, StarTrekker and TakeTracker (1 to 32 channels, 31 instruments @16574 Hz) 669 Composer 669 v1.x Module (8 channels, 64 instruments @17480 Hz) MTM Multi Tracker Module v1.x (1 to 32 channels, 64 instruments @16574 Hz) S3M Scream Tracker v3.x Module (1 to 32 channels, 100 instruments at any sample rate) Note : Old STM format can easily be converted to S3M format using Scream Tracker v3.x. (if you want a tracker and have access to Internet, you can try FTP : ftp.luth.se (130.240.16.39) in /pub/msdos/demos ...) System requirements ±±±±±±±±±±±±±±±±±±± The hardware support is only Sound Blaster 16/ASP/AWE32(in SB16 mode) and Sound Blaster Pro for now. I've got the informations to program many types of sound cards (Gravis UltraSound, Pro Audio Spectrum , Windows Sound System) but i don't own them (!) and i need to know from you if it's neccessary to do so (i will also need your help to debug these routines ...). The screen output is graphical (640x480x256) and uses VESA v1.0 routines, so you need a video card with VESA BIOS extensions or a resident patch. About memory, MMP uses 4 modes to avoid a "not enough memory message" (very annoying when you have a 4, 8, 16 or more Megabytes of memory in your system and you only need some hundreds of kilobytes). It uses DOS, EMS and XMS types of memory. The possible modes are: Mode: Why MMP uses this mode: DOS The module loaded is small enough to hold in conventionnal memory. But if an instrument has a size over 64 KB (the module loaded is a 669 or a MTM), MMP will use the DOS/XMS 32 bits linear mode instead to avoid truncature. This is a fast mode. DOS/EMS The instruments can't hold in DOS memory, but the patterns can (it is assumed that it will always be the case). The instruments are loaded in EMS but are truncated to 64 KB (you will be warned), as MTMs and 669s can have instruments 1 MB long. To avoid this, you must allow MMP to enter XMS 32 bits linear mode by disabling any expanded memory manager as EMM386, QEMM386 ... and enabling HIMEM.SYS. Note that the DOS/EMS mode is slow, so, if you have less than a 486DX-120 MHz you should really do it ! DOS/XMS 32 bits linear As in DOS/EMS mode, the total size of instruments is to big to fit in DOS memory. This is the best mode (fast, all free memory is available, and samples are not truncated to 64 KB). See above to enable it. In this mode the processor does linear adressing in real mode ! The Global Descriptor Table is modified, that's why it's totally incompatible with other applications running in protected mode. DOS/XMS segmented This mode is used when the processor is in protected mode (preventing MMP from using the DOS/XMS 32 bits linear mode) and there is no free EMS. If you have less than a 486DX-120 MHz you should try to disable EMM386. Moreover, you have to enable HIMEM.SYS with the option /numhandles=100 for modules with more than 32 instruments. (you should always set this option, it doesn't need any memory) Why do this ? This mode is really special and can be very heavy in short times when a module is playing : when a new instrument needs to be used it must be "downloaded" from XMS to conventionnal memory, so, imagine what can happen when you have a 16 tracks module; The amount of data to transfer can be as high as (16 tracks*64 KB)=1 MB in about 0.01 s (the Sound Card sends an IRQ at about 100 Hz), so, your system must be able to transfer up to 100 MB/s ! Even a fast Pentium can't do this. My system has a Triton chipset with standard DRAM and a 120 MHz Pentium (the cache can't be effective in this case), and can only transfer at 80 MB/s in 32 bits, so, 40 MB/s in this mode. But in practice, the transfer rate achieved by a 486DX-120 MHz should be enough ... If you really can't disable EMM386, ... you should at least declare some EMS (1 MB is enough for any module). In this mode, instruments are truncated to 64 KB. Why a new player ? ±±±±±±±±±±±±±±±±±± I've always been disappointed by the output quality of players (except DMP 3.x+, Mod4Win 2.x+ ) or by the precision of patterns playing (all players !). Technically, the output is computed in a 32 bits buffer, with a 16 bits resolution (even for 8 bits sound card) and is clipped to fit in the 16 bit (or 8 bit) output stream. This allows a greater signal to noise ratio and is very useful when the number of tracks is high (8 and over). To improve quality, a dynamic linear interpolator (or dynamic filter, or oversampler ...) for each channel can be enabled. It ensures a full use of the 16 bits resolution and filters useless harmonics (noise). A low-pass filter can also be enabled, instead or with oversampling, if you have sensitive ears about high frequencies ... :) All this nice things give the highest possible output for all ears ! MMP version 2.606 has been thoroughly tested with more than 5000 modules to ensure the highest quality in playing modules. I've spent hundreds, perhaps thousands hours listening, debugging, listening, debugging ... this player (and sometimes debugging, debugging ... ;), so i'm confident in its quality ! Of course, there's always a little bug flying or crawling somewhere, so if you can help me to catch it ... Moreover, I've also used the associated trackers (Scream Tracker 3.x for S3M, Composer 669 v1.x for 669 ...) to have an identical interpretation of patterns from the tracker and from MMP. Miscellaneous features ±±±±±±±±±±±±±±±±±±±±±± + 15000 lines of pascal and 286 assembler + 6000 lines of 386 assembler + Play engine in higly optimized 386 assembler. Scheduling optimizations for Pentium and 486. + Ultra fast FFT implementation of Cooley and Tukey algorithm (1965) in 386 assembler (on a Pentium-120 MHz, 250 per second 1024 points FFTs computed, only 4 ms a 1024 points transform !) + CPU overload detection and load adjustment (disabled for now) + Automatic detection of Sound Blaster cards (16 and Pro) + No file prompt mode (enter MMP ) + List file mode playing (enter MMP <@liste.txt> ) + All Protracker 2.x (NST, MOD, MTM), Scream Tracker 3.x (S3M) and Composer 669 1.x (669) commands supported Is MMP running ? OK, let's see how to use it ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± Basic use ±±±±±±±±± MMP is very easy to use, just launch it, select the directory where you have some modules, select a module then press Enter. The module should play (hope so ... ;) To pause module playing, press Pause or F4. To exit from MMP (what ?!) press Esc. When the module has finished playing, the file selector window appears. If you don't want to listen more the module, press Enter or F3 to make the file selector window appear and select a new module (or press Esc or Pause or F4 or ... Reset, no ... i was joking ;) If you know the path to the modules, you can enter it directly. When the file selector window is on (or press F3 if not), press alt-C, enter then path, then validate with Enter. Press F1 under MMP to have some help about keyboard commands. (Note: the help is different under the file selector window and when you have the main screen) For users that don't like the default configuration ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± I hope there are some ... You can display any of five elements, assuming there's enough space on the screen : status bar (key s) channel descriptor (key t) instrument list (key i) oscilloscope (mono or stereo) (key o) frequency spectrum (mono or stereo) (key p) To enable or disable an element, press the associated key. When enabled, an element will be display at the bottom of the screen. That's not much practical but you shouldn't change the configuration very often, once you're satisfied. To change elements size and caracteristics (oscilloscopes, channels and spectrums) see the configuration menu (press c in the main screen). Configuration saving ±±±±±±±±±±±±±±±±±±±± Whatever you changed is saved in the file MMP.CFG when you quit MMP. There are two types of parameters, some "global", some "partial". The "partial" parameters are dependent upon the number of tracks. They are saved in different places of the configuration file, each assigned to a 4 tracks block : 1-4 tracks 5-8 tracks 9-12 tracks 13-16 tracks 17-20 tracks 21-24 tracks 25-28 tracks 29-32 tracks The "partial" parameters are the ... Spectrums height Maximum spectrums height Oscilloscope height Maximum oscilloscope height Output frequency LDI mode (oversampling) enabler Low-pass filter level Digital amplification level Default panning with speakers Default panning with headphones Number of displayed tracks Channel display mode Number and type of elements present The "global" parameters are the ... Modules path Spectrums type (mono or stereo) FFT display size FFT size Left spectrum video synchronization Right spectrum video synchronization Left oscilloscope video synchronization Right oscilloscope video synchronization Spectrum scale type (linear, power and logarithmic) Spectrums scale factor Oscilloscope type (mono or stereo) Loop mode (allowed, forced, forbidden) Pan enabler Cursor position X Cursor position Y Menu enabler Output mode (mono or stereo) Headphones panning enabler If you don't understand everything, that's normal, just use MMP ;) if you really want to understand, mail me, i always reply. (cattard@mnserver.ulb.ac.be -> i'm french not belgian, just a remote account). Copyright (the legal stuff) ±±±±±±±±± This program is freeware. This means you can copy it, do whatever you want with it, as far as no money is involved and that you copy the two files MMP.EXE and MMP_DOC.TXT, transfer them on any server or any media (including CD-ROM) * UNMODIFIED *. If you have any doubt about the files integrity, mail me. Disclaimer (the legal stuff bis) ±±±±±±±±±± In no event the Author will be liable for any damages, including any lost profits, lost savings or other incidental or consequential damages arising out of your use or inability to use the program, or for any claim by any other party. All mentioned Trademarks and Copyrights are registered by their respective owners. If you don't agree, delete the files and forget MMP ;) Who am i ? ±±±±±±±±±± I'm 27 and preparing a Ph.D in physics. Snail mail ±±±±±±±±±± If you want some modules, a new version or anything, send FORMATTED 3«" disk(s) and enough money or more disks for the expenses to : Charles Attard 7 rue des plantes 44100 NANTES FRANCE E-mail ±±±±±± Mail me for any comment, bug report, or anything i can do to help you cattard@mnserver.ulb.ac.be C.A. 5/1/96 ------------------------------------------------------------------------------