Current State of Camlorn_audio

I've been working a lot on Camlorn_audio recently, and am hopefully getting close to something I can release. I thought I'd post about what it's able to do at the moment, what it needs still, and what you can do if you want to use it.

Current Status

Currently, camlorn_audio can play sounds in 3d and apply echo. This sounds like barely anything, but it can do so--with a bit of setup--in high quality, approaching pre-vista Direct Sound. It provides access to a great number of Creative products and anything supporting Open AL, and takes care of a ton of low-level infrastructure and details. Here's the four lines to get a sound playing. This is not quite a complete example--you need a method of keeping the program open long enough to actually hear it, and some includes and the like.


Context c;

Sound3d s(c);

s.loadFromFile("test.wav");

s.play();

It can load any file format supported by Libsndfile. it will never be able to load MP3, but it can be passed a vector of audio data; if you have a license for the MP3 codec, you can load them yourself and pass the data to Camlorn_audio. I do not want to get involved in the awful horror that is MP3 licensing.

It also has some basic support for EFX. Currently, only echo is in place. More effects will be added shortly. The low-level infrastructure for EFX works but needs improvement; if you attempt to use that part of the library, expect things to crash rather easily. I intend to go over it with a fine-toothed comb, and get it hammered into something more useable and less arcane shortly. A lot of things don't work as expected.

Everything is documented to some extent and there is a readme. It needs tutorials, but most of the code has documentation comments using Doxygen. I intend to write some tutorials and expand the readme a great deal before making a binary release.

Finally, due to popular demand, there is an as-of-yet not complete c API.

I want to use it. What do I do?

Currently, building Camlorn_audio yourself takes a bit of know-how. You need to obtain the git repository, which is currently undergoing frequent changes. You can find the Bitbucket page here.

You also need Doxygen, Boost (1.53 is what I use for testing; earlier may or may not work), the Open AL SDK, Libsndfile, Visual Studio 2010 (or possibly 2012) and possibly Open AL Soft. There are links and build instructions in the readme; the easiest method is to obtain Doxygen from here, and do the following at the command prompt:


cd dir_of_the_repository\library

doxygen doxyfile

Which will give you a set of documentation in dir_of_the_repository\docs. Hitting dir_of_the_repository\docs\html\index.html will bring up the introduction, which includes build instructions and some explanation.

Finally, some examples exist in examples/, including how to use what currently exists of EFX and how to load sound from files. These examples are automatically built with the library.