libsndfile.jpg
History -+- Capabilities -+- Similar or Related Projects
Programming Interface -+- Bug Reporting -+- Download
News -+- Change Log -+- Licensing Information


Libsndfile is a C library for reading and writing files containing sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format) through one standard library interface. It is released in source code format under the Gnu General Public License.

The library was written to compile and run on a Linux system but should compile and run on just about any Unix. It now also compiles and runs on Win32 systems using the Microsoft compiler (thanks to the efforts of Albert Faber) and MacOS using the Metrowerks compiler (thanks to Ben "Jacobs").

It was designed to handle both little-endian (such as WAV) and big-endian (such as AIFF) data, and to compile and run correctly on little-endian (such as Intel and DEC/Compaq Alpha) processor systems as well as big-endian processor systems such as Motorola 68k, Power PC, MIPS and Sparc. Hopefully the design of the library will also make it easy to extend for reading and writing new sound file formats.

It has so far been compiled and tested on the following systems:

Capabilities


libsndfile is currently capable of reading and writing the following sound file formats :
Some of the file formats I am also interested in adding are:
Other file formats may also be added on request.


History


My first attempt at reading and writing WAV files was in 1990 or so under Windows 3.1. I started using Linux in early 1995 and contributed some code to the
wavplay program which would eventually mutate into this library. As one of my interests is Digital Signal Processing (DSP) I decided that as well as reading data from an audio file in the native format (typically 16 bit short integers) it would also be useful to be able to have the library do the conversion to floating point numbers for DSP applications. It then dawned on me that whatever file format (anything from 8 bit unsigned chars, to 32 bit floating point numbers) the library should be able to convert the data to whatever format the library user wishes to use it in. For example, in a sound playback program, the library caller typically wants the sound data in 16 bit short integers to dump into a sound card even though the data in the file may be 32 bit floating point numbers (ie Microsoft's WAVE_FORMAT_IEEE_FLOAT format). Another example would be someone doing speech recognition research who has recorded some speech as a 16 bit WAV file but wants to process it as double precision floating point numbers.

Here is the release history for libsndfile :

Similar or Related Projects




Licensing


libsndfile is released under the terms of the GNU General Public License. You may read the license
here or read a simple explanation of the ideas behind the GPL here.


Download


The latest version is 0.0.17 and the source code can be downloaded here :
libsndfile-0.0.17.tar.gz (~200k .tar.gz file).

Windows users may want to download the same thing as a Zip file : libsndfile-current.zip



The latest version of this document can be found here.

Author : Erik de Castro Lopo

This page has been accessed times.