Under The Microscope

Piezo 1.2.2 Adds Full Retina Support

Piezo IconOur charmingly simple audio recorder Piezo has just received its first update in quite some time. This update takes care of some minutia, including correcting a very rare crash, as well as signing the application for Apple’s Developer ID program, the last of our paid apps to need this update. More importantly, however, it now offers full Retina support.

Piezo's Retina UIPiezo’s new Retina UI (scaled down slightly to fit!)

Piezo marks our second app with full Retina support, along with our audio editor Fission. While we’ve made small Retina-related improvements in our other apps, we don’t yet have full Retina support in Airfoil, Audio Hijack Pro, or Nicecast. That’s likely to come in their next major updates (versions 5, 3, and 2, respectively), which are still in the planning stages. Stay tuned though – as more machines, and more users gain Retina quality visuals, we’ll certainly want to be there!

For now, you can get version 1.2.2 from the Piezo page, or via the Mac App Store. It’s a free update, so be sure to grab it now.

Airfoil for Windows 3.4 Brings Improved Audio Capture

Airfoil for Windows IconIt’s been a few months since Airfoil for Windows last saw an update, but we’ve been hard at work on refining its underpinnings. Our audio streamer is more popular than ever, so improving things behind the scenes is definitely a worthwhile investment. Today, we’re happy to unveil Airfoil for Windows 3.4, the latest and greatest way to stream audio from Windows all around your house. To download the newest version (it’s a free update), just head over to the Airfoil for Windows page. To learn more about the technical details of this update, read on.

A Major Update to Instant On

After much effort and testing, the latest version of Airfoil for Windows now includes a major update to Instant On, the built-in component to capture audio seamlessly. When Airfoil was first unveiled, its ability to capture audio usually required the quitting and re-opening of your source app. To work around the need for that cumbersome relaunching, we created Instant On, a technology to allow Airfoil to grab audio from applications instantly. While this worked well, there are some applications that don’t produce audio at all, others that don’t produce audio you’d want to capture, and some which just don’t work properly when Instant On is running.

With our latest update, Instant On now affects only a curated allowlist of audio applications. This list contains the most common applications our customers use with Airfoil for Windows, including Foobar 2000, Spotify, Chrome, Firefox, and more. You can view and edit the Application List at any time in Airfoil’s Preferences window. Any applications on this list won’t need to be re-launched when Airfoil captures audio from them.

Instant On's Application List

Airfoil’s Instant On allowlist

When you attempt to intercept audio from a running application that isn’t yet on the approved list, Airfoil will offer to add it to the list, so future relaunches won’t be necessary.

Of course, Instant On is still entirely optional, just as before. For the best experience, we definitely recommend activating it. To do so, just click the “Enable Instant On” checkbox in Airfoil Preferences window:

Airfoil's Preferences

With Instant On, the need for Airfoil to relaunch running applications to capture their audio vanishes, and things work as smoothly as possible. Best of all, with the new allowlist, issues that were once rare will disappear completely.

And More

This update also marks the first release where Airfoil is fully scriptable, allowing for control by other applications. For more details on scripting Airfoil, see this link. As usual, this update also includes has a handful of small improvements and fixes, and we always recommend using the latest version. So update your copy of Airfoil for Windows now!

Scripting Airfoil for Windows 3.4 (And Up)

Developers have often asked for the ability to interface with Airfoil for Windows via some kind of scripting interface. There was very limited support for this in version 2.x of Airfoil for Windows, but there was always more we wanted to do with it.

Now in Airfoil for Windows 3.4 we have full out-of-process COM scripting support, which should allow 3rd party apps in just about any language (any language that supports COM that is), to interact with and control Airfoil for Windows.

For example, suppose you wanted to get a list of all recent sources using Windows JScript:


var airfoilApp = WScript.CreateObject("RogueAmoeba.Airfoil");

var recentSources = airfoilApp.GetRecentSources();
for(var i = 0; i < recentSources.Count(); i++)
{
	var audioSource = recentSources.Item(i);
	WScript.Echo("Recent source " + i + " is " + audioSource.Name());
}

Or maybe you'd like to see if a certain application is running, and if it is, tell Airfoil for Windows to start intercepting its audio:


var airfoilApp = WScript.CreateObject("RogueAmoeba.Airfoil");

var runningSources = airfoilApp.GetRunningSources();
for(var i = 0; i < runningSources.Count(); i++)
{
	var audioSource = runningSources.Item(i);
	WScript.Echo("Running source " + i + " is " + audioSource.Name());
	
	// The Id() method returns the full path to the source, so 
	// we have to look at just the ending.
	if(endsWith(audioSource.Id().toLowerCase(),"firefox.exe"))
	{
		airfoilApp.SetCurrentSource(audioSource);
	}
}

function endsWith(str, suffix) 
{
    return str.indexOf(suffix, str.length - suffix.length) !== -1;
}

Interfacing with and controlling remote speakers is just as easy. This script enumerates the list of remote speakers that Airfoil for Windows can see, adjusts their volume, and then connects to any speaker that isn't currently connected:


var airfoilApp = WScript.CreateObject("RogueAmoeba.Airfoil");
var speakerCollection = airfoilApp.GetSpeakers();

for (var i = 0; i < speakerCollection.Count(); i++)
{
	var speaker = speakerCollection.Item(i);
	WScript.Echo("Speaker " + i + " is " + speaker.Name() + "\n");
	
	// Set the volume to half and connect if it isn't already connected
	speaker.SetVolume(0.5);
	if(!speaker.Connected())
	{
		speaker.Connect();
	}
}

Finally, you can also request to be notified of various events, including when source metadata changes:


var airfoilApp = WScript.CreateObject("RogueAmoeba.Airfoil", "AirfoilApp_");
var metadataProvider = airfoilApp.GetCurrentMetadata(); 

function AirfoilApp_OnMetadataChanged()
{
	WScript.Echo("Metadata Was Changed.");
	if(metadataProvider.ProvidesTrackMetadata())
	{
		WScript.Echo("Current track: " + metadataProvider.Title());
	}
}

There is plenty of other functionality provided by the scripting interface which isn't shown in the above examples. You can find the complete documentation of the API here:

Airfoil for Windows API Documentation and Examples

If you create a script or application to control Airfoil, be sure to let us know!

Macworld Follow-Up

As detailed last week, I had a busy opening Thursday at Macworld/iWorld. The trivia event was a blast, but you really had to be there for that one. The second panel, hosted by Lex Friedman, was packed to the gills. Unfortunately, it was not recorded for later viewing. I did have several great discussions with some of our customers after the panel wrapped up — thanks for stopping by!

The very first panel I did (“A Word from the Developers”), alongside Dan Moren, Guy English, and Rob Rhyne, did get recorded (almost all of it, anyway). You can see a short clip on “saying no” right here, and check out a link to the full talk as well. We discussed many of the challenges facing aspiring and nascent app developers, with Rob and Guy sounding intelligent and me along for the ride.

As usual, I had a great time at a very busy show, with both the expo and conference portions being well-attended and having lots to offer. I continue to recommend attending Macworld/iWorld to anyone who’s interested – the iFan pass is a particularly good deal, especially when purchased early.

Macworld/iWorld 2013 Events

Though Apple last exhibited at Macworld San Francisco back in 2009, the show is still going strong under the new Macworld/iWorld name. It’s changed in ways both big and small since Apple bailed, but it’s still well worth a visit, particularly if you’re local. You really can’t go wrong with the world’s largest event dedicated to Mac and iOS users. As you may know, Rogue Amoeba has continued to exhibit our wares at Macworld (in even-numbered years, like 2012 and 2010). We’re in an off-year for exhibiting, but I’ll still be attending the show for meetings, events, and to wander the exhibit hall. In addition, I’ll be participating in three different talks, all foolishly crammed into one day, Thursday, January 31st.

“A Word from the Developers”

(January 31st, 11 AM, Macworld Live stage)

First up, I’ll be on a developer panel run by Macworld’s Dan Moren. Along with Rogue Amoeba alumnus Guy English (now working on a great new app called Napkin) and Rob Rhyne (of contract shop Martian Craft), we’ll be discussing the decisions developers make every day as we try to make the best possible apps for mass audiences. This talk is open to all attendees.

“iCloud, App Stores & Other Things to Fear: Has Apple Forgotten Power Users?”

(January 31st, 1 PM, Room 2014)

Next up, I’ll be joining Macworld’s Lex Friedman for a panel chock full of writers. Also on that panel will be John Gruber (of Daring Fireball fame), Rene Ritchie (of iMore.com), and Matthew Panzarino (of The Next Web). We’ll be talking about the changing approach Apple has taken in the past half-decade, as they’ve taken over the mass-market.

“Answer, Please: An Apple Trivia Extravaganza with Glitz, Glamour & Great Prizes”

(January 31st, 3 PM, Room 2011)

Finally, Dan Moren and I will be combining our powers once again, to host a trivia event for the ages! The description may be overstating the glitz and the glamour, but I can assure you that the prizes are indeed great, thanks to our generous sponsors. Show off your Apple knowledge, and you could win the nifty olloclip iPhone camera lens (check them out at booth #716 in the Exhibit Hall), Studio Neat’s wonderful Cosmonaut stylus (they’re over at booth #554), BusyMac’s fabulous calendar BusyCal (visit the Appalooza area to find them), and more!

So bring a team of up to 6 people, along with all the Apple knowledge you can cram into your brain. We can’t promise this event will be as educational or informative as other talks, but we’re betting it’ll be more fun. Best of all, you could walk out of there with a great prize from our sponsors.

Getting In

To get in to the 1 PM and 3 PM events, you’ll need an iFan pass. Fortunately, with this link you can get pick one up for half-price, just $50. If you win one of our fantastic prizes, that pass will have paid for itself. Plus, the iFan pass will get you in to all the other Tech Talks, as well as the Special Events, including actors Ashton Kutcher and Josh Gad discussing their upcoming film jOBS, hip-hop star will.i.am talking about the future, and veteran of Saturday Night Live Fred Armisen talking technology and creativity. Be sure to order your iFan pass by January 30th to save.

Alternately, you can get a free Exhibit Hall pass through that link, but the iFan pass is really the best way to see it all (and the only way to get a chance at those prizes).

I hope to see you at Macworld!