home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dream 45
/
Amiga_Dream_45.iso
/
Amiga
/
Applications
/
Musique
/
modCRUSH.lha
/
modCRUSHER.doc
< prev
Wrap
Text File
|
1980-01-01
|
9KB
|
223 lines
---------------------------------------------------------------------------
**************************** modCRUSHER V2.0 ****************************
---------------------------------------------------------------------------
By Olly Koenders
9 Isaac-Edey Place
Hampton Park
06-09-96 Victoria, Australia 3976
PH: ISD? (03) 9702 8551 (anytime)
This program and its associated files are free to distribute anwhere to
anybody on any medium providing all files are distributed as a package and
it's made perfectly clear that the two styles of Modcrusher which form the
basis of this package are SHAREWARE. If you like 'em and use 'em, don't
forget the programmer (name and address above). Contributions of any
amount are welcome including feedback. The more feedback and ideas for
improvements will see the same returned. The Amiga user base in Europe is
HUGE in comparison to Australia and most AmigaNuts here have sold their souls
for the Idiot Breed Mentality and turned their brains to mush.
Remember, the Amiga's NOT finished and may never be BUT:
Buy for it, write for it, be part of it - but in all cases - SUPPORT IT!
===========================================================================
I've coded two styles of Modcrusher so the user can derive the best use of
its facilities. A Workbench/GUI interface and a CLI/Shell style. The GUI
style will be described first as the usages are virtually identical to the
CLI style.
**** Workbench/GUI Style:
This program may be run from its icon or from the CLI.
To Crush a Module:
------------------
1. Select the appropriate mode (explained shortly),
2. Type the appropriate path/filenames in the "Load:" and "Save:"
gadgets (or if you have the arp.library in your "libs:" directory,
click the "REQ" gadget to bring up first the load requester and
finally the save one will appear). Note that you WILL require at
least a filename in both stringgadgets or Modcrusher will eventually
display an error!
3. If everything looks OK to you, press "GO!".
The module will be loaded (if found) and compressed to your requirements.
Eventually to be saved as your specified filename.
Just follow the same procedure to unpack the file. Its status will be
recognised automatically and if packed, will be unpacked again and written
to the specified destination. The current "Mode" setting will be ignored
and the mode of pack will be gleaned from the packed file and reiterated in
the window.
**** CLI/Shell Style:
This program is not capable of running from an icon.
From the CLI window type: MODCRUSHER [Mode] [ModNameToLoad] [ModNameToSave]
where "Mode" is a number from "0" to "4". Do not include the "[]" stuff!
I coded this especially for script files and fans of the excellent
DirectoryOpus.
If you're unpacking a module using this style then the "Mode" setting is
ignored but MUST be present in the parameter list for internal parsing of
the input string. See if I'm wrong.
**** Modes Explained:
To those that've been using version 1.5, some things have changed but only
for the better. I'm sorry that I didn't get it right the first time.
Modes for both versions and their equivalents:
V1.5 V2.0
------------
0 0 - No Change
1 1 - No Change
2 - Added and Renamed
2 3 - Renamed
3 4 - Renamed
4 * - Dispensed with
V1.5 packed on Mode "1" if unpacked with V2.0 will more than likely be
completely knackered (sorry!) - Use V1.5 to unpack.
V1.5 packed on Modes "2" or "3" will unpack fine although "Mode x Pass" will
display a higher number - Don't panic, all is well.
To unpack a V1.5 file packed with Mode "4", use CLI style V2.0 to unpack as
the GUI V2.0 doesn't understand the mode and will subsequently fail to give
satisfactory results (if any!).
The modes are:
0 - No loss (1 Pass)
1 - Quieter Samples
2 - Quiet/Normal Music
3 - Louder Samples
4 - In Case 1-3 Fail!
It's not as simple to explain as that but here goes:-
Mode "0" will ignore the placement of the sound data and will just pack the
thing as best it can. This will incur no loss whatsoever on the sound
quality and in fact can be used to pack ANY file - sound, data, executable,
game, you name it. Just remember that all modes are "heavy" packers and
on slow Amigas the time to compress will take considerably longer. The
"Final Pass" will take the longest.
Modes "1" to "4" are a whole 'nother story and they REQUIRE the module to be
of the 31 Instrument type - If they're not, expect a nasty crash (booo!).
Besides, I've seen bugger all of the lesser types but if called for and
providing I can find one of these, I'll include the necessary code.
Packing sound isn't as simple as running a standard "ByteRun" algorithm
through it and hoping for the best. Something entirely different is
required. It took me a few days of computational and testing but it
manages well.
Mode "1" will embark on a vicious campaign to compress the sound data.
Albeit some sound quality will be lost from certain loud samples in the
module, it should still be playable if a little muffled (approx. 10%
depending on the sample) and the pack rate increases substantially.
Mode "2" attempts to rectify the losses obtained through sample compression
and in songs sampled at 12000 to 20000 s/ps, Mode "2" can be used with
indiscernible loss most of the time. The sometimes muddy/muffled samples
tend to become much clearer (brighter) and as a side benefit the pack rate
also increases.
If the song still sounds muddy or muffled then try Mode "3" and although it
will sound brighter, some of the low-speed, high pitch samples might begin
to "buzz" or sound grainy.
Mode "4" goes still further and although not recommended, may be of use
in some instances. Most of the samples will begin to sound grainy
depending on the samples in the module.
Version 1.5 preferred the sound data to be sampled at low/mid volumes and
in VERY rare cases this may still apply. A big fix has ensued since then...
**** The Big(?) Fix:
The "Error Correction" routine has now been completely replaced and
integrated with the "Post-Sine-Decompression Mode-Pass" and will flawlessly
remove all errors in the sample data (clicks, pops, spikes etc.).
It was discovered that the abovementioned routine was actually overdriving
some of the data on recreation and CAUSING the spikes, therefore the
rewriting and integration hasn't only caught the problem before it occurred,
it's now 100 bytes shorter AND 100% faster!
Also discovered was the first few bytes of the first sample coming to grief
which used to cause a "click". This was only noticeable with VERY few
modules and has subsequently been repaired.
Added an extra mode between the original "1" and "2", called it "2" and
renamed all those above it. Dispensed with the original Mode "4" as it
went way too far and removed too much of the sample integrity to be of any
particular use.
These few fixes have improved the performance of Modcrusher to such a
degree as to make its output quality of a class I originally intended and
subsequently better than I'd hoped for.
It'll now handle practically any module with greater ease including those
with loud and overdriven samples. Although sound data sampled at or above
12000 samps/sec is still desired for best results, it's no longer entirely
necessary.
Some modules are of the type where "synthesised" samples were used, and due
to their short, looped duration and rapid pulsing, seem to cause no problems
whatsoever and therefore the loss in quality in most cases is nil even when
packed on modes as high as "4".
**** Disclaimer:
I really, really hate this bit but you'd be surprised about the STOOPID
things I've done in the past 7 years of programming...
In no way shall I be held responsible for any damages to software/equipment
and such like incurred through the use of either style of Modcrusher.
Although if it somehow manages to write off an entire HD on an IBM then I'll
be damned and really chuffed to boot!
Never write over your original stuff without being absolutely sure of the
consequences. In all cases Modcrusher won't overwrite the source with the
destination so the decision is entirely yours. 'Nuff said.
===========================================================================
I really hope you enjoy using Modcrusher for its simplicity and
flexibility. I'd like to assemble it into a library but I know little of
how to do this. If anyone around the globe has any assembler know-how on
this then drop me a line. If I receive even a small amount of helpful
suggestions and programming hints I'll endeavour to include them in the
next version. Spread the word and this program, just don't forget the
programmer. - Enjoy.