beaTunes News

Monday, May 1, 2017

Crashes on Windows 10 Creators Update

Apparently the latest Java 8 update (Java8_131) crashes on Windows 10 Creators Update, when opening a file dialog. This is rather inconvenient, as beaTunes 4.6.14 happens to use that version.

If you're on Windows 10 Creators, you seem to have two options:

  1. Keep on using 4.6.13 or earlier.
  2. Update to the latest snapshot.
The bug report mentions a workaround, which I have implemented in the latest beaTunes development snapshot. Here's the 32-bit version and the 64-bit version (seriously, who still uses 32-bit?).

The macOS version is not affected by this problem. So if you aren't using Windows 10 Creators Update or haven't updated to beaTunes 4.6.14 yet, please just ignore this.

Labels: ,

Tuesday, April 25, 2017

Importing Third Party Key Values

beaTunes4 logo

As you probably know, beaTunes plays really well with iTunes. Not that it needs iTunes, there is the folder-based mode, but it's just really comfy with iTunes. Like a good buddy. beaTunes also assumes that it's the only game in town when it comes to Key detection. Why should you trust anybody else to write those to your precious files? Oh—you do? Well...

Here's the problem. When using an iTunes-based library, beaTunes only reads your files once: When you create the library. Once that is done, it does never again try to read the files' Key field. And why should it? To this date, iTunes hasn't even acknowledged that there is such a thing, much less allowed you to edit it. All information coming from iTunes is contained in the iTunes Library.xml file.

But what if there is some third player, that allows Key editing and you want to see those edits in beaTunes?

You basically have two options:

  1. Use a folder-based library.
  2. Force beaTunes somehow to re-read your files.
Option 1 is pretty straight forward and works well, if your third party editor updates the last-modified timestamp. But what if you don't want to loose the tight iTunes integration? Then you might want to use the little beaTlet RefreshFromFileAction.groovy. Just install the file RefreshFromFileAction.groovy into your plugin folder and restart beaTunes. After the restart, you will find a new menu item under File called Refresh from File. To use it, select a couple of files and click it. Things like Key will be imported from the file. Note that existing values will be overwritten without warning. So be careful!

Curious? Want to find out more about writing plugins/beaTlets for beaTunes? Then check out the plugin intro page. There are also a bunch of examples on GitHub.

Oh and by the way, I've released a minor update yesterday. Most prominently, I have finally found a way to get rid of that ugly bold font, some of you may have seen on Windows. The (to me very unexpected) solution was to set the system property -Dfile.encoding=UTF-8. After all these years, programming is still full of surprises...

As always, you can download the new version from the download section of the website.

Changes in 4.6.14

  • Fixed bold default font issue on Windows.
  • Fixed permission issue in Windows installer.
  • Fixed NPE caused by artwork inspector.
  • Enforce uppercase ReplayGain tags when writing.
  • Fallback to lowercase ReplayGain tags when reading.

Labels: , , , ,

Thursday, March 23, 2017

Update: beaTunes 4.6.13

beaTunes4 logo

Today's update fixes a single issue, that has been bugging me for some time. Occasionally, it seems, mapping a file into memory in Java can lead to an application crash. Indirectly, this may have to do with the missing unmap() call in Java and attempts to work around this limitation. For today's update, I have replaced the memory mapping logic with plain read() calls, which should lead to improved overall stability.

As always, you can download the new version from the download section of the website.

Change in 4.6.13

Labels: , , ,

Wednesday, February 22, 2017

Better Metadata

beaTunes4 logo

beaTunes 5 is not planned to be released for another couple of months, but I'm excited to report that beaTunes 4 users can already benefit from some of the changes and improvements in the pipeline for the next major update. One of these is the data quality of the central database.

As you may or may not know, the central beaTunes database is based on user-submitted data. Basically, every time the beaTunes app looks something up online, it needs to send a query containing track metadata. The database application groups submitted data for each song and forms a consensus version, which in turn is made available to other users when they look up a song. You give some, you take some. In many ways, beaTunes is just the broker.

Unfortunately, sometimes the submitted metadata is less than stellar. This is especially annoying, when only few users have submitted data for a particular song. Luckily, there are some other reference databases, that allow us to look up high-quality metadata and fix mistakes (e.g. Discogs and MusicBrainz—if you're not yet an editor, please contribute!).

So you may not have noticed, but the for the past couple of months, a ton of entries in the central beaTunes database have been updated to reflect the spelling used in MusicBrainz and Discogs. For example, blink-182 is now always spelled "blink-182" and not "Blink 182" or "Blink-182".


Labels: ,

Wednesday, December 21, 2016

Update: AcousticBrainz Mood Plugin

beaTunes4 logo

For the last 1.5 years, lots of you have taken advantage of the AcousticBrainz plugin for beaTunes. I've finally found the time to move the source code to GitHub, so that it can be found in the same repository as the other sample plugins.

While doing so, I added two features:

  1. You can now choose, whether the plugin should replace existing mood values or not.
  2. You can ask the plugin to embed mood attributes in the id3 v2.4 TMOO tag.

Please note, that to retrieve mood values from AcousticBrainz, MusicBrainz ids are required. beaTunes makes an effort to find those, but may not always succeed. Also, keep in mind, that the values AcousticBrainz offers are based on a statistical model. In other words, the accuracy may vary.

You can install/update the plugin via beaTunes' Plugin preferences. Enjoy.

Labels: , , , ,

Friday, December 16, 2016

Update: beaTunes 4.6.10

beaTunes4 logo

Did you ever notice that the British pop band "Oasis" is named "Oasis (2)" on Discogs? Because there are a number of different bands with the same name, Discogs simply appends "(N)" for disambiguation. I'm not sure this is documented somewhere, but it makes matching songs from your library to Discogs tracks slightly more difficult—especially, when you're not aware of this quirk. Today's update works around the issue and thus improves lookup results for artists with not so unique names. Most of the other changes in this release are fixes to small problems I discovered while working on beaTunes 5.

As always, you can download the new version from the download section of the website.

Most important changes in 4.6.10

  • Added signature to Windows executable.
  • Moved to FFSampledSP 0.9.17.
  • Consolidated multiple mood keywords into one ID3 tag (requires ID3v2.4).
  • Fixed possible UI freeze when creating matchlists.
  • Fixed lyrics translate function.
  • Fixed sorting by compilation.
  • Fixed does-not-contain matchlist filter.
  • Fixed crash when searching for regex ().
  • Fixed handling of Discogs artist disambiguation.

Labels: , , ,

Monday, November 7, 2016

Update: beaTunes 4.6.9

beaTunes4 logo

Because of playback problems with some FLAC files, today's update contains a new version of FFSampledSP, which is based on 3.2. Further, the folder-based synchronization has been made more robust, and some other minor things have been added, improved or fixed.

As always, you can download the new version from the download section of the website.

Most important changes in 4.6.9

  • Added mood keywords to embed special fields action.
  • Enforced lowercase ISO-639 language codes.
  • Fixed early abortion of folder-based synchronization.
  • Moved to Java 8u112.
  • Moved to FFSampledSP 0.9.16.

Labels: , , ,