View on GitHub


Simple PulseAudio-based tool for making podcast interviews

Download this project as a .zip file Download this project as a tar.gz file

Thanks to Harry Karvonen for his Python ctypes-based bindings for PulseAudio. Thanks also to J├╝rgen Geuter for helping me understand distutils and contributing some fixes.


If you are looking at the source, 'cd' to the top of this project and then run the following command to try it out:

$ cd pulsecaster
$ python

Advanced Tips

The code currently contains a very hacky function to allow you to record to FLAC (the Free Lossless Audio Codec) instead of Ogg Vorbis, which is the default. To turn that capability on, run this command:

$ gconftool-2 --set --type=string /apps/PulseCaster/codec flac

To switch back to Vorbis:

$ gconftool-2 --set --type=string /apps/PulseCaster/codec vorbis

There's an additional function for setting audio rate (default is 48000 Hz):

$ gconftool-2 --set --type=int /apps/PulseCaster/audiorate 44100
$ gconftool-2 --set --type=int /apps/PulseCaster/audiorate 48000


The easiest way to use this application is to simply install it using your platform's preferred tool set. To install it using Fedora, run the folowing command:

pkcon install pulsecaster

To install it on another flavor of Linux, check the documentation for your particular distribution.

To install directly from this source code, use the handy "distutils" script that's provided:

$ python build
$ python install

You'll need the following pieces of software installed to use PulseCaster. The best way to install PulseCaster is to use your operating system's built-in utility for adding and removing software. (For instance, on Fedora this would be the Software tool, or dnf.) The package names for your distribution may be slightly different.

If you want to help with development, you may also need these supporting packages:

Release History

For a full release history, visit the News page.


The pipeline for capturing from a running PulseAudio source:

gst-launch pulsesrc device-name='<NAME>' \
   ! vorbisenc quality=0.5 \
   ! oggmux \
   ! filesink location=foo.ogg