Samples are loaded into memory and playback is then triggered or stopped. The system mixes any number of concurrently playing samples together (up to a predefined maximum).
Also possible is the inclusion of a background MP3 soundfile (external program "mpg123" required). Since version 1.4 panning and volume control has been added. Since version 1.5 each playing sample can be controlled individually.
Currently this multithreaded library is set to mix a maximum of 12 concurrent 16bit signed stereo samples at 44100Hz. The included wav2raw.sh shell-script will take any file with the extension .wav and convert it into the proper .raw format used by libgaudio. The total number of samples that can be loaded is 256. The total size of samples depends on the main memory of the computer.
System load on my P3-450 is about 4% for the MP3-player and 0.5-4% for the testaudio application.
See the sample program "testaudio.c" for a demo implementation. Get the seperatly distributed file "Sample.mp3" (any .mp3 will actually do, but it has to be called Sample.mp3 for testaudio.c to use it) and activate its playback in the test application by editing the Makefile.
A second sample program called "halloween.c" shows how easy it can be to load
multiple WAV files and play them back at random. This was a great effect during
Halloween night. Start it up with the seperatly distributed "ScarySounds" WAV files
for a cool effect.
What's New in This Release:
· Added support for libsndfile (included). No more RAW audio loading required. Any WAV file can be loaded now.
· Added ScarySounds collection (distributed seperately) and halloween.c demo application.
· Added function to query MP3 stream playing time.