Apple Lossless decoder with 24-bit support.
September 8, 2009
It’s been almost three years since the last release of ALAC, the open source Apple Lossless Audio Codec decoder. Today I’ve just released version 0.2.0 of the ALAC decoder. The update primarily includes added support for decoding 24-bit ALAC files, as well as minor cleanups, portability improvements and so on. Head over to the ALAC web page for more details and to download the new version.
Comment by James Russell — November 19, 2009
Posted at 9:14 pm
Thank you very much for adding 24-bit support!
Your work is very appreciated!
Best regards,
J. Russell.
Comment by Jim Avera — November 3, 2010
Posted at 4:54 am
FYI the copyright date printed when running the 9/5/2009 version (from http://craz.net/programs/itunes/files/alac_decoder-0.2.0.tgz) still shows as 2005. Since the version is not embedded in the software, it is hard to tell which version one is looking at except from the name of the .tgz archive file.
You might want to embed the version number (e.g. 0.2.0) and include it in the help message, so people can tell what version of a binary they are running.
Thanks for a great piece of software!
Comment by Mervin Beng — January 2, 2013
Posted at 11:26 pm
Thanks for the software! It was invaluable for my logitech media server setup.
There was a problem with 24/96 ALAC files — they were decoded as sample rate 30464Hz (0×7700) instead of 96000 (0×17700). I’ve created a kludged version that corrects this. On demux.c:
/* sample rate – 32bit fixed point = 16bit?? */
qtmovie->res->sample_rate = stream_read_uint16(qtmovie->stream);
if(qtmovie->res->sample_rate == 30464) /* 96000 – 65536 */
qtmovie->res->sample_rate += 65536; /* KLUDGE!! */
if(qtmovie->res->sample_rate == 22664) /* 88200 – 65536 */
qtmovie->res->sample_rate += 65536; /* KLUDGE!! */
if(qtmovie->res->sample_rate == 60928) /* 192000 – 2*65536 */
qtmovie->res->sample_rate += (2*65536); /* KLUDGE!! */
if(qtmovie->res->sample_rate == 45328) /* 176400 – 2*65536 */
qtmovie->res->sample_rate += (2*65536); /* KLUDGE!! */
entry_remaining -= 2;
It seems to work with the 24/96 materials I have.
Anyone compiling alac for use with hi-res files, please try this and post your results.