                                     
                     ۱                 
                                        
                                         
                                         
                                         
                                     

                                       
                 ۱                     
                                        
                                         
                                         
                                         
                                  

                                    
                                             
                                             
                                    
                                             
                                              
                                         


                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 <module_name> )
       + 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
------------------------------------------------------------------------------
