fre:ac Developer Blog
fre:ac development status update 08/2015 Print
Written by Robert   
Monday, 31 August 2015 22:24

In the past month, I implemented some performance optimizations, other improvements and bug fixes. This is the fre:ac development status update for August 2015.

Sorting performance

After fixing some bugs found in the 20150725 release, I had a look at performance when sorting the joblist and implemented some optimizations with impressive results. The time for sorting a joblist of 2,500 tracks went down from 34 seconds in fre:ac 20150725 to just a few milliseconds with the current CVS code. This is made possible by several independent optimizations:

  • replaced linear with binary search in insertion sort algorithm
  • implemented binary search for finding an index in a smooth::Array
  • optimized string case conversion functions used in comparisons
  • optimized read/write locking algorithm to use only mutexes instead of slower semaphores

The latter three also accelerate other areas of fre:ac, such as adding files to the joblist. The speed up is most noticeable with joblist sorting, however.

General improvements

Other improvements implemented in the past few weeks include:

  • The Jobs tab now displays a progress bar for each individual thread in parallel mode. Also, the total progress indicator now moves more steadily and the total time estimate is more accurate.
  • The cue sheet reader component can now be configured to look for compressed files with the same name as a .wav file referenced in a cue sheet in case the .wav file is not found. This can be handy when handling some cue sheets created by 3rd party software like Exact Audio Copy.

Bug fixes

In addition to those improvements I fixed several bugs found in fre:ac 20150725 and earlier releases. These include fre:ac crashing when canceling a conversion of multiple tracks into a single output file, several fixes for the WMA encoder and decoder and the 64 bit version of fre:ac displaying no icon on Linux/FreeBSD (and crashing the KDE 5 desktop, but that actually was a bug in the KDE window manager).

A new snapshot will be released in September.

1.0.25 coming soon...

In addition to the work on the development version, I also spent some time fixing bugs in the 1.0.x version of fre:ac. The 1.0.25 release fixing stability and other issues should be out in a few weeks.