irrKlang is a high level 2D and 3D sound engine and audio library, written and usable in C++. Currently it is only able to play back .ogg and .wav files, but support for mp3 and other formats will be added in the next release. I also only wrote one example yet, but the API is pretty simple, so I guess you'll figure out everything easily if you think about using the library.
Why I created irrKlang: I wanted to add sound into irrEdit, but didn't like the capabilities/interfaces/licenses of the existing sound libraries at all, so I just wrote my own one, with an Irrlicht Engine style interface. It also has some nice features already, and some more are planned. I am using irrKlang myself for a private project, so expect lots of feature updates to this software. And I released it for free so I am not the only one to benefit from my work. Of course irrKlang is independent of the Irrlicht engine and can be used together with any other 3D engine or without one at all, but clearly it can be integrated into an application using Irrlicht more easily than into any other application.
Here's a screenshot of irrKlang integrated with irrlicht, more exactly irredit. (Yes, I know, a screenshot of an audio libary in action is a bit.. stupid. :) )
So, please take a look into it if you like, and tell me what you think.
33 comments, already:
:) nice library, can’t wait to see your next release.
irrPhysik (with k) maybe?
( maybe a physics wrapper irrNewton or irrODE )
btw. in http://irrklang.irrlicht3d.org/author.ht..
it still says:
“If you want to show a larger irrXML logo …”
you might want to fix that
keep up the good work
pyro - 23 09 06 - 13:21
ohh, nice emblem colours – looks very great
artemisia - 23 09 06 - 13:56
Very nice! I’ll give it a look!
Out of curiousity – are you heading in a game engine direction for irrlicht?
Would be cool if so – cause I don’t know any free modern game engine out there.
Gauntlet - 23 09 06 - 14:23
Gauntlet: you can look ar OGRE for free modern game engine.
bubu () - 23 09 06 - 14:40
sounds great. I’ll try it right away.
andrei25ni - 23 09 06 - 14:55
“OGRE v1.2 [Dagon] represents the culmination of 5 years of continuous development, resulting in what is now regarded by many as the leading open source real time 3D rendering engine”
( from ogre3d.org )
ogre isn’t a game engine, is it?
but whatever, we really need Irrlicht Game Engine
pyro - 23 09 06 - 15:33
@babu: OGRE isn’t a game engine.
I’m curious, what didn’t you like about the multitude of other options like FreeSL, FMod, BASS, Audiere, raw OpenAL etc? Or are you using those under the surface and just wrapping them? I included non-open source options in that list since I don’t think irrKlang is open source, right?
I’m just curious because I was similarly surprised at irrXML – there are lots of fully functional, well tested XML parsers out there like libxml, Xerces (a bit fat admittedly), TinyXML and I didn’t think the world needed another one. irrXML in particular doesn’t seem to add anything to those (in fact it has less features than at least two of them) so it seemed a bit like ‘NIH’ (Not Invented Here) syndrome.
Steve () (link) - 23 09 06 - 15:34
Good work anyway, BTW – I didn’t mean that to sound as negative as it came out. Just wondered why you feel the need to reinvent in so many areas
Steve () (link) - 23 09 06 - 15:39
First Irrlicht, then Irredit, now IrrKlang, what comes next? IrrPhysics, Irrnet, Irrweltherrschaft? Good work have you done niko, thanks for it all!!!
Stefan Branske - 23 09 06 - 15:49
I agree, its hard to find a good, free, 3D sound API. Ive done a lot of looking and couldnt find one I really liked.
No source for this one though? :?
The Anaconda - 23 09 06 - 16:28
Ah, thanks, text corrected.
@steve: I tried most of them (but didn’t know FreeSL), and some of them are really nice, but didn’t work out for what I would have needed them (that is, just playing sounds as for a 3d game). For example I want to say ‘play that sound from that file at that position with that volume’ and just don’t care about anything else. The commercial libraries are very ok but cost money of course, the free ones don’t do 3D, have problems with multithreading, are not platform independent, have restrictive licenses, unecessary complicated interfaces, too high memory usage or poor resource management and/or similar.
So I thought it’s always nice to have some options to choose from, so why not another audio library. I don’t know exactly why I am writing those new libraries from time to time, I think simply because it is a lot of fun, and maybe it’s that ‘NiH’, but also to see if I can do it and the maybe even because sometimes I am so egoistic that I think I can do it better and for free. I think lots of other programmers are doing stuff like this as well, and maybe they just don’t share their results for free? I don’t know.
irrKlang has been written from the ground up, it is not a wrapper for an existing library. So I can port it easily to different platforms, add or remove features if I like, and anybody can include it in his application, and it won’t cost anything. So I think it’s worth publishing it, if it is helpful for atleast one person. :) And hey, it’s just version 0.1, lots of nice stuff will follow. It’s not open source just like irrEdit, but who cares, and maybe I’m going to change that situation.
niko - 23 09 06 - 17:11
Steve () (link) - 23 09 06 - 17:24
hey niko, what about a whole game engine combining irrlicht, irrxml and irrklang?
nunja - 23 09 06 - 17:37
Wow, this is turning into a whole game design suite! Good job niko!
Andrew - 23 09 06 - 17:57
Another great addition. I don’t think you should go full game engine as some have said though, keep the libs seperate and independent so the dev can use the bits he needs and it’s easier to customise/streamline then. A rendering engine is just fine. A game engine is a massive undertaking and your time is better spent improving the brilliant components rather than a full engine that couldn’t possibly cater to every taste/need. If you are just catering to FPS style games then maybe, but irrlicht right now is very flexible and I love it!
Good Work Niko – thanks again!
great stuff - 23 09 06 - 19:13
I think some people are confused here on the game engine stuff… your libraries could be used to make a game engine, but there is no reason to make an explicitly irr game engine. in fact, i think it would probably end up being limited and etc… now, there might be some classes that would lend themselves to game engine design that you could make, like a state manager, a script parser ,etc. but i say leave the game-engine to someone else.
On a related note, this was pretty surprising! I will have to try out irrKlang soon!
RabidLockerGnome () (link) - 23 09 06 - 20:27
What Linux devices are currently supported, and how much of the mentioned file formats is really implemented (if no external library is used)? Also 3d support seems to be quite new as the API still has 2d descriptions in there and the example completely lacks 3d sound.
OpenAL was also the one to go for me, however I’d like to have more formats supported there. It was not really nice to code additional connections to external libraries with the OpenAL interface. But the OpenAL Irrlicht scene node was very convincing, quite simple, and Open source all the way.
Will some sound interface be added to Irrlicht?
hybrid - 23 09 06 - 23:13
“Because some low end audio hardware is not able to play 3D sounds without significant performance loss or some don’t support 3d audio buffers at all, irrKlang has a high performance 3d sound buffer emulator built-in, causing a sound experience nearly as it was a real 3d sound buffer.”
I don’t really follow that sentence – possibly because I lack an understanding of high performance built-in 3d sound buffer emulators.
Dougall - 24 09 06 - 01:11
Good work niko, going to check it out! :D
It means it will let you play 3D sounds, even if you lack the hardware to play them. Look at it as a “3D software driver” for a PC that doesn’t have a 3D graphics card.
bicunisa (link) - 24 09 06 - 04:23
This is the development blog of the Irrlicht Engine, irrXML, irrEdit and the personal blog of Nikolaus Gebhardt.”
I think you need to add irrKlang to that list
bicunisa (link) - 24 09 06 - 05:13
any chance of irrKlang.NET?
TSM - 24 09 06 - 07:26
so i suppose soon we will see a new version of irredit and irrlicht with support for this eh? pretty cool! although, I am eager to get a hold of the source for these neat things like irrklang and irredit
buhatkj - 24 09 06 - 07:49
I doubt you’ll need a new version of Irrlicht for this. Chances are you can use it right now. :P
Frobozz () - 24 09 06 - 11:32
some answers to lots of questions here:
ok, maybe I just didn’t like the interfaces. :) but irrklang is planned to do quite more then openal.
currently there is only win32 support, and all uncompressed wavs and all kinds of oggs should work. but 3d sound is there. try ISoundEngine::play3D().
irrKlang won’t be added to Irrlicht, it will stay a graphics engine of course. irrKlang should work with all Irrlicht versions. :)
thanks for the correction suggestions, going to change all this soon.
niko - 24 09 06 - 12:03
Will Linux support come? When?
I am looking for a Sound API for my current project, and OpenAL is a bit difficult, but I need support for Linux…
phoenix () (link) - 24 09 06 - 19:05
Nice to have this! I’l try it a bit later. What is Klang means?
Lonerunner () - 25 09 06 - 08:15
“Klang” means “sound” :)
Pascal - 25 09 06 - 08:22
Cool… well worth the wait :)
Gaz - 25 09 06 - 14:24
That’s exactly what we would have needed for Bolzplatz 2006… We had so many worries with many sound libraries, and so many bugs. Keep up your great work!
Andi () (link) - 25 09 06 - 15:44
Why not put your 3d math libraries into a statically linked lib under the namespace Irrlicht::Math for use of any library, that way you dont have to play the including twice game in your different libraries… and then do some namespace renaming to make things make more sense… like Irrlicht instead of irr… and Irrlicht::Math, Irrlicht::Video, Irrlicht::Scene, and Irrlicht::Sound, as for data containers… maybe separate them as well, so that on a common include file you can typedef either your custom containers or STL containers for use, that way someone could for instance compile the engine using STL containers or Niko Containers
RabidLockerGnome () (link) - 25 09 06 - 22:21
Cumon guys! Giv niko some rest! I mean its amazing to see him take out time to build somethink so brilliant in the midst of working on a lightmapper and other feature of irr edit and improving irrlicht! I think support for linux will come and lotz of amazing features will most definetly come but just giv him some time to build em and release em!
RapchikProgrammer - 02 10 06 - 19:35
IrrKlang is apparently unusable with Dev-C++ since it only comes with a .lib file to link with.
Any chance of this being changed?
Laz - 19 10 06 - 12:17
this wouldn’t change anything, the C++ ABI still is in the way. Just use the free Microsoft compiler for now, its free and better anyway :)
niko - 19 10 06 - 17:32