The recent holiday breaks gave me time to add another update to my Play By Ear ear training application. Version 1.05, which you can download for free at the iTunes App Store, includes higher-resolution images for the iPhone4 retina display, lower overall memory consumption, and jazz licks for the melody feature -- the jazz licks are so killing, man.
In my previous version (1.04), I spent a lot of time trying to improve stability so the app would stop crashing. Several people reported that it was running better, but it crashed on me a couple of times when I was running a lot of background apps on my iPhone 4. After doing some research, I learned that iPhone apps should try to stay under 8MB of memory consumption in order to avoid shutdown/crashing by the operating system. Unfortunately, Play By Ear was using about 16MB just to load up all of the piano sounds and it would use even more memory when the application was running. Whoops! This latest version of Play By Ear addresses that problem by unloading sounds as needed to keep the memory under 7MB. This might affect performance a little, although it seems to do pretty well even on my old iPhone 3G.
HIGH RESOLUTION IMAGES
I was pleasantly surprised to discover how easy it is to add high-resolution images for the iPhone4's retina display. All I had to do was create new images that were twice as large and save them with "@2x" in the filename. For example, if a low resolution image is named "btnPlay.png" then the high resolution name would be "btnPlay@2x.png." The iPhone4 automatically loads up the "@2x" images while the older devices continue to display the original images. I think that's pretty clever. Anyway, all of the images have been updated, but for some reason the application's icon is still using the old version. I'm not sure what happened since it always used the new high resolution version when I tested. Oh well, I guess we'll have to wait for the next update for that to get fixed.
I continue to get requests for an Android version of my ear training tools. I haven't done any Android development before, so I recently set aside some time to tinker with a prototype Android application. I managed to get some basic frequency analysis code running and I even got the Android emulator to do midi playback of random melodies. That part was actually pretty cool, although there are challenges since I can't change the tempo while it's running. I'm far from having a finished Android application, and I'll probably do another iPhone app first, but at least I now have a good idea of what is and isn't possible on the Android. I've also decided, for the time being at least, that the Android version of my app will not do pitch detection. I might change my mind once I get further into the development, but I'm concerned that it won't work consistently on all of the different brands and models of Android phones. And I definitely don't want to buy a bunch of Android phones that I'll never use for anything aside from testing.
I began making ear training tools in 2004, and since that time all of my ear training tools have been available for free. My online ear training tools will always continue to be free, but lately I've been thinking that it's time to start charging for my iPhone ear training application. I base that decision mostly on the fact that I've spent way more time on the app than I ever imagined. For example, last weekend I spent about 16 hours working on the new features, testing, and fixing bugs. And while I enjoy the thought of helping people improve their aural skills, the simple fact is that the iPhone app isn't essential. My online ear training tool already does all the stuff that the iPhone app does (except for pitch recognition) and the online ear trainer does a bunch of extra stuff too. In other words, if I charge for the iPhone app and you decide you don't want to pay, you can still use my online ear trainer for free and you'll end up using an even better, more feature-rich application. See, you're better off NOT buying my iPhone application! Ok, so maybe I should come up with a better sales pitch.
I haven't completely made up my mind to charge for Play By Ear, but I'm definitely leaning in that direction. I'll probably just charge $1.99, though. It's funny, as little money as that is, it somehow feels like a major purchase when you're in the App Store. I won't start charging for my iPhone ear training app until later this month or February, so be sure to get it now, while it's still free. And please remember to rate it!