Under The Microscope

Archive for June, 2010

What’s New in Pulsar 2

Hi, I’m David Dunham, Rogue Amoeba’s newest developer. My first project here was to create Pulsar 2. With today’s release, I’m pleased to be able to share what I’ve been up to.

What the Heck is Pulsar?

If you’re not familiar with it, Pulsar lets you listen to satellite radio (XM or SIRIUS) on your Mac. Using Safari to visit the XM or SIRIUS web sites is awkward, and times out after a certain period of listening. Pulsar has always been a far more convenient way to access those hundreds of channels.

Hold It Right There

Delay SliderWith Pulsar 2, we’re moving past anything you can do with web access. Most notably, you can pause the live stream. Later, you can pick up listening without losing a beat. Or if you got interrupted and couldn’t pause, just go back and catch what you missed. But we also hold on to the last 3 hours, so you can go forward, and skip 10 seconds, a minute, or even to the next song.

For the Next/Previous Song commands, we rely on metadata from the server to tell us when songs start. This data isn’t always perfectly in sync with song changes, but coupled with the jump arrows (← & →), the commands are quite useful.

For those interested in the technical aspects of pause, we’re buffering to disk. A full 3 hour buffer takes up only about a gigabyte of space, and quitting Pulsar frees up the space.

Name That Tune

Growl notificationBack to song titles: we now provide two great ways to use them. First, if you’ve installed the Growl add-on (a free download from http://growl.info), Pulsar can briefly display a window like the one to the right each time a new track comes on. You’ll be able to see what’s playing, no matter what application you’re using.

Pulsar can also share your listening information by posting to your free Last.fm account (they call this “scrobbling”). Some channels announce the DJ breaks as songs, but Pulsar can usually avoid scrobbling them.

Designed For Use

Mini Window
Even though Pulsar is mostly about listening, we wanted to make sure that you get a great experience when you’re interacting with it. There’s a classy new look, thanks to our designer Christa. But the redesign also provides a simple way to reorganize your favorite channels, using drag & drop. And you can now access your favorites from the handy mini-player.

Check It Out

Pulsar was already the best way to listen to satellite radio on your Mac. Version 2 is better than ever. If you already use it, be sure to choose Check For Update from the Pulsar menu. Otherwise, download the free trial here.

Pause Live Radio With Pulsar 2!

Pulsar IconLast year, we introduced a new product to stream XM and SIRIUS on the desktop – Pulsar. With Pulsar, you can avoid the clunky websites and timeouts, and get your satellite radio in a sleek client. Today, we’re delighted to unveil Pulsar 2!

Pulsar 2′s biggest new feature is the ability to pause live radio. While you’re listening, just hit the pause button, and Pulsar will stop playback, while continuing to buffer audio. Take a phone call, grab a snack, or use the restroom, then pick back up right where you left off – pausing puts you in control.

In addition to pausing audio, Pulsar’s Favorites have been greatly improved. In the Favorites view, you can now re-order favorites by simply dragging and dropping, and favorites are now accessible from Pulsar’s mini-player. We’ve also added integration with Growl and Last.fm in Pulsar 2. With Growl installed, information on the currently playing track will be visible in any application. And if you’ve got an account with Last.fm, Pulsar can be configured to “scrobble” your listening data to their servers.

Perhaps the most obvious change for Pulsar is its gorgeous new look. We’ve overhauled the interface, improved the mini-player, and even updated the icon. Couple this with the major new features above, and plenty of bug fixes, and Pulsar 2 is one heck of an update. Read more about it in lead developer David’s Pulsar 2 tour, or get it now.

Get It Now

Head over to the Pulsar page to learn more and download Pulsar 2. It’s a free update for all current owners of Pulsar, and new users can purchase for just $20.

A Complimentary License?

If you’re reading this site, it’s a good bet that you already own one of our current Mac OS X products. If so, for a limited time, you’re eligible for a complimentary license to Pulsar. Just visit this page. If you don’t yet own any of our software, you can purchase right through our store, and obtain your Pulsar license right after.

Airfoil for Windows and Web Browsers

When Google Chrome was released, one of the things that set it apart from other browsers was the fact that each tab you open gets its own process. One of the compelling reasons for this new feature is that certain browser plugins are rather infamous for causing instability and memory leaks which can cause your browser to crash. Under the new model introduced by Google Chrome however, only the tab that has that plugin running will crash, leaving everything else intact.

This idea turned out to be so great that Microsoft borrowed the idea for Internet Explorer 8. The latest version of Firefox (3.6.4), which was just released, takes a slightly different approach, but the end result is the same – plugins run in their own process, isolated from everything else.

While this is great news for browser stability, it is bad news for people who want to use Airfoil for Windows to grab audio from these browsers. When you hijack an application with Airfoil, it grabs the audio from the process you select and starts sending it to your remote devices. The problem with this new browser paradigm is that Airfoil can only grab audio from one process at a time and it doesn’t know which of the many processes that your browser has started is actually playing the audio:

Google Chrome Processes
Will the real Google Chrome please stand up?

Current Workarounds

Currently, Airfoil for Windows works fine with Internet Explorer 7, Apple’s Safari for Windows, and Firefox 3.6.3 or earlier. To use Airfoil for Windows to stream internet audio today, you have a couple of choices:

1. Use whatever browser you want for regular browsing, then fire up one of the currently supported browsers if you want to stream internet audio with Airfoil. We recommend Safari for Windows.

2. Use one of the currently supported browsers for all of your browsing and audio usage.

The Future

We recognize that this isn’t the ideal solution. It is just a short term workaround to get you back up and running today. In the meantime, we’re working hard to make Airfoil for Windows capable of grabbing audio from all browsers.

If you have any questions or trouble, contact our support department and they’ll be happy to help you out.

Background Audio in iOS 4.0

Yesterday, Apple released version 4 of iPhone OS — now known as iOS — and with it comes multitasking. However, iOS doesn’t offer true multitasking in the sense we’re familiar with from desktop OSes, in which all apps execute simultaneously at all times.

In iOS, apps now suspend instead of terminating when you click Home. While in the background, they can perform a few types of specialized tasks, provided they follow certain rules — such as not monopolizing resources or using too much memory — and as long as the device supports it. Craig Hockenberry’s writeup goes into some detail on what exactly iOS 4 means by “multitasking,” and I recently wrote about what app suspension means for developers on my personal blog.

Fortunately for us, one of the types of multitasking iOS now supports is background audio. Audio apps can now continue to play audio after the user hits the Home button, and the user can now control that audio using the clicker on the headset cable, the lock screen controls (accessible by double-clicking the Home button while the device is locked), or the new audio controls in the leftmost section of the multitasking tray, pictured below:

iOS 4 Tray
To get to these buttons, double-click Home, then swipe the tray left-to-right.

We’re excited about background audio because it gives us an opportunity to improve Airfoil Speakers Touch, our free companion app to Airfoil. Using Airfoil Speakers Touch, you can receive audio on your iOS device from any computer running Airfoil.

Our first pass at testing background audio was almost ridiculously easy: the app just tells the system that it would like to play audio in the background, and then when the user clicks the Home button the app keeps running. This worked just fine, on the face of it.

In reality, however, it’s a bit more complicated than that. Because iOS 4 will terminate background apps when it runs low on memory, we must also take some steps to reduce our memory usage when we transition to the background. This isn’t just good citizenship; it’s enlightened self-interest, because the system will terminate apps that are using lots of memory first.

There are some other rules besides memory usage, of course, which are enforced by the OS. For example, only one app can play background audio at a time, though a second app can interrupt in order to play something brief like an alert sound or a turn-by-turn navigation announcement. More limiting, however, is this: if your app tells the system it would like to play audio in the background, then it must play audio. As soon as you stop playback, you get suspended.

When a background app gets suspended, it can no longer respond to network activity. In the case of a typical audio streaming app like Pandora Radio, this isn’t a big deal. When terminated by the OS, it will simply stop playing audio. When it resumes (upon being relaunched), it will just re-establish its connection and play audio again.

But for Airfoil Speakers Touch, which advertises its presence on the local network so that Airfoil can find and transmit audio to it, the consequences are worse. Airfoil will immediately stop transmitting to a suspended Airfoil Speakers Touch and remove it from its list of outputs. As a result, supporting a background Pause command in Airfoil Speakers Touch is problematic, because pausing severs our network connection with Airfoil.

One way we might solve this problem in the future has to do with an oft-requested feature for Airfoil: remote control of the source application. With Remote Control, you’d be able to send audio commands like Play and Pause to the audio source being streamed from Airfoil, via audio controls built into Airfoil Speakers. And on iOS, ideally we’d like to hook the background audio controls up to these Remote Control commands.

Schedule

Right now we are finishing up our work on an update for Airfoil Speakers Touch to allow it to play audio in the background. We hope to have that released to the App Store sometime in July. In the longer term, we’ll be working on an update to both Airfoil and Airfoil Speakers that will have, among other things, Remote Control support as outlined above.

So look for our free Airfoil Speakers Touch 1.1 update on the App Store soon, with basic background audio support. After that, we’ll hopefully have even better support in the not-too-distant future.

Sasser Saves the Day

I’d been hard at work last week on a new icon for Pulsar, but ran into some trouble — while all of the PNGs I made looked sharp and rich, their corresponding .icns file looked very washed out.

Fortunately, Panic’s Cabel Sasser came to the rescue with a solution. He’s now blogged this same info here. If you’re a designer making icons for OS X, this will definitely come in handy. Thanks, Cabel!