| 1 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|---|
| 2 | The Apple Lossless Format |
|---|
| 3 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|---|
| 4 | |
|---|
| 5 | Apple Lossless supports the following features. Not all of these are implemented in alacconvert, though they are in the codec code provided. |
|---|
| 6 | |
|---|
| 7 | 1. Bit depths 16, 20, 24 and 32 bits. |
|---|
| 8 | 2. Any arbitrary integer sample rate from 1 to 384,000 Hz. In theory rates up to 4,294,967,295 (2^32 - 1) Hz could be supported. |
|---|
| 9 | 3. From one to eight channels are supported. Channel orders for the supported formats are described as: |
|---|
| 10 | Num Chan Order |
|---|
| 11 | 1 mono |
|---|
| 12 | 2 stereo (Left, Right) |
|---|
| 13 | 3 MPEG 3.0 B (Center, Left, Right) |
|---|
| 14 | 4 MPEG 4.0 B (Center, Left, Right, Center Surround) |
|---|
| 15 | 5 MPEG 5.0 D (Center, Left, Right, Left Surround, Right Surround) |
|---|
| 16 | 6 MPEG 5.1 D (Center, Left, Right, Left Surround, Right Surround, Low Frequency Effects) |
|---|
| 17 | 7 Apple AAC 6.1 (Center, Left, Right, Left Surround, Right Surround, Center Surround, Low Frequency Effects) |
|---|
| 18 | 8 MPEG 7.1 B (Center, Left Center, Right Center, Left, Right, Left Surround, Right Surround, Low Frequency Effects) |
|---|
| 19 | 4. Packet size defaults to 4096 sample frames of audio per packet. Other packet sizes are certainly possible. However, non-default packet sizes are not guaranteed to work properly on all hardware devices that support Apple Lossless. Packets above 16,384 sample frames are not supported. |
|---|
| 20 | |
|---|
| 21 | |
|---|
| 22 | |
|---|
| 23 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|---|
| 24 | This package contains the sources for the Apple Lossless (ALAC) encoder and decoder. |
|---|
| 25 | |
|---|
| 26 | The "codec" directory contains all the sources necessary for a functioning codec. Also includes is a makefile that will build libalac.a on a UNIX/Linux machine. |
|---|
| 27 | |
|---|
| 28 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|---|
| 29 | ALACconvert |
|---|
| 30 | |
|---|
| 31 | The convert-utility directory contains sources to build alacconvert which is a simple utility that demonstrates how to use the included ALAC encoder and decoder. |
|---|
| 32 | |
|---|
| 33 | alacconvert supports the following formats: |
|---|
| 34 | |
|---|
| 35 | 1. 16- or 24-bit mono or stereo .wav files where the data is little endian integer. Extended WAVE format chunks are not handled. |
|---|
| 36 | 2. 16- or 24-bit mono or stereo .caf (Core Audio Format) files as well as certain multi-channel configurations where the data is big or little endian integer. It does no channel order manipulation. |
|---|
| 37 | 3. ALAC .caf files. |
|---|
| 38 | |
|---|
| 39 | Three project are provided to build a command line utility called alacconvert that converts cpm data to ALAC or vice versa. A Mac OS X Xcode project, A Windows Visual Studio project, and a generic UNIX/Linux make file. |
|---|
| 40 | |
|---|
| 41 | Note: When building on Windows, if you are using a version of Visual Studio before Visual Studio 2010, <stdint.h> is not installed. You will need to acquire this file on your own. It can be put in the same directory as the project. |
|---|
| 42 | |
|---|
| 43 | |
|---|
| 44 | |
|---|