dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Wiki > Main > SoundCodecMonkeysAudio (compare)

Difference: SoundCodecMonkeysAudio (r60 vs. r59)

Monkey's Audio


Monkey's Audio (also called APE or MAC) is a lossless compression format. The home page is

Monkey's probably has the highest compression of all the lossless codecs, but it comes at a price - decoding is very CPU intensive, and not all compression levels are playable in realtime in Rockbox.

Monkey's audio has five compression modes, with each mode compressing to a smaller size, but significantly slower to decode than the previous one. -c2000 or -c3000 are a good compromise between compression size and decoding speed.

  • -c1000 - "fast"
  • -c2000 - "normal"
  • -c3000 - "high"
  • -c4000 - "extra high"
  • -c5000 - "insane"

In addition, Monkey's Audio (currently at version 3.99) has been through many incompatible format changes in its life - most versions of the encoder produce files which are not decodable by earlier versions of the decoder.

Current Status

The Rockbox Monkey's Audio codec only supports v3.97 or later files.

Rockbox supports APEv2 tags in Monkey's Audio files, but does not read (or skip) id3v2 tags, which some applications also add to APE files. If a file has an id3v2 tag, it won't work in Rockbox.


The codec has already been optimised a lot. There's some further potential by using both CPU cores on PortalPlayer targets.
Approximate decoding speed for v3.99 files on the various CPUs in Rockbox-supported DAPs are as follows (figures for 44.1kHz 16 bit stereo files):

Devices SVN rev. (1)Sort-c1000-c2000-c3000-c4000-c5000
iPod 1st Gen..3rd Gen (80MHz ARM7TDMI: PP5002) r24512 166% 111%69%16% (2)2.0% (2)(3)
iPod 4th Gen, Mini 1st Gen; Iriver H10; m:robe 100 (80MHz ARM7TDMI: PP5020) r24512 153% 101%63%23%2.8% (3)
iPod 5th Gen, Mini 2nd Gen, Nano 1st Gen; Sansa c200, e200 (80MHz ARM7TDMI: PP5022/PP5024) r24572 169% 112%70%24%? (2)
Iriver H1x0/H300, iAudio X5/M5/M3 (124 MHz ColdFire 5249/5250) r24512 258% 185% 133% 55%13.5%
iPod Nano 2nd Gen (192MHz ARM940T: S5L8701?) r24786 433% 289% 187% 64%2.6%
Cowon D2 (192MHz ARM926EJ-S: TCC7801) r24590 461% 330% 221% 86%20%
Gigabeat F (300MHz ARM920T: S3C2440?) r24512 654% 458% 294% 106%22%
Gigabeat S (528MHz ARM1136JF-S: i.MX31L) r26004 1378% 1034% 824% 404% 112%
Sansa Clip (250MHz ARM9TDMI: AS3525) r21234 668% 446% 275% 97%9%
Sansa Clipv2 (250MHz ARM926EJ-S: AS3525v2) r27897 580% 409% 274% 108%26%

  1. starting with r24512, tests are done using the standard test files.Differences to earlier tests are minimal (<1% relative).
  2. filter buffer(s) taken out of IRAM in favour of a larger reciprocal table for optimised division.
  3. insane filter buffer does not fit into IRAM.

Note that a speed less somewhat above 100% is required to play without skipping during normal use.

CategorySoundCodecs: Monkey's Audio (APE)

r60 - 05 Nov 2010 - 18:59:41 - JustinHannigan

Revision r60 - 05 Nov 2010 - 18:59 - JustinHannigan
Revision r59 - 05 Nov 2010 - 18:14 - MichaelGiacomelli
Copyright by the contributing authors.