beaTunes News

Friday, June 30, 2017

AcousticBrainz Plugin Available Now

If you haven't heard of AcousticBrainz yet, it's a fantastic project that "aims to crowd source acoustic information for all music in the world and to make it available to the public". Crowd source means that the project needs people like you and me to run a so-called feature extractor through their music libraries and submit the results to the AcousticBrainz database. There are multiple ways to do this—e.g. you can use the tools available on the AcousticBrainz website or the MusicBrainz Picard Tagger. And as of today, there is another way.

beaTunes 5 offers a new plugin that runs the feature extractor and submits the results for you. You can install it via the plugin preferences (see screenshot above, select plugin, click on the + button). Once installed, it's packaged as an analysis task, which means, that it shows up at the bottom of the available tasks whenever you run an analysis. Just check the box and beaTunes will run it.

Please note that running the extractor is not a quick thing. It does a lot of things very thoroughly, so analysis will take a long time. But you'll be doing a good thing! :-)

Thank you for your contribution. Among others, beaTunes uses AcousticBrainz data internally and indirectly benefits from your submissions.

The source code for the plugin is available on GitHub.

Labels: ,

Thursday, June 29, 2017

Update: beaTunes 5.0.2

Just like 5.0.1, today's update is a maintenance release that fixes a number of issues reported by users. Most importantly, it increases stability and reduces memory consumption. If you are already using beaTunes 5, I highly recommend updating.

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

Changes in 5.0.2

  • Fixed issue with synchronizing folder-based library.
  • Fixed too large database cache setting during initial import.
  • Fixed loading too many entities after sync.
  • Fixed issue with channel display for mp4 video files.
  • Fixed potential NPE in online metadata import.
  • Fixed inefficient database query plan caching.
  • Fixed localization issue when opening file properties on Windows.
  • Fixed Amazon new releases lookup for IT and ES.
  • Increased iTunes write queue size.
  • Ensured paced writing of inspection solutions.
  • Added automatic max VM heap adjustment for common cases.


Friday, June 23, 2017

Scan Mode

Back in 2015 I wrote a little plugin for beaTunes 4 that helped to quickly scan through a list of songs. For beaTunes 5 this plugin was promoted to a built-in feature. To activate it, just click on that little barcode button right below the elapsed time counter.

What happens when you activate scan-mode? It puts the player in a mode, in which it only plays a short part of each song before continuing with the next one. Which song part is played depends on the specific scan mode you choose. The three available options are: Beginning, third and prominent. They describe the start point for playback. Beginning and third are pretty self-explanatory. Prominent means that beaTunes will choose a segment of each track for you based on its automatic segmentation. Depending on the kind of music, this may work better or worse, i.e. YMMV.

But in any case, this feature allows you to sit back and relax while beaTunes gives you an impression of a playlist of your choice. BTW: The length of this short preview is configurable in the playback preferences.

Labels: ,

Tuesday, June 20, 2017

Update: beaTunes 5.0.1

Every real release is followed by the obligatory bug-fix update. And here it is. Thanks to your feedback, I was able to fix a number of unexpected issues, most of them having to do with the dreaded NullPointerException, a.k.a. NPE. Besides the fixes, a couple of things were improved or added. Most of this is stuff that I didn't get to for the original release. Some of this has to do with the new Play similar songs feature. BTW: if you're curious what the internal playlist looks like, there is a simple plugin available for that via Preferences -> Plugins (sources are available on GitHub). It adds a new menu item under Controls.

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

Changes in 5.0.1

  • Fixed NPE in master panel state restoration.
  • Fixed possible NPE during inline rating/loved edits.
  • Fixed inline editability of loved/mediakind for folder-based libraries.
  • Fixed ExceptionInInitializerError on very HiDPI screens.
  • Fixed NPE in inspection.
  • Fixed duplication issue when re-ordering playlists on Windows.
  • Enabled volume control while no song is loaded.
  • Enabled goto current song for play similar song mode.
  • Added speaker icon for song played via play similar.
  • Added menu items/keyboard shortcuts for loved (macOS/folder-based-only).
  • Added menu items/keyboard shortcuts for song rating.

Labels: , ,

Sunday, June 18, 2017

Re-Ordering Playlists by Property

Creating a playlist can be broken down in a two-step process: 1) selecting tracks, and 2) creating a compelling order. beaTunes supports selection through the matching song table below the main table. beaTunes 4 and earlier helped with ordering by letting the user apply a match ruleset, even on already existing list.

beaTunes 5 now offers an additional way of ordering: Order by property.

In it's simplest form this is like sorting by clicking on a table column header. The difference is that re-ordering is permanent, while sorting is just temporary. To re-order a list, so that all songs are ordered by their BPM values, just select a song in the list, right-click, and select Order Playlist by... -> Property from the context menu. Then select the property BPM.

Of course that's not all you can do. Obviously a choice between ascending and descending values is useful. And what about first ascending and then descending? No problem. Or ascending multiple times? That's what the Periods control is for. It lets you repeat the chosen pattern. Naturally, BPM is not the only property you can use for this. Key, mood and others are possible as well. Whenever the chosen property is circular in nature (mood, key), the selected song is taken as a starting point for a clockwise or counter-clockwise order. This is useful for harmonic mixing. Another application is workout playlists, when you want to increase intensity one or multiple times (e.g. spinning/indoor cycling).

Of course, after re-ordering like this, you can still fine-tune manually via drag and drop. In any case: I hope you enjoy this new feature.

Labels: , , , ,

Tuesday, June 13, 2017

Dealing with Analysis Errors

When analyzing tracks with beaTunes, every now and then, things don't go quite as expected. beaTunes 5 improved, how you can deal with such analysis failures. Whenever you see an error message in the Task Queue's message panel, you can right-click it to find some options. Often beaTunes will offer just a way to navigate to the problematic song. But in some cases real solutions are offered.

A good example is an iCloud song. As shown in the screenshot, beaTunes will offer to download it for you, as it cannot be analyzed while in the cloud (iCloud download only available on macOS).

Labels: , ,

beaTunes the 5th — Better Algorithms, Dark UI Theme, Improved Usability

I'm very happy to finally release beaTunes 5 today. It's been more than a year of work—and I think it was worth it. beaTunes 5 is smarter, looks better, and is easier to use.


You can download beaTunes 5 from the download section of the website. Note that this is not a free update for beaTunes 4 users (though some of you may have received an email and steeply discounted upgrade licenses are available). But should you upgrade from version 4, please be patient when beaTunes updates its database. It's quite the re-organization and takes a while. Also, should you want to downgrade back to version 4, please read this article. It's important, because the downgrade is possible, but not automatic.

Getting Started

To get started with beaTunes 5, I recommend to re-run the color analysis along with the new update popularity data task for all songs. In this run, you might want to disable all other tasks to get results quickly. In beaTunes 5 the color concept has changed and what used to be called color is now called timbre. But trust me, you'll want to use color. The are a bunch of other new columns. You might want to check the View -> View Options dialog to see them all.

If you're into electronic music and like Beatport, I recommend to connect beaTunes to the Beatport API. You can do that in the beaTunes general preferences. This will allow you to see Beatport charts and also use Beatport as a source for the matching songs table (no, there are no kickbacks or affiliate programs with Beatport).

And then... well, just play around! For example, after analysis finished, try out the new Play similar songs control that sits right in the context menu.


Changes in 5.0.0

These are the most important changes in no particular order:

  • Added ruleset chooser to matching songs table.
  • Added ability to edit ruleset names.
  • Added support for embedding ID3 tags in WAV and AIFF files.
  • Added support for embedding acoustic fingerprints.
  • Added option to force overwrite fields.
  • Added support for ITU-R BS.1770 (EBU R128, ATSC A/85, ReplayGain2).
  • Added configurable artwork size in tables.
  • Added ability to show partial artwork in table.
  • Added popularity rule.
  • Added similar artist rule.
  • Added similar key rule for synced BPM (matches keys after playback tempo change).
  • Added ability to display keys for synced BPM (key after playback tempo change).
  • Added DBpedia/Wikipedia-based tooltips to genres (if available).
  • Added display of a known root genre to the genre field.
  • Added solution to remove identical ids from tracks that aren't duplicates.
  • Added automatic fetching of (missing) inactivity artwork.
  • Added media kind inspector (iTunes+macOS or folder-based).
  • Added support for field danceability.
  • Added support for field instrumentation (acoustic/electronic).
  • Added acoustic/electronic classifier based on lowlevel AcousticBrainz data.
  • Added support for fields loved, disliked, movement and work.
  • Added support for Media Monkey custom fields.
  • Added ability to show standard columns in table view.
  • Added additional online resources for key and tempo.
  • Added dedicated mood estimation task.
  • Added easy navigation from analysis error message to song.
  • Added offer to download matched iCloud songs when needed (macOS-only).
  • Added ability to show OS level file info dialog.
  • Added Open in AcousticBrainz, YouTube, Facebook, and Twitter action.
  • Added support for special library lists (podcasts, audiobooks, ...) to folder-based collections.
  • Added ability to read and display folder.jpg images.
  • Added forced database repair after crash occurred.
  • Added playback repeat.
  • Added playlist scan with different modi (beginning, third, prominent).
  • Added additional secondary sort orders for columns mood, key, and BPM.
  • Added display of synchronization results in status bar.
  • Added ability to abort synchronization.
  • Added ability to refresh metadata from files for iTunes-based library.
  • Added ability to export playlists containing relative filenames.
  • Added CSV playlist exporter.
  • Added WPL playlist exporter.
  • Added an easy way to create playlist builder plugins.
  • Added an easy way to create playlist sorter plugins.
  • Added ability to easily re-order a playlist by a chosen property.
  • Added ability to edit the field year in table view.
  • Added quick edit dialog for all songs in one album/by one artist/...
  • Added dark user interface theme.
  • Added context menu for playlist panel (delete, analyze, etc.).
  • Added Wikidata as metadata source.
  • Added social media links to Get Info pane.
  • Added gzip content encoding support for most web service calls.
  • Added new album/artist info context component.
  • Added rename playlist context menu entry.
  • Added support for media keys (macOS only, Windows will follow).
  • Added ability to exclude remote songs from inspection and analysis.
  • Added play similar songs.
  • Fixed change detection box for genres in multi item info dialog.
  • Switched Windows launcher for better UX.
  • Switched silence detector user interface from percent to decibel.
  • Improved song import via drag and drop.
  • Improved tempo/BPM estimator (rewrite).
  • Improved key estimator (rewrite).
  • Improved resilience against (external) file renaming in folder-based collections.
  • Improved similar genre rule.
  • Improved View Options dialog.
  • Improved rarely used genre inspector to suggest similar genres.
  • Improved typo inspectors to take advantage of built-in database.
  • Improved analysis error reporting by avoiding duplicate messages.
  • Improved missing/read-only file inspectors by reducing network traffic.
  • Improved correction hints in Get Info pane.
  • Improved lyrics web search in Get Info pane.
  • Improved performance of initial library synchronization.
  • Improved matching performance for BPM and mood.
  • Ignore obviously bad BPM from online sources.
  • Removed tile-based user interface themes.
  • Removed explicit Analyze New menu item.
  • Removed iTunes playback controls.
  • Updated most APIs to use java.nio.file.Path.
  • Updated to jipes 0.9.14.
  • Updated to H2 1.4.195.
  • Updated to JRuby
  • Updated to Groovy 2.4.11-indy.
  • Updated to FFSampledSP 0.9.19.

Labels: ,

Sunday, June 11, 2017

Update: beaTunes 4.6.17

beaTunes4 logo

Today's update for beaTunes 4.6 is the last one for the foreseeable future. After the release of version 5, you can still find it in the old downloads section of the website. But for the next couple of days, you can still download it from the regular download section of the website.

Thanks for using beaTunes 4! I hope you'll follow me to version 5.

Changes in 4.6.17

  • Fixed possible stackoverflow when creating playlists.
  • Fixed matchlists forgetting their parents.
  • Fixed issue when adding matchlist seeds from other playlists.
  • Updated built-in Discogs database.


Thursday, June 8, 2017

beaTunes 5 EA3

We're slowly getting closer to the final version 5. Today's EA3 release (links are below) is completely localized and except for Windows media key support, I'm not aware of any major issues. That said: Please let me know, if you find any! The ones I'm not aware of are the hardest to fix.

I mentioned in earlier posts, that beaTunes 5 has a new color concept. One feature that makes heavy use of this is the new "Play similar songs" control. You can find it in the Controls menu and in the context menu. To use it, you only need to select a seed song. No playlist building, no nothing.

The main idea is pretty simple: Just play some music.

This feature works a lot better once beaTunes has color values for most of your songs. It also takes advantage of the new "Update popularity data" and "Instrumentation" analysis tasks. If you try this out, please let me know, what you like/dislike about it.

Thank you!

Upgrading from beaTunes 4

  • Make sure the analysis queue is empty before you install EA3.
  • Once installed, it will upgrade your existing beaTunes 4 database. Before doing so, it should create a backup in the database directory so that you can go back to version 4. However, it's always a good idea to have your own backup!
  • The database upgrade may take a while. Do not interrupt it. Instead, get a coffee, play with your dog, check your kid's homework. There's nothing more boring than staring at an indeterminate progress bar.

General Notes

  • EA3 is fully localized. If you see something in English, when it should be French, Spanish or German, please let me know! Please also contact me, should a translation be less than stellar (this includes layout issues).
  • This EA release will stop working a week from now. There will be either a new EA version before the week is over or the final version will be released.
  • The final version will not be a free update, unless you very recently purchased a license from the website (magazine keys don't qualify!). As always, an upgrade license can be purchased for a significantly discounted price once the final version 5 is out.
  • Media key support for Windows will hopefully happen in EA4. For macOS, you might need to disable the rcd and allow beaTunes to use the accessibility API. But at the very least, you need to enable media key support in beaTunes' playback preferences.
  • Version 5 introduces an improved color concept that takes tempo/rhythm features into account. To see these "new" colors you need to re-run the color analysis. Please note that the "old" color is still there, but it has been renamed to "timbre". To see the "new" color column, you may need to enable it, e.g. via View -> View Options.
  • There is a new Beatport integration for charts and song matching (Beatport can be chosen as source). To enable it, you need to grant beaTunes access to your Beatport account. You can do so via the corresponding checkbox in the general preferences.
  • For a complete list of changes, please read the NOTES.txt file in the distribution.


Labels: ,

Wednesday, June 7, 2017

Fixing Media Kind: It's a bird! It's a plane! No, it's a podcast!

iTunes had the ability to organize your media files into broad categories (music, movies, podcasts, audiobooks, ...) for a long time. This is especially significant for people who store audiobooks in iTunes and expect to listen to them on their iPhone using the iBooks app. That's only possible when the files are correctly categorized as "audiobook". Unfortunately, adjusting the media kind (that's what iTunes calls those categories) was only possible manually through the user interface. With version 12.4 Apple finally remedied this for macOS and the property was exposed via AppleScript. This means that software like beaTunes can manipulate it and move files into the correct category. A task made for a beaTunes inspection.

Now how would one know, whether a file is in the wrong category? The route I took for beaTunes 5 is to simply look at the genre label. If it says podcast in that label, chances are it's not a TV show. The same is true for audiobooks. The corresponding inspection is therefore aptly named "Genre does not match media kind". It lets you easily fix miscategorizations and thus makes it much easier to listen to your favorite audiobook while on the road. By the way, proper tracknumbers and identical album/artist values make it possible to group chapters into a book. Obviously, beaTunes can help here, too.

As mentioned above, programmatically manipulating the media kind on macOS happens via AppleScript. The Windows equivalent for this used to be the iTunes COM API. Unfortunately, Apple has abandoned it years ago. This is why beaTunes for Windows cannot offer the same functionality as beaTunes for macOS. On Windows, beaTunes offers proper media kind support only for folder-based libraries, where iTunes does not matter. It sure is disappointing, but it seems that Apple views iTunes for Windows as a legacy system, that's dragged along, because it cannot let it die for fear of public outcry. Which is ironic, given that so many people have a love/hate relationship with iTunes.

Labels: , , , , , , , ,

Monday, June 5, 2017

The little things: smart mass-editing

The upcoming beaTunes 5 contains a lot of little changes that are too many to talk about in great detail. Nevertheless, I'd like to point out one of these little things. Like most other music library management apps, beaTunes lets you edit properties like the album or artist name inline, i.e. in the main table view. When you do so in version 5, beaTunes will not just write the desired edit, but also check, if it could apply the same change to other songs as well. After all, you hardly ever want to change an album name for a single song—you want to change it for all songs in an album. So if it makes sense to make the same change for other songs, beaTunes asks you, what you'd like to do.

Similar checks are in place for the fields album artist, composer, compilation, sort artist, genre, etc.

I bet this will make your life a little bit easier.


Saturday, June 3, 2017

What key would this song be in, if I played it a little slower?

beaTunes 5 will contains some neat features to help DJs mix harmonically. In the View -> View Options dialog, you can now find two changes. The first having to do with the way artwork is displayed (size and height). That one is pretty self-explanatory. But the second one, in the lower left corner of the dialog, may not be so obvious.

The new SYNC-button let's you change how a song's key is displayed, if both key and BPM are available. Assume you have a song in C major with a tempo of 100 BPM. When you press the SYNC-button and set the tempo value to 94.4 BPM, beaTunes will display the key the song would be in, if it was played at 94.4 BPM (without key lock). In this case B major. This feature is meant for DJs who prefer not to use key lock, but rather play tracks slower or faster to match both beat and key. In this context, beaTunes serves purely as a discovery tool. It does not support changing the playback speed in any way. Apropos discovery tool: the matching songs panel now offers a SYNC-button as well. This means you can easily find songs matching harmonically at the tempo of the selected song (if your ruleset contains the matching key rule).

I hope this feature proves useful to a lot of working DJs out there.

Labels: ,

Thursday, June 1, 2017

beaTunes 5 EA2

Thanks to a lot of great feedback I was already able to fix a couple of issues—most of them having to do with memory consumption. EA2 is much better behaved. It still does not have media key support for Windows or complete French/Spanish localization, but overall stability should be improved.

If you have used EA1 already, there won't be a database migration when you first start EA2. If you haven't used EA1 yet, I urge you to read my remarks about EA1. Pretty much all things mentioned there still apply. Do not install EA2 without having read those notes!

Again, please provide feedback! Without it, early access releases are pointless.

Thank you!


Labels: ,

Update: beaTunes 4.6.16

beaTunes4 logo

With beaTunes 5 on the horizon, this may be one of the last 4.6 updates (if not the final one). All of today's fixes are based on user feedback, which I very much appreciate. The improvements are basically back-ports of changes originally made for beaTunes 5.

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

Changes in 4.6.16

  • Fixed exception in EDT that prevented closing of info dialog.
  • Fixed disabled remove artwork action info dialog.
  • Fixed artwork render issue for songs without album name.
  • Fixed NPE when importing some JPEG artwork via drag and drop.
  • Improved Amazon-based recommendations.
  • Improved Amazon-based new releases.
  • Improved memory efficiency.