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