home *** CD-ROM | disk | FTP | other *** search
/ Dream 45 / Amiga_Dream_45.iso / Amiga / Applications / Musique / modCRUSH.lha / modCRUSHER.doc < prev   
Text File  |  1980-01-01  |  9KB  |  223 lines

  1.  
  2. ---------------------------------------------------------------------------
  3. ****************************  modCRUSHER V2.0  ****************************
  4. ---------------------------------------------------------------------------
  5.  
  6.                     By Olly Koenders
  7.                     9 Isaac-Edey Place
  8.                     Hampton Park
  9.         06-09-96        Victoria, Australia 3976
  10.  
  11.                     PH: ISD? (03) 9702 8551 (anytime)
  12.  
  13.  
  14.  
  15. This program and its associated files are free to distribute anwhere to
  16. anybody on any medium providing all files are distributed as a package and
  17. it's made perfectly clear that the two styles of Modcrusher which form the
  18. basis of this package are SHAREWARE.  If you like 'em and use 'em, don't
  19. forget the programmer (name and address above).  Contributions of any
  20. amount are welcome including feedback.  The more feedback and ideas for
  21. improvements will see the same returned.  The Amiga user base in Europe is
  22. HUGE in comparison to Australia and most AmigaNuts here have sold their souls
  23. for the Idiot Breed Mentality and turned their brains to mush.
  24.  
  25. Remember, the Amiga's NOT finished and may never be BUT:
  26.  
  27. Buy for it, write for it, be part of it - but in all cases - SUPPORT IT!
  28.  
  29. ===========================================================================
  30.  
  31. I've coded two styles of Modcrusher so the user can derive the best use of
  32. its facilities.  A Workbench/GUI interface and a CLI/Shell style.  The GUI
  33. style will be described first as the usages are virtually identical to the
  34. CLI style.
  35.  
  36.  
  37. **** Workbench/GUI Style:
  38.  
  39. This program may be run from its icon or from the CLI.
  40.  
  41. To Crush a Module:
  42. ------------------
  43.  
  44. 1.    Select the appropriate mode (explained shortly),
  45.  
  46. 2.    Type the appropriate path/filenames in the "Load:" and "Save:"
  47.     gadgets (or if you have the arp.library in your "libs:" directory,
  48.     click the "REQ" gadget to bring up first the load requester and
  49.     finally the save one will appear).  Note that you WILL require at
  50.     least a filename in both stringgadgets or Modcrusher will eventually
  51.     display an error!
  52.  
  53. 3.    If everything looks OK to you, press "GO!".
  54.  
  55. The module will be loaded (if found) and compressed to your requirements.
  56. Eventually to be saved as your specified filename.
  57.  
  58. Just follow the same procedure to unpack the file.  Its status will be
  59. recognised automatically and if packed, will be unpacked again and written
  60. to the specified destination.  The current "Mode" setting will be ignored
  61. and the mode of pack will be gleaned from the packed file and reiterated in
  62. the window.
  63.  
  64.  
  65. **** CLI/Shell Style:
  66.  
  67. This program is not capable of running from an icon.
  68.  
  69.  
  70. From the CLI window type: MODCRUSHER [Mode] [ModNameToLoad] [ModNameToSave]
  71.  
  72. where "Mode" is a number from "0" to "4".  Do not include the "[]" stuff!
  73.  
  74. I coded this especially for script files and fans of the excellent
  75. DirectoryOpus.
  76.  
  77. If you're unpacking a module using this style then the "Mode" setting is
  78. ignored but MUST be present in the parameter list for internal parsing of
  79. the input string.  See if I'm wrong.
  80.  
  81.  
  82. **** Modes Explained:
  83.  
  84. To those that've been using version 1.5, some things have changed but only
  85. for the better.  I'm sorry that I didn't get it right the first time.
  86.  
  87. Modes for both versions and their equivalents:
  88.  
  89. V1.5    V2.0
  90. ------------
  91. 0    0 - No Change
  92.  
  93. 1    1 - No Change
  94.  
  95.     2 - Added and Renamed
  96.  
  97. 2    3 - Renamed
  98.  
  99. 3    4 - Renamed
  100.  
  101. 4    * - Dispensed with
  102.  
  103.  
  104. V1.5 packed on Mode "1" if unpacked with V2.0 will more than likely be
  105. completely knackered (sorry!) - Use V1.5 to unpack.
  106.  
  107. V1.5 packed on Modes "2" or "3" will unpack fine although "Mode x Pass" will
  108. display a higher number - Don't panic, all is well.
  109.  
  110. To unpack a V1.5 file packed with Mode "4", use CLI style V2.0 to unpack as
  111. the GUI V2.0 doesn't understand the mode and will subsequently fail to give
  112. satisfactory results (if any!).
  113.  
  114. The modes are:
  115.  
  116.     0 - No loss (1 Pass)
  117.     1 - Quieter Samples
  118.     2 - Quiet/Normal Music
  119.     3 - Louder Samples
  120.     4 - In Case 1-3 Fail!
  121.  
  122. It's not as simple to explain as that but here goes:-
  123.  
  124. Mode "0" will ignore the placement of the sound data and will just pack the
  125. thing as best it can.  This will incur no loss whatsoever on the sound
  126. quality and in fact can be used to pack ANY file - sound, data, executable,
  127. game, you name it.  Just remember that all modes are "heavy" packers and
  128. on slow Amigas the time to compress will take considerably longer.  The
  129. "Final Pass" will take the longest.
  130.  
  131. Modes "1" to "4" are a whole 'nother story and they REQUIRE the module to be
  132. of the 31 Instrument type - If they're not, expect a nasty crash (booo!).
  133. Besides, I've seen bugger all of the lesser types but if called for and
  134. providing I can find one of these, I'll include the necessary code.
  135.  
  136. Packing sound isn't as simple as running a standard "ByteRun" algorithm
  137. through it and hoping for the best.  Something entirely different is
  138. required.  It took me a few days of computational and testing but it
  139. manages well.
  140.  
  141. Mode "1" will embark on a vicious campaign to compress the sound data.
  142. Albeit some sound quality will be lost from certain loud samples in the
  143. module, it should still be playable if a little muffled (approx. 10%
  144. depending on the sample) and the pack rate increases substantially.
  145.  
  146. Mode "2" attempts to rectify the losses obtained through sample compression
  147. and in songs sampled at 12000 to 20000 s/ps, Mode "2" can be used with
  148. indiscernible loss most of the time.  The sometimes muddy/muffled samples
  149. tend to become much clearer (brighter) and as a side benefit the pack rate
  150. also increases.
  151.  
  152. If the song still sounds muddy or muffled then try Mode "3" and although it
  153. will sound brighter, some of the low-speed, high pitch samples might begin
  154. to "buzz" or sound grainy.
  155.  
  156. Mode "4" goes still further and although not recommended, may be of use
  157. in some instances.  Most of the samples will begin to sound grainy
  158. depending on the samples in the module.
  159.  
  160. Version 1.5 preferred the sound data to be sampled at low/mid volumes and
  161. in VERY rare cases this may still apply.  A big fix has ensued since then...
  162.  
  163.  
  164. **** The Big(?) Fix:
  165.  
  166. The "Error Correction" routine has now been completely replaced and
  167. integrated with the "Post-Sine-Decompression Mode-Pass" and will flawlessly
  168. remove all errors in the sample data (clicks, pops, spikes etc.).
  169.  
  170. It was discovered that the abovementioned routine was actually overdriving
  171. some of the data on recreation and CAUSING the spikes, therefore the
  172. rewriting and integration hasn't only caught the problem before it occurred,
  173. it's now 100 bytes shorter AND 100% faster!
  174.  
  175. Also discovered was the first few bytes of the first sample coming to grief
  176. which used to cause a "click".  This was only noticeable with VERY few
  177. modules and has subsequently been repaired.
  178.  
  179. Added an extra mode between the original "1" and "2", called it "2" and
  180. renamed all those above it.  Dispensed with the original Mode "4" as it
  181. went way too far and removed too much of the sample integrity to be of any
  182. particular use.
  183.  
  184. These few fixes have improved the performance of Modcrusher to such a
  185. degree as to make its output quality of a class I originally intended and
  186. subsequently better than I'd hoped for.
  187.  
  188. It'll now handle practically any module with greater ease including those
  189. with loud and overdriven samples.  Although sound data sampled at or above
  190. 12000 samps/sec is still desired for best results, it's no longer entirely
  191. necessary.
  192.  
  193. Some modules are of the type where "synthesised" samples were used, and due
  194. to their short, looped duration and rapid pulsing, seem to cause no problems
  195. whatsoever and therefore the loss in quality in most cases is nil even when
  196. packed on modes as high as "4".
  197.  
  198.  
  199. **** Disclaimer:
  200.  
  201. I really, really hate this bit but you'd be surprised about the STOOPID
  202. things I've done in the past 7 years of programming...
  203.  
  204. In no way shall I be held responsible for any damages to software/equipment
  205. and such like incurred through the use of either style of Modcrusher.
  206. Although if it somehow manages to write off an entire HD on an IBM then I'll
  207. be damned and really chuffed to boot!
  208.  
  209. Never write over your original stuff without being absolutely sure of the
  210. consequences.  In all cases Modcrusher won't overwrite the source with the
  211. destination so the decision is entirely yours.  'Nuff said.
  212.  
  213. ===========================================================================
  214.  
  215. I really hope you enjoy using Modcrusher for its simplicity and
  216. flexibility.  I'd like to assemble it into a library but I know little of
  217. how to do this.  If anyone around the globe has any assembler know-how on
  218. this then drop me a line.  If I receive even a small amount of helpful
  219. suggestions and programming hints I'll endeavour to include them in the
  220. next version.  Spread the word and this program, just don't forget the
  221. programmer.  - Enjoy.
  222.  
  223.