| Chris@0 | 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> | 
| Chris@0 | 2 <HTML> | 
| Chris@0 | 3 | 
| Chris@0 | 4 <HEAD> | 
| Chris@0 | 5 	<TITLE> | 
| Chris@0 | 6 	libsndfile | 
| Chris@0 | 7 	</TITLE> | 
| Chris@0 | 8 	<META NAME="Author"      CONTENT="Erik de Castro Lopo (erikd AT mega-nerd DOT com)"> | 
| Chris@0 | 9     <META NAME="Version"     CONTENT="libsndfile-1.0.25"> | 
| Chris@0 | 10 	<META NAME="Description" CONTENT="The libsndfile Home Page"> | 
| Chris@0 | 11 	<META NAME="Keywords"    CONTENT="WAV AIFF AU SVX PAF NIST W64 libsndfile sound audio dsp Linux"> | 
| Chris@0 | 12 	<META NAME="ROBOTS" 	 CONTENT="NOFOLLOW"> | 
| Chris@0 | 13 	<LINK REL="stylesheet" HREF="libsndfile.css" TYPE="text/css" MEDIA="all"> | 
| Chris@0 | 14 	<LINK REL="stylesheet" HREF="print.css" TYPE="text/css" MEDIA="print"> | 
| Chris@0 | 15 </HEAD> | 
| Chris@0 | 16 | 
| Chris@0 | 17 <BODY> | 
| Chris@0 | 18 <!-- pepper --> | 
| Chris@0 | 19 <CENTER> | 
| Chris@0 | 20 	<IMG SRC="libsndfile.jpg" HEIGHT=98 WIDTH=367 ALT="libsndfile.jpg"> | 
| Chris@0 | 21 </CENTER> | 
| Chris@0 | 22 <!-- pepper --> | 
| Chris@0 | 23 <CENTER> | 
| Chris@0 | 24 		<A HREF="#History">History</A> -+- | 
| Chris@0 | 25 		<A HREF="#Features">Features</A> -+- | 
| Chris@0 | 26 		<A HREF="#Similar">Similar or Related Projects</A> -+- | 
| Chris@0 | 27 		<A HREF="NEWS">News</A> | 
| Chris@0 | 28 		<br> | 
| Chris@0 | 29 		<A HREF="development.html">Development</A> -+- | 
| Chris@0 | 30 		<A HREF="api.html">Programming Interface</A> -+- | 
| Chris@0 | 31 		<A HREF="bugs.html">Bug Reporting</A> -+- | 
| Chris@0 | 32 		<A HREF="#Download">Download</A> | 
| Chris@0 | 33 		<br> | 
| Chris@0 | 34 		<A HREF="FAQ.html">FAQ</A> -+- | 
| Chris@0 | 35 		<A HREF="lists.html">Mailing Lists</A> -+- | 
| Chris@0 | 36 		<A HREF="ChangeLog">Change Log</A> -+- | 
| Chris@0 | 37 		<A HREF="#Licensing">Licensing Information</A> -+- | 
| Chris@0 | 38 		<A HREF="#SeeAlso">See Also</A> | 
| Chris@0 | 39 </CENTER> | 
| Chris@0 | 40 | 
| Chris@0 | 41 <br><br> | 
| Chris@0 | 42 <P> | 
| Chris@0 | 43 	Libsndfile is a C library for reading and writing files containing sampled sound | 
| Chris@0 | 44 	(such as MS Windows WAV and the Apple/SGI AIFF format) through one standard | 
| Chris@0 | 45 	library interface. It is released in source code format under the | 
| Chris@0 | 46 		<A HREF="http://www.gnu.org/copyleft/lesser.html">Gnu Lesser General Public License</A>. | 
| Chris@0 | 47 </P> | 
| Chris@0 | 48 <!-- pepper --> | 
| Chris@0 | 49 <P> | 
| Chris@0 | 50 	The library was written to compile and run on a Linux system but should compile | 
| Chris@0 | 51 	and run on just about any Unix (including MacOS X). | 
| Chris@0 | 52 	There are also pre-compiled binaries available for 32 and 64 bit windows. | 
| Chris@0 | 53 </P> | 
| Chris@0 | 54 <P> | 
| Chris@0 | 55 	It was designed to handle both little-endian (such as WAV) and big-endian | 
| Chris@0 | 56 	(such as AIFF) data, and to compile and run correctly on little-endian (such as Intel | 
| Chris@0 | 57 	and DEC/Compaq Alpha) processor systems as well as big-endian processor systems such | 
| Chris@0 | 58 	as Motorola 68k, Power PC, MIPS and Sparc. | 
| Chris@0 | 59 	Hopefully the design of the library will also make it easy to extend for reading and | 
| Chris@0 | 60 	writing new sound file formats. | 
| Chris@0 | 61 </P> | 
| Chris@0 | 62 <!-- pepper --> | 
| Chris@0 | 63 <P> | 
| Chris@0 | 64     It has been compiled and tested (at one time or another) on the following systems: | 
| Chris@0 | 65 </P> | 
| Chris@0 | 66 <!-- pepper --> | 
| Chris@0 | 67 <UL> | 
| Chris@0 | 68 	<LI>Every platform supported by Debian GNU/Linux including x86_64-linux-gnu, | 
| Chris@0 | 69 		i486-linux-gnu, powerpc-linux-gnu, sparc-linux-gnu, alpha-linux-gnu, | 
| Chris@0 | 70 		mips-linux-gnu and armel-linux-gnu.</LI> | 
| Chris@0 | 71 	<LI>arm-linux-androideab (Android phones OS)</LI> | 
| Chris@0 | 72 	<LI>powerpc-apple-darwin7.0 (Mac OS X 10.3)</LI> | 
| Chris@0 | 73 	<LI>sparc-sun-solaris2.8 (using gcc)</LI> | 
| Chris@0 | 74 	<LI>mips-sgi-irix5.3 (using gcc)</LI> | 
| Chris@0 | 75 	<LI>QNX 6.0</LI> | 
| Chris@0 | 76 	<LI>i386-unknown-openbsd2.9</LI> | 
| Chris@0 | 77 </UL> | 
| Chris@0 | 78 <!-- pepper --> | 
| Chris@0 | 79 <P> | 
| Chris@0 | 80 	At the moment, each new release is being tested on i386 Linux, x86_64 Linux, | 
| Chris@0 | 81 	PowerPC Linux, Win32 and Win64. | 
| Chris@0 | 82 </P> | 
| Chris@0 | 83 <!-- pepper --> | 
| Chris@0 | 84 | 
| Chris@0 | 85 <A NAME="Capabilities"></A> | 
| Chris@0 | 86 <A NAME="Features"></A> | 
| Chris@0 | 87 <H1><B>Features</B></H1> | 
| Chris@0 | 88 <P> | 
| Chris@0 | 89 	libsndfile has the following main features : | 
| Chris@0 | 90 </P> | 
| Chris@0 | 91 	<UL> | 
| Chris@0 | 92 	<lI> Ability to read and write a large number of file formats. | 
| Chris@0 | 93 	<LI> A simple, elegant and easy to use Applications Programming Interface. | 
| Chris@0 | 94 	<LI> Usable on Unix, Win32, MacOS and others. | 
| Chris@0 | 95 	<LI> On the fly format conversion, including endian-ness swapping, type conversion | 
| Chris@0 | 96 			and bitwidth scaling. | 
| Chris@0 | 97 	<LI> Optional normalisation when reading floating point data from files containing | 
| Chris@0 | 98 			integer data. | 
| Chris@0 | 99 	<LI> Ability to open files in read/write mode. | 
| Chris@0 | 100 	<LI> The ability to write the file header without closing the file (only on files | 
| Chris@0 | 101 			open for write or read/write). | 
| Chris@0 | 102 	<LI> Ability to query the library about all supported formats and retrieve text | 
| Chris@0 | 103 			strings describing each format. | 
| Chris@0 | 104 	</UL> | 
| Chris@0 | 105 <P> | 
| Chris@0 | 106 	libsndfile has a comprehensive test suite so that each release is as bug free | 
| Chris@0 | 107 	as possible. | 
| Chris@0 | 108 	When new bugs are found, new tests are added to the test suite to ensure that | 
| Chris@0 | 109 	these bugs don't creep back into the code. | 
| Chris@0 | 110 	When new features are added, tests are added to the test suite to make sure that | 
| Chris@0 | 111 	these features continue to work correctly even when they are old features. | 
| Chris@0 | 112  </P> | 
| Chris@0 | 113 <P> | 
| Chris@0 | 114 	The following table lists the file formats and encodings that libsndfile can read | 
| Chris@0 | 115 	and write. | 
| Chris@0 | 116 	The file formats are arranged across the top and encodings along the left | 
| Chris@0 | 117 	edge. | 
| Chris@0 | 118 </P> | 
| Chris@0 | 119 <br> | 
| Chris@0 | 120 | 
| Chris@0 | 121 <TABLE BORDER="1" cellpadding="2"> | 
| Chris@0 | 122 	<TR><TD> </TD> | 
| Chris@0 | 123 	<TD ALIGN="center">Micro- soft<br>WAV</TD> | 
| Chris@0 | 124 	<TD ALIGN="center">SGI / Apple<br>AIFF / AIFC</TD> | 
| Chris@0 | 125 	<TD ALIGN="center">Sun / DEC /<br>NeXT<br>AU / SND</TD> | 
| Chris@0 | 126 	<TD ALIGN="center">Header- less<br>RAW</TD> | 
| Chris@0 | 127 	<TD ALIGN="center">Paris Audio<br>File<br>PAF</TD> | 
| Chris@0 | 128 	<TD ALIGN="center">Commo- dore<br>Amiga<br>IFF / SVX</TD> | 
| Chris@0 | 129 	<TD ALIGN="center">Sphere<br>Nist<br>WAV</TD> | 
| Chris@0 | 130 	<TD ALIGN="center">IRCAM<br>SF</TD> | 
| Chris@0 | 131 	<TD ALIGN="center">Creative<br>VOC</TD> | 
| Chris@0 | 132 	<TD ALIGN="center">Sound forge<br>W64</TD> | 
| Chris@0 | 133 	<TD ALIGN="center"><A HREF="octave.html">GNU Octave 2.0</A><br>MAT4</TD> | 
| Chris@0 | 134 	<TD ALIGN="center"><A HREF="octave.html">GNU Octave 2.1</A><br>MAT5</TD> | 
| Chris@0 | 135 	<TD ALIGN="center">Portable Voice Format<br>PVF</TD> | 
| Chris@0 | 136 	<TD ALIGN="center">Fasttracker 2<br>XI</TD> | 
| Chris@0 | 137 	<TD ALIGN="center">HMM Tool Kit<br>HTK</TD> | 
| Chris@0 | 138 	<TD ALIGN="center">Apple<br>CAF</TD> | 
| Chris@0 | 139 	<TD ALIGN="center">Sound<br>Designer II<br>SD2</TD> | 
| Chris@0 | 140 	<TD ALIGN="center">Free Lossless Audio Codec<br>FLAC</TD> | 
| Chris@0 | 141 	</TR> | 
| Chris@0 | 142 <TR><TD>Unsigned 8 bit PCM</TD> | 
| Chris@0 | 143 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD> </TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 144 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 145 	<TD ALIGN="center">R/W</TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD> | 
| Chris@0 | 146 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 147 </TR> | 
| Chris@0 | 148 | 
| Chris@0 | 149 <TR><TD>Signed 8 bit PCM</TD> | 
| Chris@0 | 150 	<TD> </TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 151 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD> </TD> | 
| Chris@0 | 152 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 153 	<TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 154 </TR> | 
| Chris@0 | 155 | 
| Chris@0 | 156 <TR><TD>Signed 16 bit PCM</TD> | 
| Chris@0 | 157 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 158 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 159 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 160 	<TD ALIGN="center">R/W</TD><TD> </TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 161 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 162 </TR> | 
| Chris@0 | 163 | 
| Chris@0 | 164 <TR><TD>Signed 24 bit PCM</TD> | 
| Chris@0 | 165 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 166 	<TD ALIGN="center">R/W</TD><TD> </TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 167 	<TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 168 	<TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 169 </TR> | 
| Chris@0 | 170 | 
| Chris@0 | 171 <TR><TD>Signed 32 bit PCM</TD> | 
| Chris@0 | 172 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 173 	<TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD> </TD> | 
| Chris@0 | 174 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 175 	<TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD> | 
| Chris@0 | 176 </TR> | 
| Chris@0 | 177 | 
| Chris@0 | 178 <TR><TD>32 bit float</TD> | 
| Chris@0 | 179 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 180 	<TD> </TD><TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD> | 
| Chris@0 | 181 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD> </TD> | 
| Chris@0 | 182 	<TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD> | 
| Chris@0 | 183 </TR> | 
| Chris@0 | 184 | 
| Chris@0 | 185 <TR><TD>64 bit double</TD> | 
| Chris@0 | 186 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 187 	<TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 188 	<TD> </TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 189 	<TD> </TD><TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD> | 
| Chris@0 | 190 </TR> | 
| Chris@0 | 191 | 
| Chris@0 | 192 <TR><TD>u-law encoding</TD> | 
| Chris@0 | 193 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 194 	<TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 195 	<TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 196 	<TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD> | 
| Chris@0 | 197 </TR> | 
| Chris@0 | 198 <TR><TD>A-law encoding</TD> | 
| Chris@0 | 199 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 200 	<TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 201 	<TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 202 	<TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD> | 
| Chris@0 | 203 </TR> | 
| Chris@0 | 204 | 
| Chris@0 | 205 <TR><TD>IMA ADPCM</TD> | 
| Chris@0 | 206 	<TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 207 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD> | 
| Chris@0 | 208 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 209 	<TD> </TD><TD> </TD> | 
| Chris@0 | 210 </TR> | 
| Chris@0 | 211 | 
| Chris@0 | 212 <TR><TD>MS ADPCM</TD> | 
| Chris@0 | 213 	<TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 214 	<TD> </TD><TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD> | 
| Chris@0 | 215 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 216 </TR> | 
| Chris@0 | 217 | 
| Chris@0 | 218 <TR><TD>GSM 6.10</TD> | 
| Chris@0 | 219 	<TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD> | 
| Chris@0 | 220 	<TD> </TD><TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD> | 
| Chris@0 | 221 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 222 </TR> | 
| Chris@0 | 223 | 
| Chris@0 | 224 <TR><TD>G721 ADPCM 32kbps</TD> | 
| Chris@0 | 225 	<TD ALIGN="center">R/W</TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 226 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 227 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 228 </TR> | 
| Chris@0 | 229 | 
| Chris@0 | 230 <TR><TD>G723 ADPCM 24kbps</TD> | 
| Chris@0 | 231 	<TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 232 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 233 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 234 </TR> | 
| Chris@0 | 235 | 
| Chris@0 | 236 <TR><TD>G723 ADPCM 40kbps</TD> | 
| Chris@0 | 237 	<TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 238 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 239 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 240 </TR> | 
| Chris@0 | 241 | 
| Chris@0 | 242 <TR><TD>12 bit DWVW</TD> | 
| Chris@0 | 243 	<TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD> | 
| Chris@0 | 244 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 245 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 246 </TR> | 
| Chris@0 | 247 | 
| Chris@0 | 248 <TR><TD>16 bit DWVW</TD> | 
| Chris@0 | 249 	<TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD> | 
| Chris@0 | 250 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 251 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 252 </TR> | 
| Chris@0 | 253 | 
| Chris@0 | 254 <TR><TD>24 bit DWVW</TD> | 
| Chris@0 | 255 	<TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD> | 
| Chris@0 | 256 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 257 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 258 </TR> | 
| Chris@0 | 259 <TR><TD>Ok Dialogic ADPCM</TD> | 
| Chris@0 | 260 	<TD> </TD><TD> </TD><TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD> | 
| Chris@0 | 261 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 262 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 263 </TR> | 
| Chris@0 | 264 <TR><TD>8 bit DPCM</TD> | 
| Chris@0 | 265 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 266 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 267 	<TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 268 </TR> | 
| Chris@0 | 269 <TR><TD>16 bit DPCM</TD> | 
| Chris@0 | 270 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 271 	<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 272 	<TD> </TD><TD ALIGN="center">R/W</TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD> | 
| Chris@0 | 273 </TR> | 
| Chris@0 | 274 </TABLE> | 
| Chris@0 | 275 | 
| Chris@0 | 276 <p> | 
| Chris@0 | 277 From version 1.0.18, libsndfile also reads and writes | 
| Chris@0 | 278 	<a href="http://flac.sourceforge.net/">FLAC</a> | 
| Chris@0 | 279 and | 
| Chris@0 | 280 	<a href="http://www.vorbis.com/">Ogg/Vorbis</a>. | 
| Chris@0 | 281 </p> | 
| Chris@0 | 282 | 
| Chris@0 | 283 <!-- pepper --> | 
| Chris@0 | 284 | 
| Chris@0 | 285 <P> | 
| Chris@0 | 286 	Some of the file formats I am also interested in adding are: | 
| Chris@0 | 287 </P> | 
| Chris@0 | 288 	<UL> | 
| Chris@0 | 289 	<LI> Kurzweil K2000 sampler files. | 
| Chris@0 | 290 	<LI> Ogg Speex. | 
| Chris@0 | 291 	</UL> | 
| Chris@0 | 292 <P> | 
| Chris@0 | 293 	I have decided that I will not be adding support for MPEG Layer 3 (commonly | 
| Chris@0 | 294 	known as MP3) due to the patent issues surrounding this file format. | 
| Chris@0 | 295 	See | 
| Chris@0 | 296 		<a href="http://www.mega-nerd.com/libsndfile/FAQ.html#Q020"> | 
| Chris@0 | 297 		the FAQ</a> | 
| Chris@0 | 298 	for more. | 
| Chris@0 | 299 </P> | 
| Chris@0 | 300 <P> | 
| Chris@0 | 301 	Other file formats may also be added on request. | 
| Chris@0 | 302 </P> | 
| Chris@0 | 303 | 
| Chris@0 | 304 <!-- pepper --> | 
| Chris@0 | 305 | 
| Chris@0 | 306 <A NAME="History"></A> | 
| Chris@0 | 307 <H1><B>History</B></H1> | 
| Chris@0 | 308 <P> | 
| Chris@0 | 309 	My first attempt at reading and writing WAV files was in 1990 or so under Windows | 
| Chris@0 | 310 	3.1. | 
| Chris@0 | 311 	I started using Linux in early 1995 and contributed some code to the | 
| Chris@0 | 312 		<A HREF="http://www.vaxxine.com/ve3wwg/gnuwave.html">wavplay</A> | 
| Chris@0 | 313 	program. | 
| Chris@0 | 314 	That contributed code would eventually mutate into this library. | 
| Chris@0 | 315 	As one of my interests is Digital Signal Processing (DSP) I decided that as well as | 
| Chris@0 | 316 	reading data from an audio file in the native format (typically 16 bit short integers) | 
| Chris@0 | 317 	it would also be useful to be able to have the library do the conversion to floating | 
| Chris@0 | 318 	point numbers for DSP applications. | 
| Chris@0 | 319 	It then dawned on me that whatever file format (anything from 8 bit unsigned chars, | 
| Chris@0 | 320 	to 32 bit floating point numbers) the library should be able to convert the data to | 
| Chris@0 | 321 	whatever format the library user wishes to use it in. | 
| Chris@0 | 322 	For example, in a sound playback program, the library caller typically wants the sound | 
| Chris@0 | 323 	data in 16 bit short integers to dump into a sound card even though the data in the | 
| Chris@0 | 324 	file may be 32 bit floating point numbers (ie Microsoft's WAVE_FORMAT_IEEE_FLOAT | 
| Chris@0 | 325 	format). | 
| Chris@0 | 326 	Another example would be someone doing speech recognition research who has recorded | 
| Chris@0 | 327 	some speech as a 16 bit WAV file but wants to process it as double precision floating | 
| Chris@0 | 328 	point numbers. | 
| Chris@0 | 329 </P> | 
| Chris@0 | 330 <P> | 
| Chris@0 | 331     Here is the release history for libsndfile : | 
| Chris@0 | 332 </P> | 
| Chris@0 | 333 	<UL> | 
| Chris@0 | 334 	<LI>Version 0.0.8 (Feb 15 1999) First official release. | 
| Chris@0 | 335 	<LI>Version 0.0.28 (Apr 26 2002) Final release of version 0 of libsndfile. | 
| Chris@0 | 336 	<LI>Version 1.0.0rc1 (Jun 24 2002) Release candidate 1 of version 1 of libsndfile. | 
| Chris@0 | 337 	<LI>Version 1.0.0rc6 (Aug 14 2002) MacOS 9 fixes. | 
| Chris@0 | 338 	<LI>Version 1.0.0 (Aug 16 2002) First 1.0.X release. | 
| Chris@0 | 339 	<LI>Version 1.0.1 (Sep 14 2002) Added MAT4 and MAT5 file formats. | 
| Chris@0 | 340 	<LI>Version 1.0.2 (Nov 24 2002) Added VOX ADPCM format. | 
| Chris@0 | 341 	<LI>Version 1.0.3 (Dec 09 2002) Fixes for Linux on ia64 CPUs. | 
| Chris@0 | 342 	<LI>Version 1.0.4 (Feb 02 2003) New file formats and functionality. | 
| Chris@0 | 343 	<LI>Version 1.0.5 (May 03 2003) One new file format and new functionality. | 
| Chris@0 | 344 	<LI>Version 1.0.6 (Feb 08 2004) Large file fix for Linux/Solaris, new functionality | 
| Chris@0 | 345 		and Win32 improvements. | 
| Chris@0 | 346 	<LI>Version 1.0.7 (Feb 24 2004) Fix build problems on MacOS X and fix ia64/MIPS etc | 
| Chris@0 | 347 		clip mode detction. | 
| Chris@0 | 348 	<LI>Version 1.0.8 (Mar 14 2004) Minor bug fixes. | 
| Chris@0 | 349 	<LI>Version 1.0.9 (Mar 30 2004) Add AVR format. Improve handling of some WAV files. | 
| Chris@0 | 350 	<LI>Version 1.0.10 (Jun 15 2004) Minor bug fixes. Fix support for Win32 MinGW compiler. | 
| Chris@0 | 351 	<LI>Version 1.0.11 (Nov 15 2004) Add SD2 file support, reading of loop data in WAV and AIFF. | 
| Chris@0 | 352 				Minor bug fixes. | 
| Chris@0 | 353 	<LI>Version 1.0.12 (Sep 30 2005) Add FLAC and CAF file support, virtual I/O interface. | 
| Chris@0 | 354 				Minor bug fixes and cleanups. | 
| Chris@0 | 355 	<LI>Version 1.0.13 (Jan 21 2006) Add read/write of instrument chunks. Minor bug fixes. | 
| Chris@0 | 356 	<LI>Version 1.0.14 (Feb 19 2006) Minor bug fixes. Start shipping windows binary/source ZIP. | 
| Chris@0 | 357 	<LI>Version 1.0.15 (Mar 16 2006) Minor bug fixes. | 
| Chris@0 | 358 	<LI>Version 1.0.16 (Apr 30 2006) Add support for RIFX. Other minor feature enhancements and | 
| Chris@0 | 359 				bug fixes. | 
| Chris@0 | 360 	<LI>Version 1.0.17 (Aug 31 2006) Add C++ wrapper sndfile.hh. Minor bug fixes and cleanups. | 
| Chris@0 | 361 	<LI>Version 1.0.18 (Feb 07 2009) Add Ogg/Vorbis suppport, remove captive libraries, many | 
| Chris@0 | 362 				new features and bug fixes. Generate Win32 and Win64 pre-compiled binaries. | 
| Chris@0 | 363 	<LI>Version 1.0.19 (Mar 02 2009) Fix for CVE-2009-0186. Huge number of minor fixes as a | 
| Chris@0 | 364 				result of static analysis. | 
| Chris@0 | 365 	<LI>Version 1.0.20 (May 14 2009) Fix for potential heap overflow. | 
| Chris@0 | 366 	<LI>Version 1.0.21 (December 13 2009) Bunch of minor bug fixes. | 
| Chris@0 | 367 	<LI>Version 1.0.22 (October 04 2010) Bunch of minor bug fixes. | 
| Chris@0 | 368 	<LI>Version 1.0.23 (October 10 2010) Minor bug fixes. | 
| Chris@0 | 369 	<LI>Version 1.0.24 (March 23 2011) Minor bug fixes. | 
| Chris@0 | 370 	<LI>Version 1.0.25 (July 13 2011) Fix for Secunia Advisory SA45125. Minor bug fixes and | 
| Chris@0 | 371 				improvements. | 
| Chris@0 | 372 	</UL> | 
| Chris@0 | 373 | 
| Chris@0 | 374 <A NAME="Similar"></A> | 
| Chris@0 | 375 <H1><B>Similar or Related Projects</B></H1> | 
| Chris@0 | 376 | 
| Chris@0 | 377 	<UL> | 
| Chris@0 | 378 	<LI><A HREF="http://sox.sourceforge.net/">SoX</A> is a program for | 
| Chris@0 | 379 		converting between sound file formats. | 
| Chris@0 | 380 	<LI><A HREF="http://www.hitsquad.com/smm/programs/WavPlay/">Wavplay</A> started out | 
| Chris@0 | 381 		as a minimal WAV file player under Linux and has mutated into Gnuwave, a client/server | 
| Chris@0 | 382 		application for more general multimedia and games sound playback. | 
| Chris@0 | 383 	<LI><A HREF="http://www.68k.org/~michael/audiofile/">Audiofile</A> (libaudiofile) is | 
| Chris@0 | 384 		a library similar to libsndfile but with a different programming interface. The | 
| Chris@0 | 385 		author Michael Pruett has set out to clone (and fix some bugs in) the libaudiofile | 
| Chris@0 | 386 		library which ships with SGI's IRIX OS. | 
| Chris@0 | 387 	<LI><A HREF="ftp://ccrma-ftp.stanford.edu/pub/Lisp/sndlib.tar.gz">sndlib.tar.gz</A> is | 
| Chris@0 | 388 		another library written by Bill Schottstaedt of CCRMA. | 
| Chris@0 | 389 	</UL> | 
| Chris@0 | 390 | 
| Chris@0 | 391 <A NAME="Licensing"></A> | 
| Chris@0 | 392 <H1><B>Licensing</B></H1> | 
| Chris@0 | 393 <P> | 
| Chris@0 | 394 	libsndfile is released under the terms of the GNU Lesser General Public License, | 
| Chris@0 | 395 	of which there are two versions; | 
| Chris@0 | 396 		<a href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">version 2.1</a> | 
| Chris@0 | 397 	and | 
| Chris@0 | 398 		<a href="http://www.gnu.org/copyleft/lesser.html">version 3</a>. | 
| Chris@0 | 399 	To maximise the compatibility of libsndfile, the user may choose to use libsndfile | 
| Chris@0 | 400 	under either of the above two licenses. | 
| Chris@0 | 401 	You can also read a simple explanation of the ideas behind the GPL and the LGPL | 
| Chris@0 | 402 		<A HREF="http://www.gnu.org/copyleft/copyleft.html">here</A>. | 
| Chris@0 | 403 </P> | 
| Chris@0 | 404 <P> | 
| Chris@0 | 405 	You can use libsndfile with | 
| Chris@0 | 406 		<A HREF="http://www.gnu.org/">Free Software</A>, | 
| Chris@0 | 407 		<A HREF="http://www.opensource.org/">Open Source</A>, | 
| Chris@0 | 408 	proprietary, shareware or other closed source applications as long as libsndfile | 
| Chris@0 | 409 	is used as a dynamically loaded library and you abide by a small number of other | 
| Chris@0 | 410 	conditions (read the LGPL for more info). | 
| Chris@0 | 411 	With applications released under the GNU GPL you can also use libsndfile statically | 
| Chris@0 | 412 	linked to your application. | 
| Chris@0 | 413 </P> | 
| Chris@0 | 414 <P> | 
| Chris@0 | 415 	I would like to see libsndfile used as widely as possible but I would prefer it | 
| Chris@0 | 416 	if you released software that uses libsndfile as | 
| Chris@0 | 417 		<A HREF="http://www.gnu.org/">Free Software</A> | 
| Chris@0 | 418 	or | 
| Chris@0 | 419 		<A HREF="http://www.opensource.org/">Open Source</A>. | 
| Chris@0 | 420 	However, if you put in a great deal of effort building a significant application | 
| Chris@0 | 421 	which simply uses libsndfile for file I/O, then I have no problem with you releasing | 
| Chris@0 | 422 	that as closed source and charging as much money as you want for it as long as you | 
| Chris@0 | 423 	abide by <A HREF="http://www.gnu.org/copyleft/lesser.html">the license</A>. | 
| Chris@0 | 424 </P> | 
| Chris@0 | 425 | 
| Chris@0 | 426 <A NAME="Download"></A> | 
| Chris@0 | 427 <H1><B>Download</B></H1> | 
| Chris@0 | 428 <P> | 
| Chris@0 | 429 	Here is the latest version. It is available in the following formats: | 
| Chris@0 | 430 </P> | 
| Chris@0 | 431 	<UL> | 
| Chris@0 | 432 	<LI>Source code as a .tar.gz : | 
| Chris@0 | 433 			<A HREF="files/libsndfile-1.0.25.tar.gz">libsndfile-1.0.25.tar.gz</A> | 
| Chris@0 | 434 			and | 
| Chris@0 | 435 			<A HREF="files/libsndfile-1.0.25.tar.gz.asc">(GPG signature)</A>. | 
| Chris@0 | 436 	<LI>Win32 installer: | 
| Chris@0 | 437 			<A HREF="files/libsndfile-1.0.25-w32-setup.exe"> | 
| Chris@0 | 438 			libsndfile-1.0.25-w32-setup.exe</A> (thoroughly tested under | 
| Chris@0 | 439 			<a href="http://www.winehq.com/">Wine</a> and Windows XP). | 
| Chris@0 | 440 	<LI>Win64 installer: | 
| Chris@0 | 441 			<A HREF="files/libsndfile-1.0.25-w64-setup.exe"> | 
| Chris@0 | 442 			libsndfile-1.0.25-w64-setup.exe</A> | 
| Chris@0 | 443 			(thoroughly tested on 64 bit Windows 7). | 
| Chris@0 | 444 	</UL> | 
| Chris@0 | 445 | 
| Chris@0 | 446 <P> | 
| Chris@0 | 447 The Win32 installer was compiled for Windows XP but should also work on Windows | 
| Chris@0 | 448 2000, Vista and Windows 7. | 
| Chris@0 | 449 </p> | 
| Chris@0 | 450 | 
| Chris@0 | 451 <P> | 
| Chris@0 | 452 	Pre-release versions of libsndfile are available | 
| Chris@0 | 453 			<A HREF="http://www.mega-nerd.com/tmp/">here</A> | 
| Chris@0 | 454 	and are announced on the | 
| Chris@0 | 455 			<A HREF="lists.html">libsndfile-devel</A> | 
| Chris@0 | 456 	mailing list. | 
| Chris@0 | 457 </P> | 
| Chris@0 | 458 | 
| Chris@0 | 459 <A NAME="SeeAlso"></A> | 
| Chris@0 | 460 <H1><B>See Also</B></H1> | 
| Chris@0 | 461 	<UL> | 
| Chris@0 | 462 	<LI><a href="http://www.mega-nerd.com/libsndfile/tools/"> | 
| Chris@0 | 463 		sndfile-tools</a> | 
| Chris@0 | 464 		: a small collection of programs which use libsndfile. | 
| Chris@0 | 465 	</UL> | 
| Chris@0 | 466 | 
| Chris@0 | 467 <br><br> | 
| Chris@0 | 468 | 
| Chris@0 | 469 <hr> | 
| Chris@0 | 470 | 
| Chris@0 | 471 <P> | 
| Chris@0 | 472 	The latest version of this document can be found | 
| Chris@0 | 473 		<A HREF="http://www.mega-nerd.com/libsndfile/">here</A>. | 
| Chris@0 | 474 </P> | 
| Chris@0 | 475 <P> | 
| Chris@0 | 476 Author : | 
| Chris@0 | 477 	<A HREF="mailto:erikd@mega-nerd.com"> | 
| Chris@0 | 478 		Erik de Castro Lopo</a> | 
| Chris@0 | 479 </P> | 
| Chris@0 | 480 <!-- pepper --> | 
| Chris@0 | 481 <P> | 
| Chris@0 | 482 This page has been accessed | 
| Chris@0 | 483 	<IMG SRC= | 
| Chris@0 | 484 	"/cgi-bin/Count.cgi?ft=6|frgb=55;55;55|tr=0|trgb=0;0;0|wxh=15;20|md=7|dd=B|st=1|sh=1|df=libsndfile.dat" | 
| Chris@0 | 485 	HEIGHT=30 WIDTH=100 ALT="counter.gif"> | 
| Chris@0 | 486 times. | 
| Chris@0 | 487 </P> | 
| Chris@0 | 488 <!-- pepper --> | 
| Chris@0 | 489 <!-- pepper --> | 
| Chris@0 | 490 <!-- pepper --> | 
| Chris@0 | 491 | 
| Chris@0 | 492 <br><br> | 
| Chris@0 | 493 </BODY> | 
| Chris@0 | 494 </HTML> |