xACT 2.55

by Scott Brown <xactdeveloper@gmail.com>

For the latest version or news, go to:



What is xACT?

xACT stands for X Audio Compression Toolkit, an application that encodes and decodes FLAC, SHN, Monkey’s Audio, TTA, Wavpack, and Apple Lossless files. It also can encode these formats to MP3, AAC, or Opus, and do various other utility functions, in addition to a full set of shntool functions. Under the hood, xACT is a GUI based front end for the unix applications Shorten (3.6.1), shntool (3.0.10), Monkey's Audio Compressor (3.99, 3.100), flac (1.4.3), wavpack (5.5.0), TTA (3.4.1), Opus (libopus 1.1), cdda2wav 3.0 (with paranoia support), LAME (3.100), and aacplusenc (0.17.5). It also uses SoX ( 14.3.2), AtomicParsley (0.9.6), TagLib (1.9.1), MP4v2 (2.0.0), and rsync (3.1.3_31). It executes the basic commands of these applications and adds other features to speed up productivity in creation/use of etree.org standard filesets.

xACT started in 2003 as a simple graphical interface for the command line tool "shntool." I knew a few people who didn't want to use the command line, so I created a front end to let them use shntool (http://etree.org/shnutils/shntool/) without having to use Terminal.  I started adding support for flac, shn, monkey's audio, etc. I thought only a few people would use it...

How do I install it?

Copy the xACT application to your hard drive.   

How do I use it?

I'm sorry that this brief "how to" isn't nearly as complete as it should be.  Someday I'll get around to making it more detailed.  If you have any questions about how to use it, feel free to email me.

The basic functions of xACT are split into various tabs in the application.  To convert files from a compressed format like FLAC, SHN, Monkey's Audio, Wavepack, Apple Lossless, etc to aiff or wav, you use the "Decode" tab. To convert files to these losslessly compressed formats, use the "Encode" tab.  To make md5 checksums of files, verify md5 checksums or flac fingerprints, verify flac/wavpack/monkey's audio files and other functions that can help verify the sanity of files, use the "Checksum" tab.  To use shntool specific functions (described in a section below), you use the "shntool" tab.  To fix sector boundary errors in 16 bit audio files, use the "Fix SBE" tab.  To edit tags in FLAC, AAC, Monkey's Audio, Wavpack, Apple Lossless or MP3 files, use the "Tags" tab.  To use the batch rename function (described below), CD Extraction, add Replay Gain to FLAC files, remove emphasis from 16 bit audio files, or create a DVD-AUDIO disc image, use the "Util" tab (I didn't know where else to put these).  To convert lossless formats into lossy MP3 or AAC files, use the "Lossy" tab. As of version 2.0, you should be able to do a combination of these things all at the same time.  There is a preference you can set to control how many operations will do at the same time (max threads).

Tab details:

Decode tab: for decoding files to aiff or wav format.  Note: xACT will not convert mp3 or aac files to any lossless format.  Drag files onto the file list on the left or add files using the "Add" button.  Choose output format to decode to and click "Decode."  You can decode to the directory of the source files, and can choose to delete the original files after decoding.  

Encode tab: For encoding files to lossless formats.  Drag files onto the file list on the left or add files using the "Add" button.  Choose the output format and format options if applicable.  

Checksum tab: This tab can verify audio files (flac, wavpack, tta, ape), create checksum files (md5, ffp, st5), or verify checksum files (md5, ffp, st5).  To verify audio files, add the files to the file list and select "Verify Audio Files." To create a checksum file, add the files to the file list and select "Create Checksum File."  Choose the type of checksum file you want to create. To verify checksum file(s), add the file(s) to the file list and select "Verify Checksum File."

shntool tab:   xACT can execute 10 different shntool options (fix has its own tab): len, info, join, split, cpm, cue, trim, pad, strip.  The shntool documentation (http://etree.org/shnutils/shntool/support/doc/shntool.txt) describes each:

len    Displays length, size and properties of PCM data

pad    Pads  CD quality files not aligned on sector boundaries

      with silence

join   Joins PCM data from multiple files into one

split  Splits PCM data from one file into multiple files

cmp    Compares PCM data in two files

cue    Generates a CUE sheet or split points from a set of files

info   Displays detailed information about PCM data

strip  Strips extra RIFF chunks and/or writes canonical headers

trim   Trims PCM silence from the ends of files

fix    Fixes sector-boundary problems with CD-quality PCM data

How xACT uses these commands:

-For len, the user can either call the standard shnlen function, or show the length info parsed by disc or parsed as 1 fileset. The parsed output can be output with track names by clicking the "names" button and putting in the track names.  

-Info is the standard shntool info output.  

-Join offers 4 output formats for the joined file.  

-Split offers 4 output formats and will prompt the user for an input file containing split points (for more info on split points, see the documentation for shntool).  Note that for split, if multiple files are in the file list at the left of the tab, only the first is used.  

-Cmp will call the standard cmp function to compare 2 audio files.  Note that for cmp, the first 2 files in the file list will be used.  

-Cue creates a CUE sheet for the files given.

-Trim will trim silence from the end of files.  There are 4 options for output formats.

-Pad and Strip do exactly what the shntool documentation says they do

Fix SBE tab:  Since fixing sector boundary errors is probably the most popular function of shntool, I thought that it deserved its own tab.  There are 4 output options for the fixed files.  When outputting to SHN, the user can choose to create 1 md5 or an md5 per disc, provided the files are named accordingly (ending with disc and track notation, like FOOBARd1t01).  Note that the shntool I provided with xACT does not rename the fixed files with a -fixed suffix.    I removed the -fixed suffix to avoid the user having to change the filename to remove the suffix later.

Util tab: kind of the "other stuff" tab with extra functionality people requested or I didn't know what else to do with

-xACT can do very basic batch file renaming.  If the user feeds the util tab a list of files, it will sort them alphanumerically.  When the execute button is clicked, the user will be prompted for a prefix.  This prefix will be used for all the files, and a number (starting with 01 and incremented by 1 each time) will be appended after the prefix.  If the files initially have an extension, the user will be asked whether to keep or ignore the extension.  This feature can be useful when the user has a bunch of files that need to be renamed and ordered with a common prefix.

-xACT can do cd extraction via cd paranoia.  For PC Users, this is kind of equivalent to EAC on a PC.  It will do bit perfect extractions.  Note: check out XLD if your main purpose is CD extraction.  It's very good.

-xACT can add or remove replay-gain to flac files.

-xACT can author a DVD-Audio Disc image for playback in a DVD-Audio compatible player.  The DVD-Audio spec has support for up to 9 different groups of tracks, but xACT only has support for 1 group right now.  I may add in support for all 9 groups in the future.  To make a DVD-Audio disc, drop either wav files or flac files onto the file list, select "DVD Audio Disc" and click "Execute."  xACT will author the AUDIO_TS folder for the dvd and then create an .ISO image for burning to DVD.  Note: The files in a DVD-Audio group must be of the same sample rate (xACT will scan the audio files to make sure of this).  Also, creating a DVD-Audio disc requires approximately twice the disc space as the size of the disc.  For example: if you're creating a 4GB disc, you need 8 GB free to create the disc; 4 gigs of temporary scratch space for the AUDIO_TS folder, and then 4 gigs for the disc image.  xACT is using dvd-author to author the AUDIO_TS directory.  Dave, Fabrice, Tim and Lee did excellent work on dvd-author (for free!), but it still may have issues with certain players or files.  

Tags tab: xACT can write metadata tags for FLAC, MPEG-4 (AAC and Apple Lossless), MP3, APE, and WavPack files.  You can tag individual files one at a time or tag a group of files at once.  To select a file (or files), load the files into the list on the left, then click a file (or files) in the list.  After selecting a file, enter tag info in the fields on the right.  Clicking the "Write Tags" button will write the tags to the file.  If multiple files have been selected at once, the tags will be written to all the files.  Note that if you select more than 1 file at a time, you will not be able to put in Title or Track Number tags, since these are specific to an individual file.  

Lossy tab: xACT can convert files to MP3 (using the LAME encoder) or AAC.  LAME MP3 encoding can use a Constant Bit Rate (user defined) or Variable Bit Rate (V0-V9).  AAC Encoding can use a user defined Constant Bit Rate, Average Bit Rate or Constrained Variable Bit Rate.  xACT can also do true Variable Bit Rate AAC encoding (value between 0 and 127, with 127 being the highest).  

Note: To clear out error rows on the status queue, right-click and choose from the menu that pops up.


xACT is freeware; see the "credits" directory for info on the tools and libraries it uses.


Where the Wild Things Are characters by Maurice Sendak.  


HUGE thanks to Dave Mallick for helping me test everything early on.



-Mac OS X 10.9 or higher. 64bit Intel cpu.

-v2.53 is the last version that officially works on 10.9-10.12 systems. Newer versions may work, but I can’t guarantee it.

-v2.47 is the last version that was pre macOS Catalina and will work on pre 10.9 systems.

-v2.25 is the last version that works on 32-bit machines.

-v2.18 is the last version that works on 10.5.


known issues: 

-xACT may have issues dealing with a pathname that contains the forward slash ("/").

-cdda2wav may not support all drives


Version History


-Fixed tagging bug with .m4a files

-Fixed tagging inconsistency relating to "Use Previous Tags" button


-Updated flac to 1.4.3


-Changed how xACT is writing Gapless and Compilation tags for m4a files

-Added option to show some logging info for De-emphasis task

-xACT can now properly join 24 bit files (shntool tab)


-Fixed issue when tagging flac files with dates that could cause issues on file playback or decode

-Fixed issue with converting ape > flac (does ape > wav > flac for now until I figure out the cause)

-Added ability to encode dsd files (.dsf, .dff) to Wavpack

-Wavpack dsd files will show the proper file extension when decoded (was showing .aiff or .wav in previous versions)


-Most (not all) functions now native on Apple Silicon

-Fixed some inconsistencies in the GUI

-Fixed “auto-name” bug

-Updated LAME to 3.100 for apple silicon. still 3.99.5 for Intel

-Updated flac to 1.4.0

-Added waveformatextensible to shntool 3.10

-Modified monkey’s audio to allow waveformatextensible

-Fixed issue where xACT would crash on bad FFP or ST5 file

-Fixed issue where replacing cover art for a flac file didn’t actually replace it

-Fixed Dark Mode issue with Track Names window

-Upgraded WavPack to 5.5.0

-Fixed issue when tagging MP3 files with cover art might crash


-Converting AIFF > Wav and WAV > AIFF will now copy tags

-Batch Rename can rename based off tags in the file. Hover over Prefix textbox to see how


-Fixed issue converting APE files to FLAC

-Added Touch Bar buttons for the tabs

-Refactored multiselect code on tags tab

-Refactored WAV tagging

-Added “Part of Compilation” tag


-Made fully 64 bit (and notarized) for macOS Catalina support

-Fixed multiselect bugs on the Tags tab

-Added preference to open last used tab on launch

-Fixed Year and Total Tracks bug for mp3 files

-Fixed mp3 “Album Artist” bug

-Album artwork on the tags tab is limited to 16MB in size. If an image is larger, xACT will shrink it down.

-DVD-AUDIO support is on hold until I can get it fully 64 bit. If you still need dvd-audio, use a previous version or use Fabrice Nicol’s new front end: https://sourceforge.net/projects/dvd-audio/files/dvda-author-package/


-Fixed washed out image issue in macOS High Sierra for AAC/ALAC


-Fixed washed out image issue in macOS High Sierra

-Reverted back to previous build of Monkey’s Audio

-Very early (testing! it doesn’t really work!) stages of rsync file transfer support on util tab. More to come on this.


-Stopped xACT from forcing itself to the front when a new task starts.

-Upgraded AtomicParsley to v0.9.6.


-Fixed bugs caused by typo fixes in 2.42 (Tags tab)


-Fixed bugs caused by typo fixes in 2.42 (FLAC Replay Gain, De-Emphasis)


-Fixed progress bars on Mac OS X 10.13

-Fixed “track number” and “disc number” tagging bug

-Fixed Typos

-Fixed bug when tagging date on flac files


-fixed bug when tagging the year on flac files


-fixed bug where wav tags didn’t get copied to flac files

-tooltip on queue


-Added preference for AAC Audio Codec Quality

-Added basic HE-AAC v2 encoding

-Added tagging of WAV files

-"Fix” tab can now output to source directory

-updated flac to v1.3.2

-Fixed Apple Lossless and AAC Artwork bug.

-fixed bug with month/day handling in tags tab


-AIFF ags are retained when applying de-emphasis.

-Fixed bug that didn’t allow conversion of 24 bit AIFF to MP3.

-Option to set output name when using shntool “join”.

-FLAC 5.1 > Apple Lossless will set correct channel mapping.

-Added sample rate conversion (using SoX) for WAV and AIFF files.

-Fixed Apple Lossless and AAC Artwork bug.

-Option in preferences to aid in CD Extraction if xACT can’t recognize the cd drive.


-Downgraded SoX to 14.3.2 for Mac OS X 10.7 compatibility.

-Upgraded Opus to opus tools 0.1.9 (libopus 1.1).

-Added decoding of Opus files to WAV or AIFF.

-Added encoding to HE-AAC.

-Changed how xACT finds cd drives for extraction.


-Bug fix for tagging files - added check to see if file is read-only.

-xACT will now convert WAV > AIFF and AIFF > WAV using the “Decode” tab.

-Recompiled wavpack 4.70.0 from source to make compatible with Max OS X 10.7.

-Upgraded SoX to 14.4.2


-Fixed cd extraction bug introduced in OS X 10.10.

-Upgraded flac to v1.3.1.


-fixed Conversion of Apple Lossless to AAC.


-LAME CBR/ABR/VBR setting correctly remembered again.


-Fixed bug where Genre tag might not be copied from AAC or Apple Lossless files.

-Added Advanced tab in Preferences for advanced LAME MP3 options. xACT can now set “-q” values and specify “Stereo” or “Joint Stereo” files.

-Added ABR LAME MP3 encoding.


-Updated flac to version 1.3.0.

-Faster LAME MP3 compression.

-Fixed scrollbar on Util tab when DVD-AUDIO is selected.

-Cleaned up interface on Checksum and Lossy tabs.

-Changes for accessibility.


-Apple Lossless to AAC conversion keeps tags.

-Minor fixes for Mac OS X Yosemite (10.10).


-Date tag is now split into separate Year/Month/Day fields.

-Modified MP3 date tag handling for better iTunes compatibility.

-Added ability to tag TTA files.

-Upgraded Wavpack to v4.70.0.

-Upgraded Taglib to v1.9.1.

-Upgraded MP4v2 to v2.0.0.


-Fixed bug that caused crash when creating MD5 file.

-Fixed bug that could cause crash when running many tasks at once.

-Added progress indicator when tagging files.

-Disabled option in preferences to remove padding when writing flac tags until I track down the cause of a bug that could cause the flac files to become corrupt (possible bug in TagLib or metaflac).

-xACT is now 64 bit only. Apple’s Xcode 5.1 removed support for applications using Garbage Collection, so upgrading the application to use Automatic Reference Counting forced xACT to be 64 bit only. v2.25 is the last 32 bit app that will work on 32 bit Macs.


-Fixed bug where st5 files weren't being written.


-Replay Gain now set by directory. If you feed xACT files in different directories and tell it to add replay gain, it’ll treat the files in each directory as a separate file set.

-Added option (in preferences) to remove padding when writing flac tags.

-Downgraded to flac 1.2.1 because of speed issues.

-xACT now requires extensions on files so it knows how to process. Added extra check on extension before deleting original files.

-Refactored parts of source code to use Automatic Reference Counting.

-Fixed bug when converting flac files to aiff and copying tags. If conversion failed, xACT would crash when trying to write tags.

-Added Album Artist tag to tags tab and rearranged the placement of tags on the screen.

-Added option in preferences to remove padding when adding flac tags. Flac pads tags by default, so if you remove album art, the file size does not decrease. xACT can remove this padding.


-Tags tab now shows common tags if multiple files selected.

-Apple Lossless > AIFF copies tags

-When tagging files, if the selected files contain no album art tag and are all in the same directory, xACT will look for a single image file in that directory and prompt the user to use it. If there are multiple images in the directory, xACT will not try use any image.

-Speed improvement when encoding to AAC, Apple Lossless and MP3

-Fix for channel layout when converting multichannel (> 2) files to AAC

-Fixed bug where track total didn’t clear out on flac files when “write empty tags” selected


-updates/fixes for 10.9 Mavericks compatibility

-updated flac to v1.3.0

-updated LAME to 3.99.5

-fixed bug when converting wav file to mp3 with extra RIFF chunks

-fixed bug relating to creating an md5 of files in different directories/subdirectories


-file lists now sort files exactly like the Finder


-fix to Core Audio encoder bug when encoding from Apple Lossless to AAC (wouldn't work before)

-added ability to delete a single file from the file list, or all files with a certain extension. Right click on the file list to see these options.

-added Wavpack to FLAC and Wavpack to Apple Lossless encoding

-fixed bug in auto creation of ffp files when converting files to flac. If saving to source directory, it will correctly create an ffp for each output directory now.

-file list will now expand wide enough to see very long filenames

-When encoding to FLAC, last options for "Verify" "Keep Foreign Metadata" and "Generate FFP" are now saved in preferences

-Save to source options are now saved in preferences

-Added option in Preferences screens for "Warn when deleting original files" and "Notify when files are skipped"

-Fixed bug in Tags tab when loading tags for MP3 file. When a file had no Total Tracks tag, the Track Number tag was being displayed in the Track Total field


-added option to auto-create ffp file when fixing sector boundary errors and outputting to FLAC format

-fixed bug when fixing sector boundary errors and outputting to SHN format with md5.

-xACT now reads album art from AIFF files.

-fixing AIFF or FLAC files now retains all of the metadata tags.

-custom tags now saved on each keystroke

-very primitive support for encoding to Opus format (lossy tab)

-xACT will prevent the computer from going to sleep while there are tasks running


-fixed bug with "delete original files" option on shntool tab where if gave a false "Are you sure" confirmation box

-fixed bug in shntool len command when naming by disc

-added Notifications for finished task sets (requires OS X 10.8)


-code signed for Mac OS X 10.8 Gatekeeper

-set FLAC album art to the "FrontCover" picture type

-FLAC tags can now save full dates (2012-01-01) in the YEAR tag instead of just the year

-added a checkbox to automatically create an ffp file when encoding files to flac

-added the "Delete original files" and "Encode to source directory" options to the shntool tab

-default FLAC fingerprint file (ffp) extension is now a user preference. xACT used to default to ".ffp.txt" but the user can specify "ffp" instead

-if multiple files are added to the Tags tab file list, all new files are selected by default

-on the Tags tab, added a button to use the previously saved tags. This button will only become visible after you've set some tags since the application launched


-Should work in Mac OS X 10.5 again. (the latest version of Xcode doesn't seem to make a 10.5 compatible version even though it says it does)

-Changed how the shntool "split" function works when renaming files from a cue sheet. It should handle accented characters better


-fixed bug in auto-naming files when user gave 2 tracks the same name

-fixed bug in performing shntool operations when a file had square brackets in the path


-converting Monkey's Audio > FLAC now copies APE tags to to the FLAC files.

-fixed bug when creating temporary filename with certain characters in pathname.

-fixed bug that caused a crash when removing FLAC tags from multiple files at once.

-added DISCTOTAL and TRACKTOTAL tags to FLAC, MP3, and M4A files.

-added ability to enter custom tags for flac files. Note: this is a work in progress.

-increased maximum number of threads from 10 to 24.


-Fixed bugs introduced by 2.14 relating to mp3 compression level and saved settings


-Fixed bug where flac files with .FLAC (uppercase) extension could cause xACT to crash when converting to mp3

-"Lossy" tab now remembers your compression level settings


-Added ability to tag MP3, Monkey's Audio, and WavPack files. Changed FLAC tagging to make unicode-friendly.  Added ability to add album art to FLAC, AAC, Apple Lossless and MP3 files.

-fixed bug when "Delete original files" option checked and task canceled that resulted in original files still being deleted.  Check now in place to prevent this.

-added user preference to delete files or move to trash when "Delete original files" checked.  Default is to delete.

-added ability to convert Apple Lossless files to LAME mp3.  Tags and album art will be copied to the mp3.

-Added ability to parse a CUE file for tags (album, performer, track names).  From the "FLAC/M4A Tags" tab, select "Load Tags From CUE sheet…" from the File menu and choose a cue sheet.  xACT will attempt to parse the metadata from the file.  Note: previous "Load track Names from file" was moved from the Edit menu to the File Menu.

-added ability to make DVD-Audio disc image from flac or wav files. note: the tool that authors the dvd-a data may picky about wav files having standard headers.  If wavs don't work, try flac files.

-fixed bug when using "shntool fix" to fix sector boundary errors on files with no file extension.  

-fixed bug when converting files with no extension to SHN

-fixed bug in custom shntool len format when time was not last 

-fixed bug that caused a crash when verifying md5 checksum file with invalid checksum format


-fixed bug when decoding Apple Lossless files to wav/aiff


-fixed bug where splitting a file with a cue sheet could hang or crash the application (introduced in 2.10)


-fixed bug where splitting a file with a cue sheet could hang or crash the application

-fixed bug that caused a crash when converting multichannel (> 2 channel) flac files to aac and apple lossless


-better Mac OS X 10.5 compatibility


-should work (but not guaranteed to) in Mac OS X 10.5

-added "File types not supported by this tab" message

-added ability to convert from ape directly to flac (encode tab)

-added support for cd extraction from blu-ray drives on most machines

-fixed bug that could cause a crash when parsing "shntool len" output


-added aiff tags handling.  aiff > flac will copy aiff tags.  flac > aiff will copy flac tags.

-handles comment lines starting with ";" now.  previous versions assumed comments started with a "#" in md5 files.

-added warning when running a command with "delete original files" option.

-added ability to remove pre-emphasis from wav or aiff files.  note: xACT uses SoX for de-emphasis and SoX will only remove pre-emphasis from 44.1khz files.


-fixed issue where converting .aif files to another format would output files with the .aif extension still in the name (.aif.mp3 for example).

-96khz files can now be converted to AAC.  They will be saved as 48khz aac files

-fixed bug where you couldn't md5 a non-audio file type.  You can now make an md5 of any file

-fixed bug where text file could be in shntool tab's file list and cause crashes


-mp3 tags now written via TagLib instead of id3tool

-m4a tags now written via mp4v2 instead of AtomicParsley

-fixed bug when copying flac tags to mp3 and saving in different directory (non source directory)

-fixed bug when creating md5 while fixing files and outputting to SHN


-Added ability to parse an info text file for track names.  From the "Track Name Input" window, select "Load Names From File…" from the edit menu and choose a text file.  xACT will attempt to parse track names in the file.  It looks for lines that start with some variation of a track number:  01 or [01] or (01) or [01.] etc.  Note: this function is incomplete, very basic,  and won't work for all cases.  It will be improved in future versions.

-should work with 32 bit processors.


-fixed bug when md5 files had comments


-fixed bug that could cause a crash when converting a very large number of files from shn to flac 

-changed the way that md5 checksums are computed. This should lower memory consumption considerably.

-auto creation of md5 when converting to SHN should work correctly

-deleting source file when decoding .tta file should work correctly

-deleting source files when fixing sector boundary errors should work correctly


-fixed bug that didn't properly set the level when converting to VBR LAME mp3


-rewritten entirely from scratch in Objective C

-many bug fixes

-updated UI, new icons

-added auto-update via Sparkle

-multithreaded - can execute multiple tasks at once (see application preferences to set the number of threads).  Dock icon will show number of tasks in queue.

-can cancel tasks already in progress

-progress bars for most tasks

-option to specify the format of custom "by disc" and "fileset" shntool len output text (see application preferences)

-tags tab can now tag FLAC and M4A (aac, Apple Lossless) files

-converting flac > Apple Lossless will now copy Flac tags to the Apple Lossless files

-splitting tracks from a CUE sheet will now rename tracks based on TITLE info in the cue sheet

-updated shntool to 3.0.10 

-updated wavpack to 4.60.1 

-updated ttaenc to 3.4.1 

-updated cdda2wav to 3.0

-"fix" option will now process files even if they need no fixing

-user can drop a directory on a file list or dock icon to process all of the known file types in the directory and subdirectories

-added shntool "pad" and "strip" functions

-added ability to add or remove Flac Replay Gain (Util tab)

-added ability to trim characters from beginning or end of lines when entering track names

-Checksum files can be saved in source directory.

-Requires Mac OS X 10.6 or higher and Intel processor


-"Checksum" tab opens automatically when .st5 files dropped on the dock/app icon


-compiled under XCode 3.2 in Snow Leopard

-when verifying a flac fingerprint file, xACT will now also verify the flac files

-lines beginning with ";" are ignored when checking flac fingerprint files (Trader's Little Helper puts comments in fingerprint files beginning with a ";")


-updated AtomcParsley to 0.9.2 - compiled from source for intel and ppc to get around a bug with AtomicParsley's --overWrite flag

-fixed bug - when using "Auto Name" for flac tags


-added AAC tagging (using AtomicParsley) when converting flac to AAC.  Flac tags will be copied to the resulting AAC file


-fixed error message when on 10.4 and going to the lossy tab


-added Apple Lossless encoding and decoding (requires Mac OS X 10.5 or higher)

-xACT remembers settings on the fix tab


-added warning to "delete original files"

-added option to encode or decode to source directory

-xACT remembers the last format you encoded to

-cd extraction output has been shortened to only show final percent (instead of 1 line per percent done)

-added aac encoding for users with OS version 10.5 or higher


-compiled under Xcode 3.0 that ships with Mac OS 10.5


-flac tag tab can now autoname selected tracks based on a list of tracknames you input.  Check "Auto-name," then enter in track names (one name per line).  Then select the files and it'll name and number them in order


--upgraded flac to 1.1.2


--removed Growl support

--upgraded shntool to 3.0.3 for intel, 3.0.2 for ppc

--added shntool "trim" function

--upgraded cdda2wav to 2.01.01a28 for both intel and ppc


--added basic support for LAME mp3 encoding (from flac, shn, wav, etc).  both VBC and CBR are supported

--upgrade flac to 1.1.4

--added basic Growl support (www.growl.info)


-added option to create standard md5s for flac files

-upgraded flac to v1.1.3


-reverted to sox 12.17.8 for intel due to weird bug in 12.17.9

-added "ENCODING", "FIXING", "DECODING" dock icons during those operations

-added dock notification (1 bounce) when operations are completed

-added flac option --decode through errors, which will force xACT to keep decoding a flac file even if it encounters errors


-compiled Universal Binary versions of shntool (version 2.0.3), shorten (v3.5.1), flac(1.1.1 for ppc, 1.1.2 for intel), sox(17.17.8 for ppc, 12.17.9 for intel)

-fixed bug when encoding to monkey's audio


-fixed bug when calling "shntool split" and outputting to flac

-removed aiff option for cd extraction (cdda2wav made buggy aiff files)


-set the "join" function of shntool to never pad the joined file with zeros.  note: this may leave a sector boundary error at the end of the joined files

-added CFBundleIdentifier to the application, so the finder can set xACT as the default app for shn/flac/ape files better

-removed "b" from the version name.  xACT is always a work in progress, but I don't need to keep calling it "beta"


-fixed bug that made shorten freak out when doing shn > wav


-redid how xACT handles ALL filenames, paths, and directories.  it should handle characters like üåîñéÅ  etc


-i forget


-added support for Wavpack and TTA formats.  files cna be encoded to/from these formats. wavpack files can be verified against an internal checksum via the checksum tab


-fixed bug where fingerprint file containing files with spaces in the name wouldn't verify correctly

-fixed bug where the output window would cause an error if closed and reopened

-reverted back to aqua from brushed metal


-fixed bug introduced by v1.10 of applescript where "delete original files" didn't work


-changed default extension for shntool md5 to .st5


-fixed bug that crashed the application under OS 10.4 when closing the trackname window (shnlen)


-downgraded flac to 1.1.1 because or Mac OS 10.2.x incompatibility


-fixed bug where unicode handling broke handling of ffp files

-upgraded flac to 1.1.2


-added a jaguar version of monkey's audio.  xACT will now check the system version and call the panther version of monkey's audio for 10.3 and above.  If the system is below 10.3, a different version will be called



-added "Write empty tags option for flac tags tab.  if selected, the tags that are empty will be written as empty tags, otherwise the empty tags will not be written  



-reversioned with "b" instead of "d"

-added DISCNUMBER flac tag

-changed tag handling to write tags even when value is "" (can be used to delete a tag)

-added a "current file" marker for the flac tags tab



-fixed bug in shntool join mode when choosing flac as output file



-changed implementation of rename input window

-removed flac libs from app



-changed how files are moved to trash when "delete originals" is checked.  files are now moved to the trash of the volume they were on

-original files are also only deleted if encoding or decoding succeeded.   if there's an error, nothing is moved to the trash



-modified how text is displayed in status panel



-packaged all required binaries/libraries WITHIN xACT.  no more installation to usr/local/bin or /usr/local/lib.  everything is IN the application.  

-changed all references to String and text objects to Unicode text

-fixed bug when deleting original files after converting to flac

-included compiled sox 12.17.7, compiled without dependencies to ogg vorbis and lame. libvorbis and liblame removed from libraries included with xACT



-fixed bug in renaming of extracted tracks when more than 10 were extracted


-added renaming based on cddb names of extracted tracks from cds


-changed the way xACT finds the IOProviderClass for extracting via cdda2wav

-new installler needs root access (might go back to admin access.  testing this)


-changed the way xACT deals with ALL files.  it should be able to handle a forward slash ("/") in filenames now, though i won't guarantee it yet.  hopefully i didn't break other things with this change

-added an option to extract files from CD to 1 file instead of separate files.  note that the files will only go into 1 file if they are in order.  ex: tracks 1 and 2 will go into 1 file.  But if you want to extract tracks 1,2 and 4, they'll go into 1 file containing 1 and 2, and another file containing 4. 

-bundled flac and metaflac 1.1.1 binaries

-changed the metaflac calls for flac tag writing to be consistent with flac 1.1.1

-fixed bug where fingerprints of filenames with special characters are handled correctly now


-added code to find the cd burner based on the output of the "ioreg" call for cd extraction

-added fading in/out of main window


-added support for cd extraction using cdda2wav and cd paranoia.  very primitive


-reverted back to default flac level within the shntool flac module.  xACT now uses the custom format module to allow the user to choose the flac level when fixing sector boundary errors

-the user can also choose the flac level when encoding from shn to flac directly

--added support for creating and checking the shntool md5


-started new Xcode project from scratch using existing code.  Added drag and drop support for all of the file lists.  


-fixed bug with pc formatted ffp files.  xACT should be able to check them correctly now

-fixed bug with fingerprint file checking and filenames that contained special characters

-xACT will now output ffp files with extension .ffp.txt and will recognize the .ffp.txt extension as fingerprint files

-xACT will now output fingerprint files with filename:fingerprint (no space after the colon)

-initial version with util tab and simple batch file renaming.  see notes above

-if the user adds SHN files to the Encode window and chooses to encode to flac, xACT will convert the SHN files to flac at flac level 8.  the flac level slider will not matter here.  the slider will still decide the level when encoding aiff or wav to flac

-shntool binary included with xACT is now modified so if the user chooses to fix and output to flac format, it defaults to level 8.  as i said above, the slider will still decide the level when encoding aiff or wav to flac


-upgraded code and functionality for shntool 2.0

-added CUE option for shntool tab

-if the user chooses to fix files and output to the same format as input, xACT will not allow the user to overwrite original files.  a different output directory must be chosen.  note that this is only in the case where input and output formats are the same

-changed the fix command to never overwrite existing files 

-back to brushed metal


-fixed weird interface bug relating to the "names" button


-upgraded monkey's audio to v3.99

-removed brushed metal texture to test out

-made the "names" button hidden on the shnlen option tab.  it is only visible when the "len by disc" option is selected

-changed the track names input window


-fixed a bug on "shnfix" where the flac option was never called correctly


-added track name support to 2 shntool len options.  Clicking the "names" button will allow you to enter in track names.  If you choose either "len for fileset" or "len by disc," xACT will combine the tracknames and times together for output.  When displayed in a fixed width font, these times will line up.  

-yes, I know the button and track name windows are *really* ugly.  That will change.  


-added support for reading and writing FLAC metadata tags.   You should be able to tab to each field and even to the filelist.  tags supported:

TITLE (I usually put the song name)


ALBUM (for a live show, I usually put in the venue and date)


COMMENT (for a live show, I usually put in the source info)



COMPOSER (useful for classical music)

-fixed bug where a filename with multiple periods would be truncated when converting to flac

-fixed bug when doing "len by disc" with no disc 1 files

-new, separate installer package for binaries

-changed the way shns are decoded.  shn > aiff is now *much* faster (due to the calling of shorten directly). shn > aiff creates a temporary wav which will be deleted automatically.

-better error messages on shorten decode

-added document icons for flac, ape, shn, md5, and ffp.

-fixed a bug where a fingerprint file would not show up on the fileList if it was dropped on the unopened application.

-added support for encoding aifc files to either shn or flac.  aifc to ape does not work at this time

-the ENTER key should click the main buttons on each tab


--added .ape encoding.  xACT will convert aiff files to wav before encoding to .ape.  After the .ape file is created, the temp .wav file will be deleted. 

--added .ape verification.

-upgraded sox to 12.17.4

-fixed a bug in encode so invalid file formats are now caught correctly

-added support for checking multiple md5 files or multiple flac fingerprint files at one time.  note: checking a flac fingerprint file and md5 file at the same time doesn't work yet.

-changed so encode, decode and checksum lists are now sorted

-fixed a bug I was having on 10.3.1 and 10.3.2 where the app would unexpectedly quit when files were dropped onto the dock with certain tabs open.

-added support for a blank user password (on installation)

-24 bit ape to aiff and 24 bit aiff to ape attempts are caught and stopped correctly.

-changed the way ape decode is handled.  I now call monkey's audio directly instead of telling shntool to convert  to wav or aiff.  if converting .ape to aiff, it will extract to a temporary wav first, then convert to aiff.

-added monkey's audio error codes.

-the main window can no longer be closed

-changed the layout of the encode tab to be less cluttered with the addition of .ape encoding

-parsed the output from both .flac and .ape verification to give a shorter, more concise message.  xACT also parses the .ape error messages.  Hopefully I didn't screw any messages up :)


-replaced md5sum binary with modified md5sum that can deal with DOS formatted digests.  removed dos2unix since that was just a temp fix anyway.


-discovered a bug within v2.1 of md5sum (GNU texutils 2.1).  DOS formatted md5 files would not check correctly with md5sum -c.  Instead of changing md5sum, i just changed my code and submitted the bug to bug-coreutils@gnu.org

-xACT now bundles dos2unix to convert text files from DOS to unix


-improved error handling across the board

-added error log to display a summary of all errors (if any) when processing multiple files at one time

-added output for all fix calls

-added support for decoding of .ape Monkey's Audio files

-added shntool functions split, join, cmp

-added code to hide options that are not relevant to currently selected function

-apple+w now closes windows

-made the file lists larger and added scroll bars.  changed other tabs to accomodate larger size of file lists

-removed "cancel" from all error dialog boxes, added timeout of 20 seconds

-added icons to all dialog boxes


-I am an idiot and forgot to include the sox binary with 1.0.  somehow it got lost between 0.97 and 1.0.  it's back now


-removed a dialog box from the checksum tab


- changed how md5's are made when created from encode or fix tab

-new icon


-fixed bug where hitting the "add" button and then cancel didn't cancel

-fixed bug where encoding multiple times didn't clear the previous file list

-Added option to delete original files after an encode, decode, or fix.  To be safe, the files aren't actually deleted, they are just moved to the trash.

0.95 (i don't want to call it 1.0 yet)

-added "show len for fileset" option to show just the times and total for a given fileset

-Modified the way the shntool calls were made so that files could be in different directories when calling "show len by fileset" and "show len by disc."

-Added padded zeros to "show len by fileset" and "show len by disc" output when necessary.


-added "show len by disc" option to create a skeleton info file for each disc. Filenames must denote disc.  The app parses on the last 'd' in a file name, (so if a file has a 'd1' somewhere towards the end,  it'll see that it's disc 1). This is the same string parsing as the "md5 by disc" option in the fixSBE tab.

-fixed bug in default actions


-Added default actions for .md5 and .ffp files

-Added FLAC fingerprint file verification.

-Added error checking to verification routines.

-more little fixes 


-When the program is launched by dropping files on the icon, the following default actions are now implemented:

-If file is flac or shn, Decode Tab opened and files added

-If other (wav, aiff, aif, no file extension), Encode tab is opened and files added.


-"Add" button added to each tab.  Multiple files can be selected

-MD5 verification

-FLAC verification/testing

-the Shntool "len" and "info" options now output only the filename, and not the entire path.

-fixed many bugs dealing with md5 creation, naming of output files, the app hanging on certain operations, etc.


-Few bug fixes


-Update for Panther compatibility (including updated binaries)

-Added Brushed Metal to interface

-More bug fixes

-Output window now has a fixed width font 

-"Clear" button added to each tab

0.1  -originally based on MacFlac by Dan Greuel <dan@danrules.com>