Tag Archives: PulseAudio

Double plus GOOG.

Last night I was able to get into the Google+ trial and one of the pieces of the setup was a Talk plugin that includes audio and video chat support. I was pleasantly surprised to find that it works great on Fedora 15. The PackageKit browser integration pulls in other support you may need. After installation you’re able to join the “Hangout” feature which lets you chat live with multiple other users using your webcam and audio. It also plays well with PulseAudio so I was able to easily use my USB headset with no tinkering.

So far it looks like Google may have figured out a way to take the interesting parts of Wave, and build them into a framework that’s more friendly and less like an out of control email client. Within 24 hours I had a lot of people I know hooked up via the “Circles” feature for sharing. What this means for Facebook I don’t know — I sincerely hope G+ doesn’t become a cul-de-sac for geeks only.

My other hope is that there are GNOME folks out there looking into the Google+ API project, to see if there will be interesting and user-friendly ways to have the future desktop OS interact with this service.

A fun day… for some hacking.

Over the course of the day, I:

  • Tweaked the package complement on my workstation where last night I did an installation of the Fedora 15 pre-release tree
  • Identified some weirdness in my local Eclipse environment and got things in better shape for later work
  • Got a good start on some user documentation for PulseCaster
  • Took my daughter to the skate rink, and managed to skate for at least a little while before realizing I was having a rough time because my kingpin bolts are just way too freakin’ tight
  • Figured out how to adjust said kingpin bolts and made a note to take care of that before next week
  • Took my son out for some errands and lunch — a nice trip and a good chance to exercise my patience muscles
  • As a reward, bought some beer and a couple decent malbecs
  • After returning home, cleared out some obsolete packages hanging around in Bodhi and begging for death
  • Built and pushed a new update of PulseCaster to fix some bugs
  • Built and pushed a refreshed upstream version of xmlstarlet
  • Played with the dog
  • Came back and turned up a French trance station I got into recently (for some reason, monotonous, non-vocal electronica seems to help me work more efficiently… probably since there are few lyrics to listen to and digest mentally)
  • Went through some email to reduce backlog for Monday
  • Triaged a crummy gnome-system-monitor bug affecting people with more than 4 CPU cores (like me)
  • Had dinner with the family (Eleya made a fabulous corned beef, first timer but it was pretty much perfect!)
  • Came back to the desk to find that the superhuman Matthias Clasen had fixed the gnome-system-monitor bug in question, and built and pushed an update out
  • Installed said update with many thanks to Matthias, tested, and provided feedback

So of course, my definition of hacking is not nearly what some of my colleagues manage daily. But I feel like attacking some of this stuff on weekends and working on my own GNOME-ish projects are starting to give me a better fundamental understanding of some of the plumbing at work in the desktop. And of course, it gives me a wh0le new appreciation for it as well. I’m now rocking GNOME 3.0 pre-releases on both my main systems here at home, my laptop and my big workstation, and loving it.

I’ve contributed a few bug reports and to a small portion of the GNOME 3.0 user documentation for this release. It was lots of fun and made me feel connected with the release process for something I use every day that will be an intrinsic part of Fedora 15 when it arrives. It’s a great feeling to be just cranking on some little bits to help others, and just as much as ever, I know that if everyone does the same, free software has a future that is even brighter than the (already well-lit) present.

PulseCaster released!

Yup, a new release of PulseCaster is finally out with some real improvements. Iffy design? You betcha. Ugly code? Don’t even get me started. Pernicious bugs lurking? Bring it on. But I’m still happy, and you know why?

Working VU meters. That’s right, it took me forever to find the answer that was right under my nose all the time: the GStreamer “level” element. Why build a bunch of bindings to PulseAudio, even if I love it, when I can just set up a GStreamer pipeline with a couple quick Python commands? It seemed to me I pored over the GStreamer docs constantly when I started working on this project, but somehow I just kept missing “level,” when it was all I needed.

The recording guts haven’t changed at all — PulseCaster is currently designed to do just one thing, which is allow you to record two sides of an audio conversation supported by a PulseAudio server to an Ogg Vorbis file you can immediately publish. So if you want to interview someone using a SIP application, you just dial them up, run PulseCaster and set the inputs, and hit the record button.

That being said, this is a 0.1.x series and is nowhere near what I want the interface to look like eventually. I have plans for that, <evil_laugh>mwahahaha</evil_laugh>. But it’s at least the teeny-tiniest bit useful as is, and because it’s Python, it’s eminently hackable if you have the inclination. Just wear shades when you read the code so you’re not blinded by the horror.

The git repo has a TODO list currently, but I’m going to make an effort to transfer its contents soon to Trac tickets at the upstream site, and do a better job at release management. You know, in my copious spare time.


SWIG, Python, and PulseAudio.

OK, we seriously need someone who knows SWIG to put together PulseAudio bindings for Python. I’ve worked on some ctypes style wrappers, and they are not only not fun, but I suspect that I am Doing It Wrong, or in a non-Pythonic way. And I know that Lennart Poettering, the chief PulseAudio author, writes his code in a very consistent manner, which if I understand correctly makes a potential SWIG wielder’s job much easier.

It’s about time we exposed the power of PulseAudio to a new generation of Python folks (and got them to quit using python-alsaaudio when it’s really unnecessary and sometimes non-optimal).

Bluetooth headset in Fedora 11.


First, if you have questions like this, it’s super-easy to get answers in more immediate and helpful forums. There’s the venerable but still well-populated fedora-list, the general user forum on IRC Freenode at #fedora, and the large community at Fedora Forum, all of which can help with general user questions.

Having said that, in Fedora 11 this is remarkably easy. You just install the pulseaudio-module-bluetooth package, and use the existing Bluetooth applet to pair your audio device with your Fedora system. PulseAudio will be able to see and use your Bluetooth audio device. I’ve done this with my cheap-o little Motorola H500 earpiece and it worked like a charm. I didn’t try this in Fedora 10, but I believe that module exists there too.