annotate src/libsndfile-1.0.27/doc/index.html @ 125:cd6cdf86811e

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