Home About Forum Imprint Terms and Conditions Contact
Ambiera logo irrKlang logo

irrKlang

irrKlang is a cross platform audio library designed to be used in games, scientific simulations and similar.

It is a high level 2D and 3D cross platform (Windows, Mac OS X, Linux) sound engine and audio library which plays WAV, MP3, OGG, MOD, XM, IT, S3M and more file formats, and is usable in C++ and all .NET languages (C#, VisualBasic.NET, etc). It has all the features known from low level audio libraries as well as lots of useful features like a sophisticated streaming engine, extendable audio reading, single and multithreading modes, 3d audio emulation for low end hardware, a plugin system, multiple rolloff models and more. All this can be accessed via an extremely simple API.


irrKlang is free for non commercial use. There is also an advanced version of irrKlang named 'irrKlang pro' which can be purchased for a small license fee and may be used in commercial products.

Latest News

irrKlang 1.0.4 released. New: Audio recording for Windows, PCM sound sources, minor bug fixes. See change log for details, or download irrKlang 1.0.4 now.

23 Jan 08

irrKlang 1.0.3 released. irrKlang now runs also on Power PCs (Mac OS) and includes other new features such as: Sound device enumeration and selection, sound stop event reciever reasons, reduced ALSA driver latency, audio format retrieval for .NET, and various bug fixes. See change log for details, or download irrKlang 1.0.3 now.

03 Dec 07

irrKlang 1.0.2 released. Changes: Major feature enhancements such as setPlayPosition(), ALSA, WinMM and CoreAudio devices now support setPlaybackSpeed(), rolloff factor for 3D sounds, audio file format information retrieval, improved C++ interface (namespace handling etc), new examples, bug fixes and a lot of minor new features.
See change log for details, or download irrKlang 1.0.2 now.

05 Nov 07
For older news entries, please take a look at the News archive.

Example using irrKlang in C++

This C++ example code shows how to play an mp3 file:

#include <iostream>
#include <irrKlang.h>
using namespace irrklang;
int main(int argc, const char** argv) { // start the sound engine with default parameters ISoundEngine* engine = createIrrKlangDevice();

if (!engine)
return 0; // error starting up the engine
// play some sound stream, looped engine->play2D("somefile.mp3", true); char i = 0; std::cin >> i; // wait for user to press some key engine->drop(); // delete engine return 0; }
This code works on all supported platforms (currently Windows, Linux and MacOSX). For more examples and information about using irrKlang in C++, take a look at the irrKlang C++ API documentation.

Example using irrKlang in C#

The following example was written in C# and shows how to play an mp3 file:

using IrrKlang; 

namespace HelloWorld
{
  class Example
  {
   [STAThread]
   static void Main(string[] args)
   {
     // start up the engine
     ISoundEngine engine = new ISoundEngine();

     // play a sound file
     engine.play2D("somefile.mp3");

     // wait until user presses ok to end application
     System.Windows.Forms.MessageBox.Show("Playing, press ok to end.");

   } // end main()

  } // end class

} // end namespace
For more examples and information about using irrKlang in .NET languages like C#, VisualBasic, Delphi.NET and similar take a look at the irrKlang .NET API documentation.