Wherefore Art Thou, Musicality 3?

As you may have noticed, the new and improved version of Musicality I teased back in April still hasn't arrived. Short version: recent changes to OS X and the WebKit framework caused Musicality's audio features to stop working. I've been frantically working to fix it, and this has caused the release to slip. The good news is that this happened before the release (whew!), I now have it all sorted, and I am once again making progress. The beta testers have identified several areas I need to address (thanks everyone!) but overall things are looking good. I am going to bump a few features to speed up the release, so it will be a little less splashy than I had hoped, but that just gives me something fun to include in the subsequent updates.

Longer version, and a lesson: in order to stream the audio over AirPlay, Musicality must first capture it from the web browser. There are several ways that websites can play audio—via HTML and Javascript, or Flash, or even as a video—and some black voodoo needs to be done under the hood to make sure that I can monitor all of these sources and capture their audio streams.

The WebKit framework that ships with OS X has been split up to run in several different processes; a process is kind of like a little, independent application. So when you run a WebKit-based app like Musicality or Safari, there are now several little helper apps running in the background doing things like rendering webpages, running plugins, and in the new versions of WebKit, even playing audio.

It is fairly easy to monitor and intercept things that are happening in your own app. For security reasons, it is much harder to monitor and intercept things going on in other apps. This is a good thing: you don't want a malicious bit of code watching what you type, or tracking what you do, or just accidentally stepping on something because of a bug. Splitting WebKit into processes means that when one part breaks, the other parts of the app can keep running. But it also meant that Musicality could no longer get the audio it needed to stream.

After a lot of flailing, I found a way to get my code to run, I got my audio, and everything was looking good. And then OS X 10.10 came along and made the rules about what code is allowed to run within a process much more strict, and everything was broken again.

I have to admit: I really thought about giving up at this point. I've been churning over the same code for months now and I'm back to the drawing board, again. I'm feeling incredibly frustrated and my Impostor Syndrome is raging. That bottle of bourbon is looking really good. But I can't. I can't give up because I use Musicality all day, every day. I love my music, and I love having it fill my whole house (I have AirPlay devices everywhere). I love this app; even if it never makes another penny I must have it for myself.

So I after much teeth gnashing I dropped WebKit and essentially rewrote the entire application on Chromium. The app is now much bigger, which I don't like, but snappier and more capable, which I like quite a lot. And I now have full control over the audio, and all the source code should something change in the future. Once the dust settles and I finally get all of the pieces back together (which will take some time yet, and continue well after this next release) I will have a better app.

So…Musicality 3 is coming, really. And along the way I've been reminded why it is so important to love what you do. To find the opportunity in the challenges. And to never give up, never surrender.

If you haven't already, be sure to follow me on Twitter or Facebook for updates. And feel free to contact me with questions!

So Long Musicality, See You Soon!

First thing: The next version of Musicality is nearing release, and I'm looking for a few music loving testers to help shake out the bugs and polish it up. You should be the sort who can help identify and reproduce problems. You should be running Mac OS X 10.9 Mavericks, and ideally you also have one or more AirPlay devices and an iPhone or iPad running iOS 7. Your mission will be to bang around the apps, try to break things, report bugs and suggest improvements. If you choose to accept this mission, you can apply right here, with my humble thanks!

Second thing: As of today, the 2.0 version of Musicality is no longer available for sale. No one enjoys buying something only to have the new, shinier version arrive a few days later. So I am turning off the store now while the new version is still a few weeks out (at least, no promises, maybe longer).

If you haven't already, follow me on Facebook or Twitter to keep up to date on the progress. I will be posting status updates and screenshots from the beta, and you'll get a chance to see what's in the works.

Questions?

I already purchased Musicality; does this mean I have to purchase it again?

Yes. Musicality 3 is an entirely new app, rebuilt from the ground up on the latest OS X and iOS technologies. So it will be a new purchase for everyone, even people who bought previous versions (to whom I am very, very grateful).

Why a whole new version?

As a one-person team of one, it has become difficult to continue supporting the old technologies while taking full advantage of the new ones. As you may have noticed, there haven't been a whole lot of new features in Musicality lately, and this is a big part of the reason.

I could have just dropped the old version entirely, but there are still quite a few of you who either can't or would rather not upgrade. By creating an entirely new app, the old one can continue to exist in the store. It will not be available for sale, but I will be able to release fixes and minor updates, and you will be able to reinstall it from your Purchased list if you lose your copy.

What's new about the new Musicality?

I'll reveal more as we go through the beta, but in a nutshell: more. More shortcuts. More services. And one more thing that will make everyone that uses AirPlay and an iOS device very happy. Be sure to follow me on Twitter or Facebook for updates!

What happens to the old version?

The 2.0 version of Musicality that is (or was, rather) in the store today will continue to work as it always has, and will continue to receive bug fixes and compatibility updates for as long as I can keep them running*. If people continue sending in support requests, and fixes are possible, I will keep making updates.

The first such update is already in the works and will appear shortly after the beta gets started. It includes support for Last.fm's new player, and more fixes for AirPlay and Mavericks compatibility.

(* At some point, Apple may require all apps to adopt a new technology. If that happens, I will have to drop support for the App Store version, though I might be able to continue supporting direct downloads.)

Will there be upgrade pricing?

No. Partly because the Mac App Store doesn't support upgrades, but also because the app is already so inexpensive.

When will the new Musicality be available?

I can only say that it will be ready when it is ready. There is still some work to do, and I want to give the testers a chance to shake things out. If you are really eager to try it out and want to be part of the beta, you can apply here.

That's it! Many, many deep and heartfelt thanks to everyone who purchased Musicality, and to all of those who reported issues, sent in feedback, and helped make it better.

Musicality 2.0.4—The Return of AirPlay

After a very lengthy review process, I am pleased indeed to announce that new versions of Musicality and Muse are now available in the Mac App Store! This is ostensibly a bug fix release, delivering much needed improvements for Mountain Lion, Grooveshark, and Last.fm. But the big news is:

AirPlay is back!

Thanks to the new AirPlay features in the latest version of OS X (10.8 Mountain Lion), AirPlay streaming can now return to the Mac App Store.

(Direct customers and switchers: nothing new for you here, you've had these fixes for over a month now, and AirPlay all along.)

You can learn more about Muse for Pandora here, and Musicality for Pandora, Last.fm and Grooveshark here.

Musicality 2.0.2—Apple Gives, Apple Takes

New versions of Musicality and Muse are available for direct customers today, featuring big performance improvements to wireless streaming (AirPlay) and a bucketful of bug fixes and small improvements. Check for updates!

For all of you Mac App Store customers, things are a little more...complicated. Apple has decided that custom AirPlay implementations are no longer allowed in the App Store. As a result, they will not allow me to submit any updates or new releases until I remove AirPlay, entirely and completely. So while a new version should be hitting the App Store soon, it is going to be missing this very important feature.

So that's the bad news. But there's good news too: it is now possible for Mac App Store customers to download and use the feature complete, direct sale versions of Muse and Musicality, available from this website, free of charge. You can learn how here for Muse and here for Musicality.

For those of you who choose to remain in the App Store, there is hope: I am cautiously optimistic that wireless streaming will be returning when OS X 10.8 Mountain Lion arrives in July. But you are also likely to lose use of the media keys due to Apple's new sandboxing rules. Apple gives, Apple takes away.

I realize this is all getting much more complicated than it should be, and for that I apologize. I will continue to look for ways to make things simpler and, as always, feel free to contact me with any questions or concerns!

Musicality 2.0—AirPlay!


A gift for you this Valentine's day: Musicality 2.0, featuring…

AirPlay!

Nary a week goes by that I don't get at least one email about AirPlay. It has been, by far, the most requested feature, and so it is with great pleasure that I present the new Musicality, with AirPlay.

Using the new AirPlay controls in Musicality's system and Controls menus, you can now stream your music to an AirPort, Apple TV, or any AirPlay-enabled device. You can even stream to multiple devices, while listening on your computer, all at the same time. Play Pandora on the stereo in your living room, or fill your whole house with music! I've had a lot of fun developing this feature, bouncing the audio around between my office, the Apple TV in our living room, and an AirPort Express upstairs.

If you're the type that like to get their AirPlay everywhere with Rogue Amoeba's Airfoil, you'll be pleased to hear that the latest version of Airfoil includes full support for Musicality. You will now see the currently playing song and cover art, and can even control Musicality remotely via Airfoil Speakers. Many thanks to the Rogue Amoeba folks for their help in making this possible (and for making such a cool product)!

After AirPlay, the rest of the changes seem rather minor, but this release also brings support for OS X Lion's full screen mode (which really makes Grooveshark shine), improved song notifications, and lots of fixes and polishing.

Musicality 2.0 is a free upgrade for all users, so go check for updates now, and enjoy!

Musicality 1.4—Menus and Icons Oh My!

A new release of Musicality to usher in the fall season, with some welcome UI additions.

A new menu bar item and system menu
Musicality now has a system menu item (those little icons on the right side of the menu), with a full set of options to control your tunes.


Musicality's new system item menu

As a big keyboard user I didn't think I'd get much out of this particular feature, but it has turned out to be quite handy. I find myself using it all the time, and I'm quickly forgetting how I lived without it.

New icon preferences
Related to the feature above, two new preferences are now available: Show Musicality icon in menu bar and Show Musicality icon in dock. The former allows you turn off the menu bar icon added in the feature above. The latter hides Musicality's icon in the dock, reducing a bit of clutter while using the system menu and keyboard shortcuts to control the music.

Station tracking
Both the system and the dock icon menus now show the currently playing station. This is the first in a series of steps toward better station management within Musicality.

Bug fixes
What's a release without bug fixes?

  • Grooveshark recently made a change that caused Musicality to lose track of songs that were missing cover art. Fixed.
  • There was a rare crashing bug in the new Pandora player caused by some dueling Javascript. Fixed.
  • A bug in the user preferences would sometimes cause a crash while setting the Last.fm password. Fixed.
  • The new Pandora used to stop after a few songs on OS X Lion. This has been fixed by Pandora.

The usual routine applies: direct purchasers, check for updates now. Mac App Store customers, keep an eye on the store (or our Twitter account) for updates.

Some big features (and plenty of small ones) are still in the pipeline. I appreciate all of your feedback and suggestions. Keep them coming, and enjoy!

Musicality 1.3.2 — Pandora 2.0

What was that I was saying about no big changes? Here comes Pandora with a completely redesigned player, currently being rolled out to Pandora|One subscribers, and it looks smashing.

As you've probably gathered, this release adds support for said new player. It also fixes a minor issue that prevented web pages from loading properly if anything on the page (like, say, Facebook's "Like" widget) failed to load. Direct downloaders check for updates now; App Store customers will have to hold out a few days for Apple's review.

OS X Lion users: The new Pandora player has a bad habit of getting "stuck" between songs—one ends but the next doesn't start. Pandora tells me they are working on it and hope to have a fix Real Soon Now.

Oh, and in case you were wondering where all the new features have gone recently: I am hard at work on Musicality 2.0. Too soon for details yet, but stay tuned!

Musicality 1.3.1 — Peace and Quiet

The Big Three have been playing it cool lately, with no big changes, and no breaking changes. Even Last.fm, which has been struggling to play consistently for the last several weeks, has been working well. Good times!

As a result of all of this peace and quiet I was able to knock out a bunch of minor bugs that had been hanging around for a while (I was also to make some good progress on Musicality 2.0, but more on that another time).

  • I now set a minimum window size to prevent Grooveshark's layout from breaking.

  • I fixed the initialization of the Sparkle auto-updater in the non-App Store build, so it will once again prompt new users for automatic updates.

  • Changes made to the keyboard shortcuts are now properly reflected in the menus.

  • Song information is now cleared from the dock icon menu when switching services.

  • I updated the HIDRemote library (thanks Felix!), which fixes a (rare) crash bug.

  • I made a few minor visual fixes and tweaks.

Oh, and for you developers out there who like to live on the cutting edge of your favorite OS: Musicality now works for you, too.

Enjoy!

Musicality 1.3 — Friday the 13th Edition

Here's one many of you have been waiting for: Musicality 1.3 squashes that truly obnoxious bug, the one that causes Grooveshark to crash all over the place. Repeatedly. Very annoying, and good riddance to it.

This release also adds a new dock icon menu, a very popular request, with the currently playing song and all the usual controls. It is a little plain at the moment; I hope to add more bells and whistles over the next few releases.

I also fixed a small issue that would allow HTML entities in Grooveshark metadata to show up in the Growl messages. Those should display properly now.

Folks who purchased Musicality directly from me can Check for updates… now. Mac App Store customers will have to hang on just a little longer while this update goes through the (hopefully quick) Apple review.

Enjoy!

Musicality 1.2.8 — Another change, another fix

Here's the problem with building on top of someone else's service: when they change stuff, your stuff breaks. Earlier this week it was Last.fm, today it's Grooveshark. The pain! The horror! Well, anyway, I fixed it. If you purchased Musicality directly from me, you can check for updates and everything will be right in the world again.

Of course, if you purchased Musicality through the Mac App Store things aren't so easy. Apple first needs to approve the update, which means a few days of lag time before new versions become available—which is pretty good, when you consider the number of applications they need to review. Hang in there, and the fixes will be yours shortly.

projects: