beaTunes News

Wednesday, October 11, 2017

High Sierra Woes

Good news! Apple has indirectly acknowledged that the non-English UI High Sierra issue for Java apps is indeed a High Sierra bug. Apple engineers are working on a fix.

Let's hope said fix is going to be released with macOS 10.13.1—it does not seem to be included in the current beta version.


Friday, September 29, 2017

Don't update to High Sierra just yet

Apple users: I just want to re-emphasize—don't update to High Sierra just yet. It's still a dot-zero version, i.e. there are kinks that need to be fixed. Apple and third party vendors are on it.

For those of you who can't resist new, shiny, and not quite working things—here are some tricks to get beaTunes to run on High Sierra.


Monday, September 11, 2017

beaTunes on High Sierra

macOS 10.13, also known as High Sierra, is going to be released very soon, which means it's time to talk about compatibility with beaTunes. An issue some beta users reported is a missing menu bar. In essence, just the application name, but none of the usual menu items are visible, which makes it impossible to work with beaTunes.

Should you encounter this issue, please try the following solution see note below.

  • Go it and install the latest Java version distributed by Apple.
  • The package will install two items: An antique Java Virtual Machine (JVM) and the JavaVM.framework.
  • Unless you still use an application that uses Java 6 (beaTunes does not), you should remove the Java 6 VM right away, because of security issues.
  • But for beaTunes to work properly, you must keep the JavaVM.framework, which has no known security issues.

Please let me know, should you encounter any other High Sierra-related issues.



The issue seems to have been resolved in the final version of macOS 10.13.

Update 2

Unfortunately, the issue still persists on systems with non-English locale. To get beaTunes to run properly

  1. Please switch your system's UI language to English (via System Preferences)
  2. Start beaTunes
  3. Switch back to whatever your regular UI language is
I apologize for this inconvenience and hope it's properly fixed soon.

Update 3

Apple has indirectly acknowledged it's an operating system bug. They are working on a fix.

Labels: , ,

Thursday, August 17, 2017

Remote Control

I've recently mentioned that starting with beaTunes 5.0.3 there is a mechanism that allows limited remote control of beaTunes from another process. This mechanism is pretty straight forward:

  1. Start beaTunes
  2. Locate the beaTunes5rc executable
  3. Run beaTunes5rc SOME.ACTION.ID

Let's assume you're on macOS and have installed beaTunes in the regular /Applications folder. Then beaTunes5rc is located at /Applications/ (on Windows, a similar executable is located in the installation directory). A handy action id to use is So to toggle play/pause from another program or the commandline/terminal, simply execute:


As return value you'll usually get a JSON document similar to this one:


In beaTunes most UI actions have an id and therefore can be triggered via this mechanism. A couple of these ids are listed in the API for RemoteControlService. However, the best way to find valid ids is to ask beaTunes5rc itself. To do so, simply call:

/Applications/ list

This will return a JSON-formatted list of valid ids, often along with short descriptions.

Additionally to a simple status message some actions may return useful information. To get information about the currently playing song, you can e.g. use audioplayer.track.

The mechanism can be used integrate beaTunes with 3rd party applications, like BeardedSpice. And if you'd like to see a beaTunes integration with BeardedSpice, feel free to upvote the corresponding pull request.

Labels: , ,

Tuesday, August 15, 2017

Update: beaTunes 5.0.4

Today's update addresses a couple of nuisances, like a too small speaker icon, issues with inline BPM editing, etc. Furthermore, it contains some of changes that are supposed to make things run more smoothly, if you happen to have a large library (at least 10,000 songs—see also this post).

Because it has been requested independently by multiple people, I have added a field containing the date of the last analysis. This should make it easier to selectively analyze songs, based on when you last analyzed them. Note that this field does not indicate which analysis task you ran—just that you analyzed something. Initially this fields is empty, because beaTunes did not keep track of when you analyzed your songs prior to version 5.0.4. Also new in this version is the description field. It's the equivalent of the ID3 subtitle frame. If you are using an iTunes-based collection, please be aware that this field is not automatically read from iTunes, because iTunes does not seem to export it to its iTunes Library.xml file. If you want to populate it for specific, selected files, you might want to use File -> Refresh from File.

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

Changes in 5.0.4

  • Fixed ignore Amazon album version solution.
  • Fixed "Play in [preferred player]" not showing up in context menu.
  • Fixed database update for very large BPM values.
  • Fixed inline BPM editor for tempi without relative salience.
  • Fixed potential NPE in artwork inspector solution.
  • Fixed potential infinite loop in BPM detection for very short files.
  • Added field description.
  • Added field for last analysis date.
  • Increased size of speaker icon for currently playing song.
  • Decreased time to analysis start (sending data to server).
  • Improved error reporting for elevation errors on Windows.
  • Improved performance.
  • Updated built-in Discogs database.
  • Updated to JRuby
  • Updated to Groovy 2.4.12-indy.
  • Updated to Hibernate 5.1.9.


Do you have more than 10,000 songs in your collection?

These days music collections are usually a couple of thousand songs big. For these kinds of libraries, beaTunes features something called automatic synchronization. Whenever you switch from beaTunes to another application and back, beaTunes will try to make sure that changes to your music files are automatically imported. This is very convenient and no big deal—unless of course you have a very large collection. And with very large I mean ten thousands of songs.

Synchronizing external changes with the built-in internal database can take a while, especially when your music resides on a slow external drive, e.g. a NAS. You'll notice that beaTunes becomes sluggish, you may see timeouts, and in its status bar beaTunes displays something about synchronizing. Fortunately, this annoying behavior can easily be avoided.

Simply open the general preferences and turn off Synchronize on window activation. Of course that means that external changes aren't automatically discovered by beaTunes anymore. But this issue can easily be solved as well. Whenever you believe, beaTunes has gotten out of sync with your files, simply run File -> Synchronize. This lets you synchronize your metadata at a time of your choosing, and only when it's really necessary.


Friday, July 28, 2017

Update: beaTunes 5.0.3

I have so admit: I'm pretty glad that today's update isn't trying to fix humongous bugs that popped up in the weeks since the original v5 release. Only one of the changes qualifies as a real bugfix (an infinite loop). Hopefully this means that you guys didn't find any major bugs and not that they just weren't reported.

So most changes are small improvements in how beaTunes behaves, e.g. on macOS you can now close the main window without shutting down the whole app.

The only "major" feature change is the new ability to remote control beaTunes. To do so, 5.0.3 comes with an executable named beaTunes5rc. On macOS, this is hidden in the app bundle under /Contents/MacOS. On Windows, it's in the installation directory. It understands arguments like (others) and thus allows you to trigger certain actions from other processes. As the remote control server opens a local socket, you might get a firewall warning when you first start beaTunes. If you don't intend to use the remote control, you should deny beaTunes the ability to accept incoming connections. In any case, beaTunes always checks where a connection is coming from and drops it, if it's not from your own machine. I will soon post more about the whole thing in a separate post.

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

Changes in 5.0.3

  • Fixed main window close behavior on macOS.
  • Fixed infinite analysis loop after filename change.
  • Changed genre rule so that identical spellings always hit top score.
  • Improved duplicates inspection to not show solutions that don't apply.
  • Improved handling of synchronization errors.
  • Added simple remote control mechanism.
  • Added ability to restore similar songs playlist after restart.