.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.\" Please adjust this date whenever revising the manpage.
.\" 
.\" Some roff macros, for reference:
.\" .nh        disable hyphenation
.\" .hy        enable hyphenation
.\" .ad l      left justify
.\" .ad b      justify to both left and right margins
.\" .nf        disable filling
.\" .fi        enable filling
.\" .br        insert line break
.\" .sp <n>    insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.TH "UADE" "1" "2007-02-16" "Heikki Orsila and Michael Doering" ""
.SH "NAME"
UADE \- Unix Amiga Delitracker Emulator
.SH "SYNOPSIS"
.B uade123
[\fIoptions\fR] \fIfiles\fR ...
.SH "DESCRIPTION"
.BR uade123
plays old amiga music formats by emulating Amiga hardware. It
re-uses Amiga Eagleplayer plugins to play different formats. Eagleplayer
plugins require an implementation of the Eagleplayer API and AmigaOS APIs
to run on. Therefore Eagleplayer API and parts of AmigaOS have been
implemented in uade.

uade123 is a command line player that can be used to play Amiga songs. It's
options and behavior are documented here. There is also a plugin for the
audacious and 
.BR xmms
(1).

Section
.BR FILE\ FORMAT\ DETECTION
explains hardships of recognizing amiga formats and consequently problems it
may cause for the user (and authors).

Section
.BR COMMAND\ LINE\ OPTIONS
documents command line options for uade123.

Section
.BR ACTION\ KEYS
documents action keys which are used to issue run-time commands to control
playback. These commands include switching subsong, skipping to next song,
skipping fast forward, pausing and altering post-processing effects.

Section
.BR CONFIGURATION\ FILES
documents variables which can be changed in
.BR eagleplayer.conf ,
.BR song.conf
and
.BR uade.conf
to alter default behavior of uade123 and other frontends.
.BR eagleplayer.conf
is used for eagleplayer plugin specific configurations.
.BR song.conf
is used for song specific configurations which can be used to change
sound effects or avoid problems.
.BR uade.conf
is the main configuration file that can be used to set defaults for
variables. Command line options will always override uade.conf options.

.SH "FILE FORMAT DETECTION"
Creating file detection heuristics for 200 formats is difficult and most of
those formats are undocumented or otherwise not easily recognizable. Therefore
we have to detect some formats by file name prefixes and postfixes which
can easily cause problems. For example, many different protracker variants
are named with 'mod' prefix and the format lacks version number inside
the data file making it rather hard to recognize proper mod variant. 
Sound output can be buggy with some unrecognizable mod variants. When file
format can not be deduced based on file contents, a heuristics based on the
file name must be used. This may sound strange, but many of the
m68k machine language player plugins are black boxes which have no reliable
mechanism to validate whether a given file belongs to them or not.
In uade123 the filename based heuristics may cause
unrecognized songs and in XMMS it can cause conflicts with other plugins.
.BR contrib/uadexmmsadd
script can be used to add uade:// prefixed playlist entries into XMMS to
avoid conflicts with some of the existing mod plugins for XMMS. However,
we recommend disabling conflicting XMMS plugins if convenient.

.SH "COMMAND LINE OPTIONS"

\fB\-1, \-\-one\fR
Play at most one subsong per file.
.TP
\fB\-@\fR filename\fB, \-\-list=\fRfilename
Play song files listed in the file.
.TP
\fB\-\-buffer\-time\fR=x
Set audio buffer length to x milliseconds. It can be used to avoid audio
underruns on some systems. The default value of this setting is provided
by the libao. Notice that libao support for ALSA has a bug
in versions 0.8.6 and earlier that buffer_time must actually be given in
microseconds rather than milliseconds.
.TP
\fB\-d, \-\-debug\fR
Turn debug mode on. Experts only.
.TP
\fB\-\-detect\-format\-by\-content\fR
Set file magic mode. The songs are only detected by file contents.
File name based heuristics (prefixes and postfixes) are not used.
.TP
\fB\-\-disable\-timeouts\fR
Disable timeouts. The frontend will never timeout a song.
.TP
\fB\-\-enable\-timeouts\fR
Enable timeouts. The frontend will normally timeout a song.
.TP
\fB\-e\fR format
Set output file format (au, raw, wav). Use with
.BR -f .
.TP
\fB\-f\fR filename
Output sound data to filename.
.TP
\fB\-\-filter\fR
Enable filter emulation. It is enabled by default but could be disabled from
uade.conf.
.TP
\fB\-\-filter=\fRx
Set filter emulation mode to
.BR x .
x is a500, a1200 or none. A500 is
the default. 'none' means disabling the filter. Please note that A500 and A1200
are audibly different on every
song even if a song doesn't use filtering.
Surprisingly, the biggest
difference between A500 and A1200 is filter behavior when LED is off (i.e.
song doesn't use filtering). When LED is off, A1200 does very little filtering
but A500 does some filtering that can be easily heard. Please try switching
between A500 and A1200 modes. You should get same results with real
Amigas too :-)
.TP
\fB\-\-force\-led=\fRx
Force Amiga filter on or off. 0 means "OFF" and 1 means "ON".
.TP
\fB\-\-frequency=\fRx
Set output frequency to x Hz. The default is 44,1 kHz. Note that this option
applies to all frontends (including Audacious and XMMS plugins).
.TP
\fB\-G, \-\-gain=\fRx
Set volume gain to
.BR x .
x must be a non-negative value. The default value is 1,0.
.TP
\fB\-g, \-\-get\-info\fR
Print playername and subsong information to stdout and then exit. This is
useful for recording script.
.TP
\fB\-\-headphones\fR
Enable headphones postprocessing effect.
.TP
\fB\-\-headphones2\fR
Enable headphones 2 postprocessing effect.
.TP
\fB\-h, \-\-help\fR
Print command line help.
.TP 
\fB\-i,	\-\-ignore\fR
Force eagleplayer to play the song.
.TP
\fB\-j\fR x\fB, \-\-jump=\fRx
Jump to song position of x seconds.
.TP
\fB\-k\fR x\fB, \-\-keys=\fRx
Turn action keys on (x = 1) or off (x = 0).
.TP
\fB\-m\fR filename
Set module filename.
.TP
\fB\-n, \-\-no\-ep\-end-detect\fR
Play music ad infinitum by ignoring song end reported by the eagleplayer.
Note that this does not affect timeouts.
.TP
\fB\-\-ntsc\fR
Set NTSC mode. This can be buggy.
.TP
\fB\-\-pal\fR
Set PAL mode. This is the default.
.TP 
\fB\-p\fR x, \-\-panning=\fRx
Set panning effect to x. This means mixing left and right channel affinely
together. n is a value between 0 and 2. 0 is full stereo, 1 is mono and
2 is inverse stereo.
.TP 
\fB\-P\fR playerfile
Set filename of the eagleplayer.
.TP 
\fB\-r, \-\-recursive\fR
Play directories recursively.
.TP
\fB\-\-repeat\fR
Play playlist over and over again.
.TP
\fB\-\-resampler=\fRs
Set resampling method to
.BR s .
It can be
.BR default ,
.BR sinc
or
.BR none .
See RESAMPLERS section for more information.
.TP 
\fB\-s\fR n\fB, \-\-subsong=\fRn
Choose subsong n.
.TP 
\fB\-S\fR scorefile
Set filename of sound core. Experts only. Useful for debugging sound core
related problems. Picking score file from earlier releases may help revealing
the problem source.
.TP
\fB\-\-scope\fR
Turn on audio register debug mode. Prints Paula hardware register hits on
the command line.
\fBSupport for this option has to be enabled from the
configure script (--with-text-scope). \fR
.TP
\fB\-\-set=\fR"option1 option2 ..."
Set song.conf options for given songs. uade123 will not play anything if
--set is used. --set makes uade123 remember song specific options for
future playback. For example, this option is useful for working around
bugs in ripped songs (and even uade ;-).
Example: Set volume gain to 2 for mod.foo:
.sp 1
uade123 --set="gain=2" mod.foo.
.sp 1
Another example: Force mod.uptim8 to be played as a Startrekker 4 song:
.sp 1
uade123 --set="player=PTK-Prowiz epopt=type:flt4" mod.uptim8
.TP 
\fB\-\-speed\-hack\fR
Enable speedhack. Emulate all instructions to be executed
in one m68k cycle. Some players, such as EMS v6, take too
many m68k cycles to be real\-time. This option gives them
enough m68k cycles. Notice that you do _not_ need to use this
switch with EMS v6 or Octamed, because it is automatically enabled for
those formats. A replayer usually knows to ask for speedhack.
.TP
\fB\-\-stderr\fR
Print all messages on stderr. This is useful if one uses -f /dev/stdout as
a trick to pipe sample data on the command line.
.TP 
\fB\-t\fR x\fB, \-\-timeout=\fRx
Set song time out to x seconds. Default is infinite (-1).
.TP 
\fB\-w\fR x\fB, \-\-subsong\-timeout=\fRx
Set subsong timeout to x seconds. -1 means infinite. Default is 512 seconds.
.TP
\fB\-v, \-\-verbose\fR
Turn verbose mode on. This is useful for debugging strange situations.
.TP
\fB\-x, \-\-ep-option=\fRy
Use eagleplayer option y. For example, to force a module to be played as a
Protracker 1.1b module, execute: uade123 -x type:pt11b mod.foobar
.TP 
\fB\-y\fR x\fB, \-\-silence\-timeout=\fRx.
Set silence timeout to x seconds. If x seconds of silence is detected the
(sub)song ends.
.TP 
\fB\-z, \-\-shuffle\fR
Randomize playlist order before playing.
.SH ACTION KEYS
uade123 can be controlled interactively on the command line by pressing
specific action keys.
.br
 [0-9]         Change subsong.
.br
 '<'           Previous song.
.br
 '.'           Skip 10 seconds forward.
.br
 SPACE, 'b'    Next subsong.
.br
 'c'           Pause.
.br
 'f'           Toggle filter (takes filter control away from eagleplayer).
.br
 'g'           Toggle gain effect.
.br
 'h'           Print keyboard commands (this list)
.br
 'H'           Toggle headphones effect.
.br
 RETURN, 'n'   Next song.
.br
 'p'           Toggle postprocessing effects.
.br
 'P'           Toggle panning effect. Default value is 0,7.
.br
 'q'           Quit.
.br
 's'           Toggle between shuffle mode and normal play.
.br
 'v'           Toggle verbose mode.
.br
 'x'           Restart current subsong.
.br
 'z'           Previous subsong.
.SH CONFIGURATION FILES
All configuration files are in a line based format. This means that line breaks
(\\n) must be used properly. Lines beginning with # are comment lines. Empty
lines are ignored.
.SH eagleplayer.conf
Each line in
.BR eagleplayer.conf
sets eagleplayer specific options. It is used, among other things,
to specify file name extensions to different formats. It has the format:
.sp 1
playername prefixes=prefix1,prefix2,... [opt1 opt2 ...] [comment]
.sp 1
.BR playername
refers to an existing eagleplayer in players/ directory.
.BR prefixes
is a list of file prefixes and postfixes that are associated with
this eagleplayer.
.BR opt1 ,
.BR opt2
and so forth are options that can be given to the player.

Valid options for eagleplayer.conf are listed in the
.BR song.conf
section.
.sp 1
Some example lines for eagleplayer.conf:
.sp 1
custom          prefixes=cust
.br
fred            prefixes=fred           broken_song_end
.br
PTK-Prowiz      prefixes=mod,pha,pp10   always_ends
.br
EMSv6           prefixes=emsv6          speed_hack
.br
foobar          comment: this format is not detected by a filename
                prefix but file content as it should be
.SH song.conf
.BR song.conf
is a configuration file for applying work-arounds for songs that
have problems with eagleplayers. Protracker is especially notorious
for having many incompatible versions, and modules do not have version
information about the editor which was used to create them.

The file shall have lines of following format:
.sp 1
md5=XXX option1 [option2 ...] [comment: YYY]
.sp 1
Valid options for eagleplayer.conf and song.conf:
.sp 1
a500                 Use A500 filter emulation
.br
a1200                Use A1200 filter emulation
.br
always_ends          A song will always end. This means that song end
                     detection code is perfect so timeouts in uade.conf
                     can be ignored. However, timeouts given from
                     command line will override this setting.
.br
broken_song_end      Song end reported by the eagleplayer is ignored
.br
detect_format_by_content  A song can only be detected by contents,
                     never by filename prefix or postfix
.br
detect_format_by_name     eagleplayer.conf only: the eagleplayer is
                     detected by name extension only. Furthermore,
                     any eagleplayer that recognizes the same file by
                     content is ignored. Do not use this option
                     without a good reason. Name extensions are
                     unreliable.
.br
epopt=x              Append option x for eagleplayer. Valid options
                     are listed in section "EAGLEPLAYER OPTIONS".
.br
gain=x               Set gain value to x
.br
ignore_player_check  Eagleplayer tries to play the song even if it is
                     not recognized as being in proper format. One
                     can use this option with bad eagleplayers in
                     eagleplayer.conf and bad rips in song.conf.
.br
led_off              Force LED off
.br
led_on               Force LED on
.br
no_ep_end_detect     Song end reported by the eagleplayer is ignored
.br
no_filter            No filtering (avoid this option, using a1200 is
                     better)
.br
no_headphones,       No headphone effect
.br
no_panning           No panning
.br
no_postprocessing    No postprocessing effects
.br
ntsc                 Uses NTSC timing (can be buggy)
.br
one_subsong          Play only one subsong per file
.br
pal                  Uses PAL timing
.br
panning=x            Set panning value to x
.br
player=name          Set eagleplayer, where name is the directory entry
                     in players/ dir. This option is not allowed in
                     eagleplayer.conf.
.br
reject               Reject a song (usable for blacklisting). This
                     option is not allowed in eagleplayer.conf.
.br
resampler=x          Set resampling method
.br
silence_timeout=x    Set silence timeout
.br
speed_hack           Enable speed hack
.br
subsongs=x,y,...     Set playable subsong (not implemented yet)
.br
subsong_timeout=x    Set subsong timeout
.br
timeout=x            Set timeout
.br
vblank               Play in vblank mode (works only for protracker variants)
.sp 1
.BR comment
is a tag after which everything is considered just a comment
about the line.
.sp 1
Those options should be self-explanatory ;) A few example lines for song.conf:
.sp 1
md5=09ad7aed28ec0043e232060546259767 broken_subsongs comment cust.Bubble_Bobble reports wrong subsong numbers                        
.sp 1
md5=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx speed_hack comment this is the only song in format foo that needs speedhack    
.sp 1
md5=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy led_off comment this song just sucks with filtering                  
.sp 1
md5=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz led_on comment turning LED ON makes this song sound c00l       
.sp 1
md5=wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww no_panning subsongs=2,5 comment only subsongs 2 and 5 sound good
.sp 1
md5=c351076a79033336a0ea1747b6d78783 ntsc comment Play Platoon song in NTSC mode
.SH uade.conf
.BR uade.conf
sets default variables for configuration settings. Each line
may contain at most one command. The configuration file is read from
users home directory (
.BR $HOME/.uade2/uade.conf
) if it exists. If it does not
exist, it is tried from
.BR $PREFIX/share/uade2/uade.conf
 . Making a copy of the
uade.conf into $HOME/.uade2/ can be useful for users. The same uade.conf
controls settings for all frontends. Specifically, this includes the XMMS
plugin too.

The valid commands are:
.sp 1
    action_keys x      Set action keys "off" or "on".
.br
    buffer_time x      Set audio buffer length to x milliseconds.
.br
    detect_format_by_content  Only detect files by content. Do not
                       use file name based heuristics.
.br
    disable_timeout    A song will never timeout.
.br
    enable_timeout     A will timeout normally.
.br
    filter x           Set filter emulation mode to be A500, A1200
                       or none.
.br
    force_led x        Force LED "on" or "off"
.br
    force_led_off      Same as "force_led off"
.br
    force_led_on       Same as "force_led on"
.br
    frequency x        Set output frequency to x Hz. The default is
                       44,1 kHz.
.br
    gain x             Set gain value to x which is a non-negative
                       value. The default value is 1,0.
.br
    headphones         Enable headphone effect.
.br
    headphones2        Enable headphone effect 2.
.br
    ignore_player_check    Force eagleplayers to recognize any given
                           song.
.br
    no_ep_end_detect   Disable eagleplayers ability to end song.
                       See --no-ep-end-detect.
.br
    no_filter          Same as "filter none".
.br
    ntsc               Set NTSC mode. (might not work properly)
.br
    one_subsong        Play only one subsong per file.
.br
    pal                Set PAL mode.
.br
    panning x          Set panning value to x inside range [0, 2].
                       The default is 0.
.br
    random_play        Set random play or shuffle mode. Used for
                       uade123 only.
.br
    recursive_mode     Scan directories recursively. Used for uade123
                       only.
.br
    resampler x        Set resampling method to x. It is either
                       default, sinc or none.
.br
    silence_timeout x  Set silence timeout value to x seconds.
.br
    song_title x       Set song title for GUI plugins according to
                       given specification x. See section SONG TITLE
                       SPECIFICATION.
.br
    speed_hack         Enable speed hack mode.
.br
    subsong_timeout x  Set subsong timeout value to x seconds. -1
                       implies no timeout.
.br
    timeout x          Set timeout value to x seconds. -1 implies
                       no timeout.
.br
    verbose            Enable verbose mode
.br
.SH "SONG TITLE SPECIFICATION"
Song title for GUI frontends can be specified by using song_title option
in uade.conf. The default value for specification is %F %X [%P].
Following items are allowed in the specification:
.sp 1
    %F - filename                 %T - songtitle
.br
    %P - player or formatname 
.br
    %A - minimum subsong          %B - current subsong
.br
    %C - maximum subsong          %X - only display subsongs when more
                                  than one
.sp 1
An example of alternative specification that displays the song name
received from the eagleplayer (as opposed to file name):
.sp 1
    song_title %T %X [%P]

.SH "EAGLEPLAYER OPTIONS"
Eagleplayers can be given song specific or general options in song.conf
and eagleplayer.conf. Use epopt=x to set one option. It can be used many
times. You can also issue eagleplayer options from the command line
(so that they are not stored into song.conf) by using -x option:
"uade123 -x type:nt10 mod.foobar" will play mod.foobar as a Noisetracker
1.0 module. With -x option "epopt=" prefix must be dropped.
.sp 1
Valid options for eagleplayers:
.sp 1
PTK-Prowiz          epopt=vblank
                    epopt=type:<tracker>
                               <tracker> can be one of the following:
                                  st20  (Soundtracker 2.0 - 2.3)
                                  st24  (Soundtracker 2.4)
                                  nt10  (Noisetracker 1.x)
                                  nt20  (Noisetracker 2.x)
                                  m&k.  (Noisetracker M&K.)
                                  flt4  (Startrekker 4ch)
                                  pt10c (Protracker 1.0c)
                                  pt11b (Protracker 1.1b - 2.1a)
                                  pt23a (Protracker 2.3)
                                  pt30b (Protracker 3.0b)

.br
.SH "SUPPORTED FORMATS"
Quite a few. See documentation, eagleplayer.conf and players/ directory.
.SH "RESAMPLERS"
Internally Amigas Paula chip operates at 3,5 MHz, and in theory, it is
possible to generate a 1,75 MHz output signal. However, maximum DMA based
sample rate, which is approximately 28876 Hz, is limited by chip memory
access slots. These frequencies are not well supported with current
computer equipment, and synthesizing samples at 3,5 MHz would be very slow.
Regardless, in principle UADE "samples" Paula's output at 3,5 MHz and then
immediately resamples it to playback frequency, which is usually 44,1 kHz or
1/80th of the sample rate of Paula. This output frequency is configurable,
see
.BR uade.conf
section.
.sp 1
UADE currently supports three resampling methods:
.BR none
that directly discards 79 of the 80 samples;
.BR default
that estimates the true output value by averaging the last 80 samples
together (also known as boxcar filter). This is the recommended resampler; and
.BR sinc
that trades cpu for best high-frequency component removal through
low-pass filtering the audio with a sinc function.
.sp 1
The default resampler is a very good choice because it is pretty accurate
and very fast, but loses some treble and causes some aliasing distortion.
For high frequencies (above 44,1 kHz), sinc becomes an option and is probably
the best choice.
.SH "FILTERS"
The Amiga output circuitry contains a fixed low-pass filter on most models,
and a dynamic lowpass filter connected to the power LED (known as the
"LED filter"), which can be toggled on and off.
On the Amiga 1000, which was the first Amiga computer, the LED filter was
permanently enabled. In the succeeding models, such as the Amiga 500, the
LED filter was made optional, but another, permanent RC filter circuit was
added on the audio output. Finally, for Amiga 1200, the static filter was
removed altogether, and only the LED filter remains.
.sp 1
These low-pass filters were most likely added in order to make Amiga's
pulse-based audio sound softer, and to make lower sampling frequencies
useful for audio playback: by removing some of the treble, the hard
edges of a pulse waveform become rounder and the waveform undulates
more smoothly, mimicking many instrument sounds more accurately at lower
sampling rates. The downside of fixed filtering is that the smoothing
occurs with all the higher sampling rates, too.
.sp 1
However, with the introduction of Amiga 1200 and its AGA graphics modes
and spacious chip memory, it became possible to read more than 28876
samples per second from chip memory, and we guess that the fixed lowpass
filter was removed entirely in favour for accurate treble response.
.sp 1
The filter emulation is based on hi-fi measurements made on two particular
Amiga computers, Amiga 500 and Amiga 1200. The Amiga 500 output path was
found to contain a 6 dB/oct lowpass RC filter circuit with cutoff at 5000 Hz.
(Some early Amiga 500 revisions may have had 4500 Hz tuning for this filter.)
The LED filter was found to be a 12 dB/oct Butterworth lowpass filter with
cutoff value at approximately 3300 Hz. The details of the Amiga 1000 filter
arrangements are not known, because nobody has been able to provide any
samples.
.sp 1
Accurate digital simulation of analog filters is usually not possible
without some upsampling. When "default" method is used, the samples are
generated at the playback frequency, and the post-processing step that
applies filtering is composed with a series of hand-fitted first-order
IIR filters that together approximate the correct frequency response
for the expected synthesis frequencies of 44,1 kHz or 48 kHz.
.sp 1
The sinc resampling method, in turn, emulates the filters directly
at Paula's 3,5 MHz sampling frequency by folding the filters directly
into the shape of the fundamental synthesis unit, the BLEP. In the sinc
mode, the filters are realised by fitting the digital models for
(slightly modified) butterworth and RC filters with the parameters
mentioned above. Therefore sinc can be used on all frequencies above
44.1 kHz without quality loss (or increase, for that matter).
.SH "UAERC"
You can edit PREFIX/share/uaerc to edit Amiga emulation related
variable.
.sp 1
.B INCREASING AMIGA MEMORY FOR LARGE MODULE FILES
.sp 1
uaerc can be edited to increase Amiga memory. The
variable named chipmem_size (4 by default) controls the memory
allocation. The allocated memory size is determined by formula
chipmem_size * 512 KiB, and thus, there is 2 MiB of memory available
for modules by default. This variable can be set up to 16, which would
mean 8 MiB of memory for modules.
.SH "FILES"
.TP 
PREFIX/bin/uade123
Player executable.
.TP
PREFIX/share/uade2/eagleplayer.conf or $(HOME)/.uade2/eagleplayer.conf
.TP 
PREFIX/share/uade2/score
MC68000 sound core file
.TP 
PREFIX/share/uade2/players
MC68000 eagleplayer binaries
.TP
PREFIX/share/uade2/song.conf or $(HOME)/.uade2/song.conf
.TP
PREFIX/share/uade2/uade.conf or $(HOME)/.uade2/uade.conf
Main configuration file
.TP
PREFIX/share/uade2/uaerc
Configuration file for UAE
.TP
PREFIX/share/doc/uade-*
UADE documentation
.TP
PREFIX/share/man/man1/uade123.1
This man page.
.SH "EXAMPLES"
.TP 
\fBuade123 \-zr /path\fR
.br 
Play files under /path recursively in random order.
.TP
\fBuade123 \-f output.wav mod.foo\fR
.br
.TP
\fBuade123 \--set=epopt=type:pt10 mod.foo\fR
.br
Set protracker compatibility to Protracker 1.0c for mod.foo. See also -x.
.SH "INFORMATION SOURCES"
.TP
.B Public web forum
(primary place for all discussion):
.br
http://board.kohina.com/index.php?c=5
.TP
.B Project home:
.br
http://zakalwe.fi/uade
.TP
.B IRC channel:
.br
#amigaexotic at IRCNet
.TP
.B Project manager:
.br
Heikki Orsila <heikki.orsila@iki.fi>
.SH "VERSION CONTROL SERVER"
To access the version control you need Git: http://git.or.cz
.br
Execute:
.br
# git-clone git://zakalwe.fi/uade uade.git
.SH "AUTHORS"
\fBUADE\fP project was started by Heikki Orsila <heikki.orsila@iki.fi>.
There have been many other contributors. Most notable contributors
are Michael 'mld' Doering (for almost anything),
Harry 'Piru' Sintonen (MorphOS port) and Antti S. Lankila <alankila@bel.fi>
(Amiga filter emulation, resampling and postprocessing effect code).
