home *** CD-ROM | disk | FTP | other *** search
/ Large Pack of OldSkool DOS MOD Trackers / it206.zip / MMCMP134.ZIP / MMCMP.TXT < prev    next >
Text File  |  1996-09-26  |  22KB  |  528 lines

  1.                             MUSIC MODULE COMPRESSOR
  2.                                  version  1.34
  3.                       
  4.                                  User's Manual
  5.  
  6.  
  7.  
  8. Table of contents:
  9.  
  10.  
  11.         1. Introduction
  12.         2. Information on MMCMP:
  13.           2.1.  Requirements
  14.           2.2.  Files in this packages      
  15.           2.3.  Features of this version
  16.         3. Usage:
  17.           3.1.  Compressing files
  18.           3.2.  Decompressing files
  19.           3.3.  Using MMTSR
  20.             3.3.1. Loading MMTSR
  21.             3.3.2. Enabling/Disabling
  22.             3.3.3. Removing MMTSR from memory
  23.             3.3.4. More about MMTSR
  24.         4. Some legal stuff...
  25.         5. Contacting the author
  26.         6. Where to get the latest release?
  27.         7. Closing words
  28.  
  29.  
  30.         <See MMUPDATE.DOC for the latest implementations!>
  31.  
  32.  
  33.  
  34. 1. Introduction
  35.  
  36.  
  37.         As music modules and samples are constantly growing larger and 
  38.         larger, it is essential to be able to compress those files to save
  39.         space on disk. However, files compressed using "standard" compression
  40.         utilities may be understood only by a few players and can't usually be
  41.         loaded into any conventionnal tracker for editing and composing.  But 
  42.         now, MMCMP offers you the possibility to do so.
  43.  
  44.  
  45.         MMCMP, Music Module Compressor, is a conventionnal compression utility 
  46.         that compresses music files, giving approximatively the same ratio you 
  47.         could expect with any popular compression utility.  It is not some kind 
  48.         of special sound compression like MPEG2, for example, which may give a 
  49.         very gound compression ratio, but modifies the data and tends to lower 
  50.         sound quality.  MMCMP does not modify the original sound data, and 
  51.         decompressing a compressed file (using MMUNCMP) gives back the 
  52.         original, unmodified data.
  53.  
  54.         
  55.         Its name may suggest that it only compress "modules".  In fact, this is
  56.         what it was intended for at first.  However, as MMCMP was developping,
  57.         it became more flexible and could accept practically any file format.
  58.         Thus, since "instruments" file size has almost increase tenfold over 
  59.         the last years, it was now more than useful to have some way to  
  60.         compress them and still have access to them anytime.  Actually, almost 
  61.         every new version of MMCMP brings support for new sound files formats!
  62.  
  63.  
  64.         "Have access to them anytime."  What does this really means?  What's 
  65.         special about MMCMP is the small TSR (Terminate and Stay Resident) 
  66.         utility (MMTSR.COM) which, once loaded, will decompress the module in 
  67.         the "background" when they are loaded by *ANY* player or tracker.  So 
  68.         you DON'T NEED TO DECOMPRESS MODULES OR SAMPLES TO PLAY THEM BACK AND 
  69.         USE THEM! However, due to technical reasons, MMTSR can't compress 
  70.         modules when, within a tracker, you save a module back on disk. You'll 
  71.         have to do this "manually" with MMCMP.
  72.  
  73.  
  74.         Fortunately, this shall be soon possible, as I'm currently working
  75.         with Jeffrey Lim, the author of *Impulse Tracker*, so that IT will
  76.         include compression/decompression routines.  A few trackers already
  77.         use some kind of sample compression, but as far that I know, this
  78.         shall be the first tracker (I guess) with such a reasonable
  79.         compression (ratio approximatively equal to ZIP, ARJ, LZH, etc.. and
  80.         twice or thrice faster!)
  81.  
  82.  
  83.  
  84.  
  85.  
  86. 2. Information on MMCMP
  87.  
  88.  
  89.   2.1. Requirements:
  90.  
  91.  
  92.         - A 80386 based or better computer (does anybody still have something
  93.           worse????)
  94.         - around 300k of free conventionnal memory (MMCMP/MMUNCMP)
  95.         - 64 k of free exTended memory OR 64k of free exPanded memory (for
  96.           MMTSR only)
  97.         - some free space on your drive C: (for MMTSR only) to uncompress a
  98.           file (the size of a big module is enough...)
  99.  
  100.  
  101.         These requirements may change with future version of the program.
  102.         See the "Features" section below and the MMUPDATE.DOC file.
  103.  
  104.  
  105.   2.2. Files in this package:
  106.  
  107.  
  108.         You should have all of the following files:
  109.  
  110.  
  111.         MMCMP.EXE       The compression utility
  112.         MMUNCMP.EXE     The decompression utility
  113.         MMTSR.COM       The TSR version of MMUNCMP
  114.         MMCMP.TXT       The MMCMP manual (this file...)
  115.         MMTSR.TXT       Technical information on MMTSR
  116.         MMUPDATE.TXT    Information on previous, current and future releases
  117.         FILE_ID.DIZ     Small description for BBS
  118.  
  119.  
  120.         If there's more files, don't worry, but if some of those files are
  121.         missing, please try to find an "original" version so you may benefit of
  122.         everything MMCMP has to offer you!  See Section 6. Where to get the
  123.         latest release?
  124.  
  125.         If you wish to distribute MMCMP, see Section 4. Some legal stuff...
  126.  
  127.  
  128.   2.3. Features of this version
  129.  
  130.  
  131.         MMCMP can actually compress modules of the following formats and
  132.         will support everything supported by the specified tracker version:
  133.          - S3M: Scream Tracker 3 module (ST3 version 3.21)
  134.                 (adlib samples not supported (who cares.:]) but MMCMP supports
  135.                 16 bits samples even if ST3 doesn't)
  136.          - IT:  Impulse Tracker module (IT version 2.03)
  137.          - XM:  Extended Module (Fast Tracker 2.06)
  138.          - MOD: Amiga MOD format (made with any good MOD tracker, except old
  139.                 MODs with only 15 instruments, they are not supported yet)
  140.  
  141.         MMCMP also handles samples files of the following formats...
  142.  
  143.          - DigiPlayer / Scream Tracker 3 Sample file (often refered as S3I or
  144.            SMP)
  145.          - Impulse Tracker samples.
  146.          - WAV: 'Conventionnal' WAV files.  WAV format being very flexible, 
  147.                 files may sometimes contain unsupported data (names, samples
  148.                 lists, cue points, etc...).  It should not cause any problem
  149.                 if you try yo compress such files, but you probably won't get
  150.                 an optimal compression ratio.
  151.  
  152.         ...as well as instrument files:
  153.  
  154.          - XI:  Fast Tracker 2 Extended Instrument
  155.  
  156.         Thracker versions are the latest version of those trackers with which
  157.         MMCMP has been tested.  Of course, MMCMP may work correctly with a 
  158.         module made with newer versions of those trackers as long as modules 
  159.         don't hold newly implemented features, but it is possible that MMCMP 
  160.         may incorrectly handle the features that are "currently unsupported" 
  161.         by those trackers. Note that a lot of other file formats (notably IFF, 
  162.         PAT, and others) shall be implemented SOON!  (at least, when I'll find
  163.         documentation!)
  164.  
  165.  
  166.         Actually, MMCMP supports only 8/16 bits mono compression.  This doesn't
  167.         mean much though, because data like patterns, which aren't samples, are
  168.         compressed too, exactly like samples.  It only means that, for example,
  169.         stereo samples will soon have their own compression scheme so they can
  170.         be compressed much better.  However, among currently supported module
  171.         formats, none of their respective trackers actually support stereo
  172.         samples, so stereo support won't be implemented until necessary...
  173.  
  174.         NOTE:   If you happen to have descriptions of different file formats
  175.                 headers (especially .PAT and .IFF) and are willing to give 
  176.                 them to me, please do it!!  You'll get at least the honor to 
  177.                 be within theses docs, and probably more...
  178.                 See section 5: Contacting the author, below in this file!!
  179.  
  180.  
  181.  
  182.  
  183. 3. Usage
  184.  
  185.  
  186.   3.1. Compressing Files
  187.  
  188.  
  189.         To compress a module, simply type at the prompt:
  190.  
  191.  
  192.                          MMCMP filename [filename] [filename]...
  193.  
  194.  
  195.         "filename" may include a drive letter, a full path, as well as '*'
  196.         and '?' wildcards.  You may also specify more than one filename. The
  197.         file extension must be specified.  Omitting filename will show the
  198.         previous command line syntax.  If you wish to interrupt the process,
  199.         press the ESC key during compression, and MMCMP will stop right after 
  200.         compression is done on the currently processed file. You may also press
  201.         Ctrl-Break or Ctrl-C, which may abort compression instantly, but MMCMP
  202.         won't be able to remove temporary files.  It is therefore recommended 
  203.         to press ESC.
  204.  
  205.           * *IMPORTANT NOTE:* *
  206.  
  207.  
  208.     =>> MMCMP WILL REPLACE THE ORIGINAL FILE with the compressed one unless an
  209.         error occured during the process.  The new file will then have the same
  210.         name, date and time, than the original one.  If an error occured while
  211.         compressing, the file will remain unchanged.  If your file is "read
  212.         only", MMCMP won't be able to replace it and will save the compressed 
  213.         file in a temporary file, giving you the name of this file.
  214.  
  215.  
  216.   3.2. Decompressing Files
  217.  
  218.  
  219.         To decompress a file, type at the prompt:
  220.  
  221.  
  222.                 MMUNCMP filename [filename] [...]
  223.  
  224.  
  225.         The syntax follows the same rules as for MMCMP, explained above, and
  226.         decompression process may be interrupted the same way. Note that 
  227.         MMUNCMP, like MMCMP will replace the compressed file by the 
  228.         uncompressed one.  It will also behave like MMCMP if an error occurs,
  229.  
  230.  
  231.   3.3. Using MMTSR
  232.  
  233.  
  234.     3.3.1. Loading MMTSR:
  235.  
  236.  
  237.         MMTSR is loaded by typing "MMTSR" at the prompt.  It will allocate
  238.         64k of exPanded memory -OR- 64k of exTended memory (this amount shall
  239.         be configurable in future versions of MMTSR) and takes 2.5k of
  240.         conventionnal memory for itself.  By default, MMTSR only uses expanded
  241.         memory, but if you don't have expanded memory or you want to use
  242.         extended memory, you MUST specify it on the command line:
  243.  
  244.  
  245.               > MMTSR xms
  246.  
  247.  
  248.         Load it "high" if you can, by typing "lh mmstr" at the prompt,
  249.         so it doesn't use "low" memory used by most DOS applications.  Once it 
  250.         is resident in memory, it will systematically decompress any file it 
  251.         recognize as a MMCMP-style compressed files. Technically speaking, 
  252.         every file BEGINNING with the "ziRCONia" signature WILL be 
  253.         decompressed.
  254.  
  255.  
  256.     3.3.2. Enabling/Disabling:
  257.  
  258.  
  259.         MMTSR may be enabled/disabled anytime if you think it interferes with
  260.         something else in your system.  To desactivate MMTSR, simply type
  261.         "MMTSR off" and to reactivate it, type "MMTSR on" at the command 
  262.         prompt.
  263.  
  264.  
  265.     3.3.3. Removing MMTSR from memory:
  266.  
  267.  
  268.         Furthermore, if you want to free all the memory it uses, you may remove
  269.         it from memory by tying "MMTSR rem".  However, if another utility is
  270.         running of other TSR (Terminate and Stay Resident programs) are 
  271.         installed after MMTSR, it may be impossible for MMTSR to remove itself 
  272.         from memory, because other programs in memory may become corrupted.
  273.         One way to resolve this problem is to load MMTSR after every other TSR.
  274.  
  275.  
  276.     3.3.4. More about MMTSR....
  277.  
  278.  
  279.         When decompressing a files, MMTSR creates a tempory file in the root
  280.         directory of drive C: (C:\_~zirc~_.tmp, but this shall be configurable
  281.         in future versions of MMTSR)  This means that it will most probably
  282.         don't work correctly if some program opens more than one compressed
  283.         file at once, or if there's not enough free space on the C: drive to
  284.         store the decompressed file.  Of course, a player may load more than
  285.         one file into memory, as long as a compressed file is not opened before
  286.         the previous one is closed first.  Usually, trackers and players don't
  287.         open more than one module or sample at once.
  288.  
  289.  
  290.         Furthermore, since every compressed file is decompressed when it is
  291.         opened, program that scan every files to get their name, info, etc,
  292.         may be consequently slowed down during scanning if that program
  293.         doesn't explicitely support compressed files.  As for now, only
  294.         Impulse Tracker recognize the 'header' part of compressed files and
  295.         may thus scan file as fast as if they were not compressed.
  296.  
  297.  
  298.         If music is playing while a file is being decompressed, some weird
  299.         things might occur with the playback, only during decompression,
  300.         depending on the player/tracker you are using.  But don't worry, it
  301.         shouldn't hurt ;)  This is only due to the way the computer processes
  302.         "background events", i.e, most of the time, decompressing file in
  303.         "background" and playing music in background can't be done at the same
  304.         time.  Under certain circumstances, MMTSR will let the music playback
  305.         continue normally, but sometimes playback is slowed down, or paused.
  306.         This really depends on your player or tracker.
  307.  
  308.  
  309.  
  310.         IMPORTANT:
  311.  
  312.  
  313.         MMTSR performs a READ ONLY decompression, i.e. any program, player,
  314.         tracker, may read any compressed module, but attempting to write into
  315.         a compressed file WHILE it is STILL open will return an error to the
  316.         program that attempted to write, like if it was a read-only file.  This
  317.         prevents corruption of the compressed file since the player/tracker
  318.         sees the file as a non-compressed file.  However, since players don't
  319.         write into those files and trackers usually rewrite the whole 
  320.         file, there won't be any problem.
  321.  
  322.  
  323.         Frthermore, using MMTSR to load modules or samples which have been
  324.         compressed using a newer version of MMCMP (with new compression scheme,
  325.         i.e only adding new module format or that sort of thing doesn't change 
  326.         anything here) may crash your computer. It doesn't do anything bad,
  327.         but you'll have to reboot your system. It might also not crash,
  328.         instead it will only load data in a wrong manner, and results are much
  329.         unpredictable (for example, a sample could sound like garbage). But if
  330.         you don't save and overwrite your file after it has been altered in
  331.         some ways, DATA CAN'T BE MODIFIED and will remain like it was before.
  332.         Simply use MMUNCMP to decompress it correctly.
  333.  
  334.  
  335.         This is all because MMTSR, being resident in memory and working in the
  336.         "background", can't interact with the user if something is wrong.
  337.         Thus, to keep MMTSR as small as possible so it doesn't take too much
  338.         memory, no check or verification is done for newly implemented
  339.         features, not supported by the current verion of MMTSR. MMTSR may also 
  340.         simply refuse to decompress a file if it can't "understand" it.  
  341.         Consequently, you should always use the latest version of MMTSR you 
  342.         own.
  343.  
  344.  
  345.         A lot of work has to be done around MMTSR to improve it, and a setup
  346.         utility will probably be released soon to let the user configure
  347.         MMTSR (temporary file path, extended/expanded memory support,
  348.         etc..)  Check the file MMUPDATE.DOC, and for technical stuff about
  349.         MMTSR, see MMTSR.DOC
  350.  
  351.  
  352.  
  353.  
  354.  
  355. 4. Some legal stuff
  356.  
  357.  
  358. I CAN'T BE HELD RESPONSIBLE FOR ANYTHING THAT COULD HAPPEN TO YOU, YOUR
  359. MACHINE, OR WHOEVER OR WHATEVER, RESULTING FROM ANY USE OF THIS SOFTWARE.  BY
  360. USING THIS SOFTWARE, YOU ARE AUTOMATICALLY ACCEPTING THIS, AS WELL AS THE
  361. FOLLOWING PARAGRAPH:
  362.  
  363.  
  364. THIS SOFTWARE IS PROTECTED BY THE RIGHTS OF INTELLECTUAL PROPERTY. YOU MAY NOT
  365. MODIFY ANY PART OF THIS SOFTWARE, NOR YOU MAY ADD OR REMOVE ANYTHING TO OR FROM
  366. ANY OF ITS FILES. IF YOU'RE NOT A DISTRIBUTOR, YOU MAY HOWEVER FREELY
  367. DISTRIBUTE AND COPY IT, AS LONG AS ALL FILES ARE PACKAGED OR ARCHIVED
  368. TOGETHER AND NO FILE IS MODIFIED OR REMOVED.  YOU MAY ARCHIVE OTHER FILES WITH
  369. THIS SOFTWARE FOR ADVERTISING PURPOSE ONLY, BUT THIS SOFTWARE MUST NOT BE
  370. INVOLVED IN ANY WAYS IN THIS ADVERTISING NOR RELATED TO ANY OTHER PRODUCT
  371. WITHOUT MY CONSENT. YOU MAY NOT CHARGE ANYTHING FOR THIS SOFTWARE OR PARTS OF
  372. IT.  DISTRIBUTORS WHO ARE INTERESTED IN THIS SOFTWARE OR ANYBODY ELSE WHO
  373. WISHES TO MAKE COMMERCIAL USE OF IT OR PARTS OF IT MUST GET MY WRITTEN CONSENT
  374. FIRST.
  375.  
  376.  
  377.         If you wish to copy it, please archive or compress files under the
  378.         following filename:
  379.                 MMCMPxyy.eee
  380.  
  381.         Where 'x' and 'yy' are the version number (x.yy).  For Beta releases,
  382.         use "MMCPxyyB.eee". 'eee' is simply the extension added by the 
  383.         archiver (like .ZIP). Since there's some work being done between 
  384.         Jeffrey Lim, the author of Impulse Tracker, and me, you may also 
  385.         distribute MMCMP files along with Impulse Tracker.
  386.  
  387.  
  388.  
  389.  
  390. 5. Contacting the author
  391.  
  392.  
  393.         If you wish to ask, suggest, or report something, or for any other 
  394.         comment, contact me...
  395.  
  396.  
  397.         ... via e-mail:
  398.                 giassone@ift.ulaval.ca
  399.             OR  Emmanuel.Giasson@ift.ulaval.ca (same thing...)
  400.  
  401.                 Subject: MMCMP    (or whatever else you want...)
  402.  
  403.                 (I shall have this mail account up to april '98, and maybe
  404.                 more...)
  405.  
  406.  
  407.         ... via snail mail:
  408.                 Emmanuel Giasson
  409.                 158, rue Gariepy
  410.                 St-Redempteur, Quebec
  411.                 G6K 1M5
  412.                 Canada
  413.  
  414.  
  415.                 (this shall also still be good for a couple of years...)
  416.  
  417.  
  418.         ... via IRC ;)
  419.                 though this 'may' not be very serious, if you happen to be on
  420.                 the same 'IRC net' (don't really know its name...) look for
  421.                 the nickname 'Zirconia', often on channel #bistro (well, as for
  422.                 now...).  Try between 7pm and 2am, "Eastern North American" 
  423.                 time (-5h00 or -4h00 GMT)
  424.  
  425.  
  426.         If you are reporting bugs to me, please, try to be as explicit as
  427.         possible!  If you wish to use my compression algorithm, ask me first,
  428.         but if you only want to get the algorithm to decompress data (well,
  429.         this may seems to be the same thing, but in fact, this is much
  430.         simpler) you may ask me (because I haven't yet included it along with
  431.         the software) or wait until it is integrated to IT.  The decompression
  432.         algorithm might be there for anybody (i.e. players/trackers
  433.         programmers) who would like to add support for compressed IT modules.
  434.  
  435.  
  436.  
  437.  
  438. 6. Where to get the latest release?
  439.  
  440.  
  441.         On Internet:
  442.         
  443.             The best place to find MMCMP is on ftp://ftp.cdrom.com, under
  444.             the directory pub/demos/incoming/music/programs.  This is where
  445.             I upload every new version of MMCMP.
  446.  
  447.             NOTE: If you know about any other site that would be suitable for
  448.                   this kind of utility, please tell me, and I shall make a list
  449.                   of upload sites, thus giving easier and faster acces to many 
  450.                   people!
  451.  
  452.  
  453.  
  454.  
  455. 7. Closing words
  456.  
  457.  
  458.         I'm sorry if this doc contains errors or some information is missing...
  459.         please contact me if you wish to notify anything about it.
  460.  
  461.  
  462.         I personally conceived the compression algorithm two or three years
  463.         ago and after writing three very different versions of my program
  464.         (the third is the good one) here it is! But I haven't been really
  465.         alone, I'd like to thank:
  466.  
  467.  
  468.         Jeffrey Lim: For spending a lot of time trying to fix bugs in his
  469.                      tracker, while bugs were within my program, (dear
  470.                      MMTSR...:] )  Also helped me to spread my program all over
  471.                      the world by putting my program along with his tracker
  472.                      (*Impulse Tracker* of course...) Also did a LOT of
  473.                      beta testing.  Thanks a lot!!
  474.  
  475.  
  476.         Robert Pouliot (Krynos):
  477.                         Told me a simple way to make MMTSR removable, from
  478.                         which my 'remove' code was much inspired.  And thanks 
  479.                         for bugs report!
  480.  
  481.  
  482.         Beta Testers:   Nicolas Szapiel (Moonbeam / )
  483.                         Nicolas Roberge (Populous / )
  484.                         Samuel Cote (Balrog / KFMF)
  485.                         Dominic (Mammouth)
  486.  
  487.  
  488.         And anyone else who uses my program, and all those who are sending me
  489.         comments, info, questions, bugs reports (...shouldn't happen ;]) !!
  490.  
  491.         
  492.     --> MMCMP is more a "freeware" than a "shareware" program: there's no 
  493.         registered version, with enhanced features, for which you must pay 
  494.         after a trail period.  However, after using it for a while, you MAY pay 
  495.         for it.  How much?  Well, I'll let you judge by yourself... Let me say 
  496.         it will encourage me a LOT to spend time on MMCMP and to continue 
  497.         developping new features.
  498.         
  499.         I've spent many many many hours to conceive, code and debug this 
  500.         utility, and I'm still working on it... but this software is meant to 
  501.         please the whole planet!  However, if feel happy and generous, and if 
  502.         people around you feel the same way, get together to form an happy and 
  503.         generous group!  I know an university student who works hard to pay his
  504.         school fees that would be very happy to receive a little something in a
  505.         little envelope in his little snail-mail box :-)  I will also write 
  506.         your your name/nick or whatever you want (simply specify it) into a 
  507.         "very kind people" list!  (By the way, why isn't there such a list 
  508.         yet???)  And if you have an e-mail accout, I'll send you personnaly 
  509.         every release of my software.  So... open your mind, feel the generous 
  510.         person within you,  and... ;)
  511.  
  512.  
  513.         Finally...
  514.  
  515.  
  516.         As I said in the intro, my compression algorithm shall be soon
  517.         integrated to Impulse Tracker, so watch this out!!! 
  518.  
  519.  
  520. DON'T FORGET TO LOOK THE MMUPDATE.DOC FILE!!!!!
  521.  
  522.  
  523. Enjoy!
  524.  
  525.  
  526. Zirconia a.k.a Emmanuel Giasson
  527.  
  528.