My team has been looking for a FOSS library for playing audio (and doing several other things) on multiple platforms, and we came across Cinder. It looks exciting, but before we start working with it, I know this is something under current development, and I would like to know what the current status is on this.
On that note, we would be willing to help get Cinder working better on Linux. We already use the Clang compiler for most of our development work (GCC is only a secondary support target for us).
Linux is the newest supported platform, but already we’re seeing a strong user base and many people willing to contribute on that front, which is great. We’d surely welcome work done on the audio front there.
Hai (@chaoticbob) made a nice start with audio support on linux, which you can find in this folder. Basically, there is support for audio output with Pulse Audio (class
OutputDeviceNodePulseAudio) and audio file decoding with libsndfile or mpg123 if you’ve installed those libraries (see FileAudioLoader.cpp). So, we still need audio input support via Pulse, and we’d also like to flesh out the JACK backend (there is a file
ContextJack.h/cpp but I believe it is only a stub at the moment). File encoding is also on the linux TODO list.
The structure of
ci::audio is such that you fill in the hardware backends and file decoding / encoding, while most everything else is platform independent. If you haven’t seen it, the audio guide provides a nice overview of the current features. Happy to fill in details with anything else you can’t find, or if you have questions about the design.