Audio playback with Python
02.04.07 20:00 |
Code
I was really surprised there's seemingly no way to do
cross-platform sound output with Python. Looks like you can definitely
do it under Windows, and maybe even on Linux,
but I couldn't find any info about OS X. There's
the rather cryptic mention of Carbon.Snd Sound Manager in
the Python docs but I honestly have no idea what
that is or how to use it.
Anyways, since I (and probably any other Python user on OS X) had PyObjc installed, I decided to use Cocoa to do my sound playback. It turned out to be much easier than I anticipated:
This is for a metronome app and is less than optimal because the wave file can't be played back fast enough (100 and 200 BPM sound the same), but it's a start! More info on using NSSound here.
Anyways, since I (and probably any other Python user on OS X) had PyObjc installed, I decided to use Cocoa to do my sound playback. It turned out to be much easier than I anticipated:
import objc
from AppKit import NSSound
click = NSSound.alloc().initWithContentsOfFile_byReference_("click.wav", True)
click.play()
This is for a metronome app and is less than optimal because the wave file can't be played back fast enough (100 and 200 BPM sound the same), but it's a start! More info on using NSSound here.
|