Lossless audio playback on iOS - Part II

Let's continue our adventure to lossless audio playback! In Part I, I've scrutinized 24 bit and/or lossless FLAC and WMA playback. In today's installment, I've looked into how the reviewed multimedia players (along with my new purchase, the lossless playback-specific GoldenEar) play back the following formats:

- the WMA Pro (default) output of Microsoft Expression Encoder 4 to see how WMA Pro is handled (the previous test tested Lossless, 24 bit and non-Pro, simple WMA2.)
- Monkey's Audio (.ape); with normal compression level
- WavPack with default compression
- WAV with A-law 2:1
- OGG lossless (OGA)

I've re-run the FLAC tests with a new, lossless file too. (The results were exactly the same as with the earlier FLAC tests.)

(Click the links for the test files! They're all made straight from a Finnish CD “Joulun Kellot” (first track, “Hyvän Joulun Toivotus”)).

The converters

Apart from the WMA test file, I've used  Max for Mac  (additional article) to create the files, straight from the above-mentioned CD. I've used the default compression settings for all titles.

For WMA, Microsoft have retired Windows Media Encoder (used previously to encode into WMA Lossless) in 2010; now, the Expression Encoder family can be used for encoding. The free version, Microsoft Expression Encoder 4 with Service Pack 1 (SP1), can still be used to encode WMA Pro and Lossless (different versions compared). Just drop the source (e.g., MP3) file on the app and select File / Encode. Set the coder (by default, Pro / 16bit / 44 kHz) in the right center. With Lossless, also open the group below to select 24-bit encoding. When the encoding finishes, the file will be in "\Home\Documents\Expression\Expression Encoder\Output".

The results

I've got pretty good results and very high compatibility rate, which was to be expected as, apart from WMA, these are all well-documented, mostly open-source formats. It's only the OGG lossless format that enjoys significantly lower compatibility rate than more-established ones

Now, I can't provide you with exact CPU usage figures as, for some reason, Instruments stopped working. As soon as I get it working again, I update the chart with the results.

24 bit / lossless WMA

Speaking of CPU usage, after realizing that, because of the formats' being strictly closed and very-hard-to-discover, there are no other players to play back these formats, I've run some serious battery consumption tests with XBMC to find out whether the CPU usage figures were OK. Playing back a new WMA Pro file, created with the new Expression 4, with disabled OpenGL visualization and minimal backlight (XBMC can't play anything in suspended or backgrounded mode), the battery level decreased 8% in an hour (from 86%) on the iPad 2 - that is, hardly anything. This means the very high, around 77% CPU usage I've “measured” was wrong (with truly 77% CPU usage, the battery drain would have been much higher). As I've only seen such differences between the true and the “measured” CPU usage with Cydia-based apps (but not AppStore apps running on exactly the same jailbroken device under exactly the same circumstances), I bet it's the fact that these (Cydia) apps are programmed to access all resources (as opposed to the AppStore ones) that makes CPU usage reports unrealistic.

All in all, you can safely use XBMC to play back lossless and/or 24 bit WMA's, as opposed to the earlier remark in the previous article, strictly based on the (false) CPU usage reading. Currently, it's the only player on iOS that can do this – no other player can play back these formats. (The best they can do is playing back WMA Pro.)

The results

They're all in the work-in-progress chart (OpenOffice format!) from the row starting with “WMA Pro 44 kHz”. As usual, _+ means plays back without problems, _- means displays it in the filelist but doesn't play back at all (no sound and/or immediately return) and n/a means the player doesn't even display the file in the file list.

Master your iPhone in one minute a day: Sign up here to get our FREE Tip of the Day delivered right to your inbox.

<p>Werner Ruotsalainen is an iOS and Java programming lecturer who is well-versed in programming, hacking, operating systems, and programming languages. Werner tries to generate unique articles on subjects not widely discussed. Some of his articles are highly technical and are intended for other programmers and coders.</p>
<p>Werner also is interested in photography and videography. He is a frequent contributor to not only mobile and computing publications, but also photo and video forums. He loves swimming, skiing, going to the gym, and using his iPads. English is one of several languages he speaks.</p>