Last modified: 2013/4/7
What is this?
X Lossless Decoder(XLD) is a tool for Mac OS X that is able to decode/convert/play various 'lossless' audio files. The supported audio files can be split into some tracks with cue sheet when decoding. It works on Mac OS X 10.4 and later.
XLD is Universal Binary, so it runs natively on both Intel Macs and PPC Macs.
Support various formats
XLD can decode following formats:
Other formats supported by Libsndfile are also decodable. XLD uses not decoder frontend but library to decode, so no intermediate files are generated. All of the supported formats can be directly split with the cue sheet. XLD also supports so-called 'embedded' or 'internal' cue sheet.
XLD supports various output formats. It can convert audio files into WAVE, AIFF, Raw PCM, Ogg Vorbis (aoTuV), MPEG-4 AAC (QuickTime/CoreAudio), MP3 (LAME), Apple Lossless, FLAC, HE-AAC (aacPlus v1/v2), Wave64, WavPack, and IETF Opus.
XLD version 20080812 and later can be used as a CD ripper. You can convert each track in your audio CD into the desired format. Also XLD supports output a CD image with cue sheet (wav+cue, flac+cue, etc).
Plug-in oriented design
Frontend and backend of XLD are prefectry separated, so the frontend is able to access the various decoder with the same interface. If we provide plug-in interface in the future, you can easily develop the plug-in of the new format. If you are interested in this, please see XLDDecoder.h in the source files.
How to use
IMPORTANT NOTE : To split ape(flac,wav,etc) + cue files, open the .cue file from "Open..." in File menu. "Open Raw PCM (bin/cue)" can be only used to handle Raw PCM (header-less wav) files.
Prease refer Readme file included in the archive to get usage of GUI version. Usage of command line version is:
% xld [-c cuesheet] [-e] [-f format] [-o outpath] [-t track] file
Without any option, XLD simply outputs decoded WAVE file. The extension of the output file is changed from original one into ".wav"
You can specify the following options:
- -c cuesheet
Split file into tracks with cue sheet. If 'TITLE or 'ARTIST' is described in the cue sheet it affects the name of the output file.
Exclude pre-gap from output file. Pre-gap is appended to the last of tracks by default. This option is ignored when '-c' option is not specified.
- -f format
Specify the format of the output file. You can specify the following formats:
Microsoft WAVE format. This is default output format. Extension is ".wav".
Apple AIFF format. Extension is ".aiff".
Big-endian raw(linear) PCM format. Extension is ".pcm".
Little-endian raw(linear) PCM format. Extension is ".pcm".
- -o outpath
Specify the path or name of the output file. If outpath is a directory, output file is saved in that directory.
- -t track
If you specify "1" as a track, only the track 1 is decoded. Likewise, Track 2 and 4 are decoded when you specify "2,4" as a track.
Read input file as Raw PCM. Following 4 options can be specified.
- --samplerate n
Set samplerate of input file to n Hz when --raw option is specified. Default is 44100 Hz.
- --bit n
Set bit depth of input file to n bit when --raw option is specified. Default is 16 bit.
- --channels n
Set number of channels of input file to n ch when --raw option is specified. Default is 2 ch.
- --endian little/big
Set endian of input file when --raw option is specified. Default is little.
% xld -o ~/Music hoge.flac -f aif
Decode hoge.flac in the AIFF format, and output in ~/Music.
% xld -c hoge.cue -t 1,3 hoge.flac
Split hoge.flac with hoge.cue, and decode the 1st and 3rd tracks.
The source code of XLD is available here. The library and header of Libsndfile, FLAC, Wavpack, Monkey's audio and Libcddb is required to compile.
- Command-line version is included in the archive.
- Additional Plug-ins (put into ~/Library/Application Support/XLD/PlugIns to use)
Make a donation
If you appreciate XLD and would like to support the project, you are welcome to donate via Paypal.
Donation amount can be changed via quantity field.
- User-customizable character replacement rules for filenames
Now you can define you own rules for the filename character replacement. Rules for slash and colon are mandatory and cannot be deleted.
- Supported importing Sd2f disc images (from Toast, for example)
Useful when you want to convert existing images ripped with Toast. You can also get a Sd2f output plugin from this page, but it is not recommended to use Sd2f as an image format because it cannot contain as much information as cue sheet, and the information is stored in the resource fork.
- Created a new "Fila Naming" preference tab, and moved some existing items to there
- When using MusicBrainz database, get track's own metadata instead of the recording's one if exists
- Added an interface to change the process priority
Useful when you want to suppress CPU usage of XLD and there are other CPU hungry tasks running.
- Added an option for FLAC encoder to suppress writing ReplayGain tags
- Added support for WAV tags
It can be turned on from the encoder's option panel (disabled by default for compatibility). There are two tag formats: INFO chunk is a native tag format but very few metadata can be written. id3 chunk is not a native format but it has the same feature as id3 tag. Both formats can be used at the same time.
Very few programs on Mac support wav tags (both INFO and id3 chunk). XLD's wav decoder reads id3 chunk only.
- Added a feature to open MusicBrainz release page
- Fixed a problem that caused increasing "inactive" memory usage when using ALAC/AAC encoder
- Fixed a crash when using XLD on the user account which doesn't have a login shell
- Improved a vehavior when moving files from the temporary folder to the folder on different volumes
- Fixed a media type detection failure on some drives
- Added media type description (pressed CD or CD-R/RW) to rip logs
- Assigned cmd-D shortcut for Extract/Transcode button, cmd-shift-M for Get Metadata button
- Fixed 24-bit input issue in Vorbis encoder
- Perform ISRC/MCN sanity check when burning a disc
- Updated Opus encoder to version 1.0.2
- Updated Italian translations
- Offering a log checker plugin
You can get the log checker plugin from the download section above. After installing the plugin to the plugin folder, XLD appends a signature at the end of a logfile when ripping. The signature looks like:
-----BEGIN XLD SIGNATURE-----
-----END XLD SIGNATURE-----
For logfiles which have the signature, log tamper detection can be done with XLD version 20121027 or later (the plugin must be installed). To perform a check, run XLD and choose XLD menu -> Log checker. Checking is done quickly and the result appears when you drag files to the log checker window. Also, by using the command line version,
% xld --logchecker logfile.log
will check files.
- Support for Cover Art Archive service
- Added drive speed control option
Note that the actual ripping speed depends on the drive, so it is not guaranteed to be ripped with the selected speed exactly.
- Get discnumber/totaldiscs tags from MusicBrainz database
- IETF Opus encoding support
- XLD now writes replaygain tags (track gain only) to FLAC files when ripping a disc
- Supported a disambiguation field for MusicBrainz metadata lookup
- Displays useful informations for AWS (used for cover art search) errors
- Profile selection support in a command-line version
- Some improvements on ape tag reading/writing
- Disc list is updated properly when required
- Fixed a file/folder naming error when an album artist tag differs from track to track
- Fixed a problem when reading a file with empty metadata entry (key exists but no data)
- Fixed a multiple logfile creation issue when there were skipped tracks
- Released an Opus encoder plugin
Opus is a totally open, royalty-free, highly versatile audio codec. On Mac OS X, playback is currently possible with Firefox 15 or later, VLC 2.0.4 (not yet released) or later, and recent ffmpeg.
It works with XLD 20120908 or later. The source code is available here.
- Fixed a problem when ripping CD with C2 pointer enabled on some external drives
- Fixed a problem when reading ape files which have too many (>256) tags
- Fixed a crash when reading some kind of corrupted flac files
- Improved sorting order when opening multiple files at once
- Cuesheet character encoding setting in the GUI is applied to the CUI
From this version the source code of XLD is not included in the archive anymore. It is available in the XLD project page on googlecode.
- Released a FDK AAC encoder plugin
FDK is an AAC encoder released by Fraunhofer for Android. At the moment there is no binary distribution, so please build it by yourself with Xcode.
- Extended command-line interface
Now compressed formats (MP3, AAC, Vorbis, FLAC, ALAC, WavPack) can be created with the integrated command-line version. Encoding options are shared between GUI and CLI; i.e. the settings in the XLD GUI are applied to the CLI version.
- Some imporvements on the AccurateRip report
Main changes are:
- Shows total number of submissions
"confidence 10/20" means that there are 20 total submissions in the database.
- Tells "verified with AccurateRip v1 and v2" results from "verified with AccurateRip v2 only" results
- Shows disc ID
- Fixed a problem when reading cue sheet in the batch mode
- Improved a behavior when getting artist metadata from discogs
- Allowed bit depth selection in the ALAC output plugin
- Better wine support in the TAK decoder plugin
Now CrossOver Mac is supported as an alternative of wine. It is used automatically if CrossOver.app exists in /Applications. WineBottler is also supported.
- Suppoted "REM COMPILATION" line in cue sheets
- Fixed a problem when exporting cue sheet from non-44100Hz tracks
- Fixed a crash when writing lyrics tag to MP3 files
- Updated LAME to version 3.99.5
- Supported embedding track list as a MPEG-4 chapter
Available for ALAC/AAC encoding when ripping disc as a single file. Chapter is supported in Apple's apps like iTunes or QuickTime.
- Supported reading a MPEG-4 chapter as a track list
- Fixed a problem when getting metadata from specific MusicBrainz URL
- Fixed a problem when the null character is included in text tags
- Updated LAME to version 3.99.4
- Added "Get metadata form URL" feature
Available in the CDDB menu. Currently MusicBrainz and Discogs are supported as a source URL. The URL should be
- http://musicbrainz.org/release/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (MusicBranz)
- http://www.discogs.com/xxxxx/release/xxxxxx (Discogs)
- Window titlebar has a proxy icon
- Fixed a pregap detection issue on Hitachi LG drives
- Fixed a MusicBrainz lookup problem when the release is associated with multiple DiscIDs
- Faster replaygain analysis on intel processors
- Fixed a MusicBrainz lookup problem in the previous version
- XLD now pulls composer info from MusicBrainz
- Supported reading/writing MusicBrainz-related tags (some MBIDs, etc)
- XLD shows more verbose error messages for cue sheet opening failure
- Fixed a problem when writing lyrics tag to MP3 files
- Fixed a problem that XLD did not launch under specific login shell configuration
- Updated LAME to version 3.99.3
- Added support for iTunes_CDDB_1 tag
This makes it possible to lookup metadata in iTunes via "Get Track Names" menu. It is available for all tracks encoded from CD, cue sheet, and folder opened as a disc.
- Year metadata field now accepts complete date string
- Track list window shows total time of a disc
- Experimental integration of command-line interface
Now XLD GUI version works as a command line version. See CLI folder in the archive for details. The independent CLI version will be obsolete in the near future.
- Updated LAME to version 3.99.1
From 3.99.1 on, some (my original) extra optimizations for Intel processors have been added. So it runs faster than the official version. See here for details.
For those who still want to stick with LAME 3.98.4, the 3.98.4 plugin is distributed in this page (see download section).
- Uploaded LAME 3.99 plugin
- Fixed an incompatibility issue with some 10.4 intel environments
- Fixed a problem that the CD metadata wasn't imported from iTunes when the volume name was too long
- Fixed a problem that colons and slashes in the filename are not escaped when ripping disc as a single image + cue
- CDDB connection error is now notified accurately
- Made metadata edit window resizable
- Supported cover art embedding for ogg vorbis files (METADATA_BLOCK_PICTURE)
- Added Italy, Spain, China for amazon search region
- Fixed a problem when burning DDP files
- Fixed a pregap detection problem on some plextor drives
- Fixed a problem when converting incomplete (not finalized) FLAC files
- Fixed a glitch of the scroll bar in the log window
- Updated libsndfile to version 1.0.25
- Fixed a problem that the format of filename including slash didn't work correctly
- Fixed a problem that adding to the iTunes didn't work when converting multiple files
- Added an interface to set a track 1 pregap length when opening folder as a disc
- ~/Library/Application Support/XLD/PlugIns is now recognized as an additional plugin folder
- Format strings are now available in the iTunes playlist name field
- Fixed a problem when encoding ALAC with resampling enabled
- Various small bugfixes
- Updated the command-line version to fix an compatibility issue with Lion and add some new features:
- output to stdout (--stdout)
- read DDP file (--ddpms)
- Avoid writing NFD UTF-8 texts to the FILE command in cue sheets
- Fixed a problem which caused crash when reading a cue sheet which has REM DISCID line with blank discid
- Supported custom apodization functions in FLAC encoder
You can specify custon apodization functions for the FLAC encoder (like -A option in the command-line tool). The function name should be separated by ';' character. See here for available functions.
- Updated Monkey's Audio decoder to version 4.11
- Partial support for AIFF tag reading
- Left pane of the track list window accepts drag & drop
- Fixed some locale-dependent (especially in German resources) glitches
- Updated libsndfile to version 1.0.24
- Added support for Amazon Web Services (AWS)
You have to get the AWS account and set up access keys to use this feature.
- Automatic cover art lookup feature using the Media Catalog Number (MCN, barcode) tag
- Versatile cover art search feature (CDDB -> Search Cover Art...)
- MusicBrainz access via New Generation Schema
This is a change for the backend, so you won't see any noticeable change with this.
- Added an interface to associate MusicBrainz DiscID with the existing releas in the MB databasee
- Updated drive offset database
- Implemented CD burning feature
Clicking "Burn CD" button in the toolbar of the track list window triggers a CD burner. Apple's standard CD burner GUI will appear and proceed.
Note that the verification process requires an offset correction, so both read/write offset value (in CD Burn pref) should be set correctly for the exact match. Otherwise the verification will fail. If you are not sure about the write offset of your drive, burn AccurateRip verifiable image with the write offset 0, and rip the burned disc with the correct read offset. Then, the AR report will suggest offset values, and the relative one will be the write offset.
Here is a current status list of the XLD burner:
- XLD does
- write flac/ape/wv/etc+cue image to CD directly
- take care of write offset
- reproduce pregap length
- write ISRC/MCN
- write pre-emphasis/DCP flag
- XLD does not (at this moment)
- handle HTOA perfectly
Due to the limitation of Apple's framework, some drives fail to burn images including HTOA (MATSHITA will work, NEC/Pioneer will not). And HTOA longer than 1 second is truncated.
- create Mixed Mode CD
- create Enhanced CD (CD-Extra)
- write CD-Text
- Fixed a bug that metadata from MusicBrainz was not obtained properly
- Open recent menu works
- Added a feature to open folder as a disc
Now you can open folder which contains some files without cue sheet as a disc and can lookup metadata, check AccurateRip, etc. Available in the File menu.
- Supported MCN tag in the vorbiscomment metadata
- Fixed a problem that saving .cue setting was not preserved
- Fixed an extension issue when saving offset corrected files
- Updated Russian localization resources
- Added the option to save .cue automatically when ripping to separated track files
Note that .cue is created only when ripping all tracks at the same time.
- Fixed a bug when saving non compliant cue sheet of the discs with HTOA
- "Apply this item to all files" context menu in the tag editor works for the compilation check box
- Minor tweaks in the progress window
- Traditional Chinese localization
- 512x512 icon
- New modern Cocoa UI for the track list window
- Non-compliant cuesheets are supported in the batch mode
- Fixed a profile name editing problem on 10.4
- Fixed a problem that profile remove button didn't work when only one profile existed
- Added Spanish localization
- implemented a profile manager
Now you can save frequently used settings as a profile and quickly switch them through the profile menu.
- Added support for reading cue sheet associated with multiple files (aka "noncompliant" cuesheet)
- Added a feature to set the default value of the comment tag
- Added an option to choose preferred CDDB service (FreeDB vs MusicBrainz)
- "Refresh list" menu item has now Command-Shift-R shortcut
- Fixed a problem when adding a file with a specific character to iTunes database
- Fixed a missing AlbumGain log problem with CD-extra discs
- Genre or release date info for individual tracks is now saved correctly in the cue sheet
- Fixed a problem when writing a comment tag which contains break lines to the cue sheet
- Uploaded Vorbis aoTuV b6 Plugin
- Fixed an incorrect TOC detection on some drives
- Fixed some problems regarding the "Delete original files" option
- Supported AccurateRip2 CRC
If XLD finds a match with AR2 CRC, a log says like
AccurateRip signature : 01234567
->Accurately ripped! (AR2, confidence 10)
Supported offset finding CRC in AR database
Now XLD uses offset finding CRC for detecting different pressings. It works better for the first and last track.
Fixed a problem that a filename format identifier %A did not work for 1-to-1 file transcoding
Fixed a problem when ripping with 0 offset correction value
Fixed a crash problem when read error occured
Various small fixes around the ripping log
Fixed a potential memory leak
- Introduced a new original secure ripping engine
This is a brand-new secure ripping engine employing a statistical error correction and a cache defeat. Generally it shows a better and more consistent result than the existing CDParanoia engine, especially on slightly damaged discs. At this moment it is not turned on by default, but I recommend everyone try it. Enabled by setting "Ripper Mode" option to "XLD Secure Ripper".
Here is a description of the error in the report:
- Jitter error (maybe fixed)
Number of reads which caused a jitter error. The error occurs when seeking between sectors back and forward heavily - the drive fails to return the accurate sector position and returns a slightly moved position. Fixed by the program in most cases.
- Retry sector count
Number of sectors which needed a retry read. The program performs a retry read when the 1st and the 2nd (verify) read results do not match (or when C2 error is detected). In case a statistically consistent result was found with the retry reads, this count is incremented. Not a problem in most cases.
- Damaged sector count
Number of sectors in which the program was unable to find a statistically consistent result with the retry reads. Bad result in most cases.
- Implemented a new CD ripper backed
Libcdio was used as a backend so far, but now it has been replaced with my original implementation. Many troubles like a hangup on CD-extra discs should be fixed now.
- A versatile multiple-format encoder
Now you can invoke the same encoder with different settings at the same time, like MP3 128kbps & 320kbps.
- Added AccurateRip summary section in the log
- Supported DCP (Digital Copy Permitted) flag
- Fixed a missing padding byte problem in ID3 chunk in AIFF files
- Supported various sorting tags (for iTunes) in AAC/ALAC/MP3/FLAC/Vorbis files
- Removed a support for CDParanoia II 9.8 engine
- Fixed a random error when decoding multiple ALAC files
- Fixed a problem that a year tag is not correctly updated by the tag editor in some cases
- Added an option to delete original files after conversion
Use carefully. Only works with 1-to-1 conversion.
- Improved cue sheet parser/writer
- Supported writing BPM and part of a gapless album tags in AIFF files
- Supported writing a BPM tag in MP3 files
- Supported a lyrics tag in mp3 encoder
- Supported a grouping tag in FLAC/Vorbis
- Fixed a problem that prevented from launching on PPC G3 Macs
- Fixed a problem that "Don't prompt if multiple candidates are found" option was only working for automated CD ripping
- Proxy setting is now applied to the musicbrainz connection
- Fixed a problem that pregap detection did not work on 10.5 PPC(?) machines with a certain drive
- Fixed an issue with ALAC decoder on PPC machines
- Increased a maximum number of threads to 32
- Updated a drive offset database
- Added Italian localization
Important: OSX 10.3.9 won't be supported anymore. Maybe still it works, though.
- Added a feature to import tags from a text list
Now you can automatically fill metadata by using a formatted text list. Try File->Import Tags from a Text menu.
- Metadata editor window for the converter is now modeless
You can access the prefs or open files while editing.
- Added an option to keep the original time stamp when transcoding
Available in the metadata tab. Only works with 1-to-1 conversion.
- XLD now recognizes MARK chunk in AIFF as a track separator
- Supported writing ISRC tag to mp3 files
- Supported reading/writing disc number info in the cue sheet
- Supported reading/writing total disc number info in the cue sheet
- Supported reading/writing FreeDB DiscID info in the cue sheet
- Supported ISRC (%i) and MCN (%m) in the format of filename field
- Supported FreeDB DiscID (%I) in the format of filename field
- Supported genre (%g) in the format of filename field
- Automatic update is now deactivated while active task exists, because it interrupt the task
- Added information about the gap status in the ripping log
- Added "Force mono encoding" option in AAC encoder
- Supported reading/writing BPM tag in AAC/ALAC files
- Supported reading/writing copyright and part of a gapless album tags in AAC/ALAC files
- Added "Set image" context menu to the album art view
- Added a switch to control the TLEN tag in the LAME output plugin
- Delete incomplete files when cancelled or error occured
- Supported writing comment lines in a cue sheet
- Improved a cue sheet detection routine
- Improved a file extensionin handling in the save dialog
- Visibility of the preference panel is saved
- Preference panel opens at the initial launch
- Fixed a problem that some files with embedded cuesheet was not recognized in the batch mode
- Fixed a problem when encoding with multiple format and skip existing file option
- Fixed a minor issue regarding the progress window
- Improved a compatibility of ALAC encoder
Some unofficial ALAC decoders cannot play ALAC files created by XLD due to the wrong stream info (which should be ignored by correctly implemented decoders, though) written by the CoreAudio encoder. Now XLD forcibly updates the info after encoding.
- Fixed a minor glitch in the rip log formatting
- Fixed a problem with ape files including invalid (null-terminated) text tags
- Added an option to preserve unknown metadata when transcoding
Works for the conversion between FLAC, WavPack and Vorbis. This is enabled by default, but you can turn it off if you feel annoying.
- Supported external .cue in the batch conversion mode
Audio data should be associated with FILE line in the cue sheet.
- Added a ripping mode that doesn't include the track 1 pregap (aka HTOA), but includes all remaining pregaps
- Added an option to choose the bit depth of linear PCM (Wav/AIFF/Wave64) output
- Added an option to enable/disable the autoset compilation flag functionality
- Format of filename field now can be used for single/batch file conversions
- Added "Apply This Item for the Same Album" context menu in tag editor (for "Edit tags before convert")
- XLD no longer sets the compilation flag automatically if album artist tag exists
- Fixed a problem that the track info for CD-extra discs wasn't imported from iTunes
- Fixed a problem that the compilation flag had higher priority than the album artist tag for the replacement of %A
- Fixed a problem that the album artist info was incorrectly removed in some cases when reading cue sheets
- Added an experimental support for TAK decoder (intel only)
Now XLD provides TAK decoder powered by Wine. You should install and configure Wine correctly to use the plugin (wine command should be in $PATH of your login shell).
Technical topic: The TAK plugin is composed of 2 parts, a backend winelib app and a frontend Cocoa plugin. The backend loads TAK DLL and calls TAK API using the Wine technology, and the frontend interacts with the backend using IPC. This way we can transparently access the TAK DLL as if it were natively supported on OSX.
- Added option to move converted files to the destination folder after finish
This is useful when saving to iTunes watch folder while iTunes is running.
- Added compatibility with older ape files
- Enabled HE-AAC encoder on OSX 10.5
- Assigned cmd-D for the decode button
- Supported composer (%c) in the format of filename field
- Fixed an incorrect AR hash calculation for the last audio track of CD-extra discs
- Fixed again the duration problem of HE-AAC files
- Fixed a problem that the radio button for "Format of filename" option didn't work
- Improved CD Info.cidb importer
- Updated the drive offset list
- Updated LAME to version 3.98.4
- Supported detecting pregap length longer than 10 seconds
- Added support for "SONGWRITER" command as the composer info in cue sheets
- Added the option to skip detecting pregap
- Format string for the album artist (%A) is now replaced with "Compilations" when the compilation flag is set
- Pre-gap length is shown in the ripping log
- Checkboxes in the track list window accept modifier key
Shift-click checks/unchecks all tracks, command-click checks/unchecks selected tracks.
- Fixed a CDDB and AR query issue in CD-extra discs
- Fixed a crash when disable embedding cover images
- Fixed an invalid duration time issue in Apple HE-AAC encoder
- Fixed a hangup when reading ogg vorbis files
- Updated WavPack library to version 4.60.1
- Updated libsndfile to version 1.0.21
- Added an experimental support for Shorten (decoding only)
- Added option to load a specific file automatically as a cover art
- Added option to scale embedded images smaller than the target size
- Added option to control embedding album art
- Added an option to set file type to 'OggS' in FLAC encoder (checked by default)
For the compatibility with FLACImport.component.
- Fixed a prblem that the duration of AAC file is not properly shown in iTunes in case the file is resampled by encoder
- Fixed a problem when handling cuesheet (or disc) which has only one track with pregap
- Fixed a filename issue in the cue sheet for separated files
- Fixed a problem when reading defined but empty metadata in ALAC files
- Fixed a problem that the state of "Cover Art" item in the "Query Items" submenu was not saved properly
- Batch conversion now ignores invisible files (like .DS_Store) when scanning directory
- AccurateRip checker now shows the result with alternate offset candidates
- NSToolbar based preference pane
- Supported pre-emphasis flag
- Supported disk number (%D) in the filename field
Note: descriptions are now shown in tooltip.
- Added an option to quit XLD after ripping
- Added support for grouping tag in ALAC decoder
- FLAC decoder now supports reading embedded pictures not marked as "Cover (front)"
- Updated WavPack library to version 4.60
- Changed the default value of VBR quality for AAC encoder in QT 7.6.3 or later
- Fixed an odd behavior of automount feature
- Fixed a problem when creating a file with too long filename
- Fixed an m4a incompatibility issue with some software
Some software (squeezebox?) with incomplete atom parsing ability can't read m4a files create by XLD on 10.6. This is a fault of these software, but anyway I took an action in my side.
- Added Russian localization
- Fixed a problem of ALAC metadata reader on Snow Leopard
- Fixed a problem that autoloading disc was not working on Snow Leopard
- XLD now accepts cover arts dragged from web browsers
- Implemented an interactive bitrate indicator for AAC ture VBR encoder
- Fixed a problem when reading ISRC tag in FLAC files
- Supported the new HE-AAC encoder in Snow Leopard
To use, check "Encode with HE-AAC" checkbox in the option dialog of MPEG-4 AAC encoder. In HE-AAC encoder, true VBR is not available and available bitrate is limited (24-80kbps).
Existing "MPEG-4 HE-AAC" encoder is still available, but this is different from the Apple's one.
- Fixed a small problem in CD info.cidb parser
- Updated internal drive offset database
- Updated Simplified Chinese resources
- Fixed an incompatibility of AAC/ALAC encoder with Snow Leopard
- More intelligent CD Info.cidb parser
- Fixed failure of exporting to iTunes when filename contains backslash
- XLD is now able to skip processing when the file with the same name exists
- Supported comment line in cue sheets
- New document icon
- Added support for DDP (Disc Description Protocol) files
"DDPMS" files can be opened as a cue sheet.
- Supported reading ISRC from discs
- Added "Apply This Item for All Files" context menu in tag editor (for "Edit tags before convert")
- Added option for batch conversion to split file with embedded cue sheet automatically
- Relaxed the limitation of the size of album arts embedded into MP3 files
- Improved support for FLAC metadata (ALBUMARTIST/TRACKTOTAL/DISCTOTAL/COMPILATION)
- Now %y (year) can be used as a filename format indicator
- Added option to control appending BOM to cue sheets
- Added option to force mono encoding in LAME encoder
- XLD now shows a dialog when quitting with active tasks
- Updated libcdio library
- Updated libsndfile library
- Fixed a problem when embedding a large album art into AAC/ALAC files
- Fixed a problem that Monkey's audio decoder sometimes wrongly detected files
- Fixed a problem that a png image embedded with iTunes wasn't read
- Improved reliability of CD Info.cidb parser
- Improved stability when connecting MusicBrainz server
- Fixed a problem that colon(:) in the folder name was not replaced with the safe one
- Supported simultaneous codec conversion
Select "Multiple Formats" in the output format and check the preferred format in the option. Note that WAV, AIFF, PCM and WAVE64 is exclusive each other.
- Integrated drive caching ability measurement routine of CDParanoia III 10.2
To measure, open a CD and choose "Measure Drive Cache Ability" in File menu.
- Integrated drive offset database into application
You can select the offset correction value for your drive if it is registered in the database.
- Added option to use C2 error pointers
When the option is turned on, XLD first read a sector in burst mode, and check the occurrence of C2 error. If C2 error occurs, then XLD re-read the sector with cdparanoia. This accelerates ripping extremely for the drive with C2 error support (Plextor, NEC, etc), without losing safety. If you use this option, please make sure that your drive supports reporting C2 errors.
- Supported folder conversion
XLD now accepts folder! There is an option to preserve the whole directory structures, and to control the depth of subfolder to read in preferences.
- Added option to open, query, and eject CD automatically
XLD now recognizes disc insertion and allows you to start ripping without any manual operations. If you choose XLD as an preferred application for audio CDs in system preferences, XLD works as iTunes.
- XLD now recognizes '/' (slash) as a directory separator in the filename format field
XLD creates folder automatically. You can save files in the preferred folder by its title, artist, etc.
- Supported album artist (%A) and format name (%f) in the filename field
- Renovated the behavior of progress window
You can convert thousands of files without slowdown.
- Supported writing metadata for AIFF files
XLD now writes iTunes-compatible tags against AIFF files.
- Added option to control samplerate in some output plugins
- Updated LAME output plugin to make id3 tags to be written in little-endian format
Because some softwares in windows doesn't support big-endian tags (sucks!).
- Supported compilation tag
- Improved Gracenote (iTunes) CDDB file importer
Now per-track artist, composer, comment, etc. are recognized.
- Added option to disable embedding cue sheet in FLAC and WavPack encoder
- Modified wavpack encoder to store MD5 checksum by default
- Updated LAME to version 3.98.2
- Updated Sparkle.framework
- Added Dutch translation (thanks to Jesse Muller)
- Fixed AR checking issue of Apple Lossless files
- Fixed some issues with the new cdparanoia engine
- Fixed a problem when ripping Mixed Mode CD/Enhanced CD
- Removed redundancy of the cue sheet generated by XLD
- Fixed crash on connection failure to MusicBrainz database
- Added feature to calculate an AccurateRip hash for the existing files
Choose "Check file with AccurateRip" from the File menu.
- Added feature to fix a wrong offset of the existing files using AccurateRip database
You can detect and fix an offset from "Detect Offset" and "Save with Offset Correction..." in File menu, after opening a file (with cuesheet) that you want to fix.
- Implemented a feature to check offset in the ripping stage
Now XLD performs a real-time offset checking while ripping, when the CD is available in AccurateRip DB. The result is written in the log if found.
- Integrated cdparanoia-III 10.2 engine
You can use the old engine by checking "Use old CDParanoia engine" checkbox.
- Added option to set the strength of the cache defeating ability
Only for the new engine. Stronger is safer, but slower. Stronger setting will be useful for the drive which has a large cache.
- Added feature to scan ReplayGain
You can use this feature by choosing "Scan ReplayGain" in File menu. There is also an option to scan ReplayGain during ripping.
- XLD now automatically recognizes inserted/ejected CD
- Supported embedding album art in WavPack encoder
- Fixed to ask output directory if the default directory is not writable
- Added option to save a log file automatically
- Improved progress view to show a speed and remaining time
- Added option to veryfy suspicious sectors
- Added option to test before copy
- Added option to avoid testing when the track exists in AccurrateRip DB
- Supported creating a cue sheet for separated track files
You can choose type in the save dialog. Note that currently XLD can't read this type of cue sheet.
- XLD now shows "[AR]" string in the titlebar of the window when a disc is available in AccurateRip DB
- Sorted character encoding pop-up menu by alphabetical order
- Separated drift errors from skip errors in cdparanoia statistics
- Added option to treat AccurateRip mismatch as an inconsistency in log
- Automatic album art downloading feature now can be disabled from CDDB menu
- Added option to modify a size of padding section in FLAC encoder
- Added save button in Log window
- REM DATE and REM GENRE line for the cue sheet is now written in the common section
- Fixed incompatibility with OSX 10.3
Automatic updating is not available in 10.3.
- Fixed again an AccurateRip hash calculation for the first track
- Fixed a problem that XLD sometimes failed to find a CD in AccurateRip database
- Fixed several bugs in cdparanoia routine according to the latest release
- Fixed UTF-8 NFD issue when looking up Gracenote database
- Fixed MusicBrainz query failure on PPC Mac
- Fixed an endian-swapping issue on some environments and CDs
- Fixed a problem for reading an enhanced CD (CD-extra)
- Fixed a problem of ALAC decoding with QuickTime 7.5.5
- Fixed an invalid TLEN tag issue in LAME encoder
- Fixed an AccurateRip hash calculation for the first and last track
- Improved tag editor
- Supported automatic update using Sparkle
- Supported AccurateRip database to check integrity of the ripped tracks
To use, read offset correction value should be correct (please refer to here). Not available when pregaps are excluded.
- Added option to disable cache of the drive
Cache should be disabled to rip in cdparanoia mode.
- Added support for CRC calculation
Both the standard CRC and the EAC-compatible one are displayed.
- Improved log display format
- XLD now can read metadata obtained from Gracenote CDDB by iTunes when reading Audio CD
- Fixed various bugs in CD ripper
- Improved pregap detection algorithm
- Supported EAC-like log output
Only available if you use cdparanoia mode.
- Automatic album art download using Musicbrain's ASIN database
- Updated German resource
- Updated Simplified Chinese resource
- Added CD ripper
Main features are:
To read a CD, select "Open Audio CD" from File menu. You can save tracks as separated files, or a single file with a cuesheet. When you save as a single file and selected output format is FLAC or Wavpack, cuesheet is embedded into the file itself.
- CDParanoia engine
- Pregap length detection
- Read sample offset correction
- Supported output cuesheet
Character encoding is always UTF-8 with BOM, which is complatible with foobar2000.
- Added option to add files to iTunes after conversion
- Supported bitrate information tags for iTunes 7.7 in AAC encoder
- Implemented iTunes-like metadata editor
You can now edit metadata before converting by enabling "Edit tags before convert" checkbox in prefs. A metadata editor dialog appears before conversion. In case of cue sheet, select a track and choose "Edit metadata..." in File menu or context menu. Multiple tracks can be modified simultaneously.
- Fixed a bug in ALAC decoding
- Updated LAME to version 3.98
Interface has been changed because of a fractional VBR quality control.
- Updated WavPack to version 4.50.1
- Provided LAME 3.98 Plugin
This will be included in the next update.
- Supported WavPack output
- Supported Wave64 output
- Improved support for files larger than 2GB
- Improved support for Wave64 files on libsndfile
- Fixed the problem that sometimes failed to embed cover art in non-Japanese environment
- Made easier to show context menu in the progress window
- Added routine for AAC/ALAC encoder to rearrange MPEG-4 ATOMs in the m4a file that is incmompatible with iTunes sharing
- Fixed bug that prevented reading cue sheet with no PERFORMER info
- Added "Cancel All Tasks" context menu to the progress window
- Slightly improved performance of LAME mp3 encoder
- Updated LAME 3.98b8 plugin
More Altivec optimization has been applied. Now 10-15% faster than the previous version on G4/G5 machine (graph).
- Updated LAME 3.98b8 plugin
A part of psychoacoustic analysis routine for vbr-new has been optimized for AltiVec. This resulted in about 15% speedup on G4/G5 machine.
- Updated LAME 3.98b8 plugin
Enabled asm routine for Intel CPU; now 20% faster than before.
- Provided LAME 3.98b8 Plugin
There are various changes since 3.97. The interface is slightly changed because now floating-point quality value can be specified in VBR mode for more flexible quality control. This version is uniquely optimized for AltiVec (as 3.97 in the current XLD), so it is faster for G4/G5 users than the original version.
- Provided aoTuV b5.5 Plugin
- Supported reading cover art in ape/wavpack files
- Supported album artist metadata in some formats
- Reduced memory usage when importing cover art
- Added German localization
- Added French localization
Notes: Cover art obtained from iTunes Store isn't embedded in music file itself. So XLD cannot read cover art form such kind of ALAC files.
- (20080313a)Fixed MP3 encoder to work correctly on G4/G5 Mac
- Added support for embbeded cover art
XLD now can read embedded cover art in FLAC and ALAC, and can embed cover art in (HE-)AAC, MP3, FLAC and ALAC. If you want to embed the existing image file, drag and drop the file to the box as shown in the figure below. Large images can be scaled when embedding. Scaling option is in the pref pane.
- Metadata supported by mp3 encoder was increased
For the detail, please see this page.
- Supported MusicBrainz database
No specific configuration is required. XLD automatically querys MBDB when querying FreeDB.
- Fixed bug that prevented decoding TTA files with ID3 tag
- Changed timescale of m4a file created by HE-AAC encoder to 600
- Fixed bug that caused corrupt .m4a output when encoding 48kHz file
- Gave up support for 32kHz input in HE-AAC encoder due to very limited bitrate range
cf. mono file must be encoded at bitrate <= 44kHz.
- Updated Simplified Chinese localization resources
- Added support for HE-AAC output by aacplusenc
Supported bitrate range is 16-64kbps. Parametric stereo is used if bitrate <= 44kbps. Supported input frequency is 32, 44.1 and 48kHz.
For high-quality playback, use MPlayer or VLC. AAC decoders based on QuickTime cannot handle SBR and PS part.
- Integrated MP3 decoder
Still no support for ID3 reading.
- Fixed bug that caused crash when Raw PCM import
- Disabled option of writing accurate bitrate in AAC encoder on Leopard (GUI)
I noticed that this option is meaningless on Leopard, because AAC encoder on Leopard writes accurate bitrate by default.
- Spin-off (currently in Japanese only)
- Updated converter routine to enable multi-threaded conversion (GUI)
You can set maximum number of threads from Preference.
- Supported writing accurate bitrate in AAC encoder (GUI)
Now similar to iTunes.
- (Nov. 13, 2007 19:00 GMT)Updated again because VBR quality is not saved
- Supported ABR and unconstrained(true) VBR mode in AAC encoder (GUI)
The new AAC encoder is available on Leopard, or Tiger with QuickTime 7.3 installed. Here is a brief explanation of available modes:
True VBR mode requires target quality, and the others require target bitrate. Unlike the previous version, the target bitrate can be specified at any value in 16-320kbps.
Keep a bitrate constant, but it is not perfectly constant due to a bit reservoir.
Try to encode at a target bitrate on an average. It fluctuates bitrate locally more than CBR because bitrate restriction is applied in a longer time span compared to CBR.
- VBR (Constrained)
Fluctuates bitrate according to the difficulty of encoding. It constrains variation range due to the target bitrate. So It doesn't fully take advantage of VBR feature, but more efficient than ABR. Older version of XLD and iTunes use this as VBR mode.
- True VBR
Fluctuates bitrate according to the difficulty of encoding to maintain a target quality. Bitrate variation is unconstrained. Theoretically it provides the best tradeoff between quality and bitrate, but bitrate is hard to predict. Apple's implementation requires target quality in 0 to 127 range. As a guide, quality 0 is about 32kbps, 90 is about 128kbps, and 127 is about 192kbps, respectively.
- Added Simplified Chinese localization (GUI)
Thanks to Shonete Smith.
- Updated AAC/Apple Lossless encoder to fix the compatibility problem with Leopard (GUI)
- Added in ver. 20071111a: fixed a remaining bug in AAC encoder (GUI)
The bug occurs when encode a file longer than a few minutes with tag on Leopard... sorry.
- Updated FLAC to version 1.2.1
- Changed default extension for Ogg FLAC from .ogg to .oga according to the new specification (GUI)
- Improved performance of tag writing for AAC/ALAC output plugin (GUI)
- Fixed a bug that album name is incorrectly set to the last track title when reading embedded cuesheet (GUI)
- Updated FLAC to version 1.2.0
It will be slightly faster on Intel Macs due to enabling MMX/SSE codes.
- Partially rewritten Monkey's Audio/TTA decoder with SSE optimization
Notes: TTA version 3.4.1 has been released, but it has no improvement on decoder and lost 32bit float decoding capability. So XLD still uses version 3.3.
- Fixed overwriting problem when both input and output file have the same name (GUI)
- Fixed a bug that prevented decoding ALAC files on Intel Mac
- Updated WavPack to version 4.41
- Partially fixed a bug that caused crashes on iPod when playing Apple Lossless file encoded by XLD
"Partially" means that I don't understand a fundamental cause of this bug. Probably this is a problem of iPod or CoreAudio. Note that you don't have to re-encode ALAC files unless you play those files with iPod.
- Fixed a bug that prevented converting 24/32-bit files to Apple Lossless
- Fixed some minor issues
- Updated FLAC to version 1.1.4
- Supported reading cuesheet which has index over 99:99:99
- Improved handling of character encodings in cuesheet
- Added option to get only the specific info from CDDB (GUI)
Please refer to "Query Items" submenu in "CDDB" menu.
- Improved handling of 32bit floating-point audio files
- Added option to select stereo mode in LAME output plugin (GUI)
Please use with default (Auto) setting if you have no special reason.
- Updated WavPack to version 4.40
- Fixed a problem that caused some noises at the beginning of the file when XLD read AIFF directly from the Audio CD mounted on desktop
This may be a bug of Libsndfile, but I temporarily dealt with it on my side.
- Added interface to select character encodings of cuesheet (GUI)
- Added an application icon
- Updated FLAC to version 1.1.3
- Supported Ogg FLAC output (GUI)
- Some minor bug fixes
- Added option to fix the offset by 30 samples
Related to this problem... This option partially correct the problem that the offset data measured by EAC is wrong in 30 samples. If this option is enabled, 30 zero samples are inserted into the beginning of the file and 30 samples are truncated at the end of the file.
The option in the command-line version is "--correct-30samples".
Note that this option must NOT be used with the file which is nothing to do with the problem.
- Updated FLAC to version 1.1.3b2
- Supported OggFLAC input
- Changed FLAC handler from libsndfile to native libFLAC
Huge commit around FLAC. Seeking is now stable. Support of OggFLAC output is implemented, but disabled in the interface because it generates corrupt file...
2006/11/18 (Revision 2)
- Fixed problem that XLD did not work on OSX 10.3 since version 20061011 (GUI)
- Fixed problem that XLD failed to decode the file with tag whose character encoding is invalid
- Spun off player interface (GUI)
- Enabled player to open the file without cuesheet (GUI)
- Enabled player to seek anywhere in the file (GUI)
- Fixed the bug that prevented ALAC playback (GUI)
To play file without cuesheet, please select "Show Player" from Window menu and drag file there. There is no change for playing the file with cuesheet, i.e., open the cuesheet and double-click the track you want to play.
I already recognized the crash bug when seeking FLAC file. This is probably due to Libsndfile, which XLD depends on when decoding FLAC. I'll try to write the new FLAC decoder to fix this bug.
- Improved playback function (GUI)
Improved buffering scheme, made seeking faster, and several bug fixes.
- Updated libcddb to version 1.3.0
- Added some supported tags to convert
Supported tag list is here.
- Supported Raw PCM input in the command-line version
Please use --raw option to read.
- Supported conversion of metadata(tags) from ALAC (GUI)
- Fixed problem that prevent G5 machine from reading LAME output plugin (GUI)
I missed this problem for a long time... Sorry.
- Fixed remember to convert DATE string to YEAR when read from cuesheet (GUI)
- "REM GENRE" and "REM DATE" lines are now read from embedded cuesheet (GUI)
- Some minor fixes
- Provided aoTuV b5 Plugin
To use, please remove old "XLDVorbisOutput.bundle" and add the new one from the plugin section of Finder's show info panel . You may also directly replace the file in XLD.app/Contents/PlugIns with the new one. Note that the default version included in XLD will be b4.51 for some while because the quality is quite steady.
- Supported conversion of metadata(tags) partially (GUI)
In case the input format is FLAC or Monkey's Audio or WavPack, some metadata in the tag are preserved(if output format supports). Preserved metadata are: TITLE, ARTIST, ALBUM, TRACKNUMBER, GENRE, YEAR, COMMENT, etc. Note that metadata is ignored when cuesheet exists.
- Supported reading "Genre" and "Year" information from cuesheet and CDDB (GUI)
"REM GENRE" and "REM DATE" line is read, respectively.
- Supported internal/embedded cuesheet for Monkey's Audio (GUI)
- Changed interface when "Open as Raw PCM(+cue)" is selected (GUI)
- Supported internal/embedded cuesheet for FLAC and WavPack (GUI)
Supported foobar2000's original format.
- Supported Raw PCM input (GUI)
Select "Open as Raw PCM(+cue)" in the dialog which appears after open the file, or choose "Open as raw PCM (bin/cue)..." from the File menu. Then you will get a dialog to select the format of the raw PCM file. You can choose format and open it. Probably you will be able to read bin/cue type audio image in this mode. Note that cue sheet in this mode must have extension ".cue".
- Supported internal/embedded cuesheet partially (GUI)
Currently XLD only supports cuesheet embedded as FLAC__StreamMetadata which is natively supported by FLAC. When you open the file that has embedded/internal cue sheet, you can choose from the dialog if you want to read it. foobar2000's original(?) format, that is, cue sheet which is embedded as Ape tag/VorbisComment will be supported in the future.
Command-line version will be updated later...
- Updated lame mp3 encoder's version to 3.97 (GUI)
- Some minor fixes (GUI)
lame 3.97 doesn't have any quality-related change since 3.97b3. You don't have to re-encode your files.
2006/9/16 (Revision 2)
- Updated Libsndfile library
- Supported FLAC output (GUI)
The reason why XLD did not support lossless encoder(except ALAC...because it is playable on iTunes) is simply the name of application, i.e. "lossless decoder" ;)
- Updated AAC output plugin (GUI)
Gapless information now includes the number of padding samples. This will make the info fully compatible with iTunes 7...
- Added option to add gapless playback information for AAC output plugin (GUI)
AAC output plugin adds gapless playback information that is newly added to files encoded by iTunes 7. If you decode the file with this information using iTunes 7, the number of samples of output is exactly the same as the original. This info is probably available only for iTunes 7 (not for other player). Note that the previous AAC files encoded by XLD seem to be gapless (for me) if use iTunes 7... And this option is currently experimental, so please report me if something is wrong.
ALAC and mp3(lame) are already ready for gapless playback. For mp3 iTunes 7 seems to read lame tags.
- Fixed problem that disabled Apple lossless encoder (GUI)
By the way, gapless playback became possible thanks to the release of iTunes 7. Now you can enjoy gapless playback of files split/encoded by XLD using iTunes 7.
- Updated lame mp3 encoder's version to 3.97b3 (GUI)
- Modified default quality of lame to '-q 3' (GUI)
Now output is euqivalent to the preset of command-line encoder...
- XLD is now able to play and convert simultaneously (GUI)
- Updated TTA decoder
- Fixed some bugs in lame mp3 output plugin (GUI)
- Rewrote all output plugins for future major update release (GUI)
- Added preliminary support for batch conversion (GUI)
If you open multiple files with XLD simultaneously, they will be converted one after another.
The files which are not supported by XLD will be ignored (XLD shows no error message in batch conversion mode).
- Fixed several bugs in CDDB querying routine (GUI)
- Added checkbox to enable/disable local CDDB cache (GUI)
To remove cache, please delete ~/.cddbslave directory. (use Terminal, etc)
- Updated Monkey's Audio decoder
Now read files in the rocked volume...
- XLD now shows dialog if CDDB server returns multiple candidates of the disc (GUI)
- Added CDDB server list manager (GUI)
- Title and Artist columns are now resizable (GUI)
- Added function to get track information from CDDBs (GUI)
- Some bug fixes and improvements in the playback routine (GUI)
- Added simple music player capable of playing tracks based on the index of the cue sheet (GUI)
Double-click the track you want to play in the cue sheet window. Interface will be improved later.
- Added function to specify the format of output filename (GUI)
- Fixed a problem of decode failure when the output format is AAC or ALAC, and colon(:) is included in the character of metadata (GUI)
- Fixed a problem of crashing when the output format is AAC or ALAC, and the metadata has only title string (GUI)
- Added support for output in Apple Lossless format(GUI, 10.4 and above)
- Fixed a problem of ignoring preferences when XLD is launched by drag-and-drop(GUI)
- Supported reading cue sheet with Carriage Return only
- Some minor fixes
2006/6/22 (revision 2)
- Fixed corrupt output at end-of-file when tagging with AAC
- Updated Wavpack decoder
Now reads .wvc file if exists.
- Supported automatic tagging from metadata in the cue sheet (GUI)
Available for MP3, Vorbis and AAC output. Currently supports only a portion of metadata.
Format of MP3 tags are ID3v2.3. Characters are written in Unicode(UCS-2).
- Updated Monkey's audio decoder
- Implemented automatic encoding detenction method for Japanese character in the cue sheet
2006/6/17 (revision 2)
- Added OS version checking routine in plugins
- Added support for output in MP3(lame) format
- Updated Monkey's audio decoder
- Improved handling of cue sheet
- Added support for output in MPEG-4 AAC format (10.4 only)
- Supported saving prefs of output plugins
- Added support for output in Ogg Vorbis format
- Some minor fixes
- Initial release of GUI version
- Fixed a decoding problem of 8bit ape files on the x86 machines
- Tweaked some interfaces
- Made XLD Universal Binary
- Used GNU getopt instead of libsystem's getopt
- Added support of output in AIFF and Raw PCM
- Changed behavior of -o option
Please feel free to link to this page.