Monkey's Audio Source Code
Readme
(last updated March 16, 2002)
Introduction
First off, just to be clear, you have to fully agree with the included license agreement before using / viewing any of the included materials. The big points are that you can't steal code or try to make money with it (without permission) and that you have to submit changes and improvements back to the Monkey's Audio project. With that out of the way, I'm hoping that by releasing the source code, we'll be able to work together to make Monkey's Audio better. Please direct any suggestions or improvements to the Monkey's Audio developer's forum or to me personally when appropriate. (email @ monkeysaudio.com) And thank you for taking the time to help.
Important Note
The Monkey's Audio format is not "finalized". In fact, the compression / decompression engines are continually being improved. This is what makes MAC fun to work on, and it's what makes progress possible. I realize that this can be a pain for 3rd party developers, but it's the only way to avoid stagnation. So, you can not hard code Monkey's Audio support and expect it to work with the newest versions of MAC forever. Either use a DLL or else accept that you'll have to re-link to MACLib once in a while.
Things that it'd be great if you worked on
1. It would be nice to have makefiles for gcc or any other compilers that people commonly use.
2. Porting of the assembly in CNNFilter to compile (and run) with gcc.
3. Pour through the code and look for bone-head maneuvers.
4. Submit any necessary changes for cross-platform compilation.
5. XMMS, Lame DLL, PocketPC, etc. plugins / implementations.
6. A console front-end that doesn't suck. (more options, etc.) Also, don't worry about maintaining compatibility with the current parameter passing scheme -- just use whatever makes sense.
Tips for building MACLib outside of Windows
1. in "Shared/All.h" do this:
2. As noted above, you'll probably have to disable backwards compatibility for now. Some of the old code depends on large assembly functions, and those are tricky to build outside of MSVC.
3. With ENABLE_ASSEMBLY turned off, compression (and decompression of new files) will run at between 1/2 to 1/3 of the speed. CNNFilter is the culprit... target it first if you want more speed, or want to try to make the assembly work.
Known non-Windows problems (help fixing them would be great)
1. CStdLibFileIO is lacking an implementation for Delete(...) and SetEOF(...)
2. The macros SLEEP, PUMP_MESSAGE_LOOP, TICK_COUNT, MESSAGEBOX, and a few others don't work.
- All materials and programs copyrighted ©2000-2002 by Matthew T. Ashland -
- All rights reserved. -