annotate src/libsndfile-1.0.27/doc/index.html @ 83:ae30d91d2ffe

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