I'm looking for a way to control the Raspberry Pi's audio playback from a program. I would like to control volume, panning (right/left volume), and, if possible, add special effects like reverb. It looks like Python/ALSA won't work for me because the only audio parameter it can change on the Pi is volume. What audio parameters can joal contol on the Raspberry Pi?
Sorry for the long delay before the reply.
JOAL uses OpenAL-soft on the Pi.
OpenAL is designed from the ground up to support 3D positioned sounds with support for Doppler calculationand software mixing if needed. Thus you may set more "parameters" than the sound hardware itself can handle. OpenAL actually abstracts much of the sound hardware away from the developer and makes it as easy using a 5.1 sourround setup compared to a regular 2 speaker or headphone setup because you as a programmer only tell OpenAL where the listener is and where the sound sources are in 3d space, all mixing is done by OpenAL!.
I have updated the JOAL-demos lession 1-8 tutorials:
I belive the following pages will answer your question in more detail:
- Single Static Source, a "simple" example how to playback an audio buffer using JOAL.
- a moving source, can be used for "panning" in both 2d and 3d!
- playback of multiple buffers
I hope you find the tutorials useful!
I have prepared a gist text file with the minimal needed commands and files to run JOAL on the Pi, we support both soft and hard float: