Apple TV OS 4.1 now increments play counts on a shared library

Apple TV now increments the Play Count and Last Played Date of a music track played from a shared iTunes library. (Skips are still not counted.)

Shared movies are also marked as “watched” after watching. Nice!

The November OS 4.1 update of the new Apple TVs (2nd generation) brought this new feature that I have not seen covered yet in the press.

This means that the listening habits of the Apple TV — which is bound to be the central media playback device in many households — now count toward Smart Playlists based on Most Played, Recently Played and other similar criteria.

Previously, the only way to accomplish this required “pushing” music from a source library to the Apple TV as an AirTunes destination. Less than convenient — and requires you to bypass the nice Apple TV interface.

I had previously devised an overly-elaborate workaround, but that is no longer needed. Yay!

More features I’d like to see come to Apple TV music:

  • iTunes DJ (altho the Remote app and the “push” method above work fine at a party full of iPhones)
  • Set star ratings remotely and/count skips (I’ve got an unrated, newly-encoded Apple Lossless master music library in desperate need of some curating.)
  • Only display playlists being shared by remote iTunes (all of them show up right now)


How to disable Ableton Live ReWire in DP7

I’ve been configuring a new audio workstation, and I found that my Reason and Sibelius ReWire audio inputs wouldn’t work in MOTU Digital Performer 7 like they do on our other workstation. I spent the first part of 4 hours trying to decipher whether the problem was with Sibelius’ config or DP’s, only to remember that I hadn’t yet disabled Ableton Live’s ReWire slave mode and inputs for this new workstation.

I’m not sure the problem is necessarily with Live, but perhaps with DP having to handle so many ReWire inputs — maybe DP (or ReWire) has a 128 channel limit? At least on Snow Leopard 10.6.2 with Digital Performer 7.02 and Live 8.1.1, DP couldn’t handle adding Live’s additional 64 inputs to my existing 64 Reason inputs, 2 Sibelius inputs, and 2 Waves inputs. Note: the Live inputs were not even assigned to a DP input. (In Bundles, no rows and no chicklets). Just having Live’s inputs *available* in DP prevented both Reason and Sibelius from passing ReWire audio into DP.

I generally use Live as a standalone DAW, so I don’t need access to these ReWire inputs in DP. But it’s not very obvious how to disable them, and it took me the rest of the 4 hours trying to get DP to forget about Live’s ReWire channels. Turns out it’s stupid-simple. Add one preference in Live’s Options.txt file and then delete two aliases from two different Mac OS X Library folders.

NOTE: Doing the steps below prevents Live from becoming a ReWire slave mode for all apps. It also completely removes the inputs from Digital Performer’s Bundles > Instruments window. I don’t know what else it might do — proceed at your own risk. 🙂

To disable Ableton Live’s ReWire slave mode and remove the inputs in MOTU Digital Performer:

  1. Quit both DP and Live if either are open.
  2. Edit (or create) your current “Options.txt” file for Live, according to Ableton’s FAQ page. Add the (undocumented) flag -ReWireSlaveOff. Setting this flag tells Live not to undo what you are going to do in step 4.
  3. Save and close Options.txt.
  4. Navigate to /Library/Application Support/ (that is, your top-level Library folder) and trash the alias named “Ableton Live Engine.bundle”. Navigate to ~/Library/Application Support/ (this one is the Library in your Home folder) and do the same thing to that “Ableton Live Engine.bundle” alias.
  5. Empty the trash for good measure.
  6. Relaunch DP and verify that the Ableton Live channels are gone from the Bundles > Instruments tab.

DP’s Instrument Bundles have been a little fickle since v6, so this all may be the result of some bug in DP. Or am I hitting some limitation of ReWire 1.7, or is it something in Live’s implementation of ReWire. It is curious that every other audio app I have besides Live places a .bundle file in /Library/Application Support/Propellerhead Software/ReWire/ to register their outputs.

Why does Live place a lonely alias at the top-level of Application Support? Why isn’t the file named “ReWire” like other companies do? Maybe that “Ableton Live Engine.bundle” alias does more than just publish ReWire outputs. But Live reinstates the alias only when the -ReWireSlaveOff flag is gone from Options.txt. So as long as Live doesn’t repair the alias when -ReWireSlaveOff *is* present, I’d say we’re safe.

What originally started as a quest to fix broken ReWire audio between Sibelius and DP became instead about how DP and Live work together (or don’t).

Deleting Live’s ReWire inputs from Digital Performer restored ReWire audio from Sibelius and Reason both. I hope that saves you some time.

DP6 Bugs Fixed in Digital Performer 7

MOTU released DP7 recently, and we’ve just installed our upgrade and 7.01 patch. I was very pleased to find that DP7 fixes many bugs introduced in DP6.

  • All Open/Save dialog boxes now remember their last window size, position, & column widths.
  • All sidebar panes in the Consolidated Window now have consistent click-through behaviors. In DP6, if for example the Sequence Editor was popped out and in the foreground over the Consolidated Window, clicks to the body of only certain background Consolidated Window panes would bring that window to the foreground. The problem tabs that are now fixed are Snap Information, Cursor Information, Event Information, Selection Information, and Track Selector. (NOTE: The exception is Track Selector, where clicking *items* leaves its focus in the background as you would hope, while a click to the tab itself or the pane’s border now brings the window to the foreground.)
  • Double-clicking to enter and leave the “Conductor” track in Graphic Editor is fixed. In DP6, if you double-clicked the “Conductor” track in the Tracks window, it would not switch the Graphic Editor (i.e. “MIDI” tab) to the “Conductor” track, even tho Preferences > Edit Windows > Default Edit Windows > Conductor Track was set to “Graphic Editor”. The only way was to select “Conductor” from the Graphic Editor’s mini-menu track list. Conversely, if Conductor was the active Graphic Editor track, it would not respond to a MIDI track double-click either. The only way to exit the Conductor track graphic view was also through a mini-menu selection.
  • More compatible with SampleTank (v2.5.3). DP6 was able to include SampleTank in Bounce to Disk operations without having to freeze or print the track audio, but the instrument’s behavior was always erratic if the VI window was closed. Possibly related to the window having to remain open, Bounce operations would sometimes take up to 5 minutes to begin. This delay also appears to be fixed in DP7.
  • Fully compatible with Omnisphere (v1.0.4g). Omnisphere is now also able to be included in Bounce operations without freezing or printing the audio first. (Yay!) Previously, Bounce operations would kick Omnisphere into “Stack” mode, screwing up all your patch and output settings, and requiring you to close and reopen the file to restore.

There are possibly many more things fixed, but these were specific DP6 gripes checked off my list.

CPU usage seems much improved, and I’m a huge fan of the UI refinements (namely the more slender automation line weight) and the inline channelstrips. After a bumpy DP6 ride, I feel in good hands again.

No, Brent, Finale doesn’t Suck – it Blows.

Have you ever had a car in high school that was being kept together by the rust? Where duct tape is a design element for the torn upholstery … and you have to keep a window open wide enough to stick your arm in and unlock the door because the key won’t work properly.

Yes. That’s Finale – and that’s my story, I’m sticking to it.

A Big Week Ahead

Alot of research, planning, and work culminates this week with some exciting things. We’re changing notation programs, installing acoustics improvements in the studio, and completing vocal tracking of Mike’s demo with a visit from a Tony-winning Broadway star.

Switching to Sibelius

I’ve had misgivings about Finale’s seriousness toward the Mac ever since Sibelius released their Mac OS X native app 18 months before Finale. Some of Finale’s OS X implementation (i.e. printing parts as PDF) is still broken even 5 paid upgrades later. Finale’s yearly upgrades are $100, the file formats are not backwards compatible so upgrades are essentially mandatory, yet serious bugs remain unfixed and new features are rarely worth the cost (either pandering to the education market or playing catchup to Sibelius). In addition, I couldn’t even launch Finale 2008 (a “MOTU bug“, they said), but it mysteriously fixed itself in Finale 2009.

We’ve demoed Sibelius 6, tested MusicXML file transfers out of Finale, and had our friend and professional music copyist Alden Terry give us a quick walkthru of Sibelius. The tipping point was Sibelius’ support for ReWire — a potentially exponential timesaver letting us sync vocal arrangements in real-time to our DP projects. We’re convinced, and today we start our transition.

Most of the Sibelius vs. Finale posts I came across were horribly outdated, so I will be live-blogging our transition — warts and all. Look here for my series of blog posts about switching from Finale to Sibelius.

Acoustic Improvements

Last fall, we reconfigured our studio (featuring a snazzy custom desk from KK Audio). This new layout made the acoustic imperfections in our room even more troublesome, but theme park season and general lack of acoustic theory kept me from addressing it.

I saw a college friend’s studio pictures on facebook, and he pointed me in the direction of RealTraps. Mike and I had been reluctant to just ignorantly plaster our walls with (honestly, ugly) acoustic foam, so the panel design already appealed to us. I’ve been corresponding with RealTraps’ on-hand acoustics expert “JWL” who looked at photos of our room and was really helpful in identifying what configuration would give us the most improvements.

I’ve measured our room’s frequency response in its current state, and I’ll do the same afterward. Look here for the results!

Broadway’s Alice Ripley

Mixing is progressing nicely on the 3-song demo for the new Kevin Del Aguila/Michael Shaieb musical, “The Protagonists“. The last vocalist is now confirmed, as Mike wrote earlier.

This Thursday, we’re happy to have Alice Ripley (Next To Normal, The Rocky Horror Show) joining us in the studio singing the part of “Eagle Woman”.

(Fans of Go-Go Beach will also know her from demo track #14: “The Love That Cannot Be”.)

Alice recently won a Tony award for the role of “Diana” in the Broadway musical Next To Normal, and we’re thrilled to have her back again.

How-to Fix WP HTTP Error: name lookup timed out

This blog and the Snowferno site both run WordPress on separate but identically-equipped Lunarpages servers. When I went to apply today’s WordPress 2.8.4 upgrade, one install was giving me “WP HTTP Error: name lookup timed out” messages and no upgrade button, while the other worked just fine. There are some workarounds detailed on the WordPress support site, but I wasn’t happy having to disable cURL on one host and not the other. It had to be something else…

The problem for me was caused by lines 1276-1277 of the wp_Http_Curl request() method in wp-includes/http.php:

curl_setopt( $handle, CURLOPT_CONNECTTIMEOUT, $r['timeout'] );
curl_setopt( $handle, CURLOPT_TIMEOUT, $r['timeout'] );

I commented those lines out and threw in a line of debug code on line 1325 (after the curl_exec call)


and tested the cURL transport using Core Control. I found that my requests were simply taking longer than the timeout provided. I don’t know quite why, except to guess that one server must be just more swamped than the other.

I fixed it by building myself a little plugin that adds an action for the 'http_api_curl' action called on line 1315.

After enabling this fix, WP showed the 2.8.4 upgrade button on the Dashboard page, but the WordPress Development Blog and Plugins RSS feed boxes still showed timeout errors. So, I looked further and found a filter that catches and can modify $r['timeout'] in the wp_Http request() method on line 237.

Here is my barebones plugin code, which overrides all timeouts to a massive 15 seconds:

//adjustments to wp-includes/http.php timeout values to workaround slow server responses
add_filter('http_request_args', 'bal_http_request_args', 100, 1);
function bal_http_request_args($r) //called on line 237
	$r['timeout'] = 15;
	return $r;

add_action('http_api_curl', 'bal_http_api_curl', 100, 1);
function bal_http_api_curl($handle) //called on line 1315
	curl_setopt( $handle, CURLOPT_CONNECTTIMEOUT, 15 );
	curl_setopt( $handle, CURLOPT_TIMEOUT, 15 );

I recommend you make sure this does not cause any other issues for your WP install. If you know how to make this code into a plugin, then you are capable enuf to be responsible for any adverse fallout. 🙂 I only know this solved my immediate problem while still maintaining cURL functionality.

New site design launched at

Our pal and Snowferno collaborator, Ben Britten Smith, asked me a while (weeks?) ago to port his website and blog over to a 100% WordPress-powered site. After we submitted the Snowferno build to Apple, I got working on it, and here’s how it turned out: homepage

new homepage

Ben had previously rolled his own mini-CMS, but had started wanting to unify his site content with his K2-themed blog. Ben’s site is also his portfolio site, so I wouldn’t have normally gone 100% WordPress. But after becoming familiar with the family of WooThemes premium themes for the Snowferno site, we selected the VibrantCMS theme and I went about the business of porting his content over to the new site. Through a little bit of backend category magic, many of the WooThemes manage to separate the blogginess of WordPress Posts from the CMSness of Pages. I’m sure a whole host of plugins would have done something equivalent, but this way it came all built-in to the theme. We also weren’t quite ready to learn a whole new platform like Drupal or Joomla just for a cosmetic upgrade.

And who’d have thought I’d ever buy a theme for WordPress when there are so many good free ones out there. But the thing I do love is the profit motivation keeping WooThemes well-maintained. Just today I found and applied a big update to the VibrantCMS backend. After you consider how many hours they saved me just by including a new IE 8 stylesheet, you can hardly justify not using premium themes.

I needed to map his old URLs, so .htaccess handles routing the old blog permalinks from up a level to the root Then since his old CMS used a querystring scheme similar to WordPress, I had to use the Redirection plugin to catch those incoming links.

RC2 of Snowferno out to beta testers – maybe final build?

If we don’t find anything tragic in this build, we’re gonna submit the current beta (Release Candidate 2) OF Snowferno to the App Store.

I searched the App Store for “hell” and came up with a slew of gory and disturbing games, which we’re certainly not. As long as that concept is okay for the store, I see no other reason we would be denied. But, still we’ll have our fingers crossed. It’s our first app, our baby!

In the meantime, the Leaderboard is completed and live. I’m actually quite proud of my own scores. (In spite of the fact that I knew *how* to solve most of the puzzles, you still have to *do* it. It’s more challenging than it seems!) And here’s another trailer:

Read more on our Snowferno development blog:

Snowferno iPhone Game Beta Released Tonight

Our first foray into the world of iPhone Apps officially entered beta tonight.

It’s Monday morning in Melbourne, Australia, where Ben just posted the first beta build (b0.9.2) to the Snowferno website.

If you want to play the game before anyone else — for free! — let us know:

We’ll be able to add new device IDs in a week or so. Barring any huge bugs, we are aiming to submit to the App Store in about 10 days.