100 lines
3.1 KiB
Plaintext
100 lines
3.1 KiB
Plaintext
How to get started:
|
|
|
|
Edit the Makefile.
|
|
|
|
You should configure a few machine-dependencies and what
|
|
compiler you want to use.
|
|
|
|
The code works both with ANSI and K&R-C. Use
|
|
-DNeedFunctionPrototypes to compile with, or
|
|
-UNeedFunctionPrototypes to compile without, function
|
|
prototypes in the header files.
|
|
|
|
Make addtst
|
|
|
|
The "add" program that will be compiled and run checks whether
|
|
the basic math functions of the gsm library work with your
|
|
compiler. If it prints anything to stderr, complain (to us).
|
|
|
|
Edit inc/config.h.
|
|
|
|
Make
|
|
|
|
Local versions of the gsm library and the "compress"-like filters
|
|
toast, untoast and tcat will be generated.
|
|
|
|
If the compilation aborts because of a missing function,
|
|
declaration, or header file, see if there's something in
|
|
inc/config.h to work around it. If not, complain.
|
|
|
|
Try it
|
|
|
|
Grab an audio file from somewhere (raw u-law or Sun .au is fine,
|
|
linear 16-bit in host byte order will do), copy it, toast it,
|
|
untoast it, and listen to the result.
|
|
|
|
The GSM-encoded and -decoded audio should have the quality
|
|
of a good phone line. If the resulting audio is noisier than
|
|
your original, or if you hear compression artifacts, complain;
|
|
that's a bug in our software, not a bug in the GSM encoding
|
|
standard itself.
|
|
|
|
Installation
|
|
|
|
You can install the gsm library interface, or the toast binaries,
|
|
or both.
|
|
|
|
Edit the Makefile
|
|
|
|
Fill in the directories where you want to install the
|
|
library, header files, manual pages, and binaries.
|
|
|
|
Turn off the installation of one half of the distribution
|
|
(i.e., gsm library or toast binaries) by not setting the
|
|
corresponding directory root Makefile macro.
|
|
|
|
make install
|
|
|
|
will install the programs "toast" with two links named
|
|
"tcat" and "untoast", and the gsm library "libgsm.a" with
|
|
a "gsm.h" header file, and their respective manual pages.
|
|
|
|
|
|
Optimizing
|
|
|
|
This code was developed on a machine without an integer
|
|
multiplication instruction, where we obtained the fastest result by
|
|
replacing some of the integer multiplications with floating point
|
|
multiplications.
|
|
|
|
If your machine does multiply integers fast enough,
|
|
leave USE_FLOAT_MUL undefined. The results should be the
|
|
same in both cases.
|
|
|
|
On machines with fast floating point arithmetic, defining
|
|
both USE_FLOAT_MUL and FAST makes a run-time library
|
|
option available that will (in a few crucial places) use
|
|
``native'' floating point operations rather than the bit-by-bit
|
|
defined ones of the GSM standard. If you use this fast
|
|
option, the outcome will not be bitwise identical to the
|
|
results prescribed by the standard, but it is compatible with
|
|
the standard encoding, and a user is unlikely to notice a
|
|
difference.
|
|
|
|
|
|
Bug Reports
|
|
|
|
Please direct bug reports, questions, and comments to
|
|
jutta@cs.tu-berlin.de and cabo@informatik.uni-bremen.de.
|
|
|
|
|
|
Good luck,
|
|
|
|
Jutta Degener,
|
|
Carsten Bormann
|
|
|
|
--
|
|
Copyright 1992, 1993, 1994, by Jutta Degener and Carsten Bormann,
|
|
Technische Universitaet Berlin. See the accompanying file "COPYRIGHT"
|
|
for details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
|