| |
| /* |
| * 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. |
| */ |
| |
| 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. |
| |
| If it doesn't sound anything like the original, read the manual. |
| If it still doesn't sound anything like the original, complain. |
| |
| |
| 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. |
| |
| Another possibility is the use of a lookup table; you can turn on |
| this feature by replacing -DUSE_FLOAT_MUL by -DUSE_TABLE_MUL. |
| |
| If your machine does multiply integers fast, define neither. |
| |
| |
| |
| Bug Reports |
| |
| Please direct bug reports to jutta@cs.tu-berlin.de and |
| cabo@cs.tu-berlin.de . |
| |
| |
| Good luck, |
| |
| Jutta Degener, |
| Carsten Bormann |