Today I released PulseCaster 0.1.10 with some under the hood improvements:
- Switch from GConf to GSettings, and include schema file
- Providing appdata for GNOME Software
- Provide hidden “audiorate” key for 44.1/48 kHz selection
- Complete GObject introspection switchover, eliminating excess dependencies and fixing bugs (RHBZ #1045717)
- Automatically provide .ogg filename extension in standard mode
- Additional translations
I’m planning some UI improvements for this little podcasting utility. I’m also hoping to do significant code refactoring for 0.2, tentatively scheduled for late spring/early summer. I’m also thinking about moving the central development repo to GitHub, since that’s where a lot of other Fedora incubated projects have migrated.
Of course, updated packages are coming shortly for Fedora 20.
PulseCaster lets you record interviews with simplicity. It pulls audio from two sources via PulseAudio, then mixes them into an Ogg Vorbis file for you. There’s also an expert mode that allows you to lossless audio in WAV format, and mix the audio yourself with post processing. For example, you could interview someone via a Voice-over-IP (VoIP) application, then include the interview in your podcast.
I used a little time between sessions (and during one session where I was completely in over my head) to push this out. It was nice to work on some free software of my own at a conference for developers! Hope you enjoy the new PulseCaster release.
Yup, 0.1.9 has finally made it out the door. Here’s the tarball and the git repo. There are also updated packages coming shortly in Fedora 17, 18, and Rawhide. If you want to help test those to get them out sooner, look here for the package for your Fedora release.
Plus, did you know there’s a Facebook page for PulseCaster? Visit it, like it, and feel the love.
PulseCaster 0.1.9: The gruesome details
I have no witty release name attached to any of the releases, so let’s call this “The One Where We Figured Out How to Give People an Expert Option and Translations, Too.” Some of the secret features you’ll find in this release:
- An expert option
OK, I’m being a bit snarky here. Mainly I’m trying to play all nonchalant about how long it actually took me to get around to working on another release. Here’s a better listing of new stuff in 0.1.9:
- PulseCaster now uses GTK+ 3.0.
- PulseCaster also now uses PyGObject and GObject introspection for most stuff. The GStreamer bits are still a bit rough in the gir code. Specifically I found it difficult to get at messages on the bus. I’ll keep working on that, possibly for 0.2.
- There’s now an expert option that writes the recorded streams to two separate files in lossless FLAC format, so you can mix your own recording later. The default mode still writes a single Ogg Vorbis file, which suffices for most people. (The code here’s more than a bit hacky and needs to be cleaned up in 0.2.)
- Using the excellent Transifex service, translations are now part of PulseCaster! Many thanks to the wonderful volunteer translators around the world who contributed translations to the release, and to the Transifex folks for their great service.
Some of the features on the current roadmap:
- Clean up messy separate-stream code (see above)
- Provide a recording pause button
- Do some volume leveling and/or compression to help recordings sound better
- Provide more helpful information on disk space available/used
As always, you can find the PulseCaster site at http://pulsecaster.org — bugs and enhancement requests are welcome. Input from users helped to drive (eventually!) the work for this release, so a tip of the hat to them for participating!
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.
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.