Which library for audio playback ?

K Richard Pixley rich at noir.com
Fri Dec 30 20:17:51 EST 2011


On 12/29/11 05:55 , Jérôme wrote:
> I'm writing a small application that plays sound through the speakers. The
> sounds are juste sine waves of arbitrary frequency I create in the code, not
> sample .wav files.
>
> I didn't expect the choice for an audio library to be that complicated. There
> are several libraries, and none of them seems to be *the* reference.
>
> Searching the web, I found these resources :
>
> http://wiki.python.org/moin/Audio
> http://wiki.python.org/moin/PythonInMusic
>
> * I privileged ALSA to OSS as I read elsewhere that OSS is deprecated, or on
>    its way to be. (And JACK is not widely installed, apart from specific
>    applications (audio work).)
>
> * Then, I picked the alsaaudio library (http://pyalsaaudio.sourceforge.net/).
>    I don't remember exactly why. I think the project had the most recent
>    updates. I don't think any project claims to be (let alone aims at being)
>    complete.
>
> I'm wondering if I made a sensible choice.
>
> There are other libraries, including the following two that are platform
> independent :
>
> * PyAudiere (http://pyaudiere.org/), OSS , not packaged for debian
> * PyAudio (http://people.csail.mit.edu/hubert/pyaudio/)
>
> What solution would you recommend ?
>
> Are there other criterions I should take into account ?
>
> Thanks.
>

I made a similar survey of available libraries recently.  I'm interested 
in MIDI also, though, primarily on mac.

There doesn't seem to be any definitive audio library for linux, 
although several, (jack, oss, alsa), exist.  (My impression is similar 
to yours, OSS is obsolete. Jack may be the better library technically, 
but is not as widely ported or available as ALSA.)

There is a definitive library for both audio and MIDI on mac - core 
audio.  There really aren't any competitors.

There is also a definitive library for windows, although I don't use 
windows.  It's the open source one with low latency that everyone in the 
professional world uses to replace windows because, (surprise!), windows 
isn't capable of coping.

I have found python libraries for each of these, although some are very 
low level libraries, basically just wrapping something even lower.  If 
anyone has done an integrated "full solution" for linux or mac, I didn't 
find it.  The closest I found was PortMIDI and PortAudio which appear to 
have ports for all three platforms as well as one or two sets of python 
bindings and seem to be high enough level to be both useful and 
productive.  The hard part there is that PortMIDI and PortAudio come in 
source, which requires a bit of hunting to track down prerequisites, etc.

Please keep us posted as I'm chasing a similar problem.

--rich



More information about the Python-list mailing list