Menu Content/Inhalt
Home Developer Blog
  • English
  • German
  • Japanese

News Feed

feed-image RSS 2.0
fre:ac Developer Blog

Welcome to the fre:ac developer blog. I will post status updates and other information about fre:ac development here.

fre:ac development status update 10/2015 Print
Written by Robert   
Saturday, 31 October 2015 23:53

Hi there, here's the fre:ac development status update for October 2015.

After the 20151004 snapshot release, development focused on features that should be part of fre:ac 1.1 but had not been implemented yet. Let's have a look at them in detail:

meh! - multi encoder hub

Configuring the meh! componentThe meh! - multi encoder hub component takes an input track and passes it on to multiple encoder components. That way you can for example create FLAC, AAC and MP3 files from CD tracks in a single rip saving a lot of time.

The new component already works with most features of fre:ac's audio conversion engine. I just need to get playlist and cue sheet generation working with it before the next snapshot release.

Core Audio AAC/ALAC encoder on Linux

About a year ago I wrote a connector component to allow the 64 bit Windows version of fre:ac to use the 32 bit Apple Core Audio API for AAC and ALAC encoding. However, it was obsoleted before being included in an official snapshot release by Apple starting to provide 64 bit Core Audio DLLs with iTunes 12.1. Those could be used directly with the 64 bit version of fre:ac, but I kept the connector code as I thought it could be useful for similar things in the future.

Using the Core Audio encoder on LinuxThen, a few weeks ago, I had the idea to try and use it to connect the Linux version of fre:ac to the Core Audio framework running under Wine. A quick test showed that iTunes and the Core Audio DLLs could be installed in Wine and encoding AAC and ALAC files generally worked in such a setup. I ported the connector component to Winelib and voila: fre:ac can use the Core Audio framework on Linux now!

To be able to use this feature with the upcoming fre:ac snapshot release, you need to install Wine, configure it to emulate act like Windows 7 or later and install iTunes or QuickTime. The same setup should work on FreeBSD as well, but I still need to try that.

Last used path saved separately for open/save dialogs

Previous versions of fre:ac relied on the OS for saving the most recently used path in the open and save files dialogs. This worked more or less well most of the time, but one situation was especially annoying: When creating single file images for multiple albums, you would add the first album to the joblist, then start the conversion and select the single output file, then repeat with the next album. However, everytime you added an album or selected an output file you had to navigate to the right folder in the open/save dialog.

To remedy, starting with the next snapshot release, fre:ac will save the most recently used path separately for the open and save files dialogs.

Other new features

In addtion to the above, the following features have been implemented:

  • support for multi-channel AAC and ALAC
  • support for the VCLT playlist format
  • a notification that asks users to translate fre:ac when their language is not supported yet

Everything listed above will be part of a new snapshot release in mid November.

Build system overhaul

Gentoo developer Sebastian Pipping had a look at the smooth library's and fre:ac's packageability for inclusion in Linux distributions. He found some issues with the build system which I fixed in the process. Among the fixes and improvements are:

  • support for VPATH builds
  • support for specifying a DESTDIR
  • ability to pass custom CFLAGS, CXXFLAGS and LDFLAGS

This should ease the task of creating distribution packages for future Linux package maintainers. Thanks Sebastian for your work!

While at it, I also had a look at the Visual Studio project files and fixed many outstanding issues with them. It's now possible to build smooth, the fre:ac CDK and fre:ac using the Debug and Release configurations for x86 and x64.

Top donors list

Last but not least, I added a list of the top 20 fre:ac supporters to the site. The full list is found at the donations page while the top three donors are listed on every page. Your name on the list is a great way to show your support for the this project. Thanks to everyone who donated thus far! Please see the donations page for more information.

This closes this issue. Be sure to look for the November snapshot release in about two weeks!

fre:ac development status update 09/2015 Print
Written by Robert   
Thursday, 01 October 2015 08:48

Although it's already October in most parts of the world, this is the fre:ac development status update for September 2015. First, I'm sorry there is no new snapshot release yet. In the previous update I promised it for September, but there were several bugs that had to be addressed first. If everything goes well, a new snapshot should be ready next weekend. Let's have a look at the upcoming changes:

Retina support

It has taken quite some time, but finally, support for Retina displays on newer Mac models is ready for release. This will make fre:ac look much better on such displays. Improvements are most visible with text, diagonal lines like in checkboxes and images such as toolbar icons.

Implementing Retina support took longer than expected due to issues with OS X behaving differently when drawing lines in high DPI vs. normal DPI mode.

Cue sheet handling

Several improvements have been implemented with regards to handling cue sheets. I already mentioned the ability to look for compressed files in place of a .wav referenced in a cue sheet in last months issue. The following additional improvements have been added in September:

  • When creating cue sheets in single output file mode, they are now saved along with the output file. Previous releases used the regular output folder and filename pattern to create cue sheets even in single file mode, so in some cases the cue sheet was put in a completely different place than the output file.
  • The cue sheet loader now considers tags included in referenced files. Previously, only metadata mentioned in the cue sheet itself was recognized when loading a cue sheet. The new behaviour is configurable, so you can choose what to use when information in tags differs from what is mentioned in the cue sheet.
  • Last but not least, there now is an option to ignore errors when trying to load cue sheets which is useful when adding folders with unmaintained cue sheets that got out of sync after renaming referenced files or the like. Such cue sheets will be ignored when this setting is activated and the actual audio files will be added instead.

Audio format handling

Several users reported different issues with handling audio files, especially MP3s. The following improvements will be implemented in the next snapshot release:
  • fre:ac now detects concatenated MP3s with non-adjusted VBR headers. There are some tools out there that can concatenate several MP3s into one big file without reencoding which is great as you won't lose audio quality in this process. However, not all of these tools care about adjusting the first file's length info header. The latter thens claim a playtime of e.g. 3 min even though the actual file has a much longer playtime after tracks were appended. The next snapshot release will compare the file size mentioned in the info header with the actual file size and discard the length info in case a significant difference is detected.
  • The new release will also improve parsing of the VBR info header mentioned above. Previous releases just checked the existence of such a header, read the data they needed and then stopped before the actual end of the header frame, leaving it to the MP3 decoder library to sync with the first actual MP3 frame. This could lead to problems with some decoders, especially the MAD decoder, that reported wrong sample rates or numbers of channels in the process.
  • The auto resampling mode of the LAME MP3 encoder was not working in previous releases of fre:ac. Instead it complained about non-supported sample rates and denied encoding of tracks if the sample rate did not match one of those supported by the MP3 format. This issue was fixed in fre:ac 1.0.25 and will be fixed in the upcoming snapshot as well.
  • Some FLAC files, especially if they have been cut out of single file disc image FLACs without reencoding, have their MD5 checksum zeroed. Unfortunately, the verifier introduced in the 20150725 snapshot release did not recognize such situations and reported a verification failure for those files. This will be fixed in the next snapshot.

Other issues

The new release will also fix some CD drive detection issues on Windows. Previous releases sometimes detected only one of multiple drives, especially if you had a system with more than one SATA controller or were using virtual drives. The reason for this was the SCSI path ID being ignored in the CD drive detection code of fre:ac's CDRip library, so devices using the same adapter, target and unit ID and differing only in the path ID were treated as one and the same drive.

So long, thanks for reading! Be sure to come back next weekend to grab your copy of the new fre:ac snapshot release!

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.

Please help fre:ac become Project of the Month Print
Written by Robert   
Monday, 17 August 2015 09:12

fre:ac has been selected to participate in the Community Choice Project of the Month Vote on SourceForge. Winning the vote would make it the October 2015 Project of the Month.

Please help the fre:ac project win by leaving a comment at the October 2015 Community Choice Project of the Month Vote page. The first line of your comment should contain the vote (note that the technical SourceForge project name for the fre:ac project is still bonkenc, the original name of this project):

VOTE: bonkenc

Additional lines may contain an optional comment. It would be great if you would take the time to mention what you like about fre:ac.

Thank you for your help!

fre:ac development status update 07/2015 Print
Written by Robert   
Wednesday, 22 July 2015 13:16

Here's the July 2015 update on fre:ac development.

The past month was quite productive, so I've got a lot of things to share. The best is: I'm already preparing a new snapshot which you'll get to try this weekend!

Ogg Vorbis on x64 (other than Windows)

The reason for the quick release is a little unfortunate, though. The 20150705 snapshot was the first to include an Ogg Vorbis codec with the Lancer SSE patch applied. Turned out that patch contained a bug that made it incompatible with non-Windows x64 platforms, so the x64 flavours of 20150705 on OS X, Linux and FreeBSD all produce garbled sound when encoding or decoding .ogg files. The reason is the use of long values in structures used by the SSE optimizations. While the long type on Windows is always 32 bit regardless of the system bitness, it changes size to 64 bit on most other x64 OS which in turn causes problems with code expecting every long value to always be 32 bit. As this is quite a show stopper bug for everyone using Ogg Vorbis on one of the affected platforms, I decided to make a new release as quickly as possible after I fixed this.

New features and some more fixes

Fortunately, the rest of this update is much more enjoyable. I worked hard and added a whole bunch of new features after the 20150705 release:

  • Input verification for lossless audio formats
    While the previous snapshot added verification for lossless output files, the coming one will add support for checking the integrity of input files for some lossless formats. This currently works with FLAC, TAK and WavPack which include an MD5 checksum of the original audio. fre:ac will display an error message when it detects a checksum mismatch for such a file.
  • Improved support for multi-channel audio files
    With previous versions of fre:ac, you often got the "fre:ac does not support more than 2 channels!" message when trying to convert multi-channel audio files (e.g. 5.1 files). The next snapshot will add (basic) support for this. You will be able to convert multi-channel files between formats supporting more than two channels. These include WAV, FLAC, Vorbis, WMA, WavPack and TAK. In addition, the new release will add scripts to enable decoding of AC3 and DTS files.
  • Support for editing the configuration while converting
    Ever since the first public release, fre:ac denied changing the configuration while a conversion was running. No more! The upcoming release will allow configuration changes to be made at any time. These will not affect running conversions, so if you start a conversion of some CD tracks to FLAC, you can already set up fre:ac for the next conversion run using LAME or any other codec without interfering with the running job.
  • Support for shutting down the computer after conversion on OS X and Linux/Unix
    This option previously worked on Windows only and is now available on OS X and Linux/FreeBSD as well. It can be useful if, for example, you want to go to sleep and have your computer shut down automatically after finishing that long running conversion job.

Besides those features and the Ogg Vorbis x64 fix, the snapshot will also fix some minor issues. When using parallel conversions, tracks sometimes stayed in the joblist even if they had been processed successfully. This was caused by a synchronization issue between the management thread that schedules the individual track conversions and the actual worker threads. Another issue affected decoding of very short MP3 files (just a few seconds long). fre:ac often produced empty output for such files due to a bug in the MP3 decoder initialization code. These two issues will be gone with the next snapshot.

fre:ac 1.0.24

That's it for the upcoming snapshot release, but there's more. fre:ac 1.0.24 will be released this Friday (if everything goes as planned; the SourceForge site is still only halfway operational after they had a storage system fault last week, so the fre:ac release depends on whether they get everything back up in time). This new stable release will fix some minor issues and annoyances, update the Vorbis codec to version 1.3.5 (plus aoTuV 6.03 patches) and enable the flat titlebar style on Windows 8.x and 10 (see last months update for details).

That closes this update. Make sure to grab one of the new releases this weekend and come back for the next issue in a month!

fre:ac development status update 06/2015 Print
Written by Robert   
Tuesday, 30 June 2015 11:12

Hi folks, I'm back again! Sorry for not giving status updates in the past few months!

As I wrote in December, I originally planned to release a new snapshot around the end of January. Unfortunately, some bugs in the OS X version surfaced around that time, so I had to fix them first.

Stability issues on OS X

The problems caused fre:ac to crash on many Macs whenever you tried to add CD tracks to the joblist. This rendered CD ripping with fre:ac virtually impossible for many users.

To make things worse, for the first six to eight weeks that I knew about that issue, I was completely unable to reproduce it on any of my computers. I knew it was there, however, as it had been reported independently by several users.

I finally succeeded in reproducing the problem on a friends MacBook Pro at some point. However, fixing it took me another few weeks. It turned out that there were several separate issues leading to crashes when the freedb query dialog was displayed or closed. Most of them were related to window management in a multithreaded environment.

The issues are fixed now and will be gone in the next snapshot which should be out in the next few days - anywhere between July 1st and 5th, depending on how many bugs I find while preparing the packages.

Changes in the next snapshot

Trying to reproduce and fix the CD ripping issues, I spent a lot of time using and testing fre:ac on OS X and found several unrelated issues on that platform:

  • Audio playback was stuttering or clicking due to an improper buffer size.
  • Ejecting CDs did not work, because of a bug in the CDIO library.
  • The user interface was reacting slowly, especially on OS X 10.10 Yosemite.

All these problems should be fixed in the upcoming snapshot. The disc eject issue also applied to the Linux version of fre:ac and will be fixed there as well.

In addition, on Windows 8.x and 10, fre:ac will get a new flat titlebar style with this snapshot. The new style goes better with the flat style of Windows 10 and also looks slightly better than the old titlebar on Windows 8.x.

New features

On the feature side, the new version will add support for verifying lossless encodes. Enabling the corresponding option will add a verification stage to the conversion process. It decodes files created in the conversion stage and compares them to what has originally been passed to the encoder.

This works with most losslessly compressed output formats supported by fre:ac - FLAC, ALAC, APE, WMA Lossless and others. In case of a data mismatch between the conversion and the verification stage, fre:ac will display an error message including both MD5 checksums for each mismatched file.

Starting with the next snapshot, fre:ac will also display a warning message when it detects a conversion from a lossy to a losslessly compressed format. Such conversions are not reasonable in most cases, but many user mistakenly think that converting to a lossless format will improve quality. Of course you will be able to ignore and even disable that warning in case you really need to do such conversions.

The parallel conversion mode is now enabled by default and no longer marked as experimental. The audio conversion engine has been completely restructured since the October snapshot and the same code is now used for serial and parallel conversions (basically, non-parallel conversions are now treated as parallel conversions with only one thread). As I mentioned in my December status update, you will also be able to rip simultaneously using multiple drives.

Of course, the new release will also update codecs to their latest versions and include the performance optimizations I mentioned in October.

That's it for this issue. I will try to go back to monthly status updates, so there should be another one in four or five weeks.

<< Start < Prev 1 2 3 4 5 6 7 8 Next > End >>

Page 2 of 8