IzSound is a stream-oriented sound processing library. It has been designed around small DSP units that can be chained together to operate on the sound data stream. While there are already several libraries of this kind, most of them are either too simplists or too complicated. What's more, they are often written in the C programming language and lead to libraries having a lot of functions and data structures. Using an object oriented language can dramatically ease the learning process by having a clearer overview.
That's why IzSound is written in C++ in order to use the object oriented paradigms. Moreover, the C++ STL brings the concepts of generic programming and IzSound makes an intensive use of both the containers and the algorithms brought by the STL. This way it is built on both well tested data containers and algorithmic bricks.
IzSound in itself is a small library which defines the DspUnit class. This is the base class of all the DSP units that can be plugged together to process the sound data streams. This class embeds all the pluging logic, so it is very easy to define a new DSP unit, the author has just to concentrate on the DSP job.
IzSound has a standard set of DSP units brought in a separate library (libstdizdsp) which can read Ogg Vorbis files, crossfade two streams, actually output the sound on your sound card, tweak the pitch and so on.
IzSound is released under a BSD-style license, here's what it says:
IzSound - Copyright (c) 2003, 2004 Julien PONGE - All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND ITS CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.