This is version 4.3 tracker.

Just a quick question-and-answer file.

- What is tracker, what do I need to use it ?
tracker is a generic soundtracker player for unix-like machines. 
You need an amiga or a sparcstation or an siligon graphics iris, 
or a PC with unix and soundblaster, or a DECstation, or an HP700... 
Your machine should be able to produce sounds, that goes without 
saying. You also need tunes to play (mod files). Some are available 
on nic.funet.fi, for instance.

You will also want to get zoo and lha for your machines. 
They should be on nic.funet.fi or aminet.

- How to compile it ?
The Makefile should be self-explanatory. Mostly you need to set it up
for your machine. The sparc/solaris target depends on which version
of sunos you've got. You will notice if you set it up incorrectly.
Right now, solaris is still a mess, so some hacking around might be needed.
For the amiga and SAS/C, a smakefile is provided.


- How to use it ?
tracker -help will give you a good idea of what's available.

- How does it compare with SparcTracker, or str32 ?
Well it's better... No, actually it's the same program, but the name has
changed as it was evolving.  So anything labelled SparcTracker100, 
SparcTracker1.1, or sparctracker1.2 is OLD.  Don't send me any bug reports
about these older versions, this is useless.  Well, I'll try not to change
the name of the program again...

- How does it compare with other trackers on the amiga ?
First, its interface is not very friendly. 
But then, its source is in C, so it's easy to fix what you don't
like, and it should get better over time. Also, it plays entirely by the
rules, so it should work with any foreseeable releases of the OS, or even
with audio cards that patch the audio.device in a reasonable way.
However, there is more to it than meets the eye. The way tracker works is
rather more intricate than most other players, and it should solve most
timing problem in a rather elegant way.

- What's new ?
from 3.19:
* full amiga support. Good playing model.
* rewrote Makefile.
* minor options changes.
* much easier to tinker with than the previous versions. hooks for future
upgrades everywhere.
* tracker 3.xx is no longer supported. I won't answer to bug reports 
concerning it except to redirect you to the newer version.

from 3.11:
* amiga support ! Finally.
* solaris 2.2 support.
from 3.10:
* general bug-fixes, plays some modules it goofed on (speed check, extended
command loop now works).
* repeat working better.
* should be rather difficult to get cores out of it.
* may fork when loading a new module, though not working satisfactorily yet.
* almost readable scrolling display.
* support for DECstations (thanks to Andrew Leahy (A.Leahy@st.nepean.uws.edu.au)
* support for hpux (thanks to Bjoern Stabell (bjoerns@staff.cs.uit.no)
* partial support for solaris
from 3.9:
* linux: small bug-fix, 16 bit support
* general: bug in finetune fixed
from 3.7:
* background/foreground csh-aware mode, much cleaner termio.
from 3.6:
* support for linux (thanks to Hannu Savolainen (hsavolai@cs.helsinki.fi)
* small bug fix in termio: restore to a sane tty on exit.
from 3.0 (never released):
* more efficient replay routine, works faster, all glitches finally suppressed
(I hope).
* more options, better integrated.
* much cleaner source code.
from 2.17:
* tracker is aware of the sparcstation 10.
* bug fix for command 5 (portamento slide), that now works like
portamento. Mostly affects apocalypse module.
* support for most protracker extended commands, including finetune.
* dynamic adjustements to the output frequency, fast skip, much better
user-response overall.
* better runtime interface (without those strange signals sequences)
* better screen output
* audio flush on the sparc, don't have to wait 10sec+ to exit.

- Which kind of modules can it play ?
MOST soundtracker/noiseplayer/protracker modules should play out ok. Due
to various disagreements between all the soundtracker versions (never forget
soundtracker is an horrible HACK, a big KLUDGE), it is a *REAL* nightmare to
try and make some commands work. What you have is my best effort at trying
to outguess every soundtracker composer in existence... Obviously, I haven't
completely succeeded. MED support I've thought of, but don't forget, to
make tracker work, I need to reverse-engineer assembly routines coded like
spaghetti, and transform it into more or less human-readable, normal C code.
So up till now, I haven't had time enough to do the same with MED. Teijo's
code is not exactly limpid, MEDplayer itself tends to change from release to
release. So maybe one day...
Here is what is missing from the protracker format
* extended commands 3/4/7/13/14

Actually, if you know other player programs, you will notice that tracker is
better at that compatibility game than most of them, like <BLIP>, <BLOP> or <ZP>
(names intentionnally omitted:-) )

- What are these weird things scrolling on my screen ?
These are some informations on the current module, like its name,
the distinct sample lengths and their names. 
Oh, you mean -scroll ? Well, this is the tune being played. Get any protracker
doc, I think you'll understand what's going on.

- I can't change the volume of the sound.
That's intentional. There are other programs that do that quite well.
What you really want is an audio control panel. There are some nifty ones
around, just search carefully. There is no real need for tracker to support 
variable
volume.

- There are some ``not supported'' messages from time to time.
tracker doesn't support the whole set of protracker commands, so it tells
you when it doesn't play something the way it's supposed to be played.
I don't know if I'll implement the remaining commands, as they are symptomatic
for me that the mod format is just a big kludge, and not getting any better...

- I want to use tracker on another machine.
Then you'll have to port it. You can wedge in at two levels: either replace
the audio.c file or the xxx_audio.c. The audio.c works at the amiga level:
it interprets commands to play samples and repeat parts in terms of 
resampling them at the right frequency. If your machine supports four fully
independent channels (like the amiga), you shouldn't have to resample, but
instead issue the proper commands for these samples to play.
Else, you'll have to use resampling, and going through a specialized xxx/audio
file. The examples you have should be quite enough.
If your unix is funky enough, define your machine to use stubs in Unix/ui.c 
at first, then try to get it back into action...
If you make tracker run on another machine, please send me the required changes.
Try to keep it to the audio.c xxx/audio.c and xxx/ui.c file If you make any
other enhancement, I might like to incorporate it in a further release, but
that part of the code may have evolved beyond control in between. xxx/audio
files I can grope !

- How do I know which version I have ?
Look at the version strings embedded in the various source files, and into
the program itself. The highest one is the winner (usually the one from 
main.c).

- What's going to happen next ?
<from v 3.19>
Porting tracker back to the amiga was very insightful. Even though I didn't
have to change the source much, I now have lots of ideas about things to add
and change throughout the whole source. The next version will probably be
sturdier, easier to modify, and it will probably possible to hook a real
graphic interface somewhere. Also, I intend to implement better recognition
of various variants of the tracker format at some point, and even MED support
maybe. There will probably be some interface to sox in the near future, plus
some sturdier tools to read modules, extract samples from them, and compress
them better (using gzip/lha/zip to compress the module part, and shorten
for the samples part).

Well, the code IS sturdier and easier to modify now, and the amiga version
features a fully graphic user interface. I don't intend to add an X window
interface to the unix version in the near future as I don't have the time.
However, all the hooks are there, so if you want to do it, go ahead.
Recognition of Med format files still turns out to be a rather nasty problem,
especially since there are so many incompatible MED formats, and so little
documentation. Tikkunen is a good programmer, but a poor doc writer...

	Marc Espie
