Microphones, Ubuntu, and ambiguous solutions

Here's a brief technical solution to a problem involving Linux and microphones. It won't be interesting to most people but it's one of those solutions where I have no idea how people ever find it without help.* So, here's some help in convenient list format.

The context:

I have a Blue Yeti Pro microphone. After a fresh Ubuntu 15.10 installation, the mic wasn't working at all. It was clearly recognized as a valid USB device but wasn't receiving any audio input. I checked the gain and tried, well, unplugging it and plugging it back in, but still nothing.

The Yeti Pro. It's a nice mic. It lets me put my silly voices on the Internet.

The Yeti Pro. It's a nice mic. It lets me put my silly voices on the Internet.

The solution

I had no idea what to try next until I found this post. Here's the condensed version.

  1. Install QasHctl. A simple sudo apt-get install qashctl ought to work or you can download it yourself. It provides an interface for the Advanced Linux Sound Architecture (ALSA).
  2. Run qashctl and look for "Mixer device" on the right.
  3. Select BLUE USB under the Card menu.
  4. Select Mixer on the left.
  5. Select the option Blue Clock Selector Capture Switch under that.
  6. You'll see a few round radio buttons in the main window and they may be unselected. Toggle them on.
  7. Exit qashctl. Open Sound Settings and ensure the microphone is selected as a sound input device. Yell at the mic and ensure it's getting input.

The explanation:

I have no idea why this microphone is muted by default and can't be un-muted in software other than QasHctl. All I know is that it gets muted in some layer of software. I suspect the cause is buried somewhere deep within Pulseaudio.


* This has always been one of my issues with the *nix community: there's often a way to repair even the most complicated computing problems but the solution may require rolling back some arcane, poorly-named module to an older version only found on somebody's personal repo...and this is the accepted solution for everyone trying to solve the same problem. The real problem, though, arises when a user needs to extract such a solution from the community. Answers are frequently helpful but don't explain how a solution works or why a more enlightened guru knows exactly which configuration file to edit. Perhaps it isn't worth the effort to explain. Perhaps they don't know why it works; it's all just folk wisdom and tradition. Perhaps I really just have a problem with the engineering approach to computers: it doesn't matter how they work, it just matters that they do what's needed of them.