±Û Û ±Û Û ±Û ÛÛÛÛÛÛ ±Û ±ÛÛ±ÛÛ ±Û Û ±Û ±Û ±Û ±Û Û Û ±Û Û ±Û ±Û ±Û ±Û Û ±Û Û ±Û ±Û ±Û ±Û Û ±Û Û ±Û ±Û ±Û ±Û Û ±Û Û ±Û ±Û ±Û ±Û Û °ÛÛÛ °ÛÛÛÛ ±Û ±Û ±Û Û ÛÛÛ ±ÛÛÛÛ ±Û Û ±Û ±ÛÛÛÛ ±ÛÛ±ÛÛ ±Û Û ±Û Û ±Û Û ±Û ±Û ±Û Û Û ±Û Û ±Û Û ±Û Û ±Û ±Û ±Û Û ±Û Û ±Û Û ±Û Û ±Û ±ÛÛÛ ±Û Û ±Û Û ±Û Û ±Û Û ±Û ±Û ±Û Û ±Û Û ±Û Û ±Û Û ±Û ±Û ±Û Û °ÛÛÛ °ÛÛÛÛ °ÛÛÛ °ÛÛÛÛ ±ÛÛÛÛ ±ÛÛÛÛ ±Û °ÛÛÛ ±Û Û ±ÛÛÛÛ ±ÛÛÛÛ ±Û Û ±Û ±Û Û ±Û Û ±Û ±Û Û ±Û Û ±Û ±Û Û ±Û Û ±Û ±Û Û ±ÛÛÛÛ ±Û ±ÛÛÛÛÛ ±Û ±ÛÛÛ ±ÛÛÛÛ ±Û ±Û ±Û Û ±Û ±Û ±Û Û ±Û ±Û ±Û Û ±Û ±Û ±Û Û ±Û °ÛÛÛÛ ±Û Û ±Û ±ÛÛÛÛ ±Û Û version 5.450 - (C) Charles Attard - Feb. 1998 MMP can be found on Internet : Home page at http://www.cerise.ml.org/charles where you'll always find the very latest version, and ftp://ftp.cdrom.com/pub/demos/incoming/music/programs ftp://ftp.cdrom.com/pub/demos/music/programs/players ftp://ftp.cdrom.com/pub/simtelnet/msdos/music ftp://ftp.coast.net/simtel/msdos/music And other mirror sites If you want to link the MMP player engine in your Turbo Pascal/Borland Pascal 7.0 freeware applications, you can find the TPUs and a very basic player in: http://www.cerise.ml.org/charles ftp://ftp.cdrom/pub/code/incoming/modunits.zip 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 : 669 Composer 669 v1.x Module (8 channels, 64 instruments @17480 Hz) MOD ProTracker , SoundTracker, FastTracker, StarTrekker and TakeTracker (1 to 32 channels, 31 instruments @16574 Hz) MTM Multi Tracker Module v1.x (1 to 32 channels, 64 instruments @16574 Hz) NST NoiseTracker (4 channels, 15 instruments @16574 Hz) S3M Scream Tracker v3.x Module (1 to 32 channels, 100 instruments at any sample rate, 16 or 8 bit) Note : Old STM format can easily be converted to S3M format using Scream Tracker v3.x XM Fast Tracker v2.x Module (file version above 1.03) (2 to 32 channels, 128 instruments of 16 samples, 16 or 8 bit) As for S3Ms, old XM format (below 1.04) can easily be converted with FastTracker 2.x MMP also supports: XI FastTracker instruments (multi-sampled, 16 or 8 bit, with volume and panning envelopes) WAV RIFF wave files (mono, 16 or 8 bit) (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 ...) All the previous files can be included in an archive ARJ or ZIP, they will be extracted at run-time. 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 necessary 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 3 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 conventional memory. But if an instrument has a size over 64 KB (the module loaded is a 669, MTM or XM), MMP will use the DOS/XMS 32 bits linear mode instead to avoid truncature. This is the fastest 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, 669s and XMs can have instruments 1 MB long or more for XMs. 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 too 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 addressing in real mode ! The Global Descriptor Table is modified, that's why it's totally incompatible with other applications running in protected mode or V86 mode. MMP tries first to enter XMS-32bit linear mode so it can free the conventional memory for DOS shell. If this mode isn't enabled (see the config window in MMP) then your processor is in protected mode (EMM386, QEMM386 or Windows DOS box are enabled) or there isn't enough free XMS memory. 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-bit buffer, with a 16-bit 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-bit 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 these nice things give the highest possible output for all ears ! MMP version 5.450 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 (well ... not really sure :), 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 ±±±±±±±±±±±±±±±±±±±±±± + Player coded 'ab initio' (from scratch) + 22000+ lines of pascal and 286 assembler + 12000+ lines of 386 assembler + thirty two 32bits mixing routines (mono, stereo or surround with 16bits (DOS, EMS) or 32bits (XMS linear) addressing, oversampling and 16-bit samples) + 16-bit samples support with fewest possible resolution loss + 32bits data buffer for clipping. Increases the signal to noise ratio + Real-time oversampling computed on 28bits. Acts as a dynamic low-pass filter thus giving a much smoother signal without alterations. + Play engine in highly optimized 386 assembler. Scheduling and alignement optimizations for Pentium and 486 + Instruments and samples synthesizer + WAV writer from modules or instruments + MIDI and keyboard input to play samples + Ultra fast FFT implementation of Cooley and Tukey algorithm (1965) in 386 assembler (on a Pentium-120 MHz, two hundred and fifty 1024-points FFTs computed per second, only 4 ms the transform !) + Automatic detection of Sound Blaster cards (16, AWE32 and Pro) + No file prompt mode (enter MMP ) + List file mode playing (enter MMP ) + All Protracker 2.x/3.x (NST, MOD, MTM), Scream Tracker 3.x (S3M), Composer 669 1.x (669) and Fast Tracker 2.x (XM) 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 unit where you have some modules (ctrl+unit or click on unit with mouse), select the path, select a module then press Enter or click on the module name. The module should play (hope so ... ;) To pause module playing, press Pause or F4. To exit from MMP (what ?!) press alt-x or click on title bar with right mouse button. When the module has finished playing, the file selector window appears (if help, configuration window, information window and full screen instrument list are not on). If you don't want to listen more the module, press Enter, F3 or click mouse right button 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 ;), the fade out will then be activated to make a smooth transition (no ultra-clicks !). 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 who 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 or click in the menu, at bottom of main screen. When enabled, an element will be inserted at the bottom of the list of elements on screen. That's not much practical but you shouldn't change the configuration very often, once you're satisfied. To move an element you can use the mouse. Just click on the element you want to move (the cursor shape will change), then click on a 'destination' element which will be replaced by the 'moved' element. To change elements size and caracteristics (oscilloscopes, channels, spectrums and instrument list) see the configuration menu (press c in the main screen). Changing the colors ±±±±±±±±±±±±±±±±±±± You can change the color of any of the five items : (1) The main color (BackGround) (2) The current text (3) The hilighted text (4) The text for data or information (5) The cursor of the configuration window To change a color you should first select an item by pressing the corresponding key '1','2','3','4' or '5' (note: the colors can be changed anywhere but in the file selection window). Then adjust the color components (Red, Green and Blue) using the shift key with 'Ins','Del' for the red component a.s.o ... inc red : shift Ins (or Inser for french keyboards) dec red : shift Del (or Suppr ...) inc green : shift Home dec green : shift End inc blue : shift Pg Up dec blue : shift Pg Dn (note: there's no repeat on the Ins key ... saw that too late :( ) If you don't want to bother with color components, just hit alt-F1 .. alt-F8 to set colors schemes (see help in MMP for description, or just try them !) You can also directly edit MMP.CFG to change colors, but don't forget to launch MMP.EXE once, so it can create MMP.CFG. Configuration saving ±±±±±±±±±±±±±±±±±±±± Whatever you changed is saved in the file MMP.CFG when you quit MMP or when you load a new module. You can however disable configuration saving by clicking on title bar with left button or by entering alt-c, in the main screen. Configuration saving is restored at next module load. There are two types of parameters, some 'global', some 'partial'. The 'partial' parameters are dependent on 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 (A '*' preceding a parameter means it shouldn't be changed by 'hand'. A '**' means parameter shouldn't be changed at all !) The 'partial' parameters are the ... *Spectrums height *Maximum spectrums height *Oscilloscope height *Maximum oscilloscope height *Instrument list height *Maximum instrument list height Output frequency LDI mode (oversampling) switch 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 displayed elements (Parameters between {} can be changed in the file MMP.CFG only) The 'global' parameters are the ... Modules path {Temporary path} {Write path for WAVs} {ZIP extraction command line} {ARJ extraction command line} File manager display mode *MMP mode {MIDI keyboard channel} Keyboard mode (inhibition) {Info line delay} {mouse mickeys (delay)} Colors *Spectrums type (0:mono or 1:stereo) *FFT display size *FFT size Left spectrum video synchronization switch Right spectrum video synchronization switch Left oscilloscope video synchronization switch Right oscilloscope video synchronization switch Spectrum scale type (1:linear, 3:power and 2:logarithmic) Spectrums scale factor Oscilloscope type (0:mono or 1:stereo) Plot type (1:dots or 0:lines) Loop mode (0:allowed, 1:forced, 2:forbidden) Pan switch Global surround switch using speakers Global surround switch using headphones {Fade out delay (ms)} Cursor position X Cursor position Y {Autocontinue switch} Menu switch **Output mode Headphones panning switch If you don't understand everything, that's normal, just use MMP ;) if you really want to understand, mail me, i always reply. (charles.attard@bigfoot.com -> i'm french ... ) Setting MMP environment ±±±±±±±±±±±±±±±±±±±±±±± By default, MMP uses the path where MMP.EXE is located to save MMP.CFG and temporary file @LIST. If you want a user-defined path (useful for example if the medium where MMP.EXE lays is write-protected), you can set the environment string MMP; at DOS prompt type : set MMP= where MMP_Path is a legal path definition (ex. with C:\MUSIC\MMP you would have 'set MMP=C:\MUSIC\MMP' ) MMP will then use this path to write its files. If you intend to use archives (ARJ and ZIP) then you should set (or verify that it's set) the environment string 'TEMP'. The modules will be extracted in the path set in string 'TEMP', so you could consider enabling a ramdisk, if you have plenty of memory ! But be careful with ramdisk if you use Windows applications. You could receive strange error messages due to insufficient memory capacity in the temporary path (I think of Word 6.0-, especially when printing ...) Archives support ±±±±±±±±±±±±±±±± MMP supports archives formats ARJ and ZIP. The unarchivers (resp. ARJ and PKUNZIP, or equivalent) are needed and must be accessible as they will be called by MMP with the path set in MMP.CFG. If no PATH is set in MMP.CFG (this is default) then MMP is dependent on the current PATH set in your system environment string PATH. Note that when a file is in archive, only file name and size can be given (no song title). If file extraction fails (Error message 62), the reason could be that: - there's no path to the unarchiver - the archive is unreadable (corrupted, drive not ready) - the temporary path is not writeable (invalid, write-protected, insufficient space, drive not ready) - there isn't enough DOS memory for the unarchiver - the unarchiver version is too old Note: file names with path recorded won't be extracted (e.g 'MODS/GOODMOD.S3M') To check that the path to unarchivers is valid on your system, just type 'ARJ' and 'PKUNZIP' at command line. Tone generator mode ±±±±±±±±±±±±±±±±±±± This mode allows you to play the modules instruments, FastTracker instruments (XI) or mono wave files (WAV) on the PC keyboard or with the MIDI input. A specific configuration (number of tracks, display etc.) is loaded when you enter this mode; but, if the file is a module the configuration depending upon its number of tracks is loaded. When you load an instrument or a wave (i.e not a module), the number of tracks is loaded from the configuration file MMP.CFG; To change it, you should modify this file; the default value is 16 tracks. If you have loaded a module in the Multi Player mode and wish to enter the Tone generator mode, you don't need to reload the module; just hit F12. MMP will stop the module and display in the instrument list a red cursor showing which instrument is currently selected (the first valid in the list); of course, the instrument list should be displayed if you wish to change it with the cursor keys. Playing with the PC keyboard ±±±±±±±±±±±±±±±±±±±±±±±±±±±± As several functions use the same keyboard keys: the two octaves and the function keys 'n', 'c', 't', it is necessary to inhibit the two octaves with the key F11. Once you have finished with the function keys, you can return to the 'play mode' with the same key, F11. If you have a MIDI device and think you don't need the PC keyboard to play instruments and samples, then just hit F11 to inhibit the two octaves; this state will be saved in MMP.CFG. The two octaves are: For French keyboards: ‚ " ( - Š A Z E R T Y U G H K L M V B N , ; : ! For US keyboards: 2 3 5 6 7 Q W E R T Y U G H K L ; V B N M , . / An octave transposition is available as two octaves are often too few. Hit '/' or '*' to lower or rise the pitch of two octaves; this also alters the MIDI input. Playing with a MIDI keyboard ±±±±±±±±±±±±±±±±±±±±±±±±±±±± Once you have entered the Tone generator mode, just play ! The MIDI events supported are: - Note On-Off with velocity - Program change - Sustain (all channels) - Master volume control (all channels) Hit F12 to leave this mode, '/' or '*' to transpose octave. WAV writer ±±±±±±±±±± It's very simple, just select this mode and enter any file. A WAV file with a name extracted from the initial file will be created in the default directory defined in the configuration file MMP.CFG (default is 'C:\'). You can hit 'Enter' to stop the process, the file will be closed and truncated to the current size, giving a valid WAV file; if you hit 'Esc' the file will be erased. Note that the current configuration for the module is loaded (e.g the 1-4 tracks one for a 4-tracks module) to create the WAV; If you would like to create a high quality WAV because your system can't handle many tracks with oversampling and high output frequency for example, then you'll have to modify the configuration in MMP.CFG before selecting the WAV writer. Please note also, that MMP doesn't handle stereo WAV files, and only those holding in main memory ... I'll code a direct from disk WAV player one day ;) Greetings ±±±±±±±±± I wish to thank some nice guys for their advice, remarks, critics, bug reports, useful discussions, source code or modules : Jean Paul Attard (fr) Rodolphe Sepz (fr) Jocelyn Turpault joss@bigfoot.com Philippe Lelong lelong@ens.fr Wayne flay@zip.com.au Mervyn Kong mervynkg@pacific.net.sg Toni Lindroos tonilind@sip.fi Bob Appleton appleton@snoopy.bunt.com Jason Cetron worldofi@aol.com Gabriel Ilardi gilardi@aleph.fi.uba.ar MAZ maz@fh-zwickau.de (don't miss his high quality samples CD-ROM ! WAVs and XIs (www.fh-zwickau.de/~maz)) Brain brain@eleet.iddc.via.at Benzel maynard@discover-net.net David Bolton BoltonD_at_MET21MF1@ccmail.edu.gov.on.ca Adoxa hoodj@topaz.cqu.edu.au VICO sallem@gamay-gw.iut.univ-lehavre.fr Jaime jaguar@correo.dnet.com.pe WarmBooter WarmBooter@achei.net Uhus uhus@cnit.uniyar.ac.ru Sebastien Perales perales@hol.fr Special Thanks to Aveek Datta ADatta@ml.org Network Administrator of Monolith who helped me with the configuration of my Unix workstation and registered my domain (cerise.ml.org) If you need a Domain Registration or some other Internet services, try 'www.ml.org' 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 (except for the medium or transfert) and that you copy the files MMP????.ZIP or MMP.EXE, MMP_DOC.TXT, MMP_REV.TXT, MMP_NEW.TXT and MMP_FAQ.TXT, or transfer them on any server * UNMODIFIED *. If you have any doubt about the files integrity, mail me. (*)Condition for the distribution of MMP files ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± (especially on CD-ROMs) >> YOU MUST SEND ME A MAIL FOR ACKNOWLEDGMENT << That's useful for at least two points: I will know where MMP is distributed AND whether you are about to distribute the LAST VERSION of MMP or not (and that's certainly not because the last and undistributed version of MMP is ALWAYS on my computer ... =) 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 the use of this 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 28 and preparing (and finishing ... =) 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 charles.attard@bigfoot.com C.A. 98/2/2 ------------------------------------------------------------------------------