Tag Archives: recording

PulseCaster 0.1.9 is released!

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
  • Translations

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.

Future work

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!

Logitech H555 headset.

UPDATE Aug. 15, 2011: There have been a few changes to the new model, which you can read in this additional post.

Continuing with another “gear I like” post… Yesterday my Logitech H555 headset finally gave up the ghost. I’ve had this USB headset for about three and a half years, which may be a record for me. I’m very tough on wired things where I have a propensity for yanking on the cord. I’ll routinely do clumsy things like try and walk away with it still attached to both my laptop and my head, or drop the headset on the floor, or get it tangled up with other things on my desk. So it’s a wonder it survived this long, and a testament to how good the product is.

I greatly prefer using a headset to relying on a laptop’s internal mic and speakers. Those internal sound devices can make conference calls and even point-to-point contacts painful because the person on the other end can get a lot of echoes, typing clatter, and environmental noise. A headset may make you look like a Time/Life operator (“Can I take your order?”) but it really makes business dealings more professional and your personal chats more pleasant.

The sound is fantastic, and I find it to be very comfortable to wear for extended periods since it has dual adjustable earpieces with thick pads. It’s not as comfortable as a great set of over the ear studio monitor headphones, but those aren’t really as portable. This headset can fold up into a convenient carrying case (sized just right for a nice Fedora logo sticker!) which makes it highly portable and unlikely to be damaged in transit.

The connection from the headset is actually via two 1/8-inch TRS plugs — one for the stereo headphones, and one for the microphone. You could plug that into a large number of laptops that have separate headphone and mic connectors. Why TRS for the mic then? Ah, that’s where the magic comes in. There’s a USB dongle into which you can plug the leads and that allows the mic to become a noise canceling, low-powered condenser. The resulting sound from the mic is very clear, which makes my VoIP calls comprehensible to folks on the other end of the conversation. You can also use it for screencasts and podcasts, although of course the sound won’t be as good as a professional large condenser type microphone.

But how does it work with Linux? Spectacularly. It’s automatically recognized on every Fedora I’ve used it with, starting with Fedora 9, as a USB audio device. I can use PulseAudio to easily control the volume on the mic and headset — and if that’s inconvenient for some reason the headset cord has a mini control which allows me to vary the headset volume with a rotary dial, and mute the mic with a slider switch. The control is at a perfect location, not too close to my neck and not too far away to find when I’m in the middle of a conversation.

By the way, I don’t shill for Logitech or anyone else. This is just a gadget that has made my life easier. I use the H555 daily, usually for several hours, on voice-over-IP softphone calls. Now that Google+ has a neat Hangout feature for multi-party video conferencing, I sometimes use the headset with that app as well. Hopefully this post will help someone have an easier time choosing a device to suit their needs.

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.


Live from Fedora Moonbase Alpha, part 3.

Quite a while ago, I wrote about the dead-simple process for setting up a microphone with Fedora’s PulseAudio sound system. That was part 2 in a series that was meant to discuss creating a better podcast. At the time, I meant to follow up with a piece on how to do some audio sweetening to make your recording sound better to your listeners. Unfortunately, life and work got in the way, and I didn’t get to part 3 — so here it is, hopefully better late than never.

Thanks to John Poelstra for inspiring me to write this. We had a nice conversation about audio the other day, and I figured it would be worthwhile to capture some of what we spoke about, but also to explain better some of the concepts I tried to pass on to John but perhaps didn’t do it well.

I’m going to assume at this point you’ve been able to capture your audio from a reasonable mic source into Audacity using the record function. You should now have an audio capture with a visible waveform in your Audacity window. Before we move on, you may want to save your Audacity project, or maybe just write the audio to a simple .WAV format file using the Export function.

Audacity lets you not only record audio, but alter it based on algorithms that range from the simple to the highly complex. Audacity is compliant with the LADSPA standard and can use LADSPA plugins to perform some very interesting, useful, or even downright disturbing changes on your audio tracks.

Of course, you don’t have to search them out or build them on your own. There are tons of very useful LADSPA plugins for audio programs available in Fedora repositories. One set we’ll be using is the TAP (Tom’s Audio Processing) set. The package in Fedora is ladspa-tap-plugins; make sure you install that using the Software Manager or another tool before proceeding. Also, you’ll need to restart Audacity if it’s already running, so it will recognize the new plugins.

Keep in mind, however, that all the effects in the world won’t make a crummy recording suddenly sound great. A lot depends on the quality of the original recording, and of course that starts with using a decent mic. “Decent” need not mean “pristine” or “expensive” for amateur use, however. There are solid podcasting mics available at reasonable prices, some less than US $100. Here are a couple easy changes you can make on a moderately good recording that will help it sound better.

You won’t find precise settings below, because the recording you make is going to be different from anyone else’s. You’ll need to listen carefully to decide how to alter the settings for each of these effects. Don’t be too drastic — sometimes a subtle touch is all you need to go from “OK” to “wow”!

Here’s a final note about a setup tweak in Audacity: I find it’s really helpful to change the interface preferences so the VU meters show a wider signal range. By default, they go down to -48dB, which isn’t enough to see what’s happening with noise, especially when you’re working with digital audio that’s capable of a high dynamic range. Open Edit, Preferences and choose Interface in the dialog. Change the meter/waveform range to at least -96 dB, which is the range of 16-bit audio. (You can choose more range if you like, but at our level of work, it’s probably not necessary.)


First, let’s eliminate some noise in the recording. Do try to minimize noise by making your recordings in a quiet room, away from loud equipment like computer fans, air conditioners, your snoring dog, and so on. But I’ll assume you’re not doing your recording in a pristine environment like a treated studio. So you’ll likely have some significant noise in your recording. (If you are recording in a treated studio, good for you! But don’t lord it over everyone, though — remember no one likes a know-it-all.)

At the beginning or end of your recording, locate a section where there is no speaking or substantial background noises, such as from a squeaky chair. Use the mouse to drag through that section of your recording. You only need a second or so for this process to be effective. After you make the selection, you can hit Play to just play the section in question, to verify there’s no sudden noise other than the ambient environment. Watch the playback meters, and hopefully you’re seeing noise at somewhere around -70dB to -60dB or so.  That’s actually quite noisy, but hey, we’re all friends here!

Now from the menu select Effects, Noise Removal. In the dialog, select the Get Noise Profile control in the frame labeled Step 1 to analyze the ambient noise in your selected audio area. This should be a very quick operation, and the dialog disappears. Audacity has stored a frequency profile for the selected noise for you to use in the next step.

Now use your Home key to move the time cursor and deselect the audio. This means the next process will run against your entire track. Select Effects, Noise Removal again, set the appropriate parameters for Step 2, and then select OK. If you’re not sure what to do, the defaults (24dB reduction, 150Hz frequency smoothing, and 0.15 seconds attack/decay time) are not bad for beginners, so feel free to try them out. You can use Ctrl+Z to undo each attempt after trying different parameters. What you’ll see is that after running the noise removal once, if you play a “silent” section again, the noise floor will be much lower!


Now it’s time to boost our signal. Unless you’ve taken a lot of time to set up a gain structure for your audio input hardware, your signal’s probably pretty low. Your speaking voice may only be peaking at -20dB to -15dB. That’s very quiet compared to everything else your listeners hear on their speakers, where music typically peaks at almost 0dB (and way too often, if you ask me, but that’s an entirely different topic for another article and another time).

Use the Effects, Amplify control to boost the volume of your audio track. Set a new peak amplitude of close to 0dB. I often use -1dB or -0.5dB. Select OK to apply the amplification, and you’ll see the amplitude of your signal (the “width” of the waveform) grow significantly. Before you go any further: TURN DOWN YOUR SPEAKERS! If you’ve been recording and listening for a while, you’ve likely turned them up a lot to make up for the lower signal of your earlier recording. Now is a good time to lower the volume, so you don’t blow yourself out of your chair by playing your newly amplified track.

Note: Depending on your recording situation, the equipment you’re using, and the recording you’ve made, you might want to use a high-pass filter or an EQ to gently roll off very low frequencies, such as under 80 Hz. If you’re recording a voice in a quiet room, signal under that level usually comes from bumping the mic or whatever it’s attached to. If it has a lack of shock protection, that bump sounds like a booming impact in your recording. Rolling off those low frequencies can lessen the effect. Of course, you’re always free to re-record and edit to fix a particularly glaring problem!

Adding some warmth

Now, if you’re heavily into music or audio, you might have already taken care of this step in your original input. In that case you probably didn’t need a lot more amplification of your track, either. But if you didn’t warm up your recording by running through a tube preamplification stage (preamp), you can fake it to some degree using an excellent LADSPA TAP plugin called, appropriately, TAP Tube Warmth.

In your Audacity menu, choose Effects and look at the bottom of the menu that appears. You’ll see numbered lists of plugins. Unfortunately, there are so many plugins available they won’t all fit in a single menu, so they’re numbered by Audacity when it starts up. Look through the list for TAP Tube Warmth. This plugin will add some of the subtle, pleasing harmonic overtones that help make good announcers — the Leo Laportes and Bill Goldsmiths of the world — sound so pleasing to the ear. Of course, if you sound like Gonzo the Muppet, TAP Tube Warmth may not be a total solution, but it might help!

The higher you set the Drive level, the more fuzz you may hear as a result. Try not to overdo it — you want enough harmonic content added to warm up your voice, but not enough to be distracting or overpowering. A setting of somewhere between 3-5 is usually best. Experiment with the tape/tube slider to find a pleasing combination of the sound of tube warmth and analog tape squeeze. Starting with all tube is typically best, and moving to the left a bit at a time until you’re happy with the result. (Leaving it at 10, all tube, is fine too.)


One of the best-loved and most often used (many would say overused) tools in the audio engineer’s bag of tricks is the compressor. A compressor allows you to reduce the difference between loud and quiet areas of your recording, so your voice feels more present to the listener. Using compression allows you to overcome passages where your voice changes volume drastically, for example if you moved slightly away or toward the mic while recording.

Like amplification, compression can help the listener pay attention to your voice even if they’re surrounded by other loud noises — like listening through earphones while on a subway car. Speaking volume that veers wildly between loud and soft, like loud hiss and poor recording quality, is the mark of a substandard podcast. It’s important to recognize, though, that a voice blaring at a single volume for long periods will make your listener feel fatigued or even agitated, even if they don’t know why. So do listen critically to your work, and avoid over-compressing.

Other sweetening

There are other effects you can apply, but be careful and sparing if you want the result to sound natural. You might find an EQ (equalization) plugin helpful to cut annoying frequencies or compensate for a flattening of the voice. Some people apply a curve to mimic the frequency response of a well-known microphone like the Electro-Voice RE20, although it’s really difficult to get the result to sound genuine. If you don’t have a genuinely deep voice, you may find it helpful to give a slight boost (be subtle!) to the low-mid range frequency.

Reverberation is another possibility, but don’t overdo it. It’s probably not your goal to sound like you’re in Mammoth Cave or St. Patrick’s Cathedral! A little goes a long way to establish a space around your voice. Again, experiment in a good listening environment to see if this is something you like or even need.


Hopefully this will put you on track to start creating better podcasts, or maybe if you weren’t interested in it already, you’ll try your hand at it. A minimal equipment investment can lead to hours of fun. But remember that the most important part of podcasting is that you have something interesting or informative to say. All the equipment, technique, and software in the world isn’t as important as creative expression that makes your listeners respond, laugh, and think.

Good luck!

Live from Fedora Moonbase Alpha, part 2.

OK, let’s assume you’ve got your mic set up, and you want to make sure you have sound coming to the computer. This is easy to check by selecting System > Preferences > Sound, or right-click the volume control in the notification area and choose Sound Preferences. Then select the Input tab in the dialog box.

Fedora 12 sound preferences tool

You’ll see a list of sound devices attached to your computer, and (if applicable) different connectors available. Select the proper device, and then the connector for your microphone, and you should be able to test the mic and see the level in the display.

You should also check the Output tab, and choose a sound output that goes to some headphones. You don’t want to select speakers whose output will be picked up into the mic, especially since at higher volumes, that causes feedback. (You’ll know feedback from the woooooooo sound that makes you want to pull your own hair out.)

Now you can run the Audacity program to do your recording. You can use other apps as long as they’ll support the audio framework you’re using. In Fedora 12, Audacity works great with PulseAudio. If you don’t have it installed, just use the Add/Remove Software tool, or run pkcon install audacity at a terminal. In Audacity, open up the Preferences dialog by hitting Ctrl+P or choosing Edit > Preferences from the Audacity menu. Choose Devices on the left side:

Audacity preferences: devices dialog

In the Playback and Recording selections, you’ll generally want to choose pulse. You can use the Sound Preferences tool described above to switch devices around as needed. You can also use the PulseAudio volume control utility (provided by the pavucontrol package) to do on-the-fly switching and metering. It’s a pretty handy tool so I recommend it, especially on distributions that do PulseAudio correctly like Fedora does.

Now you’re ready to record! You can just hit the big red button to start your recording. If you find you’re not capturing what you thought:

  1. Check your sound preferences again
  2. Make sure your mic is plugged in and registering sound in the Sound Preferences tool using the handy VU meter
  3. Make sure your output device is performing correctly and check levels in the Sound Preferences tool

In part 3 I’ll point out some helpful post-processing you can do with the LADSPA plugins, to make your recording sound fuller and more acceptable to listeners.

Live from Fedora Moonbase Alpha, part 1.

I finally picked up a piece of equipment I’d wanted for a while — a decent desktop-mounted boom arm to use with a condenser mic for recording podcasts. After a little review reading I settled on the Heil PL-2T and I’m pretty pleased with its looks and performance. Not only is it quiet and very sturdy, but the tension springs are well hidden in the housing, and there are handy removable cable guards so you can keep the mic cable routed in the housing.

Heil PL-2T in action

The mic I have mounted is not a super-expensive model. For those readers who are considering podcasting but don’t know where to start when it comes to mics, a versatile choice is a large-diaphragm condenser mic like this Superlux CM-H8A. There’s a wide selection of Chinese-made condensers like this to choose from; some are even marketed nowadays under well known names in recording like M-Audio and Shure. They tend to run in the $80-150 range.

As can be expected, quality varies. If I was looking for matched sets, I’d probably have to do a little testing, and go back and forth with a physical store taking home and returning mics to get close enough for comfort. That’s a consequence of paying $100 for a condenser as opposed to $400+. But since I only needed one solid mic to record voice in a non-professional context, I didn’t want to waste a lot of time dithering and hand-wringing.

You’ll notice I don’t have a shockmount on this mic — that’s something else I kept meaning to pick up and simply forgot when I ordered the boom arm. That will be next.  However, if I’m not banging up against my desk or the boom arm, it’s not a critical worry right now. I’ve had this mic for a while and used it in a variety of contexts, and I can cut out the vast majority of rumble simply by engaging a 75Hz cutoff on my mixer, or using the mic’s internal switch which cuts off around 80 Hz. (For those of you who aren’t audio geeky, that’s a pretty low bass frequency, the kind that would show up from a “thump” that resonated through the mic from something it was attached to either directly or indirectly.)

The pop filter is essentially a gooseneck arm attached to a circular frame that has two layers of nylon inside, a little less than a centimeter apart. That sits between the mic and my mouth to keep plosives (sounds like ‘b’ and ‘p’) from spiking the mic levels and sounding like I’m spitting into the listener’s ear.*

Although I have a large mixer with mic preamps built-in (as most prosumer models do), there are alternatives such as the Alesis USB mini-mixer Clint Savage uses at Fedora events, or a dedicated little mic preamp such as a venerable ART Tube MP. Each method has its advantages and disadvantages depending on your level of comfort with audio processing and twiddling.

  • The Alesis shows up on a Linux system as a USB audio device that can be selected in Audacity or other sound recording software.
  • When using a standard preamp or a mixer (not USB or Firewire equipped), you need to route the signal to an existing audio device on your computer.
  • Without some physical tube hardware in the signal path before it gets to the computer, some extra post-processing is called for to warm up the sound. (More on that later.)

In my next post, I’m going to go through one possible process of voice recording, using entirely free software.

Mic boom in action

* They’re usually not more than $20, but if you’re on a super-tight budget you can actually build one of these using a wire coat hanger, ladies’ pantyhose, and a wide solid circular object like a used-up roll of masking tape or a rubber gasket to keep the layers of nylon apart, securing it with a strong adhesive like duct tape. (It will look horrible, but it can get the job done.)