What does irrKlang mean?
Nothing special. The name irrKlang was made up from the words 'Irrlicht', the name
of the free open source 3d engine
which has a similar designed API like irrKlang, and 'klang', which is german for 'sound'.
Can I use irrKlang in my free or open source application?
Yes, of course. irrKlang is free for non-commercial use.
Can I use irrKlang in my commercial application?
Yes you can, but you need to purchase an irrKlang Pro
license for that. irrKlang is only free for use in non-commercial products.
How can I contribute to irrKlang or support the project?
If you disovered a bug in irrKlang, just report it in the
forum or send it to
the author of irrKlang. Ideas and suggestions on
how to improve irrKlang are always welcome. And of course,
a link to irrKlang's webpage from your site or application
would be very nice.
If you even want to support irrKlang financially, you can buy
irrKlang and Ambiera shirts (they
also look cool!) or even buy an irrKlang license.
Can I use irrKlang in projects not using Irrlicht?
Absolutely. irrKlang is completely independent of Irrlicht.
I want to create a commercial product using irrKlang, do have to purchase irrKlang when starting development?
No, you don't need to purchase an irrKlang license when starting to develop your commercial product. You only need to purchase
irrKlang once you start to make your commercial product public or start to sell it.
That's also a good way to use irrKlang without hassle and makes it possible to try it out and purchase the license only
if you are sure that you want it. In fact, a lot of irrKlang users are doing it in this way.
Does irrKlang run on Windows Vista?
Yes, irrKlang does run on Windows Vista, there are no known problems.
Does irrKlang make use of multiple cores?
irrKlang runs in a separate thread by default, so yes, it does.
Is there a way I can get notified once a new irrKlang release is out?
If you would like to stay up to date and receive a mail once a new version of irrKlang is released, simply
send a mail to . Set the subject to
'irrklang', 'irredit', 'irrxml' or 'all' to get update notifications of that software. To unsubscribe again, just send
another mail with the subject 'unsubscribe'.
I have a question about irrKlang not answered here, where can I find help?
There is a forum available on ambiera.com,
where you can exchange yourself with other users. In addition, you can directly contact us
via email.
Why is irrKlang located in the namespace irr::audio?
In irrKlang versions older than 1.0.2, this was the case, now irrKlang is located in the
namespace 'irrklang'.
The reason for the old 'irr::audio' namespace was that in Irrlicht, all classes are organized
in namespaces, and because irrKlang has been designed to work closely with Irrlicht, it was easier this
way. Since 1.0.2, irrKlang is completely independent and no classes are shared anymore between
irrKlang and Irrlicht.
How can I make irrKlang use Irrlicht's file system?
Just like in the 'override file access' tutorial
create your own file factory. The irrKlang IFileReader interface is very similar to
the Irrlicht IReadFile interface, so it is very easy to do this.
If you are using files inside archives like .zip files, be sure to package
streamed audio files into another archive files than your irrlicht data, because
irrKlang may access these in another thread, and archive access is not threadsafe
in Irrlicht (at least until version 1.3).
Playing back an mp3 doesn't work with my program using irrKlang, what did I do wrong?
If irrKlang doesn't play mp3s in your application, you probably forgot to copy the mp3
playback plugin to your application directory (The location where your .exe file is).
The file is named ikpMP3.DLL in windows and ikpMP3.SO in Linux. Place it where irrKlang
can find it (the current working directory or the place where your application binary is)
and irrKlang will load the plugin and be able to play mp3s.
When playing a sound in 3D space, I cannot hear it, what's the problem?
Based on the size used in your 3d world, you might want to adjust the radius of
your 3d sound where it can be heard. You should do this anyway, because usually
sounds have a different radius (a jet engine for example is a bit louder than a bee).
You can use ISound::setMinDistance() for this
like shown in the 3D sound example.
A bigger value means the sound can be heard more far away.
If you don't want to set the min and/or max distance values for every sound,
you can also use ISoundEngine::setDefault3DSoundMinDistance() and
ISoundSource::getDefaultMinDistance().
What's the advantage of irrKlang.NET over for example Microsoft.DirectX.AudioVideoPlayback?
There are several reasons why not to use Windows built-in playback
support and to use a dedicated audio engine like irrKlang instead. One
of the most important reasons is that when using irrKlang, playback
will always work because irrKlang uses its own built-in audio decoders.
When using the operating system playback instead, you can not be sure if it
works on every end user PC, because it depends on the installed
drivers, decoders, operating system version, and more. In addition, if
playback works on a end users system, depending on the decoders he has
installed, performance may be very poor. With irrKlang, playback will always
work and will always be very fast.
How many sounds can irrKlang play at the same time?
For the software drivers (WinMM, ALSA, you can specify this as first parameter in the createIrrKlangDevice() function), there is no limit.
For DirectSound, this depends on the DirectSound implementation (driver, operating system), but from irrKlang's side, there is no limit either.
When using irrKlang with Windows, I get the error C2872: 'IUnknown' : ambiguous symbol.
This was a problem with irrKlang versions before the 1.0 release. Simply get a newer version, the problem doesn't occur
there anymore. Or do the following:
Probably you have written 'using namespace irr' and included the header windows.h (directly or indirectly) somewhere.
This confuses the compiler, because it doesn't know which IUnknown is meant, the one of irrKlang ('irr::IUnknown') or
the windows one ('IUnknown').
At the place of the problem, just remove the line 'using namespace irr' and write irr::audio (or only irr::) before irrKlang classes and functions
or more the 'using' line somewhere after the windows header file inclusion.
I need irrKlang.NET with a strong name for my signed assembly.
Only irrKlang Pro (irrKlang with some advanced features) has a strong name,
but you'll have to purchase a license for this.
How can I free the memory used by irrKlang's internal stored sounds?
You simply need to remove the sound source. Do this using ISoundEngine::removeSoundSource() or
ISoundEngine::removeAllSoundSources() if you want to remove all sound sources. If you are using
irrKlang.NET, you can also call System.GC.Collect() after this if you need the memory to be
freed exactly then.
Note: Only buffered sounds can allocate a bigger amount of memory, streamed sound do not do this
and occupy just some few bytes if not used.
|