

	  FireMOD 1.06 by FireLight  Copyright (c) Brett Paterson 1994-95 




Ŀ
                            : SECTION 0:                              
                                Index                                 


Section 1 : INTRODUCTION
		1.1 Requirements
		1.2 Features
		1.3 Notes
Section 2 : THE INTERFACE
		2.1 Keys
		2.2 Main Screen
		2.2.1    Technicality index meter (tm)
		2.2.2    Pan Cycle effect (tm)
		2.3 Blob/VU Screen
		2.4 Tracker Screen
		2.5 Technical Information Screen
		2.5 File Selector
Section 3 : MISCELLANEOUS INFORMATION
		3.1 FAQ (Frequently Asked Questions)
		3.2 Contact Information
		3.3 Greetings

Ŀ
                            : SECTION 1:                              
                            Introduction                              


Ŀ
  1.1 Requirements  


FireMod requires the following things:
- a 386 or better CPU
- a Gravis Ultrasound card
- the ULTRASND environment variable set
- some musik

Ŀ
  1.2 Features  


- Main info and play screen
- Access to all available memory
- Blob/VU screen
- Tracker Screen
- WildCard Support
- Technicality Index (tm) meter!
- Pan cycling feature!
- Speed reset in DOS shell with F12
- One of the fastest non DMA dram upload speeds in any player.

FireMod now supports the following formats:
Ŀ
  M.K.    .MOD    4 channel           "Protracker" modules.           
  M!K!    .MOD    4 channel           "Protracker" modules.           
  FLT4    .MOD    4 channel           "Startrekker" modules.          
  *CHN    .MOD    2,4,6 & 8 channel   "Fast Tracker" modules.         
  **CH    .MOD    10-32 channel       "Fast Tracker 2" modules        
          .MOD    4,6,8,16,32 channel "Taketracker" modules.          
  MTM     .MTM    1-32 channel        "Multitracker" modules.         
  SCRM    .S3M    1-32 channel        "Scream Tracker 3" modules.     
  if      .669    8 channel           "Composd" 669 modules.          
  JN      .669    8 channel           "Uni669" extended 669 modules.  
  FAR    .FAR    16 channel          "Farandole Composer" modules.   


Format notes:
- FLT8 is not supported becuase I reckon they dont exist :) btw FLT8 does
  NOT = 8CHN like many other players think, the pattern organization is way
  different, its just that I couldn't be bothered writing it in.
- 669 - only set speed and frequency adjust is supported, otherwise the tunes
  will still sound ok.  The format sucks anyway. =)

Ŀ
  1.3 Notes  


I have released the source code to FMOD, and hope others follow this example
as people out there really need this sort of code.  I have also written quite
a large and comprehensive document on how to code a player from scratch, and
it is called FMODDOC2.ZIP.  Packaged in with this is the source to FMOD.
If you want any of this then email me at the address below and I will see
what I can do.
Otherwise FTP it from ftp.cdrom.com

I realize that fmod probably sucks compared to other players, especially
since I was too lazy to perform proper click removal (i did try), but it is
mainly to serve as some example code for FMODDOC 2.  I think fmod's interface
is fairly good though now, and is the reason I use it more than any other 
player.

Ŀ
                            : SECTION 2 :                             
                            The Interface                             

Ŀ
  2.1 Keys  


 + -         - Change Master volume.
 F1 - F9     - Set Master volume.
 F10         - Show MTM song message
 F12         - Reset timer speed anywhere including DOS shell
 [ ]         - Change speed faster, slower.
 ; '         - Change BPM slower, faster.
 , . l r     - Change Channel panning left, right.
 1 thru 0    - Mute a channel. (1-10 only)
 Enter       * Main Screen.  (Sample information etc)
 c           - Pan Cycle effect!. (stop/start) Main screen only
 d           - DOS shell.
 f           * File Selector
 h           - Help.
 i           * Technical [I]nformation Screen.
 m           - inverses mute/unmute status of all channels.
 n           - play next song (In wildcard mode)
 p           - Pause/Unpause song.  Muting is disabled during pause
 s           - Solo/unsolo a channel.
 t           * [T]racker Screen.
 v           * [V]U/Blob screen.
 ESC         - Quit.
 Up arrow    - Move channel cursor up.
 Down arrow  - Move channel cursor down.
 Right arrow - Move forward a pattern.
 Left arrow  - Move back a pattern.
 Page Up     - Scroll Screen up.
 Page Down   - Scroll Screen down.
 Home        - Scroll Screen all the way to the top.
 End         - Scroll Screen all the way to the bottom.
 SPACE       - mute/unmute a channel.
 TAB         - (Main screen) Speed up glow scroller.
		   (Blob/VU screen) Toggle between channel numbers/blobs
		   (Tracker screen) Move channel cursor forward.
		   (Technical Screen) Move channel cursor forward.

Ŀ
  2.2 Main Screen  

The main screen is the screen you will always encounter first when a tune 
begins to play.  
It is a standard channel info+sample screen, with a clock/order count etc.

To return to this screen at any time press ENTER.  This means if you are in
another interface screen and wish to return to the main screen.
ENTER does NOT work in the fileselector, as of course ENTER means load the
selected file, in the file selector.
See SECTION 2.5 for more information on the file selector

The interface is now different from the old FMOD 1.05, in that it allows
full screen scrolling while the song plays.  This is nescessary for tunes
that have a lot of samples and channels, and does not all fit onto one screen.
page up and page down keys achieve this scrolling, and the home and end keys
rocket it up and down to it's extremities.  (ie the home and the end)

You will notice that there is a text scroller in this player, blabbing on
about nothing.  You can speed up it's progress across the screen by hitting
the 'TAB' key.  The tab key usually has a special purpose according to each
interface screen.

This screen is the only screen that allows the PAN CYCLE (tm) effect.
Hit 'c' while a song is playing to see what it does.  It sweeps the pan 
values of each channel left and right -according to the speed of the song-.
		

Ŀ
  2.2.1 Technicality Index Meter (tm)  

Complexity Index meter is located in the Info box of the textual interface
screens as TechIdx.  It is a measure of the technicality of a song.
I think it is a pretty good meter of the tracking skill of the composer, but
NOT of composing skill.. It does not measure musical talent of course :)
It can be translated any way you want it's just a number.  (this meter could
get some controversial comments :)  If you dont believe the meter take a look
at the pattern data and I think you will change your mind.

The fact is that the meter does jump up in complexly tracked parts of songs,
and drops down low on mellower parts, so it could be called a measure of the
pace of the song too.

Credits go to anyone who can get a high technicality index with many channels.
4 channel songs are easier to get a high technicality index with becuase you
only have a few channels to work with so you pack more into it.

Here is a little table for idle interests sake, listing a few popular
composers and their complexity indexes, using some of their more popular 
tunes.  Note that this is not a comparison of tunes becuase they are 
different styles.  Of course more mellow tunes are going to have lower 
technicality indexes.

Name             Filename       Composer            Rating
----------------------------------------------------------
StarShine      - STRSHINE.S3M - Purple Motion/FC  - 30.8%
Realization    - REALIZE.S3M  - Necros/LD/FM      - 15.7%
Talisman       - TALISMAN.MOD - FireLight         - 39.8%
Dust to Dust   - DUST.S3M     - Leviathan/Ren     -  5.5%
Modern Society - CCMODERN.MTM - C.C.Catch/Ren     - 30.0%
Ice Frontier   - ICEFRONT.S3M - Skaven/FC         - 22.0%
Jammin' Cindy  - JAMMIN.MOD   - Vinnie/SpaceBalls - 46.3%
Just for Blues - JUSTBLUE.MOD - Dizzy/CNCD        - 43.1%

52.5% is the highest index I had ever seen and this was achieved with 
Purple Motion's chip tune 'inspiration', but then someone sent me a chip
tune called WIZARDRY.MOD and it got 76%!

Index    Rating               FireLight's MooCow Rating
-----------------------------------------------------------------------------
0-9      Zzzzz :)             Cow chewing grass
10-19    Average complexity   Cow going for a walk
20-29    Fast Paced           Cow hitting an electric fence
30-39    Crazy                Cow having a mooeleptic fit
40-49    Going off!!!!        Its no good captain she canna hold much longer!
50->     Psychopathic!!!      Spaceshuttle re-entry type burning cows!!
-----------------------------------------------------------------------------


Ŀ
  2.2.2 Pan Cycle Effect (tm)  

This cool feature only works in the Main interface screen.
When you hit 'c', each channel starts to sweep it's pan value left and right
according to the speed of the song (ie the faster the song the faster the
sweep).

It determines which direction to start sweeping by it's original pan value.
If the pan value is to the left, then the effect will begin it's cycle by
moving to the left first.
The same goes for if the channel started on the right side of the speakers,
it will start cycling by heading to the right.

Hit 'c' to stop it again.


Ŀ
  2.3 Blob/VU Screen  

This screen is a bit more interesting to look at than the main screen, as
it has fake VU bars at the top, according to the volume of each channel,
and the frequency/volume blobs taking up the rest of the screen.

These frequency/volume blobs are positioned according to what sample they
are playing.  So yes, that means each blob is allocated to 1 channel of a 
song.

Therefore if a 16 channel song is playing, there will be 16 blobs.
They will jump left and right according to the current frequency of the 
channel.  At it's lowest point (to the left), it will usually be about octave
2 or lower.  At it's highest point (to the right), it will be in the high
octaves of 7 to 9.

Pressing tab in this case, will convert a blob into a number, so you get
some meaningfull channel information rather than just blocks jumping all over
the screen.

The last point to make is that each blob will fade in and out according to
the volume of the channel.


Ŀ
  2.4 Tracker Screen  

This is my favourite screen, and displays the pattern data rolling past as if
you were watching a tracker.

Pressing TAB will move the glowing channel cursor right across the screen.
Sorry but you can't move the cursor left using shift-TAB, as my keyboard
handler wont allow it. :)

You might notice a small lag when each pattern changes, due to it having to
redraw a whole pattern to an offscreen buffer before it can start scrolling
it up the screen.
This depends greatly on the speed of your computer, and the number of 
channels used in a song.  My 486dx-33 with a 16 channel song would experience
about a 3 row lag.
		

Ŀ
  2.4 Technical Information Screen  

This interface screen is interesting to look at, but may not mean a lot to a
lot of people.  It is GREAT if you are coding your own player (as part of the
FMODDOC 2 tutorial), and want to reference your figures against a working 
player.
It shows virtually EVERY runtime variable from the FMOD music system, 
including the period/volume/etc values, and effect variables.

Pressing TAB will allow you to move the glowing cursor to the right, so you
can inspect more channels that are off the edge of the screen.
Again, shift-TAB is not supported to move left.

Ŀ
  2.5 File Selector  

Well here it is for all you people who kept asking for it.  I hate coding
these sort of things becuase I think they are a waste of time, but out of
the graciousness of my heart I have included one :)

** WARNING : It may hang on some peoples machines.. im not interested in
			 fixing it though.  See BUG.TXT for more about it.

It has directory sorting, which is achieved by pressing F1, F2, F3 and F4.
Each function key supports a different method of sorting.

Use the arrows to navigate your way through the directory tree, and press
ENTER to change into a directory, or try and load a file.

You can use the file selector while a song is playing.

You cannot press enter to return to the interface screen, as this key is
reserved for loading files etc as I just explained before.  To return to the
interface you have to press escape.

Pressing any other key on the keyboard corresponds to a disk drive you would
like to change to.
ie. Pressing 'C' would change you to drive C:

A small bug in the file selector is when you try and change to a floppy drive
when there is no disk in it.  The REAL MODE version of FMOD handles this
perfectly and displays a message box, asking to you insert a disk.
The PROTECTED MODE version does not handle it so gracefully and ignores my
interrupt trap which should catch this exception, and goes ahead printing a
'abort, retry, fail' message.  Just select 'retry' until your disk is 
inserted properly and FMOD will continue working normally.

Ŀ
                            : SECTION 3 :                             
                     Miscellaneous Information                        


Ŀ
  3.1 FAQ (Frequently Asked Questions)  


Where's the XM support?
=======================
I have XM support in my player but i'm not including it becuase it's not
100% and all I would get would be flames on it not being correct.

Why does FMOD show sample sizes that arent the real size of the sample?
=======================================================================
In the main screen, the samples length can sometimes be smaller than the
actual size of the sample.  The reason for this is that FMOD clips all
looping samples at the last loop point, to save GUS dram space.  You will
notice that all looping samples have the size the same as the loop end 
point.

Why do some samples start 2 bytes past the end of the previous sample and 
waste that extra byte?
==========================================================================
The reason for this is that FMOD writes an extra byte on some samples to
fix a clicking problem the GUS has with looping samples.
Also recently the samples have been 32byte aligned in gus memory, so the
samples all start on divisors of 32.

Why are you so popular with women?
==================================
My secret is carrying a large german sausage stuffed in my pants.


Ŀ
  3.2 Contact Information  


Contact me with bug reports, messages, flames, greetings and worship to.. :)

Email : firelght@suburbia.apana.org.au
 Post : Brett Paterson,
	48/A Parr st, 
	Leongatha 3953,
	Victoria, Australia.

Ŀ
  3.3 Greetings  

I dont normally greet but some greets MUST go out to the following people
who have helped me over the last year in giving me hints etc whilst coding
this player.

	Shades : at the very start, thanks for some invaluable advice
   Brad Thomas : for fixing the 'only comes out in 1 speaker' GUS bug for me!
StarScream/Ren : long time ago for the help and flames -  (oh and for MTM ;)
	   GodHead : For inspiring the new interface! ie. 'the iface sucks FL' :)
	Benzel : For having a shitty PC that FMOD never worked on
	Paul Clift : For being the principal beta tester.
#coders people : For bug reports and ideas, etc (like the file selector)

Also some generic greets:

The Cows   : ShadowK0w, BaseK0w, DarkangelK0w, LpegK0w  
			 #k0ws rules! m00 to th3 ph4t b0v1n3Z & th3iR UdD3rz! :)
The Ozzies : Jase, Rogue, Void, Random, MZ, Chuckb, Bartist, Zenic..
The Losers : everyone on irc.

Also all the too many to count (approx 20 emails a week) people who have sent 
me mail about fmod and my music..

FireLight
