LA - Lossless Audio compressor
==============================

Version 0.4, (c) Michael Bevin 2002-2003

This program is freeware. Please feel free to use and distribute it.


* What Does it do?

La performs lossless compression on mono+stereo 16-bit wav files.
Being 'lossless' means that no data/quality is lost in the compression -
when uncompressed, the data will be identical to the original.


* How well does it work?

The compression ratios of La depend on the type of music file being
compressed, but the compression size will generally range between
40% - 70% of the original.

This ratio is of course modest in comparison with lossy formats such as
.mp3, however La does (at time of writing) compress around 1.5% better on
average than any other lossless compression programs.

Speedwise, La runs around 1.5x real time on my Pentium III-1000. This
is quite slow relative to comparable compressors, however corresondingly
the compression rate is slightly higher than the others. Note that this
version contains no 'fast' mode or such like - this, along with many other
features, will have to wait till future releases.


* Installation

Unpack the archive (tar -xjf la04.tar.bz2) into an appropriate place.

La should run fine straight away (note, I have to type ./la on my system
because la appears to be an already existing command).

To install the xmms plugin, simply copy libla.so to the xmms input plugin
directory (type xmms-config --input-plugin-dir to find out where this is).

The xmms plugin should basically work, and seeking should be possible. The
visualisation should also work. However, it still tends to crash when you
give it corrupt files (rather than nicely skipping over them as it should
do).

The version of xmms I use is 1.2.6. Please let me know if the plugin works or
doesn't work for you with other versions.


* Usage Instructions

la [flags] input-filename [output-filename]

Flags
 -high      - high compression mode - slower, but better compression
 -overwrite - automatically overwrite existing files
 -cin       - when decoding/encoding, use console input
 -cout      - when decoding,          use console output
 -cinout    - when decoding, use console input+output
 -noseek    - disable seeking (improves compression slightly)
 -nohead    - when decoding, disables outputting of .wav headers

Example usage
  la foo.wav          - compress   foo.wav to foo.la
  la foo.la           - decompress foo.la  to foo.wav
  la -overwrite *.wav - compress all .wavs in directory, replacing
                        any existing .la files.
  cat  foo.la | la -cinout > foo.wav - decompress foo.la to foo.wav

When using wildcards, only the input name can be specified. The output
names will be automatically determined as the original name with the new
extension.


* Features

  - Windows and Linux versions.
  - High compression performance (comparisons show it to average approximately
    1.5% better than any competing programs).
  - Winamp and Xmms plugins.
  - CRC checking.
  - Windows Frontend with multiple encoder support and FreeDB support.
    (this will hopefully be ported to Linux using Mono when Mono development
     has progressed far enough).
  - Third-party GUI thanks to Wim Speekenbrink (see
    http://home.wanadoo.nl/~w.speek/la.htm).
  - ID3 v1.1 tagging support (at least, the Winamp plugin should be able to
    read them).


* To Do

Theres a lot of additional features this program could do with. Here is just
a short list of the most desirable features, most of which I hope to address
sometime soon :-
- Support of 8-bit, 24-bit and 32-bit .wav files.
- More plugins (perhaps ACM next - hints on getting started anyone???).
- More tagging support.
- As always, I'd like to improve the compression and speed further.

Anyone with some form of help to offer regarding writing plugins or GUIs,
please contact me.


* Change Log

- Changes between 0.3d and 0.4

New faster default mode, which compresses almost as well but is almost 2x
faster.

Old default mode is now 'high' mode and compresses a little better at about
the same speed.

New multi-encoder Windows frontend with FreeDB support.

New plugin for the (Windiows) foobar2000 player.

Now has better console-in and console-out support.

New Windows installer.

Added html documentation (to Windows version).


- Changes between 0.3 and 0.3d

Big bug fix to entropy coder - was causing pure noise examples to not decompress
properly!

Small bug fixes to decompressor and plugins.

When decoding both console input and output now work.

Winamp plugin should read ID3 v1.1 tags.

Linux version together with xmms plugin released!


- Changes between 0.2 and 0.3

Compression has been improved around 0.3% (i.e. compressed files average around
0.6% smaller). Speed is approximately the same as the previous version.

The file format is of course different due to the above compression changes,
however La 0.3 will still play files from La 0.2.

A couple of bugs in the winamp plugin have been fixed, the major one was that
it previously assumed all files where 44khz and thus played (for example) 22khz
files at double speed.

Handles .wav files with more complicated headers better.


* Differences to Windows version

La for Linux should work exactly the same as the corresponding Windows
version. The source used to compile the main program is exactly identical
(i.e. no #defines doing different stuff under Windows / Linux, rather 100%
identical), so there should be relatively little chance of compatibility
problems.

On my computer the Linux version runs around 15% slower than the Windows
version. It is also quite a lot larger. This is probably simply due to the
different compilers used - under Linux I'm using the Intel compiler (gcc
performs even worse again), under Windows Visual C++ .Net.

Also, the xmms plugin is also not quite so far developed as the corresponding
winamp plugin is in windows.


* Credits

I appreciate greatly the help provided from the following people :-

Dave Bryant (Wavpack author)
Matthew Ashland (Monkey's Audio author)
Wim Speekenbrink (created a Windows Frontend for La)
Malcolm Taylor (Rkau author)
Frank Klemm (Musepack author)
Sami Makinen (SBC Archiver author)


* Contact

Please e-mail me with any questions / bug reports at support@lossless-audio.com.

Also see the La homepage at http://lossless-audio.com/ for the latest in
news and downloads.
