1How to get started: 2 3 Edit the Makefile. 4 5 You should configure a few machine-dependencies and what 6 compiler you want to use. 7 8 The code works both with ANSI and K&R-C. Use 9 -DNeedFunctionPrototypes to compile with, or 10 -UNeedFunctionPrototypes to compile without, function 11 prototypes in the header files. 12 13 Make addtst 14 15 The "add" program that will be compiled and run checks whether 16 the basic math functions of the gsm library work with your 17 compiler. If it prints anything to stderr, complain (to us). 18 19 Edit inc/config.h. 20 21 Make 22 23 Local versions of the gsm library and the "compress"-like filters 24 toast, untoast and tcat will be generated. 25 26 If the compilation aborts because of a missing function, 27 declaration, or header file, see if there's something in 28 inc/config.h to work around it. If not, complain. 29 30 Try it 31 32 Grab an audio file from somewhere (raw u-law or Sun .au is fine, 33 linear 16-bit in host byte order will do), copy it, toast it, 34 untoast it, and listen to the result. 35 36 The GSM-encoded and -decoded audio should have the quality 37 of a good phone line. If the resulting audio is noisier than 38 your original, or if you hear compression artifacts, complain; 39 that's a bug in our software, not a bug in the GSM encoding 40 standard itself. 41 42Installation 43 44 You can install the gsm library interface, or the toast binaries, 45 or both. 46 47 Edit the Makefile 48 49 Fill in the directories where you want to install the 50 library, header files, manual pages, and binaries. 51 52 Turn off the installation of one half of the distribution 53 (i.e., gsm library or toast binaries) by not setting the 54 corresponding directory root Makefile macro. 55 56 make install 57 58 will install the programs "toast" with two links named 59 "tcat" and "untoast", and the gsm library "libgsm.a" with 60 a "gsm.h" header file, and their respective manual pages. 61 62 63Optimizing 64 65 This code was developed on a machine without an integer 66 multiplication instruction, where we obtained the fastest result by 67 replacing some of the integer multiplications with floating point 68 multiplications. 69 70 If your machine does multiply integers fast enough, 71 leave USE_FLOAT_MUL undefined. The results should be the 72 same in both cases. 73 74 On machines with fast floating point arithmetic, defining 75 both USE_FLOAT_MUL and FAST makes a run-time library 76 option available that will (in a few crucial places) use 77 ``native'' floating point operations rather than the bit-by-bit 78 defined ones of the GSM standard. If you use this fast 79 option, the outcome will not be bitwise identical to the 80 results prescribed by the standard, but it is compatible with 81 the standard encoding, and a user is unlikely to notice a 82 difference. 83 84 85Bug Reports 86 87 Please direct bug reports, questions, and comments to 88 jutta@cs.tu-berlin.de and cabo@informatik.uni-bremen.de. 89 90 91Good luck, 92 93 Jutta Degener, 94 Carsten Bormann 95 96-- 97Copyright 1992, 1993, 1994, by Jutta Degener and Carsten Bormann, 98Technische Universitaet Berlin. See the accompanying file "COPYRIGHT" 99for details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. 100