annotate src/libsndfile-1.0.25/doc/index.html @ 0:c7265573341e

Import initial set of sources
author Chris Cannam
date Mon, 18 Mar 2013 14:12:14 +0000
parents
children
rev   line source
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>&nbsp;</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>&nbsp;</TD><TD ALIGN="center">R/W</TD>
Chris@0 144 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD>
Chris@0 145 <TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD>
Chris@0 146 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 147 </TR>
Chris@0 148
Chris@0 149 <TR><TD>Signed 8 bit PCM</TD>
Chris@0 150 <TD>&nbsp;</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>&nbsp;</TD>
Chris@0 152 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD>
Chris@0 153 <TD>&nbsp;</TD><TD>&nbsp;</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>&nbsp;</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>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD>
Chris@0 167 <TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 168 <TD>&nbsp;</TD><TD>&nbsp;</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>&nbsp;</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</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>&nbsp;</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</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>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD>
Chris@0 181 <TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD>
Chris@0 182 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</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>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 188 <TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD><TD ALIGN="center">R/W</TD>
Chris@0 189 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</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>&nbsp;</TD><TD>&nbsp;</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>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 196 <TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</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>&nbsp;</TD><TD>&nbsp;</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>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 202 <TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</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>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 207 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD>
Chris@0 208 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 209 <TD>&nbsp;</TD><TD>&nbsp;</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>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 214 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 215 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</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>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 220 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 221 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</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>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 226 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 227 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 228 </TR>
Chris@0 229
Chris@0 230 <TR><TD>G723 ADPCM 24kbps</TD>
Chris@0 231 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 232 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 233 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 234 </TR>
Chris@0 235
Chris@0 236 <TR><TD>G723 ADPCM 40kbps</TD>
Chris@0 237 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 238 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 239 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 240 </TR>
Chris@0 241
Chris@0 242 <TR><TD>12 bit DWVW</TD>
Chris@0 243 <TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 244 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 245 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 246 </TR>
Chris@0 247
Chris@0 248 <TR><TD>16 bit DWVW</TD>
Chris@0 249 <TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 250 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 251 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 252 </TR>
Chris@0 253
Chris@0 254 <TR><TD>24 bit DWVW</TD>
Chris@0 255 <TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 256 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 257 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 258 </TR>
Chris@0 259 <TR><TD>Ok Dialogic ADPCM</TD>
Chris@0 260 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 261 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 262 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 263 </TR>
Chris@0 264 <TR><TD>8 bit DPCM</TD>
Chris@0 265 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 266 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 267 <TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 268 </TR>
Chris@0 269 <TR><TD>16 bit DPCM</TD>
Chris@0 270 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 271 <TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD>
Chris@0 272 <TD>&nbsp;</TD><TD ALIGN="center">R/W</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</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="m&#97;ilt&#111;:&#101;rikd&#64;&#109;eg&#97;-&#110;erd.&#99;om">
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>