SoundSource 2.5 and a Story About the Menu Bar
Posted By Quentin Carnicelli on August 27th, 2009
Earlier today we released SoundSource 2.5, an update to our audio device switcher. SoundSource is a handy little tool for rapidly adjusting the audio input and output devices on your Mac (switching between microphones or various speakers or headphones, for instance). Our new version 2.5 features full compatibility with Mac OS X 10.6 (Snow Leopard), and now requires Mac OS X 10.5 or higher.
Although SoundSource 2.5 does not have any new features, it has changed dramatically internally. The first place you will notice this, is right after you expand the .zip file it comes in: SoundSource is now an application.
A bit of background is probably needed here before that statement will make much sense. On Mac OS X, there are two ways to display little icon-and-menu-thingys in the menu bar.
The first method, is something called a “menuExtra”. All of OS X’s built-in menu bar bits are done with menuExtras: the Volume control, the Clock, the Airport menu, and so on. You can see the whole list of them at: /System/Library/CoreServices/Menu Extras. MenuExtras offer several nice features. First, if you double-click them they will load in the menu bar, and automatically open again each time you login. As well, you can command-click on them and drag them around, putting them in any order you like. Finally, if you want to remove one, you can command-click on it and drag it right off the menu bar. They’re very nice all around. Unfortunately, their usage is limited to Apple applications only.
The second method for getting an icon-and-menu-thingy into the menu bar, is something called an “NSStatusItem”. Nearly all third party applications that put things in the menu bar, for example Airfoil Speakers, use NSStatusItems. Unlike menuExtras, StatusItems have no nice features. They display in the order they are opened in, they can not be reordered, and removing them from the menu bar typically means quitting the application that is providing the StatusItem. All around, StatusItems generally provide an inferior experience compared to menuExtras.
NSStatusItems do have one very important feature on their side however: Apple officially supports their usage. Because menuExtras run as a plugin within the system process SystemUIServer, Apple does not allow third parties to create their own. Various methods of getting around this limitation (such as MenuCracker and MenuExtra Enabler) have long existed.
For all versions of SoundSource until now, we have used MenuExtra Enabler to allow SoundSource to exist as a menuExtra. This enabled it to behave like it was any other built-in system component, with full drag-and-drop support. As of SoundSource v2.5.0 and Mac OS X 10.6, we’ve finally given in, and converted SoundSource to be an NSStatusItem running as its own standalone application.
The reason is primarily one of defeat. With every new release of Mac OS X, MenuExtra Enabler breaks and requires updating. We simply no longer care to fight Apple on this front. When it was relatively easy to improve SoundSource’s user experience by making it a menuExtra, we did so.
We now also believe that providing a good user experience in this area is Apple’s job and not ours: NSStatusItems should simply behave as menuExtras do, and if they don’t, the burden of fixing that is on Apple.
That all said, SoundSource running as its own application is not all that terrible. It is a little annoying to not be able to move it around the menu bar, but there are some benefits. We no longer need an installer for it and it can live in your Applications folder like any other application. It’s also easy to open and close, and delete when you are done with it. And if we’re lucky, SoundSource may even work on OS X 10.7 without requiring an update.
That, and we got a pretty new icon for it.
Matt says:
August 28th, 2009 at 1:05 pmUgh. I hate NSStatusItem apps. I wish Apple would just let them behave like menu extras.
Dave M. says:
August 29th, 2009 at 1:56 pmActually, I agree with Matt here. Something is wrong when Apple can move their icons around in the menubar, but no other 3rd party applications are allowed to. It makes the menubar behave inconsistently. Something I thought that Apple was trying to move away from with Leopard and Snow Leopard.
Oh well, as much as I loved the ability to move around SoundSource’s menubar icon, I love the functionality so much more. It still sits proudly in my menubar. Even if it is obscured by other applications menubar items.
Greg C says:
September 1st, 2009 at 4:53 amHave installed the new SoundSource.
Quick question: Does the installer remove all the pieces of any older version. If not, what can be deleted?
Paul Kafasis says:
September 1st, 2009 at 8:44 amMatt, Dave M.: We definitely agree – unfortunately, fighting on this front has just gotten to be too difficult. Perhaps Apple will make them not suck in the future – we can hope.
Greg C: SoundSource 2.5 should remove everything from older versions from the menu bar when you run it. Just open it and enjoy – you’ll be all set!
However, if you’re concerned about removing the old (inert) files, you can do that manually. Those can be found here:
/Library/Bundles/SoundSource.menu
or
~/Library/Bundles/SoundSource.menu
and
/Library/InputManagers/Menu Extra Enabler
Just delete those, and they’ll be gone. But even if you don’t, they’re inert (like old prefs files, say), and won’t affect anything.
matt says:
September 1st, 2009 at 9:41 amYou might be interested to know that in 10.6 if you option click the system volume MenuExtra you can switch sound sources.
Paul Kafasis says:
September 1st, 2009 at 12:49 pmmatt: Indeed – as noted in the comments on a previous post, as well as other places. We’re aware of this, but SoundSource is free, and offers a bit more. As well, unfortunately, option-clicking is pretty non-discoverable for most, so we’re happy to keep providing SoundSource for free.
matt says:
September 2nd, 2009 at 4:43 amSure, choice is a great thing :)
Snow Leopard Compatibility: Some sound I/O utilities broken | The Apple Core | ZDNet.com says:
September 3rd, 2009 at 5:15 pm[…] the Rogue Amoeba blog, Quentin Carnicelli late last week announced the release of SoundSource 2.5, the latest version of […]
Mike Walsh says:
September 4th, 2009 at 5:44 ami have 10.5.8 and a dell monitor with built in usb webcam and mic. unfortunately, the system and therefore skype have a lot of trouble keeping up with the mic. i either have to go into midi audio settings and “reapply” mic settings i never change, or unplug and replug the monitor usb cable.
would your app help keep the mic active and seen?