JGMOD library 0.99
8 October 2002

----------------
What is JGMOD ??
----------------
JGMOD is a mod library for MOD musics. It is built on top of Allegro lower
level digital sound routines. Currently supports MOD, S3M, XM, Unreal
S3M (in UMX extension), and JGM under DJGPP, Mingw32, MSVC, Linux and BEOS.

JG stands for Jeffery Guan. So figure out yourself what JGMOD stands for.

I am doing this library for 4 main reasons.
1.  For the sake of learning. I always wanted to learn how to do a mod
    player.
2.  I am tired of using Mikmod. I have to initialise a lot of things
    just to make speakers rock.
3.  There are no mod library specifically for Allegro yet before JGMOD. 
4.  It is kinda great to make a MOD library. :-)


---------
Copyright
---------
JGMOD is guestware MOD library. All you need is to register at the url
given below and it is then free for you for your whole life.You can register
anytime when you are using JGMOD. If you have any suggestion, comments or
whatever, please include it too.

You can do whatever you like to my codes. Modify, add, delete or whatever.
However, I prefer the codes to be molested. Beware. My codes is also known
to molest many people. :-)

If you distribute your programs done with JGMOD, it is kinda nice if you
mentioned my name somewhere (eg. in the sound department, as Guan Foo Wah).
:-)

Register at the URL below :-
http://www.geocities.com/jeffery_guan/jgmod/jgmod_sign.html


----------
Disclaimer
----------
I will not be responsible to any destruction or damage my library does to
you or your computer.


-------------------------
Whats new in this version
-------------------------
1. JGMOD "save_sample" function is having conflict with Allegro
   WIP 4.12 "save_sample" function. Fixed
2. Change the default optimization from 486 to Pentium machines (should
   have done this a long time ago)


----------------------
To do list
----------------------
1. XM Auto Vibrato


---------------
About JGMOD.EXE
---------------
I use these programs to test the musics that I have. You should see the
numbers below similar.  Well, let me explain what these numbers are.

1:  4  1 15678Hz 255        
2:  2 11 18363Hz   0
3: 60 32 32567Hz 127
4: -- -- -----Hz ---
5: 45 64 45678Hz  34
6:  7 34   911Hz 204

Column 1 : Channel no.
Column 2 : Sample it is currently playing beginning with 1 as the first
           sample.
Column 3 : Volume. 0 to 64 scale.
Column 4 : Frequency of the sample that is being played (in hertz)
Column 5 : Panning. 0, left most panning. 255, right most panning. 127, center
           panning.

On the right sight of these text, you will see colored circles. The position
of the circle tells you the pitch (without the c2spd). The more right it goes,
the higher the pitch. The circles comes in different sizes. The bigger
it is, the louder the sample is played at. And when the circle changes
colour, it means a different sample is used. I find this is a much better
way than looking the hertz values in column 4 especially on mods with lots of
channels (eg 32 channels). Then watching those hertz values could make me
really dizzy.

Keys
----
P           : Pause/unpause music
R           : restart music
N           : Disable/Enable note dots
+/-         : Increase/Decrease mod volume
Left/right  : Previous/next pattern
Up/Down     : Scroll channel up/down (if more than 33 channels are used)
F1/F2       : Decrease/increase mod speed
F3/F4       : Decrease/increase mod pitch
F5/F6       : Decrease/increase note range
F7/F8       : Decrease/increase note relative positon
Space / Esc : Exit




-------------
Words from me
-------------
Thanks for downloading this library. If you have any questions you want to
ask, bug reports or just want to say something, just send a mail to
me (jgfw@hotpop.com).

When you found a bug, please don't hesitate to send it to me. JGMOD is not
a bug free program. There are a certain bugs that I am not aware of but
you do. Chances are that I will never encounter those bugs which means that
they will not get fixed. You might have found more bugs than I do. So don't
hesitate and I will see what I can do.

You can send the mail to Allegro Mailing list too. If you do, please
put a MOD capitalized as the subject just to catch my attention. 
I will only read interesting mails. The rest, I just skip and then delete
it. So, I might accidently skip yours.



---------
Thanks to
---------
Angelo Mottola
    For porting JGMOD to BEOS 5


Henrik Stokseth
    For modifying Unix makefile to support shared file library and porting
    JGMOD to Mingw32.

George Foot
    For porting JGMOD to Linux.

Robbin Burrows
    For telling me on to compile Winallegro using multithreaded dll.

Calvin French
    For explaining to me how normal and looping envelopes work.

Firelight
    For writing fs3mdoc.txt and fmoddoc.txt. Without those two files,
    JGMOD would have not exists.

Pedro Cardoso
    For his help and codes for S3M panning commands

Seawolf
    For JGMOD logo and graphics

Jonas Murman
    For telling me that fmoddoc2.zip exists. Without that document, I would
    still be confused about S3M till now.

Luke Bishop
    For locking all necessary sturctures and variables.

Jean-Paul Mikkers
    For creating Mikmod. You have never answered any of my mails. I don't
    know why. I got some ideas on loading mod from your codes. So thanks
    anyway

Jake Stine
    For maintaining Mikmod 3.0x. You have improved the codes for loading
    mods over Mikmod 2.10 which provides a great help to me when coding
    the MOD loaders.



------------
Contact Info
------------
Name        :       Jeffery Guan Foo Wah
        
Email       :       jgfw@hotpop.com

www         :       http://surf.to/jgmod

Snail Mail  :       18, SS 17 / 1H
                    47500 Subang Jaya
                    Selangor
                    Malaysia.

ICQ number  :       60706191. My user name is "Obi-Guan Kenobi". If you found
                    me, then you can ask me questions online. More
                    interactive, don't you think ?

Mailing list:       allegro@canvaslink.com. To add or remove yourself, 
                    write to listserv@canvaslink.com with the text 
                    "subscribe allegro yourname" or "unsubscribe 
                    allegro" in the body of your message to unsubscribe.


You can always get the latest JGMOD update at http://surf.to/jgmod.
